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

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

Info

Publication number
JP2002324008A
JP2002324008A JP2001129160A JP2001129160A JP2002324008A JP 2002324008 A JP2002324008 A JP 2002324008A JP 2001129160 A JP2001129160 A JP 2001129160A JP 2001129160 A JP2001129160 A JP 2001129160A JP 2002324008 A JP2002324008 A JP 2002324008A
Authority
JP
Japan
Prior art keywords
block
page
data
flash memory
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.)
Granted
Application number
JP2001129160A
Other languages
English (en)
Other versions
JP3621051B2 (ja
Inventor
Yukio Terasaki
幸夫 寺崎
Naoki Mukoda
直樹 向田
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 JP2001129160A priority Critical patent/JP3621051B2/ja
Publication of JP2002324008A publication Critical patent/JP2002324008A/ja
Application granted granted Critical
Publication of JP3621051B2 publication Critical patent/JP3621051B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 データの書き込みに必要な一連の処理をより
高速に行うことができるメモリコントローラを提供す
る。 【解決手段】 本発明によるメモリコントローラは、既
にデータが格納されている第1のブロックに対応する論
理アドレスに対して新たなデータの書き込みが指示され
たことに応答して、第1のブロックに格納されているデ
ータの一部を第2のブロックに転送する第1の手段と、
新たなデータを第2のブロックに書き込む第2の手段
と、第1のブロックと第2のブロックの対応関係を保持
する第3の手段とを備える。本発明によれば、転送元ブ
ロックである第1のブロックと転送先ブロックである第
2のブロックとの対応関係を保持することによって、ブ
ロック間転送の後半部分の動作の省略していることか
ら、一連の書き込み動作をより高速に行うことができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、メモリコントロー
ラ、フラッシュメモリシステム及びフラッシュメモリの
制御方法に関し、特に、フラッシュメモリに対する一連
のデータ書き込み処理をより高速に行うことができるメ
モリコントローラ、フラッシュメモリシステム及びフラ
ッシュメモリの制御方法に関する。
【0002】
【従来の技術】近年、メモリカードやシリコンディスク
などに用いられる半導体メモリとして、フラッシュメモ
リ、特にNAND型フラッシュメモリが用いられること
が多い。NAND型フラッシュメモリは、メモリセルを
消去状態(論理値=1)から書込状態(論理値=0)に
変化させる場合は、これをメモリセル単位で行うことが
可能である一方、メモリセルを書込状態(0)から消去
状態(1)に変化させる場合は、これをメモリセル単位
で行うことができず、複数のメモリセルからなる所定の
消去単位でしかこれを行うことができない。かかる一括
消去動作は、一般的に「ブロック消去」と呼ばれる。
【0003】このように、フラッシュメモリでは、ブロ
ック単位でしかメモリセルを書込状態から消去状態に変
化させることができないので、既にデータの書き込まれ
たブロックに対して新しいデータを書き込むためには、
一旦、このブロックに含まれるメモリセルを全て消去状
態とし、その後に新しいデータを書き込むという処理が
必要となる。したがって、すでにデータが格納されてい
るブロックに新しいデータを書き込む場合、このブロッ
クにすでに格納されているデータが消失するのを防ぐた
めには、このブロックに含まれるデータを、他の消去済
みブロックに移動させる必要がある。
【0004】このため、すでにデータが格納されている
ブロックに新しいデータを書き込むようホストコンピュ
ータから指示されると、当該新しいデータと、このブロ
ックにすでに格納されているデータとが、消去済みブロ
ックに書き込まれる。かかる処理は、「ブロック間転
送」と呼ばれる。その後、転送元のブロックに含まれる
メモリセルが全て消去状態とされ、これにより、転送元
のブロックは新たに消去済みブロックとなる。
【0005】このように、従来のフラッシュメモリシス
テムにおいては、すでにデータが格納されているブロッ
クに新しいデータを書き込むよう、ホストコンピュータ
から要求されるたびにブロック間転送を実行する必要が
あった。
【0006】
【発明が解決しようとする課題】しかしながら、一連の
ブロック間転送処理には、多くの時間を要するという問
題がある。
【0007】すなわち、ブロック間転送処理において
は、転送元ブロックに格納されているデータをメモリコ
ントローラが読み出し、かかるデータを転送先のブロッ
クに書き込むという処理を1ページずつ行う必要がある
ため、転送元ブロックの各ページに格納されているデー
タを全て転送先のブロックに転送するには、1ブロック
を構成するページ数にほぼ比例した時間が必要となって
しまう。
【0008】したがって、ホストコンピュータから書き
込みを要求されたデータがたとえ1ページ分のデータで
あっても、当該データを書き込むべきブロックにすでに
何らかのデータが格納されていれば、一連の処理が完了
するまでには多大な時間が必要となっていた。
【0009】このため、ホストコンピュータからデータ
の書き込みが要求された場合に、当該データの書き込み
に必要な一連の処理をより高速に行うことができるメモ
リコントローラ、フラッシュメモリシステム及びフラッ
シュメモリの制御方法が望まれていた。
【0010】したがって、本発明の目的は、ホストコン
ピュータからデータの書き込みを要求された場合に、当
該データを書き込むべきブロックにすでに何らかのデー
タが格納されている場合であっても、与えられたデータ
の書き込みに必要な一連の処理をより高速に行うことが
できるメモリコントローラ及びこのようなメモリコント
ローラを備えるフラッシュメモリシステムを提供するこ
とである。
【0011】また、本発明の他の目的は、ホストコンピ
ュータからデータの書き込みを要求された場合に、当該
データを書き込むべきブロックにすでに何らかのデータ
が格納されている場合であっても、与えられたデータの
書き込みに必要な一連の処理をより高速に行うことがで
きるフラッシュメモリの制御方法を提供することであ
る。
【0012】
【課題を解決するための手段】本発明のかかる目的は、
複数のブロックからなるメモリにアクセスするメモリコ
ントローラであって、既にデータが格納されている第1
のブロックに対応する論理アドレスに対して新たなデー
タの書き込みが指示されたことに応答して、前記第1の
ブロックに格納されているデータの一部を第2のブロッ
クに転送する第1の手段と、前記新たなデータを前記第
2のブロックに書き込む第2の手段と、前記第1のブロ
ックと前記第2のブロックの対応関係を保持する第3の
手段とを備えることを特徴とするメモリコントローラに
よって達成される。
【0013】本発明によれば、既にデータが格納されて
いるブロックに対応する論理アドレスに対して新たなデ
ータの書き込みが指示された場合に、転送元ブロックで
ある第1のブロックと転送先ブロックである第2のブロ
ックとの対応関係を保持することによって、ブロック間
転送の後半部分の動作の省略を可能としている。これに
より、一連の書き込み動作をより高速に行うことができ
る。
【0014】本発明の好ましい実施態様においては、前
記第1の手段が、前記第1のブロックの先頭ページから
前記新たなデータを格納すべきページに対応するページ
の一つ前のページに格納されているデータを、前記第2
のブロックの同じページに転送するものである。
【0015】本発明のさらに好ましい実施態様において
は、前記第3の手段が、前記第2のブロックの空きペー
ジに関する情報をさらに保持している。
【0016】本発明のさらに好ましい実施態様において
は、前記空きページが、前記第2の手段によりデータが
書き込まれたページの次のページから最終ページまで連
続している。
【0017】本発明のさらに好ましい実施態様において
は、前記メモリコントローラが、前記論理アドレスに対
して新たなデータの書き込みがさらに指示されたことに
応答して、前記新たなデータを前記第2のブロックに追
加的に書き込み可能であるか否かを判断する第4の手段
をさらに備える。
【0018】本発明のさらに好ましい実施態様において
は、前記メモリコントローラが、前記第4の手段が追加
的な書き込みが可能であると判断したことに応答して、
前記新たなデータを前記第2のブロックに書き込む第5
の手段をさらに備える。
【0019】本発明のさらに好ましい実施態様によれ
ば、書き込みが指示された新たなデータを第2のブロッ
クに直接書き込んでいることから、一連の書き込み動作
をより高速に行うことができる。
【0020】本発明のさらに好ましい実施態様において
は、前記メモリコントローラが、前記第4の手段が追加
的な書き込みが不可能であると判断したことに応答し
て、前記第1のブロックと前記第2のブロックとの間の
ブロック間転送を完結させる第6の手段をさらに備え
る。
【0021】本発明のさらに好ましい実施態様において
は、前記メモリコントローラが、前記第4の手段が追加
的な書き込みが不可能であると判断したことに応答し
て、前記第2のブロックに格納されているデータの一部
を第3のブロックに転送する第7の手段と、前記新たな
データを前記第3のブロックに書き込む第8の手段とを
さらに備え、前記第3の手段が、前記第2のブロックと
前記第3のブロックの対応関係をさらに保持している。
【0022】本発明のさらに好ましい実施態様によれ
ば、追加的な書き込みが不可能であると判断された場合
であっても、第2のブロックに格納されているデータの
一部を第3のブロックに転送していることから、一連の
書き込み動作をより高速に行うことができる。
【0023】本発明のさらに好ましい実施態様において
は、前記第3の手段が、前記第3のブロックの空きペー
ジに関する情報をさらに保持している。
【0024】本発明の前記目的はまた、それぞれ複数の
ページによって構成される複数のブロックからなるメモ
リにアクセスするメモリコントローラであって、全ての
ページが使用済みである第1のブロックと一部のページ
が使用済みであり残りのページが空きページである第2
のブロックとの対応関係を保持する手段と、前記第2の
ブロックの物理アドレスと対応する論理アドレスとの関
係を保持する手段と、前記第2のブロックに対応する論
理アドレスに対してデータの書き込みが指示されたこと
に応答して書き込み先のページが空きページであるか否
かを判断する手段と、書き込み先のページが空きページ
であると判断されたことに応答して前記データを前記第
2のブロックの対応する空きページに追加的に書き込む
手段とを備えることを特徴とするメモリコントローラに
よって達成される。
【0025】本発明によれば、書き込み先のページが空
きページであると判断された場合、書き込みが指示され
たデータを第2のブロックの対応する空きページに追加
的に書き込んでいることから、ブロック間転送を行う必
要がない。このため、一連の書き込み動作をより高速に
行うことができる。
【0026】本発明の好ましい実施態様においては、前
記メモリコントローラが、前記書き込み先のページが空
きページの先頭ページとは異なるページであることに応
答して、前記第1のブロックを構成するページのうち、
前記空きページの先頭ページから前記書き込み先のペー
ジの一つ前のページに対応する各ページの内容を前記第
2のブロックの同じページに転送する手段をさらに備え
る。
【0027】本発明の前記目的はまた、複数のブロック
からなるメモリにアクセスするメモリコントローラであ
って、前記各ブロックを複数のグループに分類する手段
と、互いに異なるグループに属する複数のブロックを仮
想的に結合することにより仮想ブロックを形成する手段
と、前記仮想ブロックを構成する所定のブロックに対し
て新たなデータの書き込みが指示されたことに応答し
て、前記所定のブロックに格納されているデータの一部
を他のブロックに転送する手段と、前記書き込みが指示
されたデータを前記他のブロックに書き込む手段と、前
記第所定のブロックと前記他のブロックの対応関係を保
持する手段とを備えることを特徴とするメモリコントロ
ーラによって達成される。
【0028】本発明によれば、仮想ブロック方式のメモ
リコントローラについても、一連の書き込み動作をより
高速に行うことができる。
【0029】本発明の前記目的はまた、複数のブロック
からなるフラッシュメモリと、ホストコンピュータより
供給されるホストアドレスに基づいて前記フラッシュメ
モリにアクセスするメモリコントローラとを備え、前記
メモリコントローラが、既にデータが格納されている第
1のブロックに対応する論理アドレスに対して新たなデ
ータの書き込みが指示されたことに応答して、前記第1
のブロックに格納されているデータの一部を第2のブロ
ックに転送する第1の手段と、前記新たなデータを前記
第2のブロックに書き込む第2の手段と、前記第1のブ
ロックと前記第2のブロックの対応関係を保持する第3
の手段とを備えることを特徴とするフラッシュメモリシ
ステムによって達成される。
【0030】本発明によれば、既にデータが格納されて
いるブロックに対応する論理アドレスに対して新たなデ
ータの書き込みが指示された場合に、転送元ブロックで
ある第1のブロックと転送先ブロックである第2のブロ
ックとの対応関係を保持することによって、ブロック間
転送の後半部分の動作の省略を可能としている。これに
より、一連の書き込み動作をより高速に行うことができ
る。
【0031】本発明の好ましい実施態様においては、前
記フラッシュメモリと前記メモリコントローラとが、同
一の筐体に収容されている。
【0032】本発明のさらに好ましい実施態様において
は、前記筐体がカード形状である。
【0033】本発明のさらに好ましい実施態様において
は、前記第3の手段が、前記第2のブロックの空きペー
ジに関する情報をさらに保持している。
【0034】本発明の前記目的はまた、所定の論理アド
レスに対してデータの書き込みが指示されたことに応答
して、アドレス変換テーブル内の前記論理アドレスに対
応するブロックを第1のブロックから第2のブロックに
変更するステップと、前記第1のブロックと前記第2の
ブロックの対応関係を示す変数を作成するステップと、
前記第1のブロックに格納されているデータの一部を第
2のブロックに転送するステップと、前記新たなデータ
を前記第2のブロックに書き込むステップとを備えるこ
とを特徴とするフラッシュメモリの制御方法によって達
成される。
【0035】本発明の好ましい実施態様においては、前
記論理アドレスに対して新たなデータの書き込みがさら
に指示されたことに応答して、前記新たなデータを前記
第2のブロックに追加的に書き込み可能であるか否かを
判断するステップと、前記追加的な書き込みが可能であ
ると判断されたことに応答して、前記新たなデータを前
記第2のブロックに書き込むステップとをさらに備え
る。
【0036】本発明のさらに好ましい実施態様において
は、前記論理アドレスに対して新たなデータの書き込み
がさらに指示されたことに応答して、前記新たなデータ
を前記第2のブロックに追加的に書き込み可能であるか
否かを判断するステップと、前記追加的な書き込みが不
可能であると判断されたことに応答して、前記第1のブ
ロックと前記第2のブロックとの間のブロック間転送を
完結させるステップとさらに備える。
【0037】本発明のさらに好ましい実施態様において
は、前記ブロック間転送を完結させた後、前記第1のブ
ロックをブロック消去するステップをさらに備える。
【0038】
【発明の実施の形態】以下、添付図面を参照しながら、
本発明の好ましい実施態様について詳細に説明する。
【0039】図1は、本発明の好ましい実施態様にかか
るフラッシュメモリシステム1を概略的に示すブロック
図である。
【0040】フラッシュメモリシステム1はカード形状
であり、図1に示されるように、4個のフラッシュメモ
リチップ2−0〜2−3と、コントローラ3と、コネク
タ4とが、一つのカード内に集積されて構成される。フ
ラッシュメモリシステム1は、ホストコンピュータ5に
着脱可能に装着されて使用され、ホストコンピュータ5
に対する一種の外部記憶装置として用いられる。ホスト
コンピュータ5としては、文字、音声、あるいは画像情
報等の種々の情報を処理するパーソナルコンピュータや
デジタルスチルカメラをはじめとする各種情報処理装置
が挙げられる。
【0041】各フラッシュメモリチップ2−0〜2−3
は、それぞれ128Mバイト(1Gビット)の記憶容量
を有する半導体チップである。フラッシュメモリシステ
ム1においては、512バイトを1ページとし、これを
最小アクセス単位としている。したがって、これら各フ
ラッシュメモリチップ2−0〜2−3は、それぞれ25
6Kページのアドレス空間を含み、フラッシュメモリチ
ップ2−0〜2−3の合計で、1Mページのアドレス空
間を備えることになる。また、フラッシュメモリシステ
ム1においては、これら4つのフラッシュメモリチップ
2−0〜2−3は、512Mバイト(4Gビット)の記
憶容量を有し、1Mページのアドレス空間を備える一つ
の大きなメモリとして取り扱われる。このため、これら
1Mページからなるアドレス空間から特定のページにア
クセスするためには、20ビットのアドレス情報が必要
となる。したがって、ホストコンピュータ5は、フラッ
シュメモリシステム1に対し、20ビットのアドレス情
報を供給することによって、特定のページに対するアク
セスを行う。以下、ホストコンピュータ5よりフラッシ
ュメモリシステム1に供給される20ビットのアドレス
情報を「ホストアドレス」と呼ぶ。
【0042】コントローラ3は、マイクロプロセッサ6
と、ホストインターフェースブロック7と、SRAMワ
ークエリア8と、バッファ9と、フラッシュメモリイン
ターフェースブロック10と、ECC(エラー・コレク
ション・コード)ブロック11と、フラッシュシーケン
サブロック12とから構成される。これら機能ブロック
によって構成されるコントローラ3は、一つの半導体チ
ップ上に集積されている。
【0043】マイクロプロセッサ6は、コントローラ3
を構成する各機能ブロック全体の動作を制御するための
機能ブロックである。
【0044】ホストインターフェースブロック7は、バ
ス13を介してコネクタ4に接続されており、マイクロ
プロセッサ6による制御のもと、ホストコンピュータ5
とのデータやアドレス情報、ステータス情報、外部コマ
ンド情報の授受を行う。すなわち、フラッシュメモリシ
ステム1がホストコンピュータ5に装着されると、フラ
ッシュメモリシステム1とホストコンピュータ5とは、
バス13、コネクタ4及びバス14を介して相互に接続
され、かかる状態において、ホストコンピュータ5より
フラッシュメモリシステム1に供給されるデータ等は、
ホストインターフェースブロック7を入口としてコント
ローラ3の内部に取り込まれ、また、コントローラ3よ
りホストコンピュータ5に供給されるデータ等は、ホス
トインターフェースブロック7を出口としてホストコン
ピュータ5に供給される。さらに、ホストインターフェ
ースブロック7は、ホストコンピュータ5より供給され
るホストアドレス及び外部コマンドを一時的に格納する
タスクファイルレジスタ(図示せず)及びエラーが発生
した場合にセットされるエラーレジスタ等(図示せず)
を有している。
【0045】SRAMワークエリア8は、マイクロプロ
セッサ6によるフラッシュメモリチップ2−0〜2−3
の制御に必要なデータが一時的に格納される作業領域で
あり、複数のSRAMセルによって構成される。
【0046】バッファ9は、フラッシュメモリチップ2
−0〜2−3から読み出されたデータ及びフラッシュメ
モリチップ2−0〜2−3に書き込むべきデータを一時
的に蓄積するバッファである。すなわち、フラッシュメ
モリチップ2−0〜2−3から読み出されたデータは、
ホストコンピュータ5が受け取り可能な状態となるまで
バッファ9に保持され、フラッシュメモリチップ2−0
〜2−3に書き込むべきデータは、フラッシュメモリチ
ップ2−0〜2−3が書き込み可能な状態となるととも
に、後述するECCブロック11によってエラーコレク
ションコードが生成されるまでバッファ9に保持され
る。
【0047】フラッシュメモリインターフェースブロッ
ク10は、バス15を介して、フラッシュメモリチップ
2−0〜2−3とのデータやアドレス情報、ステータス
情報、内部コマンド情報の授受を行うとともに、各フラ
ッシュメモリチップ2−0〜2−3に対して対応するチ
ップ選択信号#0〜#3を供給するための機能ブロック
である。チップ選択信号#0〜#3は、ホストコンピュ
ータ5からデータの読み出しまたは書き込みが要求され
た場合、ホストコンピュータ5より供給されるホストア
ドレスに基づいて生成される内部アドレスの上位2ビッ
トに基づいて、そのいずれかが活性化される信号であ
る。具体的には、内部アドレスの上位2ビットが「0
0」であればチップ選択信号#0が活性化され、「0
1」であればチップ選択信号#1が活性化され、「1
0」であればチップ選択信号#2が活性化され、「1
1」であればチップ選択信号#3が活性化される。対応
するチップ選択信号が活性化されたフラッシュメモリチ
ップ2−0〜2−3は選択状態となり、データの読み出
しまたは書き込みが可能となる。尚、「内部コマンド」
とは、コントローラ3がフラッシュメモリチップ2−0
〜2−3を制御するためのコマンドであり、ホストコン
ピュータ5がフラッシュメモリシステム1を制御するた
めの「外部コマンド」と区別される。
【0048】ECCブロック11は、フラッシュメモリ
チップ2−0〜2−3に書き込むデータに付加すべきエ
ラーコレクションコードを生成するとともに、読み出し
データに付加されたエラーコレクションコードに基づい
て、読み出しデータに含まれる誤りを訂正するための機
能ブロックである。
【0049】フラッシュシーケンサブロック12は、フ
ラッシュメモリチップ2−0〜2−3とバッファ9との
データの転送を制御するための機能ブロックである。フ
ラッシュシーケンサブロック12は、複数のレジスタ
(図示せず)を備え、マイクロプロセッサ6による制御
のもと、フラッシュメモリチップ2−0〜2−3からの
データの読み出しまたはフラッシュメモリチップ2−0
〜2−3へのデータの書き込みに必要な値がこれらレジ
スタに設定されると、データの読み出しまたは書き込み
に必要な一連の動作を自動的に実行する。
【0050】次に、各フラッシュメモリチップ2−0〜
2−3を構成する各フラッシュメモリセルの具体的な構
造について説明する。
【0051】図2は、フラッシュメモリチップ2−0〜
2−3を構成する各フラッシュメモリセル16の構造を
概略的に示す断面図である。
【0052】図2に示されるように、フラッシュメモリ
セル16は、P型半導体基板17に形成されたN型のソ
ース拡散領域18及びドレイン拡散領域19と、ソース
拡散領域18とドレイン拡散領域19との間のP型半導
体基板17を覆って形成されたトンネル酸化膜20と、
トンネル酸化膜20上に形成されたフローティングゲー
ト電極21と、フローティングゲート電極21上に形成
された絶縁膜22と、絶縁膜22上に形成されたコント
ロールゲート電極23とから構成される。このような構
成を有するフラッシュメモリセル16は、フラッシュメ
モリチップ2−0〜2−3内において、複数個直列に接
続されて、NAND型フラッシュメモリを構成する。
【0053】フラッシュメモリセル16は、フローティ
ングゲート電極21に電子が注入されているか否かによ
って、「消去状態」と「書込状態」のいずれかの状態が
示される。フラッシュメモリセル16が消去状態である
ことは、当該フラッシュメモリセル16にデータ「1」
が保持されていることを意味し、フラッシュメモリセル
16が書込状態であることは、当該フラッシュメモリセ
ル16にデータ「0」が保持されていることを意味す
る。すなわち、フラッシュメモリセル16は、1ビット
のデータを保持することが可能である。
【0054】図2に示されるように、消去状態とは、フ
ローティングゲート電極21に電子が注入されていない
状態を指す。消去状態におけるフラッシュメモリセル1
6は、デプレッション型のトランジスタとなり、コント
ロールゲート電極23に読み出し電圧が印加されている
か否かに関わらず、ソース拡散領域18とドレイン拡散
領域19との間のP型半導体基板17の表面にはチャネ
ル24が形成される。したがって、ソース拡散領域18
とドレイン拡散領域19とは、コントロールゲート電極
23に読み出し電圧が印加されているか否かに関わら
ず、チャネル24によって常に電気的に接続状態とな
る。
【0055】図3は、書込状態であるフラッシュメモリ
セル16を概略的に示す断面図である。
【0056】図3に示されるように、書込状態とは、フ
ローティングゲート電極21に電子が蓄積されている状
態を指す。フローティングゲート電極21はトンネル酸
化膜20及び絶縁膜22に挟まれているため、一旦、フ
ローティングゲート電極21に注入された電子は、きわ
めて長時間フローティングゲート電極21内にとどま
る。書込状態におけるフラッシュメモリセル16は、エ
ンハンスメント型のトランジスタとなり、コントロール
ゲート電極23に読み出し電圧が印加されていないとき
には、ソース拡散領域18とドレイン拡散領域19との
間のP型半導体基板17の表面にはチャネルが形成され
ず、コントロールゲート電極23に読み出し電圧が印加
されているときには、ソース拡散領域18とドレイン拡
散領域19との間のP型半導体基板17の表面にチャネ
ル(図示せず)が形成される。したがって、コントロー
ルゲート電極23に読み出し電圧が印加されていない状
態では、ソース拡散領域18とドレイン拡散領域19と
は電気的に絶縁され、コントロールゲート電極23に読
み出し電圧が印加された状態では、ソース拡散領域18
とドレイン拡散領域19とが電気的に接続される。
【0057】ここで、選択されたフラッシュメモリセル
16が消去状態であるか書込状態であるかは、次のよう
にして読み出すことができる。すなわち、複数個直列に
接続されたフラッシュメモリセル16のうち、選択され
たフラッシュメモリセル16以外の全てのフラッシュメ
モリセル16のコントロールゲート電極23に読み出し
電圧が印加され、この状態において、これらフラッシュ
メモリセル16の直列体に電流が流れるか否かの検出が
行われる。その結果、かかる直列体に電流が流れれば、
選択されたフラッシュメモリセル16が消去状態である
と判断され、かかる直列体に電流が流れなければ、選択
されたフラッシュメモリセル16が書込状態であると判
断される。このようにして、直列体に含まれる任意のフ
ラッシュメモリセル16に保持されたデータが「0」で
あるのか「1」であるのかを読み出すことができる。但
し、NAND型フラッシュメモリにおいては、ひとつの
直列体に含まれる2以上のフラッシュメモリセル16に
保持されたデータを同時に読み出すことはできない。
【0058】また、消去状態であるフラッシュメモリセ
ル16を書込状態に変化させる場合、コントロールゲー
ト電極23に正の高電圧が印加され、これによって、ト
ンネル酸化膜20を介してフローティングゲート電極2
1へ電子が注入される。フローティングゲート電極21
への電子の注入は、FNトンネル電流による注入が可能
である。一方、書込状態であるフラッシュメモリセル1
6を消去状態に変化させる場合、コントロールゲート電
極23に負の高電圧が印加され、これによって、トンネ
ル酸化膜20を介してフローティングゲート電極21に
蓄積された電子が排出される。
【0059】次に、各フラッシュメモリチップ2−0〜
2−3の持つアドレス空間の具体的な構成について説明
する。
【0060】図4は、フラッシュメモリチップ2−0の
アドレス空間の構造を概略的に示す図である。
【0061】図4に示されるように、フラッシュメモリ
チップ2−0のアドレス空間は、ブロック#0〜#81
91からなる8192個のブロックによって構成され
る。また、図4には示されていないが、フラッシュメモ
リチップ2−1〜2−3も、フラッシュメモリチップ2
−0と同様にブロック#0〜#8191からなる819
2個のブロックによって構成されている。これら各ブロ
ックは、いずれも16Kバイトの記憶容量を有する。
【0062】ここで、上記各ブロックは、データの消去
単位である。すなわち、フラッシュメモリチップ2−0
〜2−3では、各フラッシュメモリセル16ごとに、そ
の状態を書込状態から消去状態に変化させることはでき
ず、フラッシュメモリセル16を書込状態から消去状態
に変化させる場合は、当該フラッシュメモリセル16が
属するブロックに含まれる全てのフラッシュメモリセル
16が一括して消去状態とされる。逆に、フラッシュメ
モリチップ2−0〜2−3では、各フラッシュメモリセ
ル16ごとに、その状態を消去状態から書込状態に変化
させることは可能である。
【0063】さらに、図4に示されるように、フラッシ
ュメモリチップ2−0を構成する各ブロック#0〜#8
191は、それぞれページ#0〜#31からなる32個
のページによって構成されている。また、フラッシュメ
モリチップ2−1〜2−3を構成する各ブロック#0〜
#8191も、フラッシュメモリチップ2−0を構成す
る各ブロック#0〜#8191と同様に、それぞれ32
個のページによって構成されている。
【0064】これら各ページはデータの読み出し及び書
き込みにおけるアクセス単位であり、図4に示されるよ
うに、ビットb0〜b7からなる8ビットを1バイトと
して、それぞれ512バイトのユーザ領域25と16バ
イトの冗長領域26によって構成される。ユーザ領域2
5は、ホストコンピュータ5より供給されるユーザデー
タが格納される領域であり、冗長領域26は、対応する
ユーザ領域25に格納されたユーザデータに対するエラ
ーコレクションコードの他、対応論理ブロックアドレス
が格納される領域である。対応論理ブロックアドレスと
は、当該ブロックがいかなる論理ブロックアドレスによ
りアクセスされるかを示す情報であり、その詳細につい
ては後述する。
【0065】このように、各ページは、512バイトの
ユーザ領域25と16バイトの冗長領域26からなるの
で、各ページは、8×(512バイト+16バイト)=
4224個のフラッシュメモリセルによって構成される
ことになる。
【0066】このように、各フラッシュメモリチップ2
−0〜2−3は8192個の物理ブロックによって構成
されるが、このうち、8000個の物理ブロックは実際
にデータを格納することができるブロック(以下、「実
使用ブロック」という)として取り扱われ、残りの19
2個のブロックは「冗長ブロック」として取り扱われ
る。冗長ブロックは、データ書き込みに備えて待機して
いる空きブロックである。フラッシュメモリチップ2−
0〜2−3のアドレス空間は、実使用ブロックのみによ
って構成される。ある物理ブロックに不良が発生し、使
用不能となった場合には、不良が発生したブロックの数
だけ冗長ブロックとして割り当てられる物理ブロックの
数が減らされる。
【0067】このような構成からなるフラッシュメモリ
チップ2−0〜2−3は、上述のとおり、1Mページの
アドレス空間を備える一つの大きなメモリとして取り扱
われるので、これら1Mページからなるアドレス空間か
ら特定のページにアクセスするためには、上述のとお
り、20ビットのホストアドレスが用いられる。20ビ
ットのホストアドレスのうち、上位15ビットは、フラ
ッシュメモリチップの特定及び特定されたフラッシュメ
モリチップに含まれるブロックの特定に用いられ、残り
の5ビット(下位5ビット)は、特定されたブロックに
含まれるページの特定に用いられる。
【0068】ホストアドレスの上位15ビットを用いた
フラッシュメモリチップ及びブロックの特定は、ホスト
アドレスの上位15ビットを「8000」で除すること
によって行われ、かかる除算によって得られた商(0〜
3)によってアクセスすべきフラッシュメモリチップが
決定され、剰余(0〜7999)によって「論理ブロッ
クアドレス」が決定される。かかる論理ブロックアドレ
スは、後述する「アドレス変換テーブル」にて、「物理
ブロックアドレス」に変換され、これにより実際にアク
セスすべきブロックが特定される。
【0069】ここで、アドレス変換テーブルを用いて論
理ブロックアドレスを物理ブロックアドレスに変換する
必要性について説明する。
【0070】上述のとおり、フラッシュメモリチップ2
−0〜2−3を構成するフラッシュメモリセル16は、
これをメモリセル単位にて消去状態から書込状態へ変化
させることはできる一方、これを書込状態から消去状態
へ変化させることは、メモリセル単位で行うことができ
ず、ブロック単位でしか行うことができない。このた
め、あるページにデータを書き込む際には、そのページ
のユーザ領域25を構成する全てのフラッシュメモリセ
ル16が消去状態となっている必要があり、既に何らか
のデータが書き込まれているページ、すなわち、そのペ
ージのユーザ領域25を構成するフラッシュメモリセル
16が一つでも書込状態となっているページに、これと
異なるデータを直接上書きすることはできない。したが
って、既にデータの書き込まれたページに対し、これと
異なる新しいデータを書き込むためには、一旦、このペ
ージが属するブロックを構成するフラッシュメモリセル
16を全て消去状態とし、その後に新しいデータを書き
込むという処理が必要となる。
【0071】したがって、あるページに格納された古い
データに新しいデータを上書きしようとする場合、この
ページが属するブロックに含まれる他のページに格納さ
れたデータが消失するのを防ぐためには、当該他のペー
ジに格納されたデータを、他のブロックに移動させると
いう処理が必要となる。したがって、ホストアドレスよ
り得られた論理ブロックアドレスと、当該論理ブロック
アドレスに対応するフラッシュメモリチップ2−0〜2
−3上の物理ブロックアドレスとの関係は、ホストコン
ピュータ5からデータの上書きが指示される度に動的に
変化する。このような理由から、ホストコンピュータ5
からフラッシュメモリチップ2−0〜2−3をアクセス
するためには、論理ブロックアドレスと、当該論理ブロ
ックアドレスに対応するフラッシュメモリ上の物理ブロ
ックアドレスとの関係を示す情報が格納されるアドレス
変換テーブルが必要となるのである。アドレス変換テー
ブルの詳細については後述する。
【0072】次に、SRAMワークエリア8に格納され
る各種作業データについて説明する。SRAMワークエ
リア8には、少なくとも、アドレス変換テーブル27、
消去済みブロックキュー28及び内部変数30が格納さ
れる。
【0073】図5は、SRAMワークエリア8に格納さ
れるアドレス変換テーブル27のデータ構造を示す概略
図である。
【0074】図5に示されるように、アドレス変換テー
ブル27は、テーブル#0〜#3からなる4つのテーブ
ルによって構成され、これら各テーブルは、8000個
のフラグ及び8000個の物理ブロックアドレス格納領
域によって構成される。これらテーブル#0〜#3は、
それぞれフラッシュメモリチップ2−0〜2−3に対応
している。
【0075】各テーブル#0〜#3内の8000個の物
理ブロックアドレス格納領域#0〜#7999には、そ
れぞれ対応する物理ブロックアドレス(13ビット)が
格納され、これによって、論理ブロックアドレスと物理
ブロックアドレスとの対応関係を示すアドレス変換情報
が形成される。すなわち、テーブル#0内の物理ブロッ
クアドレス格納領域#0〜#7999には、フラッシュ
メモリチップ2−0を構成する8000個の実使用ブロ
ックの物理ブロックアドレスが割り当てられ、これら割
り当てられた論理ブロックアドレスと、これに格納され
た物理ブロックアドレスとが、対応関係を有することに
なる。同様に、テーブル#1〜#3内の物理ブロックア
ドレス格納領域#0〜#7999には、それぞれフラッ
シュメモリチップ2−1〜2−3を構成する8000個
の実使用ブロックの物理ブロックアドレスが割り当てら
れる。
【0076】例えば、ホストコンピュータ5から供給さ
れたホストアドレスの上位15ビットが「101010
101010101B」であれば、これを8000で除
した場合の商は「2」であり、剰余は「5845」であ
るから、テーブル#2内の物理ブロックアドレス格納領
域#5845が選択され、ここに格納されている物理ブ
ロックアドレス、例えば、格納されている物理ブロック
アドレスが「0000000011111B」であれ
ば、物理ブロックアドレスとして「31」が読み出さ
れ、これにより、フラッシュメモリチップ2−2におけ
る論理ブロックアドレス#5845から、フラッシュメ
モリチップ2−2における物理ブロックアドレス#31
への変換が完了する。
【0077】また、各テーブル#0〜#3内の8000
個のフラグ#0〜#7999は、当該テーブル内の物理
ブロックアドレス格納領域#0〜#7999にそれぞれ
対応しており、対応する物理ブロックアドレス格納領域
に格納された物理ブロックアドレスが有効な値であるか
否かを示す。具体的には、かかるフラグが「1」であれ
ば対応する物理ブロックアドレス格納領域に格納された
物理ブロックアドレスが有効な値であることを示し、か
かるフラグが「0」であれば対応する物理ブロックアド
レス格納領域に格納された物理ブロックアドレスが有効
な値ではないことを示す。したがって、対応するフラグ
が「0」である論理ブロックアドレスには、まだ物理ブ
ロックアドレスが関連づけられていないことを意味す
る。
【0078】上述のように、アドレス変換テーブル27
は、32000個のフラグと32000個の物理ブロッ
ク格納領域によって構成されており、各フラグには1ビ
ットの情報を格納する必要があり、各物理ブロック格納
領域には13ビットの情報を格納する必要があるから、
アドレス変換テーブル27は、SRAMワークエリア8
の記憶容量のうち、約56kバイトを占有することとな
る。
【0079】アドレス変換テーブル27の生成は、次の
ように行われる。
【0080】フラッシュメモリチップ2−0〜2−3を
構成する各ブロックのうち、データが格納されているブ
ロックの各先頭ページ(ページ#0)に含まれる冗長領
域26には、上述のとおり、当該ブロックがいかなる論
理ブロックアドレスに対応するかを示す対応論理ブロッ
クアドレスが含まれており、各ブロックの各先頭ページ
に格納されている対応論理ブロックアドレスがマイクロ
プロセッサ6による制御のもと、フラッシュメモリイン
ターフェースブロック10を介して読み出される。対応
論理ブロックアドレスが読み出されると、マイクロプロ
セッサ6による制御のもと、当該ブロックが消去済みの
空きブロックであるか否かが判断される。
【0081】ここで、消去済みの空きブロックにおいて
は、冗長領域26に格納されている対応論理ブロックア
ドレスは「オール1(1111111111111
B)」となっているはずである。すなわち、対応論理ブ
ロックアドレスは、上述のとおり、#0(000000
0000000B)〜#7999(111110011
1111B)までしかなく、したがって、これがオール
1(1111111111111B)である場合には、
当該ブロックが消去済みの空きブロックであると判断す
ることができる。一方、対応論理ブロックアドレスが
「0000000000000B」〜「1111100
111111B」である場合には、当該対応論理ブロッ
クアドレスは有効な論理ブロックアドレスである。
【0082】したがって、マイクロプロセッサ6は、各
ブロックのページ#0〜#3の冗長領域26に含まれる
対応論理ブロックアドレスを参照し、これがオール1で
はなく有効な論理ブロックアドレスの番号を示していれ
ば、チップ番号に対応するテーブルに属する物理ブロッ
クアドレス格納領域のうち、読み出された対応論理ブロ
ックアドレスと同じ論理ブロックアドレスが割り当てら
れた物理ブロックアドレス格納領域に、かかる対応論理
ブロックアドレスを読み出したブロックの物理ブロック
アドレスを格納するとともに、対応するフラグを「1」
とする。例えば、対応論理ブロックアドレスを読み出し
たブロックがフラッシュメモリチップ2−0に属し、そ
の物理ブロックアドレスが「10」であり、読み出され
た対応論理ブロックアドレスが「123」であれば、テ
ーブル#0に属する物理ブロックアドレス格納領域のう
ち、論理ブロックアドレスとして「123」が割り当て
られた物理ブロックアドレス格納領域#123に、物理
ブロックアドレスとして「10」が書き込まれ、さら
に、対応するフラグ#123が「1」にされる。
【0083】以上のような処理が、データの格納されて
いる全てのブロックについて行われ、これによりアドレ
ス変換テーブル27の作成作業が完了する。
【0084】次に、SRAMワークエリア8に格納され
る消去済みブロックキュー28のデータ構造について説
明する。
【0085】図6は、SRAMワークエリア8に格納さ
れる消去済みブロックキュー28のデータ構造を示す概
略図である。
【0086】図6に示されるように、消去済みブロック
キュー28は、キュー#0〜#7からなる8つのキュー
によって構成される。これら各キュー#0〜#7は、そ
れぞれSRAMワークエリア8の2バイトの記憶領域を
使用しており、それぞれには物理ブロックアドレスが1
3ビットのデータによって格納されている。したがっ
て、消去済みブロックキュー28は、SRAMワークエ
リア8の記憶容量のうち、16バイトを占有することと
なる。
【0087】消去済みブロックキュー28を構成するキ
ュー#0〜#7のうち、キュー#0及び#1は、フラッ
シュメモリ2−0用のキューであり、キュー#0及び#
1には、フラッシュメモリ2−0に含まれる消去済みブ
ロック、すなわち、ユーザ領域25及び冗長領域26を
構成する全てのフラッシュメモリセル16が消去状態と
なっているブロックの物理ブロックアドレスが格納され
る。同様に、キュー#2及び#3は、フラッシュメモリ
2−1用のキューであり、キュー#4及び#5は、フラ
ッシュメモリ2−2用のキューであり、キュー#6及び
#7は、フラッシュメモリ2−3用のキューである。
【0088】消去済みブロックキュー28の生成は、マ
イクロプロセッサ6による制御のもと、上述したアドレ
ス変換テーブル27の生成の際に行われる。
【0089】すなわち、フラッシュメモリチップ2−0
〜2−3を構成する各ブロックのページ#0〜ページ#
3に含まれる冗長領域26には、上述のとおり、対応論
理ブロックアドレスが含まれており、アドレス変換テー
ブル27が生成される際、マイクロプロセッサ6による
制御のもと、対応論理ブロックアドレスが「オール1
(1111111111111B)」となっているブロ
ックが検索される。かかる検索により、各フラッシュメ
モリチップついて、最大192個の消去済みブロックが
検出されて冗長ブロックとなり、さらにこの中から最大
2つの冗長ブロックが選択されて、その物理ブロックア
ドレスが、対応するフラッシュメモリチップ用の2つの
キューに格納される。
【0090】次に、SRAMワークエリア8に格納され
る内部変数30のデータ構造について説明する。
【0091】図7は、SRAMワークエリア8に格納さ
れる内部変数30のデータ構造を示す概略図である。
【0092】図7に示されるように、内部変数30は、
変数#0〜#3によって構成される。これら変数#0〜
#3は、それぞれフラッシュメモリチップ#2−0〜#
2−3用の変数であり、それぞれ転送先ブロックアドレ
ス格納領域31、転送元ブロックアドレス格納領域3
2、スタートページ格納領域33及びフラグ34によっ
て構成されている。転送先ブロックアドレス格納領域3
1及び転送元ブロックアドレス格納領域32には、いず
れも物理ブロックアドレスが13ビットのデータによっ
て格納されており、スタートページ格納領域33には、
ページ番号が5ビットのデータによって格納されてい
る。また、フラグ34は1ビットのデータである。した
がって、内部変数30は、SRAMワークエリア8の記
憶容量のうち、16バイトを占有することとなる。
【0093】転送先ブロックアドレス格納領域31に格
納された物理ブロックアドレスは、以下に詳述する「部
分転送」において転送先となったブロックの物理ブロッ
クアドレスであり、転送元ブロックアドレス格納領域3
2に格納された物理ブロックアドレスは、「部分転送」
において転送元となったブロックの物理ブロックアドレ
スである。また、スタートページ格納領域33に格納さ
れたページ番号は、転送先ブロックアドレス格納領域3
1に格納された物理ブロックアドレスにより示される物
理ブロック内のページ#0〜#31のうち、最終ページ
(ページ#31)を含む1または2以上の連続した空き
ページ中の先頭のページのページ番号である。したがっ
て、上記物理ブロック内において、スタートページ以降
のページは、データの格納されていない空きページであ
ることが保証される。また、フラグ34は、「1」であ
れば、対応する転送先ブロックアドレス格納領域31、
転送元ブロックアドレス格納領域32及びスタートペー
ジ格納領域33の内容が有効であることを示し、「0」
であればこれらが有効な値ではないことを示す。
【0094】次に、本実施態様にかかるフラッシュメモ
リシステム1によるデータの書き込み動作について説明
する。
【0095】本実施態様にかかるフラッシュメモリシス
テム1によるデータの書き込み動作は、新規書込動作、
部分転送動作、追書込動作の3つに分類される。
【0096】図8は、いずれの書込動作が行われるかを
決定するためのフローチャートである。以下、図8に示
されるフローチャートを参照しながら、いずれの書込動
作が選択されるかについて説明する。
【0097】まず、ホストコンピュータ5より、ホスト
アドレス及び外部書き込みコマンドがコントローラ3に
供給されると(ステップS1)、これらホストアドレス
及び外部書き込みコマンドは、ホストインターフェース
ブロック7が有するタスクファイルレジスタ(図示せ
ず)に一時的に格納される。さらに、書き込みデータが
コントローラ3に供給されると、マイクロプロセッサ6
による制御のもと、ECCブロック11に送出される。
書き込みデータの供給を受けたECCブロック11は、
これを解析してエラーコレクションコードを生成し、こ
れを一時的に保持する。
【0098】次に、タスクファイルレジスタ(図示せ
ず)に格納されたホストアドレスが正しいアドレスであ
るか否か、すなわち、これらホストアドレスが、本来存
在しないアドレスや無効なアドレスを示していないか否
かが、ホストインターフェースブロック7によって判定
される。
【0099】かかる判定の結果、タスクファイルレジス
タ(図示せず)に格納されたホストアドレスが有効なア
ドレスであると判断されれば、ホストアドレスが内部ア
ドレスに変換される。一方、これが異常なアドレスであ
ると判断されれば、ホストインターフェースブロック7
が有するエラーレジスタ(図示せず)がセットされ、ホ
ストコンピュータ5は、かかるレジスタの内容を参照す
ることにより、エラーの発生を知ることができる。
【0100】内部アドレスへの変換は、次のように行わ
れる。
【0101】まず、マイクロプロセッサ6による制御の
もと、20ビットのホストアドレスから上位15ビット
が取り出され、これが「8000」で除される(ステッ
プS2)。かかる除算によって得られた商(0〜3)及
び剰余(0〜7999)は、それぞれ「チップ番号」及
び「論理ブロックアドレス」となり、かかるチップ番号
及び論理ブロックアドレスに基づいて、アドレス変換テ
ーブル27内の対応するフラグが読み出される(ステッ
プS3)。例えば、ホストアドレスの上位15ビットが
「000000111110100B」であれば、80
00で除した場合の商は「00B(0)」であり、剰余
は「0111110100B(500)」であるから、
この場合、チップ番号は#0、論理ブロックアドレスは
#500となり、これに基づいてテーブル#0内のフラ
グ#500が読み出される。
【0102】このようにして、アドレス変換テーブル2
7内の対応するフラグが読み出されると、次に、その内
容が「1」であるか「0」であるかが判断される(ステ
ップS4)。その結果、読み出されたフラグの内容が
「0」であれば、対応する物理ブロックアドレス格納領
域に有効な物理ブロックアドレスが格納されていないこ
とを意味するので、新規書込動作が選択される(ステッ
プS5)。新規書込動作の詳細については後述する。
【0103】一方、読み出されたフラグの内容が「1」
であれば、対応する物理ブロックアドレス格納領域に有
効な物理ブロックアドレスが格納されていることを意味
するので、その内容が読み出される。読み出された13
ビットの物理ブロックアドレスは、チップ番号及びホス
トアドレスの下位5ビットとともに、内部アドレスを構
成する。以上により、内部アドレスへの変換が完了する
(ステップS6)。
【0104】次に、チップ番号(内部アドレスの上位2
ビット)に基づいて、内部変数30内の対応するフラグ
34が読み出される(ステップS7)。例えば、チップ
番号が「00B(0)」であれば、変数#0に含まれる
フラグ34が読み出される。このようにして、内部変数
30内の対応するフラグ34が読み出されると、次に、
その内容が「1」であるか「0」であるかが判断される
(ステップS8)。その結果、読み出されたフラグ34
の内容が「0」であれば、以下に詳述する部分転送動作
が選択される(ステップS9)。
【0105】一方、読み出されたフラグ34の内容が
「1」であれば、追書込動作の実行が可能であるか否か
を判定する追書込判定(ステップS10)が行われ、か
かる判定において追書込動作の実行が可能であると判定
されれば、以下に詳述する追書込動作が選択され、追書
込動作の実行が不可能であると判定されれば、部分転送
動作が選択される。
【0106】以上のようにして、新規書込動作、部分転
送動作、追書込動作のいずれを実行すべきかが決定され
る。
【0107】次に、新規書込動作について説明する。
【0108】図9は、新規書込動作を示すフローチャー
トである。
【0109】図9に示されるように、新規書込動作(ス
テップS5)においては、まず、マイクロプロセッサ6
による制御のもと、消去済みブロックキュー28を構成
するキュー#0〜#7のうち所定のキューが選択され、
格納されている物理ブロックアドレスが読み出される
(ステップS11)。上述のとおり、消去済みブロック
キュー28の各キューに格納された物理ブロックアドレ
スは、消去済みブロック、すなわち、ユーザ領域25及
び冗長領域26を構成する全てのフラッシュメモリセル
16が消去状態となっているブロックの物理ブロックア
ドレス(13ビット)である。
【0110】消去済みブロックの物理ブロックアドレス
が読み出されると、これがアドレス変換テーブル27内
の対応する物理ブロックアドレス格納領域に格納される
とともに、対応するフラグが「1」に書き換えられる
(ステップS12)。例えば、上述の例と同様に、ホス
トアドレスの上位15ビットが「0000001111
10100B」であれば、8000で除した場合の商は
「00B(0)」であり、剰余は「011111010
0B(500)」であるから、アドレス変換テーブル2
7のテーブル#0内の物理ブロックアドレス格納領域#
500に消去済みブロックの物理ブロックアドレスが格
納されるとともに、テーブル#0内のフラグ#500が
「1」に書き換えられる。
【0111】そして、マイクロプロセッサ6による制御
のもと、チップ番号、物理ブロックアドレス、及びホス
トアドレスの下位5ビットがこの順に結合され、結合さ
れたアドレスは内部アドレスとなる(ステップS1
3)。
【0112】このようにして内部アドレスの生成が完了
すると、次にマイクロプロセッサ6による制御のもと、
フラッシュシーケンサブロック12が有するレジスタ
(図示せず)に対する所定の設定がなされ、完了する
と、フラッシュシーケンサブロック12による一連の書
き込み動作が実行される(ステップS14)。これによ
り、内部アドレスにより示される所定のブロックの所定
のページに対して、ホストコンピュータ5より与えられ
たユーザデータが書き込まれる。
【0113】この場合、書き込みの対象となったブロッ
クに対しては、ユーザデータの書き込み対象となったペ
ージのみならず、当該ブロックを構成する全てのページ
#0〜#31の冗長領域26に対応論理ブロックアドレ
スが書き込まれる。これにより、当該ブロックは「使用
済みブロック」となり、以後、ユーザデータを直接上書
きすることはできなくなる。
【0114】以上により、新規書込動作(ステップS
5)が完了する。
【0115】次に、部分転送動作について説明する。
【0116】図10は、部分転送動作を示すフローチャ
ートであり、図11(a)及び(b)は、部分転送動作
における転送元ブロック及び転送先ブロックのデータ格
納状態を示す概略図である。
【0117】図10に示されるように、部分転送動作
(ステップS9)においては、まず、マイクロプロセッ
サ6による制御のもと、消去済みブロックキュー28を
構成するキュー#0〜#7のうち所定のキューが選択さ
れ、格納されている物理ブロックアドレスが読み出され
る(ステップS21)。
【0118】消去済みブロックの物理ブロックアドレス
が読み出されると、これに基づいて内部変数30が更新
される(ステップS22)。ここで、内部変数30の更
新においては、まずチップ番号に基づいて変数#0〜#
3のいずれかが選択され、選択された変数を構成する転
送先ブロックアドレス格納領域31に消去済みブロック
キュー28より読み出された物理ブロックアドレスが格
納され、転送元ブロックアドレス格納領域32にアドレ
ス変換テーブル27より読み出された物理ブロックアド
レスが格納され、スタートページ格納領域33に書き込
み対象のページ(ページ#i)の次のページのページ番
号(ページ#i+1)が格納される。また、フラグ34
が「1」にセットされる。ここで、書き込み対象のペー
ジ(ページ#i)とは、内部アドレスの下位5ビットに
より特定されるページを指す。以下、転送先ブロックア
ドレス格納領域31に格納された物理ブロックアドレス
により特定されるブロックを「転送先ブロック」と呼
び、転送元ブロックアドレス格納領域32に格納された
物理ブロックアドレスにより特定されるブロックを「転
送元ブロック」と呼ぶ。
【0119】内部変数30の更新が完了すると、次に、
アドレス変換テーブル27の更新が行われる(ステップ
S23)。アドレス変換テーブル27の更新において
は、対応する物理ブロックアドレス格納領域に、消去済
みブロックキュー28より読み出された物理ブロックア
ドレスが上書きされる。
【0120】次に、転送元ブロック内のページ#0から
書き込み対象のページ(ページ#i)の1つ前のページ
(ページ#i−1)までのページに格納されたデータ
が、転送先ブロックの同じページに転送される(ステッ
プS24)。すなわち、ブロック間転送の前半部分の動
作が行われる。ステップS24が完了すると、図11
(a)に示されるように、転送先ブロックのページ#0
〜#i−1が有効ページ(ハッチングされた部分)とな
り、ページ#i〜#31が空きページとなる。ここで、
「有効ページ」とは、実際に有効なユーザデータが格納
されているか否かを問わず、書き込み動作が禁止される
ページを意味する。有効ページには、対応する冗長領域
26に対応論理ブロックアドレスが書き込まれており、
空きページには、対応する冗長領域26内の対応論理ブ
ロックアドレスがオール1(111111111111
1B)となっている。
【0121】ステップS24が完了すると、次に、ホス
トコンピュータ5より書き込みが指示されたデータが、
転送先ブロックの書き込み対象のページ(ページ#i)
に書き込まれる(ステップS25)。ステップS25が
完了すると、図11(b)に示されるように、転送先ブ
ロックのページ#0〜#iが有効ページとなり、ページ
#i+1〜#31が空きページとなる。
【0122】以上により、部分転送動作(ステップS
9)が完了する。部分転送動作においては、ブロック間
転送の後半部分の動作が省略されている点が重要であ
る。したがって、部分転送動作が行われた場合、ある論
理ブロックアドレスに対して2つの物理ブロックが割り
当てられた状態となる。
【0123】次に、追書込判定について説明する。
【0124】図12は、追書込判定を示すフローチャー
トである。
【0125】図12に示されるように、追書込判定(ス
テップS10)においては、まず、チップ番号(内部ア
ドレスの上位2ビット)に基づいて、内部変数30内の
対応する転送先ブロックアドレス格納領域31の内容が
読み出される(ステップS31)。次に、読み出された
13ビットの物理ブロックアドレスと、アドレス変換テ
ーブル27より読み出された物理ブロックアドレスとが
比較され、これらが一致している否かが判断される(ス
テップS32)。
【0126】その結果、両者が一致しない場合、転送元
ブロックアドレス格納領域32及びスタートページ格納
領域33の内容が読み出され(ステップS33)、転送
元ブロック内のページ#i+1から最終ページ(ページ
#31)までのページに格納されたデータが、転送先ブ
ロックの同じページに転送される(ステップS34)。
すなわち、ブロック間転送の後半部分の動作が行われ
る。
【0127】図13は、ステップS34における転送元
ブロック及び転送先ブロックのデータ格納状態を示す概
略図である。
【0128】図13に示されるように、ステップS34
においては、上述した部分転送動作(ステップS9)に
おいて省略されたブロック間転送の後半部分の動作が行
われ、これにより、転送先ブロックを構成する全てのペ
ージ#0〜#31が有効ページとなる。
【0129】ステップS34が完了すると、次に、転送
元ブロックがブロック消去されて、新たな空きブロック
とされ(ステップS35)、さらに、対応するフラグ3
4が「0」にリセットされる(ステップS36)。これ
により、1つの論理ブロックアドレスに対して2つの物
理ブロックが割り当てられた状態が解消される。その
後、上述した部分転送動作(ステップS9)が行われ、
これにより、ホストコンピュータ5より書き込みが指示
されたデータが所定のブロックに書き込まれる。
【0130】一方、ステップS32における判定の結
果、両者が一致した場合には、スタートページ格納領域
33の内容が読み出され(ステップS37)、内部アド
レスの下位5ビット、すなわち書き込み対象のページ
(ページ#j)と、スタートページ(ページ#i+1)
とが比較される(ステップS38)。
【0131】その結果、書き込み対象のページ(ページ
#j)のページ番号がスタートページ(ページ#i+
1)のページ番号よりも小さければ、上述したステップ
S33〜S36が実行され、その後部分転送動作(ステ
ップS9)が実行される。一方、書き込み対象のページ
(ページ#j)のページ番号がスタートページ(ページ
#i+1)のページ番号と同じかそれ以上であれば、以
下に詳述する追書込動作が選択される(ステップS3
9)。
【0132】以上により、追書込判定(ステップS1
0)が完了する。このように、追書込判定(ステップS
10)においては、追書込動作(ステップS39)及び
部分転送動作(ステップS9)のいずれかが選択される
ことになる。
【0133】次に、追書込動作について説明する。
【0134】図14は、追書込動作を示すフローチャー
トであり、図15(a)〜(c)は、追書込動作におけ
る転送元ブロック及び転送先ブロックのデータ格納状態
を示す概略図である。
【0135】追書込動作(ステップS39)は、書き込
み対象のページ(ページ#j)が、スタートページ(ペ
ージ#i+1)と一致する場合(j=i+1)と、一致
しない場合(j>i+1)によって動作が異なる。この
ため、図14に示されるように、追書込動作において
は、まず書き込み対象のページ(ページ#j)がスター
トページ(ページ#i+1)と一致するか否かが判定さ
れる(ステップS41)。
【0136】その結果、書き込み対象のページ(ページ
#j)とスタートページ(ページ#i+1)とが一致す
る場合(j=i+1)には、転送先ブロック内の書き込
み対象のページ(ページ#j)に対してデータが書き込
まれ(ステップS43)、これにより、図15(a)に
示されるように、転送先ブロックのページ#0〜#j
(=i+1)が有効ページ、ページ#j+1〜#31が
空きページとなる。ステップS43が完了すると、次
に、内部変数30のスタートページ格納領域33の内容
が、書き込み対象のページ(ページ#j)の次のページ
のページ番号(ページ#j+1)に更新される(ステッ
プS44)。
【0137】一方、書き込み対象のページ(ページ#
j)とスタートページ(ページ#i+1)とが一致しな
い場合(j>i+1)には、転送元ブロック内のスター
トページ(ページ#i+1)から書き込み対象のページ
(ページ#j)の一つ前のページ(ページ#j−1)ま
でのページに格納されたデータが、転送先ブロックの同
じページに転送される(ステップS42)。すなわち、
中間転送が行われる。これにより、図15(b)に示さ
れるように、転送先ブロックのページ#0〜#j−1が
有効ページ、ページ#j〜#31が空きページとなる。
ステップS42が完了すると、上述したステップS43
によりページ#jに対してデータが書き込まれ、これに
より、図15(c)に示されるように、転送先ブロック
のページ#0〜#j(=i+1)が有効ページ、ページ
#j+1〜#31が空きページとなる。その後、上述し
たステップS44が実行され、スタートページ格納領域
33の内容がページ#j+1に更新される。
【0138】このようにしてデータの書き込みが完了す
ると、次に、書き込み対象のページ(ページ#j)が最
終ページ(ページ#31)であるか否かが判断される
(ステップS45)。その結果、書き込み対象のページ
(ページ#j)が最終ページ(ページ#31)であれ
ば、転送元ブロックをブロック消去して空きブロックと
し(ステップS46)、対応するフラグ34を「0」に
リセットする(ステップS47)。一方、書き込み対象
のページ(ページ#j)が最終ページ(ページ#31)
以外であれば、上記ステップS46及びステップS47
を実行することなく、一連の処理を終了する。
【0139】以上により、追書込動作(ステップS3
9)が完了する。
【0140】以上が、本実施態様にかかるフラッシュメ
モリシステム1によるデータ書き込み動作である。
【0141】本実施態様にかかるフラッシュメモリシス
テム1においては、部分転送動作(ステップS9)が行
われることにより、1つの論理ブロックアドレスに対し
て2つの物理ブロックが割り当てられた状態が生じる。
このため、ホストコンピュータ5より当該ブロックに対
するデータの読み出しが指示された場合には、内部変数
30を参照することによって、正しいデータが書き込ま
れた物理ブロックに対する読み出しを実行することがで
きる。
【0142】但し、この場合には、ホストコンピュータ
5よりデータの読み出しが指示される度に内部変数30
を参照する必要があることから、部分転送動作が行われ
た後、同じ論理ブロックアドレスに対するデータの書き
込み指示以外の指示がホストコンピュータ5より発行さ
れた場合には、当該指示を実行する前に、上述したステ
ップS33〜ステップS35の処理を実行することによ
って、ブロック間転送を完結させても構わない。この場
合には、ホストコンピュータ5よりいかなる論理ブロッ
クアドレスに対するデータの読み出しが指示された場合
であっても、通常のフラッシュメモリシステム1と同じ
読み出し処理によってこれを行うことができる。
【0143】次に、部分転送動作(ステップS9)が行
われることにより、1つの論理ブロックアドレスに対し
て2つの物理ブロックが割り当てられた状態において電
源が遮断され、その後、再び電源が投入された場合の動
作について説明する。
【0144】1つの論理ブロックアドレスに対して2つ
の物理ブロックが割り当てられた状態において電源が遮
断されると、起動時に行われるアドレス変換テーブル2
7の作成において、ある論理ブロックアドレスに対応す
る物理ブロックとして2つの物理ブロックが発見される
はずである。すなわち、同じ対応論理ブロックアドレス
を持つ2つの物理ブロックが発見されるはずである。こ
のような論理ブロックアドレスが発見されると、マイク
ロプロセッサ6による制御のもと、以下に詳述する完結
動作が実行される。
【0145】図16は、完結動作を示すフローチャート
であり、図17は、完結動作における転送元ブロック及
び転送先ブロックのデータ格納状態を示す概略図であ
る。
【0146】図16に示されるように、完結動作におい
ては、まず、同じ対応論理ブロックアドレスを持つ2つ
の物理ブロックの最終ページ(ページ#31)をそれぞ
れ読み出し、いずれが空きページであるかが判定され
る。ここで、いずれが空きページであるかの判定は、こ
れらページの冗長領域26に含まれる対応論理ブロック
アドレスに基づいて行われ、対応論理ブロックアドレス
がオール1(1111111111111B)である方
が空きページであると判定される。かかる判定により、
最終ページ(ページ#31)が空きページとなっている
ブロックが部分転送動作における転送先ブロックであ
り、最終ページ(ページ#31)が有効ページとなって
いるブロックが部分転送動作における転送元ブロックで
あると判別することができる(ステップS51)。
【0147】このようにして、上記2つの物理ブロック
に対する転送先ブロック/転送元ブロックの判別が完了
すると、アドレス変換テーブル27内の対応する物理ブ
ロックアドレス格納領域に、転送先ブロックの物理ブロ
ックアドレスが格納されるとともに、対応するフラグが
「1」にセットされる(ステップS52)。
【0148】次に、転送先ブロックを構成するページ
を、ページ#30から順に遡って次々と読み出し、これ
によって空きページの範囲を検出する(ステップS5
3)。例えば、ページ#20において有効な対応論理ブ
ロックアドレスが読み出されれば、ページ#21〜#3
1が空きブロックであることが検出される。
【0149】空きブロックの範囲が検出されると、次
に、転送先ブロックの各空きページに対して、転送元ブ
ロックの対応するページのデータがそれぞれ転送される
(ステップS54)。すなわち、ブロック間転送の後半
部分の動作が行われる。これにより、図17に示される
ように、転送先ブロックの全てのページ#0〜#31が
有効ページとなる。尚、図17においては、ステップS
53において転送先ブロックのページ#21〜#31が
空きブロックであると検出された場合の動作が示されて
いる。そして、転送元ブロックをブロック消去して空き
ブロックとし(ステップS55)、一連の処理を終了す
る。
【0150】以上により、完結動作が完了する。
【0151】このように、本実施態様にかかるフラッシ
ュメモリシステム1では、既にデータが割り当てられて
いる論理ブロックアドレス、すなわち、アドレス変換テ
ーブル27内の対応するフラグが「1」となっている論
理ブロックアドレスに対してホストコンピュータ5より
データの書き込みが指示された場合であっても、従来の
ように直ちにブロック間転送を行うのではなく、ブロッ
ク間転送の後半部分の動作を省略した部分書込動作を行
っているので、次にホストコンピュータ5より同じブロ
ックに対してデータの書き込みが指示された場合に、追
書込動作を行うことができる。追書込動作では、上述の
とおり、転送すべきページ数がゼロか、若しくは少ない
数であるため、ホストコンピュータ5からデータの書き
込みが指示される度にブロック間転送を行う場合と比べ
て、一連の処理に要する時間は大きく短縮される。特
に、連続する複数ページに対し、ホストコンピュータ5
よりデータの書き込みが1ページずつ次々と指示される
ような状況下においては、本実施態様にかかるフラッシ
ュメモリシステム1による高速化の効果は著しい。
【0152】次に、本発明の好ましい他の実施態様につ
いて説明する。
【0153】本発明の好ましい他の実施態様にかかるフ
ラッシュメモリシステム39の構成は、図1に示される
ように上記実施態様にかかるフラッシュメモリシステム
1と基本的に同様であり、SRAMワークエリア8に格
納される内部変数30が内部変数40に置き換えられて
いる点において異なる。
【0154】図18は、SRAMワークエリア8に格納
される内部変数40のデータ構造を示す概略図である。
【0155】図18に示されるように、内部変数40
は、変数#0〜#3によって構成され、それぞれ第1の
ブロックアドレス格納領域41、第2のブロックアドレ
ス格納領域42、第3のブロックアドレス格納領域4
3、第1のスタートページ格納領域44、第2のスター
トページ格納領域45、第1のフラグ46及び第2のフ
ラグ47によって構成されている。第1〜第3のブロッ
クアドレス格納領域41〜43には、それぞれ物理ブロ
ックアドレスが13ビットのデータによって格納されて
おり、第1及び第2のスタートページ格納領域44、4
5には、それぞれページ番号が5ビットのデータによっ
て格納されている。また、第1及び第2のフラグ46、
47はそれぞれ1ビットのデータである。したがって、
内部変数40は、SRAMワークエリア8の記憶容量の
うち、28バイトを占有することとなる。
【0156】第1のフラグ46は、「1」であれば当該
変数の内容が有効であることを示し、「0」であれば当
該変数の内容が無効であることを示す。すなわち、第1
のフラグ46は、上記実施態様におけるフラグ34に対
応するフラグである。また、第2のフラグ47は、第1
のフラグ46が「1」である場合にのみ有効なフラグで
あり、これが「1」であれば、第1〜第3のブロックア
ドレス格納領域41〜43、第1及び第2のスタートペ
ージ格納領域44、45の内容が全て有効であることを
示し、「0」であれば、第1及び第2のブロックアドレ
ス格納領域41、42、第1のスタートページ格納領域
44の内容が全て有効であり、第3のブロックアドレス
格納領域43、第2のスタートページ格納領域45の内
容が無効であることを示す。
【0157】また、第1のブロックアドレス格納領域4
1は、上記実施態様における転送元ブロックアドレス格
納領域32に対応し、第2のブロックアドレス格納領域
42は、上記実施態様における転送先ブロックアドレス
格納領域31に対応する。されに、第1のスタートペー
ジ格納領域44は、上記実施態様におけるスタートペー
ジ格納領域33に対応する。
【0158】次に、本実施態様にかかるフラッシュメモ
リシステム39によるデータの書き込み動作について説
明する。
【0159】本実施態様にかかるフラッシュメモリシス
テム39におけるデータの書き込み動作は、新規書込動
作、第1及び第2の部分転送動作、第1及び第2の追書
込動作の5つに分類される。これら書込動作のいずれが
選択されるかを決定する方法は、基本的に図8に示した
フローチャートと同様であるが、ステップS7において
は、チップ番号(内部アドレスの上位2ビット)に基づ
いて、内部変数40内の対応する第1のフラグ46が読
み出される。その結果、これが「0」であれば、第1の
部分転送動作が選択される。
【0160】第1の部分転送動作は、上記実施態様にお
ける部分転送動作(ステップS9)と基本的に同様であ
るが、ステップS22においては、まずチップ番号に基
づいて変数#0〜#3のいずれかが選択され、選択され
た変数を構成する第2のブロックアドレス格納領域42
に消去済みブロックキュー28より読み出された物理ブ
ロックアドレスが格納され、第1のブロックアドレス格
納領域41にアドレス変換テーブル27より読み出され
た物理ブロックアドレスが格納され、第1のスタートペ
ージ格納領域44に書き込み対象のページ(ページ#
i)の次のページのページ番号(ページ#i+1)が格
納される。また、第1のフラグ46が「1」にセットさ
れ、第2のフラグ47が「0」にリセットされる。
【0161】以下、第1のブロックアドレス格納領域4
1に格納された物理ブロックアドレスにより特定される
ブロックを「第1のブロック」と呼び、第2のブロック
アドレス格納領域42に格納された物理ブロックアドレ
スにより特定されるブロックを「第2のブロック」と呼
ぶ。また、第3のブロックアドレス格納領域43に格納
された物理ブロックアドレスにより特定されるブロック
を「第3のブロック」と呼ぶ。
【0162】そして、ステップS24において、第1の
ブロック内のページ#0から書き込み対象のページ(ペ
ージ#i)の1つ前のページ(ページ#i−1)までの
ページに格納されたデータが、第2のブロックの同じペ
ージに転送され、ステップS25において、ホストコン
ピュータ5より書き込みが指示されたデータが、第2の
ブロックの書き込み対象のページ(ページ#i)に書き
込まれる。
【0163】次に、本実施態様における追書込判定につ
いて説明する。
【0164】図19は、本実施態様にかかるフラッシュ
メモリシステム39による追書込判定を示すフローチャ
ートである。
【0165】図19に示されるように、本実施態様にお
ける追書込判定(ステップS10)では、まず、チップ
番号(内部アドレスの上位2ビット)に基づいて、内部
変数40内の対応する第2のフラグ47の内容が読み出
される(ステップS61)。内部変数40内の対応する
第2のフラグ47が読み出されると、次に、その内容が
「1」であるか「0」であるかが判断される(ステップ
S62)。その結果、読み出された第2のフラグ47の
内容が「0」であれば、第2のブロックアドレス格納領
域42の内容が読み出され(ステップS63)、「1」
であれば、第3のブロックアドレス格納領域43の内容
が読み出される(ステップS64)。
【0166】第2のフラグ47の内容が「0」であるた
めに第2のブロックアドレス格納領域42の内容が読み
出された場合(ステップS63)、その内容とアドレス
変換テーブル27より読み出された物理ブロックアドレ
スとが比較され、これらが一致している否かが判断され
る(ステップS65)。
【0167】その結果、両者が一致しない場合、第1の
ブロックアドレス格納領域41及び第1のスタートペー
ジ格納領域44の内容が読み出され(ステップS6
6)、第1のブロックアドレス格納領域41の内容にて
特定される第1のブロック内のページのうち、第1のス
タートページ格納領域44の内容にて特定されるページ
(ページ#i+1)から最終ページ(ページ#31)ま
でのページに格納されたデータが、第2のブロックアド
レス格納領域42の内容にて特定される第2のブロック
内の同じページに転送される(ステップS67)。すな
わち、ブロック間転送の後半部分の動作が行われる。か
かる動作は、図13に示した転送動作と同様である。
【0168】ステップS67が完了すると、次に、第1
のブロックがブロック消去されて、新たな空きブロック
とされ(ステップS68)、さらに、対応する第1のフ
ラグ46が「0」にリセットされる(ステップS6
9)。これにより、1つの論理ブロックアドレスに対し
て2つの物理ブロックが割り当てられた状態が解消され
る。その後、上述した第1の部分転送動作(ステップS
9)が行われる。
【0169】一方、ステップS65における判定の結
果、両者が一致した場合には、第1のスタートページ格
納領域44の内容が読み出され(ステップS70)、内
部アドレスの下位5ビット、すなわち書き込み対象のペ
ージ(ページ#j)と、スタートページ(ページ#i+
1)とが比較される(ステップS71)。
【0170】その結果、書き込み対象のページ(ページ
#j)のページ番号がスタートページ(ページ#i+
1)のページ番号よりも小さければ、以下に詳述する第
2の部分転送動作(ステップS72)が行われ、書き込
み対象のページ(ページ#j)のページ番号がスタート
ページ(ページ#i+1)のページ番号以上であれば、
第1の追書込動作が選択される(ステップS39)。第
1の追書込動作は、上記実施態様における部分転送動作
(ステップS39)と基本的に同様であるが、ステップ
S44においては、内部変数40の対応する第1のスタ
ートページ格納領域44の内容が、書き込み対象のペー
ジ(ページ#j)の次のページのページ番号(ページ#
j+1)に更新される。また、ステップS47において
は、内部変数40の対応する第1のフラグ46が「0」
にリセットされる。
【0171】ここで、第2の部分転送動作(ステップS
72)について説明する。
【0172】図20は、第2の部分転送動作を示すフロ
ーチャートであり、図21(a)及び(b)は、第2の
部分転送動作における第1〜第3のブロックのデータ格
納状態を示す概略図である。
【0173】図20に示されるように、第2の部分転送
動作(ステップS72)においては、まず、マイクロプ
ロセッサ6による制御のもと、消去済みブロックキュー
28を構成するキュー#0〜#7のうち所定のキューが
選択され、格納されている物理ブロックアドレスが読み
出される(ステップS91)。
【0174】消去済みブロックの物理ブロックアドレス
が読み出されると、これに基づいて内部変数40が更新
される(ステップS92)。ここで、内部変数40の更
新においては、まずチップ番号に基づいて変数#0〜#
3のいずれかが選択され、選択された変数を構成する第
3のブロックアドレス格納領域43に消去済みブロック
キュー28より読み出された物理ブロックアドレスが格
納され、第2のスタートページ格納領域45に書き込み
対象のページ(ページ#j)の次のページのページ番号
(ページ#j+1)が格納される。また、第2のフラグ
47が「1」にセットされる。
【0175】内部変数40の更新が完了すると、次に、
アドレス変換テーブル27の更新が行われる(ステップ
S93)。アドレス変換テーブル27の更新において
は、対応する物理ブロックアドレス格納領域に、消去済
みブロックキュー28より読み出された物理ブロックア
ドレスが上書きされる。
【0176】次に、第2のブロック内のページ#0から
書き込み対象のページ(ページ#j)の1つ前のページ
(ページ#j−1)までのページに格納されたデータ
が、第3のブロックの同じページに転送される(ステッ
プS94)。すなわち、ブロック間転送の前半部分の動
作が行われる。ステップS94が完了すると、図21
(a)に示されるように、第3のブロックのページ#0
〜#j−1が有効ページとなり、ページ#j〜#31が
空きページとなる。
【0177】ステップS94が完了すると、次に、ホス
トコンピュータ5より書き込みが指示されたデータが、
転送先ブロックの書き込み対象のページ(ページ#j)
に書き込まれる(ステップS95)。ステップS95が
完了すると、図21(b)に示されるように、第3のブ
ロックのページ#0〜#jが有効ページとなり、ページ
#j+1〜#31が空きページとなる。
【0178】以上により、第2の部分転送動作(ステッ
プS72)が完了する。図21に示されるように、第2
の部分転送動作が行われた場合、ある論理ブロックアド
レスに対して3つの物理ブロックが割り当てられた状態
となる。
【0179】図19に戻って、再び追書込判定について
説明する。
【0180】ステップS62において、第2のフラグ4
7の内容が「1」であるために第3のブロックアドレス
格納領域43の内容が読み出された場合(ステップS6
4)、その内容とアドレス変換テーブル27より読み出
された物理ブロックアドレスとが比較され、これらが一
致している否かが判断される(ステップS73)。
【0181】その結果、両者が一致しない場合、第1の
ブロックアドレス格納領域41、第2のブロックアドレ
ス格納領域42、第1のスタートページ格納領域44及
び第2のスタートページ格納領域45の内容が読み出さ
れる(ステップS74)。次に、第2のブロック内のペ
ージのうち、第2のスタートページ(ページ#j+1)
から第1のスタートページ(ページ#i+1)の1つ前
のページ(ページ#i)までのページに格納されたデー
タが、第3のブロック内の同じページに転送される(ス
テップS75)。これにより、図22(a)に示される
ように、第3のブロックのページ#0〜#iが有効ペー
ジとなり、ページ#i+1が空きページとなる。
【0182】次に、第1のブロック内のページのうち、
第1のスタートページ(ページ#i+1)から最終ペー
ジ(ページ#31)までのページに格納されたデータ
が、第3のブロック内の同じページに転送される(ステ
ップS76)。これにより、図22(b)に示されるよ
うに、第3のブロックの全てのページ#0〜#31が有
効ページとなる。
【0183】そして、第1のブロック及び第2のがブロ
ック消去されて、新たな空きブロックとされ(ステップ
S77)、さらに、対応する第1のフラグ46及び第2
のフラグ47が「0」にリセットされる(ステップS6
9)。これにより、1つの論理ブロックアドレスに対し
て3つの物理ブロックが割り当てられた状態が解消され
る。その後、上述した第1の部分転送動作(ステップS
9)が行われる。
【0184】一方、ステップS73において、両者が一
致した場合には、第2のスタートページ格納領域45の
内容が読み出され(ステップS78)、内部アドレスの
下位5ビット、すなわち書き込み対象のページ(ページ
#k)と、第2のスタートページ(ページ#j+1)と
が比較される(ステップS79)。
【0185】その結果、書き込み対象のページ(ページ
#k)のページ番号が第2のスタートページ(ページ#
j+1)のページ番号よりも小さければ、第2のブロッ
ク内のページのうち、第2のスタートページ(ページ#
j+1)から第1のスタートページ(ページ#i+1)
の1つ前のページ(ページ#i)までのページに格納さ
れたデータが、第3のブロック内の同じページに転送さ
れ(ステップS80)、次に、第2のブロックがブロッ
ク消去される(ステップS81)。これにより、第3の
ブロックが新たに第2のブロックとなり、第2のブロッ
クが空きブロックとなるので、これに基づいて内部変数
40が更新される(ステップS82)。ここで、内部変
数40の更新においては、対応する第3のブロックアド
レス格納領域43の内容が第2のブロックアドレス格納
領域42にコピーされるとともに、第2のフラグ47が
「0」にリセットされる。内部変数40の更新が完了す
ると、上述した第2の部分転送動作(ステップS72)
が実行される。
【0186】一方、ステップS73において、書き込み
対象のページ(ページ#k)のページ番号が第2のスタ
ートページ(ページ#j+1)のページ番号以上であれ
ば、以下に詳述する第2の追書込動作が選択される(ス
テップS83)。
【0187】以上により、追書込判定(ステップS1
0)が完了する。このように、本実施態様における追書
込判定(ステップS10)においては、第1の部分転送
動作(ステップS9)、第2の部分転送動作(ステップ
S72)、第1の追書込動作(ステップS39)、第2
の追書込動作(ステップS83)のいずれかが選択され
ることになる。
【0188】次に、第2の追書込動作(ステップS8
3)について説明する。
【0189】図23は、第2の追書込動作を示すフロー
チャートであり、図24(a)〜(c)及び図25
(a)〜(c)は、第2の追書込動作における第1〜第
3のブロックのデータ格納状態を示す概略図である。
【0190】第2の追書込動作(ステップS83)は、
書き込み対象のページ(ページ#k)が、第2のスター
トページ(ページ#j+1)と一致する場合(k=j+
1)と、一致しない場合(k>j+1)によって動作が
異なる。このため、図23に示されるように、第2の追
書込動作においては、まず書き込み対象のページ(ペー
ジ#k)が第2のスタートページ(ページ#j+1)と
一致するか否かが判定される(ステップS101)。
【0191】その結果、書き込み対象のページ(ページ
#k)と第2のスタートページ(ページ#j+1)とが
一致する場合(k=j+1)には、第3のブロック内の
書き込み対象のページ(ページ#k)に対してデータが
書き込まれ(ステップS102)、これにより、図24
(a)に示されるように、第3のブロックのページ#0
〜#k(=j+1)が有効ページ、ページ#k+1〜#
31が空きページとなる。ステップS102が完了する
と、次に、書き込み対象のページ(ページ#k)が第1
のスタートページの一つ前のページ(ページ#i)と一
致するか否かが判定される(ステップS103)。その
結果、書き込み対象のページ(ページ#k)と第1のス
タートページの一つ前のページ(ページ#i)とが一致
しない場合には(k≠i)、内部変数40の第2のスタ
ートページ格納領域45の内容が、書き込み対象のペー
ジ(ページ#k)の次のページのページ番号(ページ#
k+1)に更新される(ステップS104)。
【0192】一方、書き込み対象のページ(ページ#
k)と第1のスタートページの一つ前のページ(ページ
#i)とが一致する場合には(k=i)、第2のブロッ
クをブロック消去して空きブロックとした後(ステップ
S105)、内部変数40が更新される(ステップS1
06)。ここで、内部変数40の更新においては、対応
する第3のブロックアドレス格納領域43の内容が第2
のブロックアドレス格納領域42にコピーされるととも
に、第2のフラグ47が「0」にリセットされる。これ
により、第3のブロックが新たに第2のブロックとな
り、第2のブロックが空きブロックとなる。
【0193】また、ステップS101において、書き込
み対象のページ(ページ#k)と第2のスタートページ
(ページ#j+1)とが一致しない場合(k>j+1)
には、書き込み対象のページ(ページ#k)と第1のス
タートページ(ページ#i+1)とが比較される(ステ
ップS107)。その結果、書き込み対象のページ(ペ
ージ#k)が第1のスタートページ(ページ#i+1)
以下であれば、第2のブロック内の第2のスタートペー
ジ(ページ#j+1)から書き込み対象のページ(ペー
ジ#k)の一つ前のページ(ページ#k−1)までのペ
ージに格納されたデータが、第3のブロックの同じペー
ジに転送される(ステップS108)。これにより、図
24(b)に示されるように、第3のブロックのページ
#0〜#k−1が有効ページ、ページ#k〜#31が空
きページとなる。ステップS108が完了すると、上述
したステップS102によりページ#kに対してデータ
が書き込まれ、これにより、図24(c)に示されるよ
うに、第3のブロックのページ#0〜#k(=j+1)
が有効ページ、ページ#k+1〜#31が空きページと
なる。その後、上述したステップS102におけるデー
タの書き込み及びステップS103における比較が実行
され、その結果に基づいてステップS104またはステ
ップS105、S106が実行される。
【0194】また、ステップS107による比較の結
果、書き込み対象のページ(ページ#k)が第1のスタ
ートページ(ページ#i+1)よりも大きければ、第2
のブロック内の第2のスタートページ(ページ#j+
1)から第1のスタートページ(ページ#i+1)の1
つ前のページ(ページ#i)までのページに格納された
データが、第3のブロックの同じページに転送される
(ステップS109)。これにより、図25(a)に示
されるように、第3のブロックのページ#0〜#iが有
効ページ、ページ#i+1〜#31が空きページとな
る。ステップS109が完了すると、次に、第1のブロ
ック内の第1のスタートページ(ページ#i+1)から
書き込み対象のページ(ページ#k)の1つ前のページ
(ページ#k−1)までのページに格納されたデータ
が、第3のブロックの同じページに転送される(ステッ
プS110)。これにより、図25(b)に示されるよ
うに、第3のブロックのページ#0〜#k−1が有効ペ
ージ、ページ#k〜#31が空きページとなる。このよ
うにして、第2のブロックから第3のブロックへの転送
動作(ステップS109)及び第1のブロックから第3
のブロックへの転送動作(ステップS110)が完了す
ると、第3のブロック内の書き込み対象のページ(ペー
ジ#k)に対してデータが書き込まれ(ステップS11
1)、これにより、図25(c)に示されるように、第
3のブロックのページ#0〜#k(=j+1)が有効ペ
ージ、ページ#k+1〜#31が空きページとなる。
【0195】このようにしてデータの書き込みが完了す
ると、次に、書き込み対象のページ(ページ#k)が最
終ページ(ページ#31)であるか否かが判断される
(ステップS112)。その結果、書き込み対象のペー
ジ(ページ#k)が最終ページ(ページ#31)であれ
ば、第1及び第2のブロックをブロック消去して空きブ
ロックとし(ステップS113)、対応する第1のフラ
グ46を「0」にリセットする(ステップS114)。
一方、書き込み対象のページ(ページ#k)が最終ペー
ジ(ページ#31)以外であれば、上述したステップS
105、S106が実行され、これにより、第3のブロ
ックが新たに第2のブロックとなり、第2のブロックが
空きブロックとなる。
【0196】以上により、第2の追書込動作(ステップ
S83)が完了する。
【0197】以上が、本実施態様にかかるフラッシュメ
モリシステム39によるデータ書き込み動作である。
【0198】また、第1の部分転送動作(ステップS
9)や第2の部分転送動作(ステップS72)が行われ
ることにより、1つの論理ブロックアドレスに対して2
つまたは3つの物理ブロックが割り当てられた状態にお
いて電源が遮断され、その後、再び電源が投入された場
合には、上記実施態様における完結動作と同様の動作に
より、ブロック間転送が完結される。
【0199】このように、本実施態様にかかるフラッシ
ュメモリシステム39では、上記実施態様にかかるフラ
ッシュメモリシステム1による効果に加え、1つの論理
ブロックアドレスに対して3つの物理ブロックを割り当
て可能に構成されているので、追書込動作が選択される
可能性がより高められている。これにより、一連のデー
タ書込動作を、上記実施態様にかかるフラッシュメモリ
システム1よりもさらに高速に実行することが可能とな
る。
【0200】次に、本発明の好ましいさらに他の実施態
様について説明する。
【0201】本発明の好ましいさらに他の実施態様にか
かるフラッシュメモリシステム49の構成は、図1に示
されるように上記実施態様にかかるフラッシュメモリシ
ステム1と基本的に同様であり、SRAMワークエリア
8に格納されるアドレス変換テーブル27がアドレス変
換テーブル57に置き換えられ、消去済みブロックキュ
ー28が消去済みブロックキュー58に置き換えられ、
内部変数30が内部変数50に置き換えられている点に
おいて異なる。
【0202】本実施態様にかかるフラッシュメモリシス
テム49は、「仮想ブロック方式」によるフラッシュメ
モリシステムである。まず、仮想ブロック方式について
説明する。
【0203】仮想ブロック方式のフラッシュメモリシス
テムにおいては、各フラッシュメモリチップ2−0〜2
−3から一つずつ選ばれた4つの実使用ブロックが仮想
的に結合されて「仮想ブロック」を構成する。これによ
り、仮想ブロック#0〜#7999からなる8000個
の仮想ブロックが構成される。
【0204】図26は、仮想ブロックのマッピングの一
例を示す図である。
【0205】図26に示される例では、フラッシュメモ
リチップ2−0に含まれる物理ブロック#150、フラ
ッシュメモリチップ2−1に含まれる物理ブロック#6
811、フラッシュメモリチップ2−2に含まれる物理
ブロック#8191、フラッシュメモリチップ2−3に
含まれる物理ブロック#3048が仮想的に結合され、
一つの仮想ブロックを構成している。このように、本実
施態様においては、ひとつの仮想ブロックを構成する4
つの物理ブロックは互いに異なるフラッシュメモリチッ
プに含まれていることが必要である。このようにして、
最大8000個の仮想ブロックが構成される。
【0206】図27は、図26に示された仮想ブロック
の仮想ページ構造を示す図である。
【0207】図27に示されるように、仮想ブロック
は、仮想ページ#0〜ページ#127からなる128個
の仮想ページによって構成される一つのブロックとして
取り扱われる。ここで、仮想ブロックのうち、物理ブロ
ック#150からなる部分に含まれる32個のページ
は、仮想ページ番号として4i(iは、物理ページ番
号)が与えられ、物理ブロック#6811からなる部分
に含まれる32個のページは、仮想ページ番号として4
i+1が与えられ、物理ブロック#8191からなる部
分に含まれる32個のページは、仮想ページ番号として
4i+2が与えられ、物理ブロック#3048からなる
部分に含まれる32個のページは、仮想ページ番号とし
て4i+3が与えられる。これら仮想ページ番号は、ホ
ストアドレスの下位7ビットと対応している。したがっ
て、これら仮想ページ#0から仮想ページ#127は、
連続するホストアドレスによってそれぞれアクセスされ
ることになる。このため、ホストコンピュータ5より連
続するホストアドレスに対してデータの書き込みが指示
された場合、各ブロックにおいて並列動作を行うことが
できるので、通常のフラッシュメモリシステムと比べ、
一連の書き込み動作をより高速に実行することができ
る。
【0208】次に、仮想ブロックとこれを構成する4つ
の物理ブロックとの関係について説明する。
【0209】図28は、8000個の仮想ブロックと、
これら各仮想ブロックを構成する4つの物理ブロックと
の関係を示すアドレス変換テーブル57のデータ構造を
示す概略図である。
【0210】図28に示されるように、アドレス変換テ
ーブル57は、仮想ブロック#0〜#7999からなる
8000個の仮想ブロックがこの順に並んで構成され、
これら各仮想ブロック#0〜#7999は、それぞれセ
ル#j−0〜セル#j−3(jは、仮想ブロックアドレ
ス)からなる4個のセル及び1個のフラグによって構成
される。例えば、仮想ブロック#0はセル#0−0〜セ
ル#0−3とフラグとによって構成され、仮想ブロック
#1はセル#1−0〜セル#1−3とフラグとによって
構成される。したがって、アドレス変換テーブル57
は、32000個のセルと8000個のフラグによって
構成されることになる。ここで、セル#j−0を構成す
るスロット#0はフラッシュメモリチップ2−0に対応
し、セル#j−1を構成するスロット#1はフラッシュ
メモリチップ2−1に対応し、セル#j−2を構成する
スロット#2はフラッシュメモリチップ2−2に対応
し、セル#j−3を構成するスロット#3はフラッシュ
メモリチップ2−3に対応している。
【0211】各仮想ブロックに含まれるセル#j−0〜
#j−3には、それぞれ当該仮想ブロックを構成する物
理ブロックのアドレス(物理ブロックアドレス)が格納
される。
【0212】また、各仮想ブロックに含まれるフラグ
は、当該仮想ブロックが有効であるか無効であるかを示
している。具体的には、フラグが「1」を示していれば
当該仮想ブロックは有効であり、フラグが「0」を示し
ていれば当該仮想ブロックは無効である。したがって、
フラグが「0」を示している仮想ブロックについては、
これに含まれるセル#j−0〜#j−3に格納されてい
る内容は無視される。
【0213】アドレス変換テーブル57の生成は、次の
ように行われる。
【0214】仮想ブロック方式においては、フラッシュ
メモリチップ2−0〜2−3を構成する各物理ブロック
のうち、データが格納されているブロックの各先頭ペー
ジ(物理ページ#0)に含まれる冗長領域26には、当
該ブロックがどの仮想ブロックに属するかを示す仮想ブ
ロックアドレスが含まれており、各ブロックの各先頭ペ
ージに格納されている仮想ブロックアドレスがマイクロ
プロセッサ6による制御のもと、フラッシュメモリイン
ターフェースブロック10を介して読み出される。
【0215】そして、各物理ブロックの先頭ページ(物
理ページ#0)の冗長領域26に含まれる仮想ブロック
アドレスがオール1ではなく、有効な仮想ブロックのア
ドレスを示していれば、アドレス変換テーブル57を構
成するセルのうち、チップ番号及び読み出された仮想ブ
ロックアドレスによって特定されるセルに、当該物理ブ
ロックの物理ブロックアドレスを格納する。例えば、フ
ラッシュメモリチップ2−0に属する物理ブロック#1
2より、読み出された仮想ブロックアドレスが「12
3」であれば、セル#123−0に、物理ブロックアド
レスとして「12」が書き込まれる。
【0216】このような処理が、データが格納されてい
る全ての物理ブロックについて行われる。これにより、
アドレス変換テーブル57の生成が完了する。
【0217】次に、SRAMワークエリア8に格納され
る消去済みブロックキュー58のデータ構造について説
明する。
【0218】図29は、SRAMワークエリア8に格納
される消去済みブロックキュー58のデータ構造を示す
概略図である。
【0219】図29に示されるように、消去済みブロッ
クキュー58は、キューセット#0〜#5からなる6つ
のキューセットによって構成され、これらは、それぞれ
キュー#k−0〜キュー#k−3(kは、キューセット
番号)からなる4個のキューによって構成される。例え
ば、キューセット#0はキュー#0−0〜キュー#0−
3によって構成され、キューセット#1はキュー#1−
0〜キュー#1−3によって構成される。したがって、
消去済みブロックキュー30は、24個のキューによっ
て構成される。ここで、キュー#k−0はフラッシュメ
モリチップ2−0に対応し、キュー#k−1はフラッシ
ュメモリチップ2−1に対応し、キュー#k−2はフラ
ッシュメモリチップ2−2に対応し、キュー#k−3は
フラッシュメモリチップ2−3に対応している。
【0220】各キューセット#0〜#5を構成するキュ
ー#k−0〜#k−3には、ユーザ領域25を構成する
全てのフラッシュメモリセル16が消去状態となってい
る物理ブロックの物理ブロックアドレスが格納される。
したがって、例えば、フラッシュメモリチップ2−0に
属する消去済みの物理ブロック#153を消去済みブロ
ックキュー58に登録する場合、当該物理ブロックアド
レスである「0000010011001B」がキュー
#0−0〜#5−0のいずれかに格納される。同様にし
て、例えば、フラッシュメモリチップ2−2に属する消
去済みのブロック#6552を消去済みブロックキュー
30に登録する場合、当該物理ブロックアドレスである
「1100110011000B」がキュー#0−2〜
#5−2のいずれかに格納される。
【0221】このようにして、各フラッシュメモリチッ
プ2−0〜2−3ごとに最大6つの消去済みブロックの
物理ブロックアドレスが消去済みブロックキュー58に
登録され、これによって最大6つのキューセット#0〜
#5が生成される。
【0222】消去済みブロックキュー58の生成は、マ
イクロプロセッサ6による制御のもと、上述したアドレ
ス変換テーブル57の生成の際に行われ、データ書き込
みに備えて待機している冗長ブロックの中から、これら
キューに登録すべき物理ブロックが選ばれる。
【0223】次に、SRAMワークエリア8に格納され
る内部変数50のデータ構造について説明する。
【0224】内部変数50は、図7に示した内部変数3
0と同じデータ構造を有している。内部変数50を構成
する変数#0〜#3は、それぞれ仮想ブロックのスロッ
ト#0〜#3に対応する。
【0225】次に、本実施態様にかかるフラッシュメモ
リシステム49によるデータの書き込み動作について説
明する。
【0226】まず、既にデータが格納されている使用済
みの仮想ブロックのある仮想ページに対して、ホストコ
ンピュータ5よりデータの書き込みが指示された場合、
上述した部分転送動作(ステップS9)と基本的に同じ
動作によって、当該仮想ブロックを構成する4つの物理
ブロックのうち、対応する物理ブロックのみに対して部
分転送が行われる。
【0227】図30は、仮想ブロック#nの仮想ページ
4i+1に対してホストコンピュータ5よりデータの書
き込みが指示された場合における転送元ブロック及び転
送先ブロックのデータ格納状態を示す概略図である。
【0228】仮想ページ4i+1は、仮想ブロック#n
を構成する4つの物理ブロックのうち、スロット#1に
属する物理ブロックの物理ページ#iに対応する。した
がって、仮想ページ4i+1に対してホストコンピュー
タ5よりデータの書き込みが指示された場合、まず、マ
イクロプロセッサ6による制御のもと、消去済みブロッ
クキュー58を構成するキューセット#0〜#7のうち
所定のキューセットのスロット#1が選択され、格納さ
れている物理ブロックアドレスが読み出される(ステッ
プS21)。
【0229】消去済みブロックの物理ブロックアドレス
が読み出されると、これに基づいて内部変数50が更新
される(ステップS22)。ここで、内部変数50の更
新においては、まずスロット番号に基づいて変数#1が
選択され、選択された変数を構成する転送先ブロックア
ドレス格納領域31に消去済みブロックキュー58より
読み出された物理ブロックアドレスが格納され、転送元
ブロックアドレス格納領域32にアドレス変換テーブル
57より読み出された物理ブロックアドレスが格納さ
れ、スタートページ格納領域33に書き込み対象の物理
ページ(ページ#i)の次のページのページ番号(ペー
ジ#i+1)が格納される。また、フラグ34が「1」
にセットされる。
【0230】内部変数50の更新が完了すると、次に、
アドレス変換テーブル57の更新が行われる(ステップ
S23)。アドレス変換テーブル57の更新において
は、対応するセル#n−1に、消去済みブロックキュー
58より読み出された物理ブロックアドレスが上書きさ
れる。
【0231】次に、転送元ブロック内の物理ページ#0
から書き込み対象の物理ページ(ページ#i)の1つ前
のページ(ページ#i−1)までのページに格納された
データが、転送先ブロックの同じページに転送される
(ステップS24)。すなわち、ブロック間転送の前半
部分の動作が行われる。ステップS24が完了すると、
図30(a)に示されるように、転送先ブロックのペー
ジ#0〜#i−1が有効ページとなり、ページ#i〜#
31が空きページとなる。
【0232】ステップS24が完了すると、次に、ホス
トコンピュータ5より書き込みが指示されたデータが、
転送先ブロックの書き込み対象の物理ページ(ページ#
i)に書き込まれる(ステップS25)。ステップS2
5が完了すると、図30(b)に示されるように、転送
先ブロックの物理ページ#0〜#iが有効ページとな
り、物理ページ#i+1〜#31が空きページとなる。
【0233】以上により、部分転送動作(ステップS
9)が完了する。
【0234】このような部分転送が行われた後、仮想ブ
ロック#nの仮想ページ4j+1(j>i)に対してホ
ストコンピュータ5よりデータの書き込みが指示された
場合、上述した追書込動作(ステップS39)と同じ動
作が行われ、これにより、一連のデータ書き込み動作が
高速に実行される。
【0235】また、部分転送動作(ステップS9)が行
われることにより、1つのセルに対して2つの物理ブロ
ックが割り当てられた状態において電源が遮断され、そ
の後、再び電源が投入された場合には、上記実施態様に
おける完結動作と同様の動作により、ブロック間転送が
完結される。
【0236】このように、本発明は、仮想ブロック方式
のフラッシュメモリシステム49に対しても適用するこ
とができる。
【0237】本発明は、以上の実施態様に限定されるこ
となく、特許請求の範囲に記載された発明の範囲内で種
々の変更が可能であり、それらも本発明の範囲内に包含
されるものであることはいうまでもない。
【0238】例えば、上記実施態様にかかるフラッシュ
メモリシステム1、39、49においては、内部変数3
0、40、50がフラッシュメモリチップ2−0〜2−
3にそれぞれ対応する変数#0〜#3からなり、これに
よって、各フラッシュメモリチップにおいて転送先ブロ
ックと転送元ブロックからなる組を1つずつ記録できる
ように構成されているが、転送先ブロックと転送元ブロ
ックからなる組が各フラッシュメモリチップにおいて1
つに限定されることはなく、2以上の組を記録できるよ
うに構成しても構わない。
【0239】また、上記実施態様にかかるフラッシュメ
モリシステム1、39、49においては、起動時におい
て、同じ対応論理ブロックアドレスを有する2つの物理
ブロックが発見された場合、ステップS51〜ステップ
S55からなる完結動作を実行することによってブロッ
ク間転送を完結させているが、本発明においてかかる完
結動作を行うことは必須ではなく、これら2つのブロッ
クの物理ブロックアドレス及び転送先ブロックのスター
トページを用いて、内部変数30、40、50の内容を
電源が遮断される直前の状態に再現しても構わない。
【0240】また、上記実施態様にかかるフラッシュメ
モリシステム1、49においては、1つの論理ブロック
アドレス(セル)に対して2つの物理ブロックを割り当
て可能に構成され、上記実施態様にかかるフラッシュメ
モリシステム39においては、1つの論理ブロックアド
レスに対して3つの物理ブロックを割り当て可能に構成
されているが、1つの論理ブロックアドレスに対して4
以上の物理ブロックを割り当て可能に構成しても構わな
い。
【0241】また、上記実施態様にかかるフラッシュメ
モリシステム49においては、各フラッシュメモリチッ
プ2−0〜2−3より一つずつ選ばれた物理ブロックに
よって仮想ブロックを構成しているが、独立したレジス
タを有する複数のバンクに分割された「バンクタイプ」
と呼ばれるフラッシュメモリチップを用い、それぞれ異
なるバンクに属する複数のブロックによって仮想ブロッ
クを構成しても構わない。「バンクタイプ」のフラッシ
ュメモリチップ用いれば、1つのフラッシュメモリチッ
プによって仮想ブロックを構成することができる。
【0242】また、上記実施態様にかかるフラッシュメ
モリシステム1、39、49においては、各ブロックを
32個のページによって構成しているが、各ブロックを
構成するページ数は32個には限定されず、他の数、例
えば、16個や64個であってもよい。本発明は、各ブ
ロックを構成するページ数が多いほど、より顕著な効果
を得ることができる。
【0243】また、上記実施態様にかかるフラッシュメ
モリシステム1、39、49においては、空きブロック
に対してデータの書き込みを行う場合、ユーザデータを
書き込むべきページとは無関係に当該ブロックの全ての
ページ#0〜#31の冗長領域26に、対応論理ブロッ
クアドレスを格納しているが、全てのページ#0〜#3
1の冗長領域26に対応論理ブロックアドレスを格納す
ることは必須ではなく、少なくとも、先頭ページ(ペー
ジ#0)及び最終ページ(ページ#31)の冗長領域2
6にこれを書き込めば足りる。
【0244】さらに、上記実施態様にかかるフラッシュ
メモリシステム1、39、49においては、データの格
納された全ての物理ブロックに関わるアドレス変換テー
ブル27、57をSRAMワークエリア8上に展開して
いるが、本発明において、これら全ての物理ブロックに
関わるアドレス変換テーブルを展開することは必須では
なく、これらの一部のみを展開してもよい。この場合、
SRAMワークエリア8に必要とされる記憶容量を削減
することができる。但し、このように一部の物理ブロッ
クに関わるアドレス変換テーブルのみを展開する場合、
アドレス変換テーブルに含まれていない物理ブロックへ
のアクセスが要求される度に、アドレス変換テーブルを
更新する必要がある。
【0245】また、上記実施態様においては、フラッシ
ュメモリシステム1、39、49はカード形状であり、
4個のフラッシュメモリチップ2−0〜2−3とコント
ローラ3とが、一つのカード内に集積されて構成されて
いるが、本発明にかかるフラッシュメモリシステムがカ
ード形状に限定されることはなく、他の形状、例えばス
ティック状であってもよい。
【0246】さらに、上記実施態様においては、フラッ
シュメモリシステム1、39、49は、4個のフラッシ
ュメモリチップ2−0〜2−3とコントローラ3とが、
一つのカード内に集積されて構成されているが、フラッ
シュメモリチップ2−0〜2−3とコントローラ3と
が、同一筐体に集積されている必要はなく、それぞれ別
個の筐体にパッケージングされてもよい。この場合、フ
ラッシュメモリチップ2−0〜2−3がパッケージング
された筐体及びコントローラ3がパッケージングされた
筐体には、それぞれ他方との電気的及び機械的接続を実
現するためのコネクタが必要とされ、かかるコネクタに
よって、フラッシュメモリチップ2−0〜2−3がパッ
ケージングされた筐体が、コントローラ3がパッケージ
ングされた筐体に着脱可能に装着される。さらに、フラ
ッシュメモリチップ2−0〜2−3についても、これら
が同一筐体に集積されている必要はなく、それぞれ別個
の筐体にパッケージングされてもよい。
【0247】また、上記実施態様にかかるフラッシュメ
モリシステム1、39、49においては、各フラッシュ
メモリチップ2−0〜2−3は、それぞれ128Mバイ
ト(1Gビット)の記憶容量を有する半導体チップであ
るが、各フラッシュメモリチップ2−0〜2−3の記憶
容量は128Mバイト(1Gビット)に限定されず、こ
れとは異なる容量、例えば32Mバイト(256Mビッ
ト)であってもよい。
【0248】さらに、上記実施態様にかかるフラッシュ
メモリシステム1、39、49においては、512バイ
トを1ページとし、これを最小アクセス単位としている
が、最小アクセス単位としては512バイトに限定され
ず、これとは異なる容量であってもよい。
【0249】また、上記実施態様にかかるフラッシュメ
モリシステム1、39、49においては、フラッシュメ
モリチップ2−0〜2−3を構成する各フラッシュメモ
リセル16が、1ビットのデータを保持しているが、フ
ローティングゲート電極21に注入すべき電子の量を複
数段階に制御することによって、2ビット以上のデータ
を保持可能に構成してもよい。
【0250】また、上記実施態様にかかるフラッシュメ
モリシステム1、39においては、フラッシュメモリチ
ップ2−0〜2−3に対してそれぞれ2個のキューを割
り当てることによって、消去済みブロックキュー30が
構成されているが、各フラッシュメモリチップ2−0〜
2−3に対して割り当てられるキューの数としては2個
に限定されず、他の数、例えば、1個や8個であっても
よい。
【0251】さらに、上記実施態様にかかるフラッシュ
メモリシステム1、39、49においては、フラッシュ
メモリチップ2としてNAND型のフラッシュメモリチ
ップを用いているが、本発明により制御可能なフラッシ
ュメモリがNAND型に限定されるものではなく、他の
種類、例えば、AND型のフラッシュメモリを制御する
ことも可能である。
【0252】また、本発明において、手段とは、必ずし
も物理的手段を意味するものではなく、各手段の機能が
ソフトウエアによって実現される場合も包含する。さら
に、一つの手段の機能が二以上の物理的手段により実現
されても、二以上の手段の機能が一つの物理的手段によ
り実現されてもよい。
【0253】尚、本発明は、PCMCIA(Perso
nal Computer Memory Card
International Associatio
n)が発表した統一規格に基づくPCカードとして実現
することが可能である。さらに、近年、半導体素子の高
集積化技術の発展に伴い、より小型化された小型メモリ
カード、例えば、CFA(CompactFlash
Association)が提唱する「Compact
Flash」や、MultiMediaCardAss
ociationの提唱する「MMC(MultiMe
diaCard)」、ソニー株式会社が提唱する「メモ
リースティック」、松下電器産業株式会社等が提唱する
「SDメモリーカード」などに本発明を適用することが
可能である。
【0254】
【発明の効果】以上説明したように、本発明によれば、
ホストコンピュータからデータの書き込みを要求された
場合に、当該データを書き込むべきブロックにすでに何
らかのデータが格納されている場合であっても、与えら
れたデータの書き込みに必要な一連の処理をより高速に
行うことができるメモリコントローラ及びこのようなメ
モリコントローラを備えるフラッシュメモリシステムが
提供される。
【0255】また、本発明によれば、ホストコンピュー
タからデータの書き込みを要求された場合に、当該デー
タを書き込むべきブロックにすでに何らかのデータが格
納されている場合であっても、与えられたデータの書き
込みに必要な一連の処理をより高速に行うことができる
フラッシュメモリの制御方法が提供される。
【図面の簡単な説明】
【図1】本発明の好ましい実施態様にかかるフラッシュ
メモリシステム1を概略的に示すブロック図である。
【図2】フラッシュメモリチップ2−0〜2−3を構成
する各フラッシュメモリセル16の構造を概略的に示す
断面図である。
【図3】書込状態であるフラッシュメモリセル16を概
略的に示す断面図である。
【図4】フラッシュメモリチップ2−0のアドレス空間
の構造を概略的に示す図である。
【図5】SRAMワークエリア8に格納されるアドレス
変換テーブル27のデータ構造を示す概略図である。
【図6】SRAMワークエリア8に格納される消去済み
ブロックキュー28のデータ構造を示す概略図である。
【図7】SRAMワークエリア8に格納される内部変数
30のデータ構造を示す概略図である。
【図8】書込動作の種類を決定するためのフローチャー
トである。
【図9】新規書込動作を示すフローチャートである。
【図10】部分転送動作を示すフローチャートである。
【図11】部分転送動作における転送元ブロック及び転
送先ブロックのデータ格納状態を示す概略図である。
【図12】追書込判定を示すフローチャートである。
【図13】ステップS34における転送元ブロック及び
転送先ブロックのデータ格納状態を示す概略図である。
【図14】追書込動作を示すフローチャートである。
【図15】追書込動作における転送元ブロック及び転送
先ブロックのデータ格納状態を示す概略図である。
【図16】完結動作を示すフローチャートである。
【図17】完結動作における転送元ブロック及び転送先
ブロックのデータ格納状態を示す概略図である。
【図18】SRAMワークエリア8に格納される内部変
数40のデータ構造を示す概略図である。
【図19】追書込判定を示すフローチャートである。
【図20】第2の部分転送動作を示すフローチャートで
ある。
【図21】第2の部分転送動作における第1〜第3のブ
ロックのデータ格納状態を示す概略図である。
【図22】ステップS75〜ステップS77における第
1〜第3のブロックのデータ格納状態を示す概略図であ
る。
【図23】第2の追書込動作を示すフローチャートであ
る。
【図24】第2の追書込動作における第1〜第3のブロ
ックのデータ格納状態を示す概略図である。
【図25】第2の追書込動作における第1〜第3のブロ
ックのデータ格納状態を示す概略図である。
【図26】仮想ブロックのマッピングの一例を示す図で
ある。
【図27】図26に示された仮想ブロックの仮想ページ
構造を示す図である。
【図28】アドレス変換テーブル57のデータ構造を示
す概略図である。
【図29】SRAMワークエリア8に格納される消去済
みブロックキュー58のデータ構造を示す概略図であ
る。
【図30】仮想ブロック#nの仮想ページ4i+1に対
してホストコンピュータ5よりデータの書き込みが指示
された場合における転送元ブロック及び転送先ブロック
のデータ格納状態を示す概略図である。
【符号の説明】
1 フラッシュメモリシステム 2−0〜2−3 フラッシュメモリチップ 3 コントローラ 4 コネクタ 5 ホストコンピュータ 6 マイクロプロセッサ 7 ホストインターフェースブロック 8 SRAMワークエリア 9 バッファ 10 フラッシュメモリインターフェースブロック 11 ECCブロック 12 フラッシュシーケンサブロック 13〜15 バス 16 フラッシュメモリセル 17 P型半導体基板 18 ソース拡散領域 19 ドレイン拡散領域 20 トンネル酸化膜 21 フローティングゲート電極 22 絶縁膜 23 コントロールゲート電極 24 チャネル 25 ユーザ領域 26 冗長領域 27 アドレス変換テーブル 28 消去済みブロックキュー 30 内部変数 31 転送先ブロックアドレス格納領域 32 転送元ブロックアドレス格納領域 33 スタートページ格納領域 34 フラグ 39 フラッシュメモリシステム 40 内部変数 41 第1のブロックアドレス格納領域 42 第2のブロックアドレス格納領域 43 第3のブロックアドレス格納領域 44 第2のスタートページ格納領域 45 第1のスタートページ格納領域 46 第1のフラグ 47 第2のフラグ 49 フラッシュメモリシステム 50 内部変数 57 アドレス変換テーブル 58 消去済みブロックキュー

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 複数のブロックからなるメモリにアクセ
    スするメモリコントローラであって、既にデータが格納
    されている第1のブロックに対応する論理アドレスに対
    して新たなデータの書き込みが指示されたことに応答し
    て、前記第1のブロックに格納されているデータの一部
    を第2のブロックに転送する第1の手段と、前記新たな
    データを前記第2のブロックに書き込む第2の手段と、
    前記第1のブロックと前記第2のブロックの対応関係を
    保持する第3の手段とを備えることを特徴とするメモリ
    コントローラ。
  2. 【請求項2】 前記第1の手段が、前記第1のブロック
    の先頭ページから前記新たなデータを格納すべきページ
    に対応するページの一つ前のページに格納されているデ
    ータを、前記第2のブロックの同じページに転送するも
    のであることを特徴とする請求項1に記載のメモリコン
    トローラ。
  3. 【請求項3】 前記第3の手段が、前記第2のブロック
    の空きページに関する情報をさらに保持していることを
    特徴とする請求項1または2に記載のメモリコントロー
    ラ。
  4. 【請求項4】 前記空きページが、前記第2の手段によ
    りデータが書き込まれたページの次のページから最終ペ
    ージまで連続していることを特徴とする請求項3に記載
    のメモリコントローラ。
  5. 【請求項5】 前記論理アドレスに対して新たなデータ
    の書き込みがさらに指示されたことに応答して、前記新
    たなデータを前記第2のブロックに追加的に書き込み可
    能であるか否かを判断する第4の手段をさらに備えるこ
    とを特徴とする請求項1乃至4のいずれか1項に記載の
    メモリコントローラ。
  6. 【請求項6】 前記第4の手段が追加的な書き込みが可
    能であると判断したことに応答して、前記新たなデータ
    を前記第2のブロックに書き込む第5の手段をさらに備
    えることを特徴とする請求項5に記載のメモリコントロ
    ーラ。
  7. 【請求項7】 前記第4の手段が追加的な書き込みが不
    可能であると判断したことに応答して、前記第1のブロ
    ックと前記第2のブロックとの間のブロック間転送を完
    結させる第6の手段をさらに備えることを特徴とする請
    求項5または6に記載のメモリコントローラ。
  8. 【請求項8】 前記第4の手段が追加的な書き込みが不
    可能であると判断したことに応答して、前記第2のブロ
    ックに格納されているデータの一部を第3のブロックに
    転送する第7の手段と、前記新たなデータを前記第3の
    ブロックに書き込む第8の手段とをさらに備え、前記第
    3の手段が、前記第2のブロックと前記第3のブロック
    の対応関係をさらに保持していることを特徴とする請求
    項5または6に記載のメモリコントローラ。
  9. 【請求項9】 前記第3の手段が、前記第3のブロック
    の空きページに関する情報をさらに保持していることを
    特徴とする請求項8に記載のメモリコントローラ。
  10. 【請求項10】 それぞれ複数のページによって構成さ
    れる複数のブロックからなるメモリにアクセスするメモ
    リコントローラであって、全てのページが使用済みであ
    る第1のブロックと一部のページが使用済みであり残り
    のページが空きページである第2のブロックとの対応関
    係を保持する手段と、前記第2のブロックの物理アドレ
    スと対応する論理アドレスとの関係を保持する手段と、
    前記第2のブロックに対応する論理アドレスに対してデ
    ータの書き込みが指示されたことに応答して書き込み先
    のページが空きページであるか否かを判断する手段と、
    書き込み先のページが空きページであると判断されたこ
    とに応答して前記データを前記第2のブロックの対応す
    る空きページに追加的に書き込む手段とを備えることを
    特徴とするメモリコントローラ。
  11. 【請求項11】 前記書き込み先のページが空きページ
    の先頭ページとは異なるページであることに応答して、
    前記第1のブロックを構成するページのうち、前記空き
    ページの先頭ページから前記書き込み先のページの一つ
    前のページに対応する各ページの内容を前記第2のブロ
    ックの同じページに転送する手段をさらに備えることを
    特徴とする請求項10に記載のメモリコントローラ。
  12. 【請求項12】 複数のブロックからなるメモリにアク
    セスするメモリコントローラであって、前記各ブロック
    を複数のグループに分類する手段と、互いに異なるグル
    ープに属する複数のブロックを仮想的に結合することに
    より仮想ブロックを形成する手段と、前記仮想ブロック
    を構成する所定のブロックに対して新たなデータの書き
    込みが指示されたことに応答して、前記所定のブロック
    に格納されているデータの一部を他のブロックに転送す
    る手段と、前記書き込みが指示されたデータを前記他の
    ブロックに書き込む手段と、前記第所定のブロックと前
    記他のブロックの対応関係を保持する手段とを備えるこ
    とを特徴とするメモリコントローラ。
  13. 【請求項13】 複数のブロックからなるフラッシュメ
    モリと、ホストコンピュータより供給されるホストアド
    レスに基づいて前記フラッシュメモリにアクセスするメ
    モリコントローラとを備え、前記メモリコントローラ
    が、既にデータが格納されている第1のブロックに対応
    する論理アドレスに対して新たなデータの書き込みが指
    示されたことに応答して、前記第1のブロックに格納さ
    れているデータの一部を第2のブロックに転送する第1
    の手段と、前記新たなデータを前記第2のブロックに書
    き込む第2の手段と、前記第1のブロックと前記第2の
    ブロックの対応関係を保持する第3の手段とを備えるこ
    とを特徴とするフラッシュメモリシステム。
  14. 【請求項14】 前記フラッシュメモリと前記メモリコ
    ントローラとが、同一の筐体に収容されていることを特
    徴とする請求項13に記載のフラッシュメモリシステ
    ム。
  15. 【請求項15】 前記筐体がカード形状であることを特
    徴とする請求項14に記載のフラッシュメモリシステ
    ム。
  16. 【請求項16】 前記第3の手段が、前記第2のブロッ
    クの空きページに関する情報をさらに保持していること
    を特徴とする請求項13乃至15のいずれか1項に記載
    のフラッシュメモリシステム。
  17. 【請求項17】 所定の論理アドレスに対してデータの
    書き込みが指示されたことに応答して、アドレス変換テ
    ーブル内の前記論理アドレスに対応するブロックを第1
    のブロックから第2のブロックに変更するステップと、
    前記第1のブロックと前記第2のブロックの対応関係を
    示す変数を作成するステップと、前記第1のブロックに
    格納されているデータの一部を第2のブロックに転送す
    るステップと、前記新たなデータを前記第2のブロック
    に書き込むステップとを備えることを特徴とするフラッ
    シュメモリの制御方法。
  18. 【請求項18】 前記論理アドレスに対して新たなデー
    タの書き込みがさらに指示されたことに応答して、前記
    新たなデータを前記第2のブロックに追加的に書き込み
    可能であるか否かを判断するステップと、前記追加的な
    書き込みが可能であると判断されたことに応答して、前
    記新たなデータを前記第2のブロックに書き込むステッ
    プとをさらに備えることを特徴とする請求項17に記載
    のフラッシュメモリの制御方法。
  19. 【請求項19】 前記論理アドレスに対して新たなデー
    タの書き込みがさらに指示されたことに応答して、前記
    新たなデータを前記第2のブロックに追加的に書き込み
    可能であるか否かを判断するステップと、前記追加的な
    書き込みが不可能であると判断されたことに応答して、
    前記第1のブロックと前記第2のブロックとの間のブロ
    ック間転送を完結させるステップとさらに備えることを
    特徴とする請求項17に記載のフラッシュメモリの制御
    方法。
  20. 【請求項20】 前記ブロック間転送を完結させた後、
    前記第1のブロックをブロック消去するステップをさら
    に備えることを特徴とする請求項19に記載のフラッシ
    ュメモリの制御方法。
JP2001129160A 2001-04-26 2001-04-26 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 Expired - Lifetime JP3621051B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001129160A JP3621051B2 (ja) 2001-04-26 2001-04-26 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001129160A JP3621051B2 (ja) 2001-04-26 2001-04-26 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2002324008A true JP2002324008A (ja) 2002-11-08
JP3621051B2 JP3621051B2 (ja) 2005-02-16

Family

ID=18977727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001129160A Expired - Lifetime JP3621051B2 (ja) 2001-04-26 2001-04-26 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP3621051B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106673A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
JP2006048227A (ja) * 2004-08-02 2006-02-16 Sony Corp メモリ装置、メモリ装置の制御方法およびデータ処理システム
WO2007116476A1 (ja) * 2006-03-31 2007-10-18 Hitachi Ulsi Systems Co., Ltd. メモリカードおよびデータの書き込み方法
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
WO2008102610A1 (ja) * 2007-02-23 2008-08-28 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
JP2011523157A (ja) * 2008-05-13 2011-08-04 ラムバス・インコーポレーテッド メモリデバイス用の部分プログラムコマンド
US8307149B2 (en) 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
US9948809B2 (en) 2013-02-01 2018-04-17 Canon Kabushiki Kaisha Image forming apparatus, memory management method for image forming apparatus, and program, using discretely arranged blocks in prioritizing information
CN114089915A (zh) * 2017-03-27 2022-02-25 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877569B2 (en) 2004-04-28 2011-01-25 Panasonic Corporation Reduction of fragmentation in nonvolatile memory using alternate address mapping
EP2977906A1 (en) 2004-04-28 2016-01-27 Panasonic Corporation Nonvolatile storage device and data write method
WO2005106673A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びデータ書込み方法
JP4773342B2 (ja) * 2004-04-28 2011-09-14 パナソニック株式会社 不揮発性記憶装置及びデータ書込み方法
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
JP2006048227A (ja) * 2004-08-02 2006-02-16 Sony Corp メモリ装置、メモリ装置の制御方法およびデータ処理システム
JP4710274B2 (ja) * 2004-08-02 2011-06-29 ソニー株式会社 メモリ装置、メモリ装置の制御方法およびデータ処理システム
US8307149B2 (en) 2005-12-09 2012-11-06 Panasonic Corporation Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table
JPWO2007116476A1 (ja) * 2006-03-31 2009-08-20 株式会社日立超エル・エス・アイ・システムズ メモリカードおよびデータの書き込み方法
WO2007116476A1 (ja) * 2006-03-31 2007-10-18 Hitachi Ulsi Systems Co., Ltd. メモリカードおよびデータの書き込み方法
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
JPWO2008102610A1 (ja) * 2007-02-23 2010-05-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
WO2008102610A1 (ja) * 2007-02-23 2008-08-28 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2011523157A (ja) * 2008-05-13 2011-08-04 ラムバス・インコーポレーテッド メモリデバイス用の部分プログラムコマンド
US9948809B2 (en) 2013-02-01 2018-04-17 Canon Kabushiki Kaisha Image forming apparatus, memory management method for image forming apparatus, and program, using discretely arranged blocks in prioritizing information
CN114089915A (zh) * 2017-03-27 2022-02-25 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置
CN114089915B (zh) * 2017-03-27 2022-12-20 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置

Also Published As

Publication number Publication date
JP3621051B2 (ja) 2005-02-16

Similar Documents

Publication Publication Date Title
JP4256600B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP3905037B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP3921174B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4358111B2 (ja) 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
US7797490B2 (en) Memory card authentication system, memory card host device, memory card, storage area switching method, and storage area switching program
JP2001243110A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリへのアクセス方法
JP2001243122A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
JP3621051B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
KR20020092261A (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
JP4316824B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4233213B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4248772B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4220690B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003122630A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP3999959B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4042898B2 (ja) メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法
KR20030045599A (ko) 불휘발성 반도체 메모리칩 제어 방법
JP2003337757A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007241619A (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
KR20050102779A (ko) Nand형 플래시 메모리 파일 시스템의 설계 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3621051

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111126

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 9

EXPY Cancellation because of completion of term