(57)【要約】【課題】データの書き込み速度を高速化することができるメモリカードを提供する。【解決手段】メモリカード（１）は、消去及び書き込み可能な不揮発性メモリ（２）と、制御回路（５）とを有する。前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に空き領域か否かを示す第１フラグを有する消去テーブルを備える。前記制御回路は、例えば消去可能データが書かれているメモリ領域の数がある一定数となった時、空きを示す第１フラグに応ずるメモリ領域に対して消去可能データを予め消去するプレ消去制御を行う。空きメモリ領域に対して予め消去処理が行われるから、空きメモリ領域を用いる書き込み処理の直前に消去処理を挿入する必要性が低減され、これによって、メモリカードに対するデータの書き込み速度を高速化することができる。【選択図】        図１
2004310477.tif 000002
【特許請求の範囲】
【請求項１】
消去及び書き込み可能な不揮発性メモリと、制御回路とを有し、
前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に空き領域か否かを示す第１フラグを格納する消去テーブルを有し、
前記メモリアレイは所定のしきい値電圧を持つメモリセルを複数有し、
前記制御回路は、しきい値電圧の変更を行うアドレスを指示する外部からの動作指示に関係なく、空きを示す第１フラグに応ずる所定メモリ領域を予め消去するプレ消去制御を行うことを特徴とするメモリカード。
【請求項２】
空き領域か否かを示す第１フラグに応ずるメモリ領域が消去済みか否かを示す第２フラグを有し、
前記制御回路は、プレ消去制御において、前記第１フラグが空きを示し前記第２フラグが未消去を示すメモリ領域を消去処理の対象とすることを特徴とする請求項１記載のメモリカード。
【請求項３】
前記消去テーブルは前記第１フラグと共に前記第２フラグを保有する領域を有することを特徴とする請求項２記載のメモリカード。
【請求項４】
前記制御回路は、プレ消去制御において、前記消去処理の対象とするメモリ領域に対する消去処理の完了後に対応する第２フラグを消去済を示す状態に変更することを特徴とする請求項３記載のメモリカード。
【請求項５】
前記制御回路は、前記第１フラグが空きを示し前記第２フラグが消去済みを示すメモリ領域を書き換えデータを書き込む新たなメモリ領域に割り当てる制御を行うことを特徴とする請求項４記載のメモリカード。
【請求項６】
前記制御回路は、前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新することを特徴とする請求項５記載のメモリカード。
【請求項７】
前記不揮発性メモリのメモリアレイは、論理アドレスとメモリ領域の物理アドレスとを対応付けたアドレス変換テーブルを更に有し、
前記制御回路は、前記第１フラグ及び第２フラグに基いて割り当てられた前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する前に、データを書き込んだメモリ領域の物理アドレスと論理アドレスとを対応付けて前記アドレス変換テーブルを更新することを特徴とする請求項６記載のメモリカード。
【請求項８】
前記制御回路は、前記プレ消去制御を、メモリカードのパワーオンに応答して実行することを特徴とする請求項１記載のメモリカード。
【請求項９】
暗号演算処理回路を更に有し、
前記制御回路は、所定のセキュリティーコマンドに応答する前記暗号演算処理回路による暗号演算処理に並行して、前記プレ消去制御を行うことを特徴とする請求項１記載のメモリカード。
【請求項１０】
前記制御回路は、所定の専用コマンドに応答して前記プレ消去制御を行うことを特徴とする請求項１記載のメモリカード。
【請求項１１】
前記制御回路は、コマンド処理終了に応答して前記プレ消去制御を開始することを特徴とする請求項１記載のメモリカード。
【請求項１２】
前記プレ消去制御による消去動作の開始前又は開始後に別のコマンドによる指示があったときは、当該別のコマンドの処理を優先させることを特徴とする請求項１１記載のメモリカード。
【請求項１３】
消去及び書き込み可能な不揮発性メモリと、制御回路とを有し、
前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に消去可能か否かを示すフラグ情報を格納するフラグ情報領域を備え、所定のしきい値電圧を有する複数のメモリセルを有し、
前記制御回路は、しきい値電圧の変更を行うアドレスを指示するコマンドとは相違するコマンドに応答して前記フラグ情報で示される消去可能なメモリ領域を消去する消去制御を行うことを特徴とするメモリカード。
【請求項１４】
消去及び書き込み可能な不揮発性メモリと、制御回路とを有し、
前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に消去可能か否かを示すフラグ情報を格納するフラグ情報領域領域を有し、
前記制御回路は、外部から供給されるコマンドに応答していない期間に前記フラグ情報で示される消去可能なメモリ領域を消去する消去制御を行うことを特徴とするメモリカード。
【請求項１５】
前記フラグ情報は、メモリ領域の消去単位毎に、空き領域か否かを示す第１フラグと、空き領域か否かを示す第１フラグに応ずるメモリ領域が消去済みか否かを示す第２フラグとの対から成ることを特徴とする請求項１３又は１４記載のメモリカード。
【請求項１６】
前記制御回路は、前記消去制御において前記第１フラグが空きを示し前記第２フラグが未消去を示すメモリ領域を消去処理の対象とすることを特徴とする請求項１５記載のメモリカード。
【請求項１７】
前記制御回路は、前記消去制御において前記消去処理の対象とするメモリ領域に対する消去処理の完了後に対応する第２フラグを消去済を示す状態に変更することを特徴とする請求項１６記載のメモリカード。
【請求項１８】
前記制御回路は、前記第１フラグが空きを示し前記第２フラグが消去済みを示すメモリ領域を書き換えデータを書き込む新たなメモリ領域に割り当てる制御を行うことを特徴とする請求項１７記載のメモリカード。
【請求項１９】
前記制御回路は、前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新することを特徴とする請求項１８記載のメモリカード。
【請求項２０】
前記不揮発性メモリのメモリアレイは、論理アドレスとメモリ領域の物理アドレスとを対応付けたアドレス変換テーブルを更に有し、
前記制御回路は、前記第１フラグ及び第２フラグに基いて割り当てられた前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する前に、データを書き込んだメモリ領域の物理アドレスと論理アドレスとを対応付けて前記アドレス変換テーブルを更新することを特徴とする請求項１９記載のメモリカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、消去及び書き込み可能な不揮発性メモリ、例えばフラッシュメモリを有するメモリカードに関し、その書き込み動作の高速度化に適用して有効な技術に関する。
【０００２】
【従来の技術】
フラッシュメモリを搭載したメモリカードの書き込みは、ホスト装置からの書きこみデータをバッファに格納し、書き込みを行なう物理アドレスのセクタを消去した後でデータの書き込みを行う。書き込み前に消去を行うことにより、書き込み対象とされるメモリセルの閾値電圧分の分布を予め望ましい分布に揃えることができる。
【０００３】
しかしながら、消去中或は書き込み完了前に動作電源が遮断されると、書き込み対象外のセクタデータが消失することがある。即ち、フラッシュメモリ内部の書き込み単位が複数セクタ単位であるとき、一部のセクタだけ書き換えるような場合にも、複数セクタ全部を書き込み処理の対象とするから、不所望な電源遮断によって書き込み単位の複数セクタ全部が消失してしまう。フラッシュメモリの消去処理の一例は特許文献１に記載が有る。
【０００４】
【特許文献１】
特開平１１−３４５４９４号公報
【０００５】
【発明が解決しようとする課題】
本発明者は未だ公知ではない先の本出（特願２００２−２９４０６０号）により、消去及び書き込み処理中に動作電源が遮断されても記憶情報が不所望に消失しないメモリカードを提案している。即ち、メモリカードの記憶管理にそのメモリ領域毎に空き情報フラグを対応付けた消去テーブルを用意し、メモリカードの書き込みでは、消去テーブルの空き情報フラグを参照して書き換えデータを書き込むメモリ領域を決定し、書き換え前のメモリ領域とは異なるメモリ領域にデータの書き込みを行うようにすることにより、書き換え後であっても書き換え前のデータは元のメモリ領域に残るようになる。消去途中などで不所望な電源遮断を生じても、元のメモリ領域に残っているデータを利用すれば、データの回復が可能になる。
【０００６】
このようなテーブル方式の書き込みでは、新しいセクタへデータを書き込み、旧データの消去は行なわず消去テーブルのみ更新することによって旧データを残すことができる。しかしながら、旧データがそのまま残るので、不要となったデータが書かれているセクタが次第に増え、このセクタに新しいデータを書き込むにはその前に消去を行わなければならない。書き込み処理の前にその都度消去を行なっていたのではメモリカードの書き込み速度が遅くなってしまう。
【０００７】
本発明の目的は、データの書き込み速度を高速化することができるメモリカードを提供することにある。
【０００８】
本発明の別の目的は、消去途中などで不所望な電源遮断を生じてもデータの回復が可能であって、データの書き込み速度を高速化することができるメモリカードを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕メモリカードは、消去及び書き込み可能な不揮発性メモリと、制御回路とを有する。前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に空き領域か否かを示す第１フラグを有する消去テーブルを備え、所定のしきい値電圧を有する複数のメモリセルを有する。前記制御回路は、しきい値電圧の変更を行うアドレスを指示する外部からの動作指示に関係なく、空きを示す第１フラグに応ずる所定メモリ領域を予め消去するプレ消去制御を行う。空きメモリ領域に対して予め消去処理が行われるから、空きメモリ領域を用いる書き込み処理の直前に消去処理を挿入する必要性が低減され、これによって、メモリカードに対するデータの書き込み速度を高速化することができる。
【００１２】
本発明の具体的な形態として、空き領域か否かを示す第１フラグに応ずるメモリ領域が消去済みか否かを示す第２フラグを更に有し、前記制御回路は、プレ消去制御において、前記第１フラグが空きを示し前記第２フラグが未消去を示すメモリ領域を消去処理の対象とする。重ねて消去する無駄を排除するためである。前記第２フラグは例えば第１フラグと共に前記消去テーブルが保有する。
【００１３】
前記制御回路は、プレ消去制御において、前記消去処理の対象とするメモリ領域に対する消去処理の完了後に対応する第２フラグを消去済を示す状態に変更する。消去済みと未消去を簡単に区別することが可能になる。
【００１４】
前記制御回路は、前記第１フラグが空きを示し前記第２フラグが消去済みを示すメモリ領域を書き換えデータを書き込む新たなメモリ領域に割り当てる制御を行う。データの書き換えなどに際し、書き込み元のメモリ領域と異なるメモリ領域を新たな書き込み領域とすることができ、書き込み途中などで不所望な電源遮断等が発生しても、その直後には元のデータは書き込み元のメモリ領域に残るので、消失したデータの復元が可能である。
【００１５】
前記制御回路は、前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する。新たなメモリ領域にデータを書き込む途中で不所望な電源遮断が発生しても元のメモリ領域に元のデータが確実に残ることを保証することができる。
【００１６】
前記不揮発性メモリのメモリアレイは、論理アドレスとメモリ領域の物理アドレスとを対応付けたアドレス変換テーブルを更に有し、前記制御回路は、前記第１フラグ及び第２フラグに基いて割り当てられた前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する前に、データを書き込んだメモリ領域の物理アドレスと論理アドレスとを対応付けて前記アドレス変換テーブルを更新する。データ回復のために元のメモリ領域を検索可能にすることを保証することができる。
【００１７】
〔２〕前記プレ消去制御へ移行するトリガとして例えば以下の形態がある。第１は、メモリカードのパワーオンに応答して前記プレ消去制御を実行する。第２は、所定のセキュリティーコマンドに応答する暗号演算処理回路による暗号化処理又は復号処理に並行して、前記プレ消去制御を行う。この前提としてメモリカードはＩＣカードに採用されるような暗号演算処理回路を有する。第３は、所定の専用コマンドに応答して前記プレ消去制御を行う。専用コマンドとは消去対象アドレスを指定して行う単なる消去コマンドとは相違される。ここで言う専用コマンドは消去対象アドレスの指定を伴わない。第４は、コマンド処理終了に応答して前記プレ消去制御を開始する。前記プレ消去制御による消去動作の開始前又は開始後に別のコマンドによる指示があったときはプレ消去制御による処理を打ち切って、当該別のコマンドの処理を優先させる。読み出しなどの優先度の高い処理が遅れないようにするためである。
【００１８】
〔３〕本発明の別の観点によるメモリカードは、しきい値電圧を変更するアドレスの指定を伴うコマンドとは相違するコマンドに応答して消去可能な領域を消去するという観点を備え、消去及び書き込み可能な不揮発性メモリと、制御回路とを有し、前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に消去可能か否かを示すフラグ情報を格納するフラグ情報領域を備え、前記制御回路は、しきい値電圧を変更するアドレスの指定を伴うコマンドとは相違するコマンドに応答して前記フラグ情報で示される消去可能なメモリ領域を消去する消去制御を行う。
【００１９】
本発明の更に別の観点によるメモリカードは、ホストからのコマンドに応答していない期間に消去可能な領域を消去するという観点を備え、消去及び書き込み可能な不揮発性メモリと、制御回路とを有し、前記不揮発性メモリのメモリアレイは、そのメモリ領域の消去単位毎に消去可能か否かをを示すフラグ情報を格納するフラグ情報領域を備え、前記制御回路は、外部から供給されるコマンドに応答していない期間に前記フラグ情報で示される消去可能なメモリ領域を消去する。
【００２０】
上記何れの観点によるメモリカードも、消去可能なメモリ領域に対して予め消去処理を行うから、書き込み処理の直前に消去処理を挿入する必要性が低減され、これによって、メモリカードに対するデータの書き込み速度を高速化することができる。
【００２１】
上記発明の具体的な形態として、前記フラグ情報は、メモリ領域の消去単位毎に、空き領域か否かを示す第１フラグと、空き領域か否かを示す第１フラグに応ずるメモリ領域が消去済みか否かを示す第２フラグとの対から成る。
【００２２】
このとき、前記制御回路は、前記消去制御において前記第１フラグが空きを示し前記第２フラグが未消去を示すメモリ領域を消去処理の対象とする。重ねて消去する無駄を排除するためである。
【００２３】
前記制御回路は、前記消去制御において前記消去処理の対象とするメモリ領域に対する消去処理の完了後に対応する第２フラグを消去済を示す状態に変更する。消去済みと未消去を簡単に区別することが可能になる。
【００２４】
前記制御回路は、前記第１フラグが空きを示し前記第２フラグが消去済みを示すメモリ領域を書き換えデータを書き込む新たなメモリ領域に割り当てる制御を行う。データの書き換えなどに際し、書き込み元のメモリ領域と異なるメモリ領域を新たな書き込み領域とすることができ、書き込み途中などで不所望な電源遮断等が発生しても、その直後には元のデータは書き込み元のメモリ領域に残るので、消失したデータの復元が可能である。
【００２５】
前記制御回路は、前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する。新たなメモリ領域にデータを書き込む途中で不所望な電源遮断が発生しても元のメモリ領域に元のデータが確実に残ることを保証することができる。
【００２６】
前記不揮発性メモリのメモリアレイは、論理アドレスとメモリ領域の物理アドレスとを対応付けたアドレス変換テーブルを更に有し、前記制御回路は、前記第１フラグ及び第２フラグに基いて割り当てられた前記新たなメモリ領域にデータを書き込んだ後、対応する第１フラグを空きを示す状態に更新する前に、データを書き込んだメモリ領域の物理アドレスと論理アドレスとを対応付けて前記アドレス変換テーブルを更新する。データ回復のために元のメモリ領域を検索可能にすることを保証することができる。
【００２７】
【発明の実施の形態】
《メモリカード》
図１には本発明に係るメモリカードの一例が示される。メモリカード１は消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリ２と、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  ｍｅｍｏｒｙ）又はＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から成るバッファメモリ４と、メモリ制御及び外部インタフェース制御を行うカードコントローラ５とを、実装基板に備えて成る。
【００２８】
前記バッファメモリ４及びフラッシュメモリ２はカードコントローラ５のアクセス制御を受ける。前記フラッシュメモリ２は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイＡＲＹを有する。メモリセルトランジスタ（フラッシュメモリセルとも記す）は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧（コントロールゲート印加電圧）に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。
【００２９】
図１において、前記カードコントローラ５は、例えばホストコンピュータ（ホスト装置）６との間でＩＤＥディスクインタフェース仕様などに従った外部インタフェース制御を行う。カードコントローラ５は、ホストコンピュータ６からの指示に従って、フラッシュメモリ２をアクセスするアクセス制御機能を有する。このアクセス制御機能はハードディスク互換の制御機能であり、例えばホストコンピュータ６がセクタデータの集合をファイルデータとして管理するとき、カードコントローラ５は論理アドレスとしてのセクタアドレスと物理メモリアドレスとを対応させてフラッシュメモリ２のアクセス制御を行う。図１に従えば、前記カードコントローラ５は、ホストインタフェース回路１０、演算制御手段としてのマイクロプロセッサ（ＭＰＵ）１１、フラッシュコントローラ１２、及びバッファコントローラ１３から成る。前記フラッシュコントローラ１２は図示を省略するＥＣＣ回路を備える。
【００３０】
前記ＭＰＵ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５、プログラムメモリ（ＰＧＭ）１６及びワークＲＡＭ（ＷＲＡＭ）１７などを有し、カードコントローラ５を全体的に制御する。プログラムメモリ１６はＣＰＵ１５の動作プログラムなどを保有する。
【００３１】
前記ホストインタフェース回路１０は、ＡＴＡ（ＡＴＡｔｔａｃｈｍｅｎｔ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）等（これら名称には登録商標も含まれている）の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ６とインタフェースを行う回路である。ホストインタフェース動作の制御はＭＰＵ１１が行う。
【００３２】
前記バッファコントローラ１３はＭＰＵ１１から与えられるアクセス指示に従って、バッファメモリ４のメモリアクセス動作を制御する。バッファメモリ４にはホストインタフェース１０に入力されたデータ、又はホストインタフェース１０から出力するデータが一時的に保持される。また、バッファメモリ４には、フラッシュメモリ２から読み出されたデータ又はフラッシュッメモリ２に書き込まれるデータが一時的に保持される。
【００３３】
フラッシュコントローラ１２はＭＰＵ１１から与えられるアクセス指示に従って、フラッシュメモリ２に対する、読み出し動作、消去動作及び書き込み動作を制御する。フラッシュコントローラ１２は、読み出し動作において読み出しコマンドコードや読み出しアドレス情報等の読み出し制御情報を出力し、書き込み動作において書き込みコマンドコード及び書き込みアドレス情報などの書き込み制御情報を出力し、消去動作において消去コマンド等の消去制御情報を出力する。図示を省略するＥＣＣ回路は、ＭＰＵ１１から与えられる指示に従って、フラッシュメモリ２に書き込むデータに対してエラー訂正符号（エラー訂正コード）を生成して、書込みデータに付加する。また、フラッシュメモリ２から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。
【００３４】
フラッシュメモリ２はそのメモリアレイＡＲＹの一部に消去テーブル部２０及びアドレス変換テーブル部２１を有する。
【００３５】
図２にはフラッシュメモリ２の記憶領域が例示される。フラッシュッメモリ２の記憶領域（メモリアレイＡＲＹ）は、前記消去テーブル部２０、アドレス変換テーブル部２１及びユーザエリア２２、消去テーブル部とアドレス変換テーブル部を更新するときに必要となる空きブロック領域２３に大別される。各領域はメモリブロック（メモリセクタ）単位で物理アドレスとしてのブロックアドレスが与えられる。前記メモリブロックを単にブロックとも記す。特に制限されないが１ブロックは約２ＫＢ（キロバイト）の記憶容量を有し、その１ブロックに含まれるメモリセルアレイは１本のワード線又は１種類のワード線選択信号で選択され、消去処理及び書き込み処理の単位とされる。即ち、ここでは消去処理や書き込み処理で必要な高電圧がワード線単位で印加される。この１ブロックはＨＤＤなどのストレージにおける書き換え単位とされるセクタ（ストレージセクタ）の容量５１２Ｂ（バイト）よりも大きい。例えば１ブロックは４ストレージセクタ分にＥＣＣコード及び管理領域を合わせた記憶容量を有する。
【００３６】
前記消去テーブル部２０とアドレス変換テーブル部２１のそれぞれは、特に制限されないが、１ブロック単位で分割配置され、各分割単位はその１ブロック内で多重化される。例えば消去テーブル部２０はブロックアドレス０ｘ００００〜０ｘ０００Ｆに配置され、０ｘ００００のように１ブロックを一単位としてブロック毎に分割される。アドレス変換テーブル部２１はブロックアドレス０ｘ００１０〜０ｘ０１０Ｆに配置され、０ｘ００１０のように１ブロックを一単位としてブロック毎に分割される。
【００３７】
《アドレス変換テーブル》
図３にはアドレス変換テーブル部２１の一部、例えばブロックアドレスＢＡ５５に配置されたアドレス変換テーブルブロックの詳細が例示される。ＡＴＴで示されるものが分割された一つのアドレス変換テーブルであり、図では“消去済”と記載された領域を併せて４重に多重化されている。多重化された４個のアドレス変換テーブルはその内の１個が順番に有効とされる。分割されたアドレス変換テーブルＡＴＴは、４個のストレージセクタに相当する論理アドレス毎に、対応するメモリセクタの物理アドレス即ち１個のブロックアドレスを対応付けた情報を保有する。例えば、アドレス変換テーブルＡＴＴの先頭から順番に、論理アドレスＬＢＡ０〜３にはブロックアドレスＢＡｍが対応付けられ、論理アドレスＬＢＡ４〜７にはブロックアドレスＢＡｎが対応付けられる、というような形式で、論理アドレスと物理アドレスとを対応付けた情報が格納される。アドレス変換テーブルにおける論理アドレス情報は例えば昇順で配置される。降順であってもよい。図３において、ブロックアドレスＢＡｍ，ＢＡｎ等のメモリブロックアドレスは、連続した論理アドレス４セクタに対応されるメモリブロックのアドレスを意味し、例えば１５ビットを有する。ここでは、メモリブロックのアドレス毎に１ビットのライトプロテクトビットＷＰが付加されている。ホストコンピュータ６からメモリカード１に対するアクセス指示にはアクセス対象セクタのアドレス（論理セクタアドレス又は論理アドレスとも称する）が指定されており、この論理セクタアドレスを検索キーとして、対応するブロックアドレスをアドレス変換テーブルを用いて検索する。
【００３８】
《消去テーブル》
図４には消去テーブル部２０の一部、例えばブロックアドレスＢＡ０に配置された消去テーブルブロックの詳細が例示される。ＥＴで示されるものが分割された一つの消去テーブルであり、図では“消去済”と記載された領域を併せて４重に多重化されている。多重化された４個の消去テーブルＥＴはその内の１個が順番に有効とされる。分割された消去テーブルＥＴは、メモリ領域の物理アドレス即ちブロックアドレス毎に空き情報フラグ（第１フラグ）と消去済みフラグ（第２フラグ）が対応付けられている。要するに、消去テーブルＥＴの先頭から順番に２ビット単位で、先頭ブロック（ブロックアドレスＢＡ０）の空き情報フラグＦＬＧ１と消去済みフラグＦＬＧ２、次ブロック（ブロックアドレスＢＡ１）の空き情報フラグＦＬＧ１と消去済みフラグＦＬＧ２というように、順次フラグＦＬＧ１，ＦＬＧ２のビットで埋められている。空き情報フラグＦＬＧ１は１ビットで対応ブロックの消去許可又は不許可を示す。“１”は消去許可、“０”は消去不許可を示す。消去済みフラグＦＬＧ２は１ビットで対応ブロックの消去済み又は未消去を示す。“１”は消去済み、“０”は未消去を示す。消去テーブルにおける空き情報フラグＦＬＧ１及び消去済みフラグＦＬＧ２の配列はブロックアドレス（物理アドレス）の昇順で配置される。降順であってもよい。対応する２ビットのフラグＦＬＧ１，ＦＬＧ２による状態は、ＦＬＧ２＝１及びＦＬＧ１＝１による消去済みメモリブロック（利用可能メモリブロック）、ＦＬＧ２＝０，ＦＬＧ１＝１による消去可メモリブロック（消去可能データを含む未消去メモリブロック）、ＦＬＧ２＝０，ＦＬＧ１＝０による消去不可メモリブロック（有効データを含む使用中のメモリブロック）の３態様とされる。
【００３９】
多重化された４個のテーブル（消去テーブルＥＴ、アドレス変換テーブルＡＴＴ）の内の１個を順番に有効とする制御手法について説明する。多重化された有効なテーブルは各ブロックの管理領域に割当てられた更新フラグによって識別する。更新フラグは分割テーブルに対応させて各メモリブロックに４ビットあり、対応分割テーブルが有効にされたとき“１“にされ、消去されるまでその状態を維持する。メモリブロックで多重化された分割テーブルは順次選択される。選択方向先頭で更新フラグが”１“と”０“の境界になっている地点が検索されることにより、当該”１“の更新フラグに対応する分割テーブルが有効になる。有効な分割テーブルの位置を変更するのはテーブル内容を更新するときに行う。テーブル更新は追加書込みによって行う。要するに、消去を行わず、新たにデータを追加する部分以外をマスクして（書込み非選択として）書込みを行う。一つのメモリブロックの４ビットの更新フラグが全部”１“にされている状態からテーブルを更新するときは、空きブロック領域２３にあるブロックに書き換えを行い、当該テーブルを新しく作成し、元のテーブルは空きブロックとして再利用する。この処理により、テーブル上の同じ不揮発性メモリセルが繰り返し書き換えに供される頻度を低減している。
【００４０】
《書き込み動作》
図５には前記消去テーブル２０及びアドレス変換テーブル２１を利用したメモリカードの書き込み動作の処理フローが例示される。図６及び図７には図５の処理における主なデータの流れ等が図示される。
【００４１】
ホストコンピュータ６からバッファメモリ４に例えば５１２バイトの書込みデータが供給される（Ｓ１）。その書込みデータに対するライトアクセスの指示があると、カードコントローラ５は書き込み対象の論理アドレスＬＢＡ（論理セクタアドレス）に対応するブロックアドレスが格納されているアドレス変換テーブルＡＴＴをフラッシュメモリ２からバッファメモリ４のアドレス変換テーブルバッファに格納する（Ｓ２）。即ち、アドレス変換テーブル部２１をインデックスする論理アドレス情報は昇順配置だから、論理アドレスＬＢＡに従って、所要のアドレス変換テーブルが配置されるメモリブロックを選ぶ。選んだメモリブロックに対しその管理領域を先ずリードして、多重化されている中から有効なアドレス変換テーブルＡＴＴの所在を把握し、これに基づいてアドレス変換テーブルＡＴＴをリードする。リードしたアドレス変換テーブルを検索することによりライト対象の論理アドレスに現在対応するブロックアドレス（原ブロックアドレスと称する）ＯＢＡを取得する。
【００４２】
カードコントローラ５は、原ブロックアドレスＯＢＡに格納されているデータの内から書換えないデータを読み出してバッファメモリ４のデータバッファに格納し、ホストコンピュータ６からのライトデータと組合わせる（Ｓ３）。例えばライトデータが１ストレージセクタ分のデータＳＤｍであるなら、原ブロックアドレスＯＢＡからは３ストレージセクタ分のデータＳＤｉ，ＳＤｊ，ＳＤｋをリードし、合わせて４ストレージセクタ分のデータを書き換えデータとする。
【００４３】
次にカードコントローラ５は、原ブロックアドレスＯＢＡに対応する消去テーブル（以下原消去テーブルと称する）ＥＴをバッファメモリ４の原消去テーブルバッファにリードする（Ｓ４）。リードされる消去テーブルは一つの消去テーブルブロック内で多重化されている４個の消去テーブル内の有効な一つである。ここでは、前述の通り、分割配置された一つの消去テーブルは多重化されており、前記管理領域内の更新フラグの状態を参照して多重化されている中の一つの消去テーブルをリードする。
【００４４】
次に、マイクロプロセッサ１１はデータ書き換え後に使用する消去テーブル（新消去テーブル）をバッファメモリ４に格納する制御を行う（Ｓ５）。例えば、マイクロプロセッサ１１はプログラムＲＯＭ１６内の擬似乱数発生プログラムを実行して、書込みデータの書込み先となるブロックアドレス（新ブロックアドレス）を取得するための検索開始ブロックアドレスを求める。カードコントローラ５は、このようにして得られた検索開始ブロックアドレスに対応した新消去テーブルをバッファメモリ４に格納する。この場合も上記同様に、消去テーブルブロック内で多重化されている一つの有効な消去テーブルをバッファメモリ４に格納する。
【００４５】
そして、メモリコントローラ５はバッファメモリ４に格納した新消去テーブルから使用可能な新ブロックアドレス（ＮＢＡ）を検索する（Ｓ６）。即ち、メモリバッファ４にリードした新消去テーブルＥＴの疑似乱数発生プログラムを実行して取得した検索開始ブロックアドレスから昇順又は降順に空き情報フラグＦＬＧ１と消去済みフラグＦＬＧ２を調べ、対を成す双方のフラグＦＬＧ１，ＦＬＧ２が共に値“１”となる最初の位置に応ずるブロックアドレスを使用許可され且つ消去済みブロックの新ブロックアドレスＮＢＡとする。
【００４６】
新ブロックアドレスＮＢＡは既に消去処理が行われている。詳細は後述するが、書き込み及び消去とは相違するコマンドに応答して、或はホストコンピュータから供給されるコマンドに応答していない期間に、プレ消去制御による消去処理で予め消去可能データ消去が行なわれている。従って、前記新ブロックアドレスＮＢＡが取得されると、即座に、新ブロックアドレスのメモリブロックに対して、前記ステップＳ２で生成された書き換えデータによって書き込み処理を行う（Ｓ７）。書き込み処理に対して書き込み成功か否かが判定される。書き込み不成功であれば、そのときのバッファメモリ４にリードされている新消去テーブル上で、当該書き込みエラーに係る新ブロックアドレスに対応する空きフラグＦＬＧ１を消去不許可の状態“０”に変更し、前記ステップＳ６に戻って、前記新消去テーブルから消去許可な別のブロックアドレスを検索して、途中から処理をやり直す。
【００４７】
ステップＳ７の書き込みが成功と判別されたときは、先ず、バッファメモリ４にリードされている新消去テーブル上で、新ブロックアドレスに対応する空き情報フラグＦＬＧ１を消去不可に、消去済みフラグＦＬＧ２を未消去に設定し、変更した新消去テーブルのデータを書き換えデータとして、フラッシュメモリ２上の当該新消去テーブルのメモリブロックに書き込む（Ｓ８）。次に、バッファメモリ４にリードされている前記アドレス変換テーブルＡＴＴ上で、今回のアクセス対象論理アドレスに対応するブロックアドレスを、原ブロックアドレスＯＢＡから新ブロックアドレスＮＢＡに変更し、変更したアドレス変換テーブルのデータを書き換えデータとして、フラッシュメモリ２上の当該アドレス変換テーブルのメモリブロックに書き込む（Ｓ９）。最後に、バッファメモリ４にリードされている原消去テーブル上で、原ブロックアドレスに対応する空き情報フラグＦＬＧ１を消去可能に設定し、変更した原消去テーブルのデータを書き換えデータとして、フラッシュメモリ２上の当該原消去テーブルのメモリブロックに書き込む（Ｓ１０）。
【００４８】
ここで、図６では原ブロックアドレスのブロックデータにセクタデータＳＤｈ，ＳＤｉ，ＳＤｊ，ＳＤｋが含まれ、新ブロックアドレスＮＢＡ上では、その内のセクタデータＳＤｈがホストコンピュータ６からライトアクセスによりセクタデータＳＤｍに書き換えられるものとする。
【００４９】
図６及び図７からも明らかなように、ステップＳ７にて新ブロックアドレスＮＢＡのメモリブロックに書き換えデータＳＤｍ，ＳＤｉ，ＳＤｊ，ＳＤｋを書き込んでも（Ｓ７）、原ブロックアドレスＯＢＡのメモリブロックには書き換え前のデータＳＤｈ，ＳＤｉ，ＳＤｊ，ＳＤｋがそのまま残っている。フラッシュメモリ２上では原消去テーブル及びアドレス変換テーブルもそのままである。したがって、ステップＳ７の書き込みが完了する前にメモリカード１がカードスロットから引き抜かれたり、ホストコンピュータ６の動作時電源電圧が不安定となったりして動作電源が遮断されても、前のデータはそのまま残る。書き換えデータが書き込まれるメモリブロックは、書き換えられる元のデータのメモリブロックとは相違されるからである。更にステップＳ７の書き換えデータの書き込みが終わった後、先ず、新ブロックアドレスＮＢＡを消去不許可に設定した新消去テーブルをフラッシュメモリ２に書き戻す（Ｓ８）。ステップＳ８の処理完了により、新ブロックアドレスＮＢＡに書き込まれたデータの不所望な消去防止が保証される。次に原ブロックアドレスＯＢＡが新ブロックアドレスＮＢＡに変更されたアドレス変換テーブルがフラッシュメモリ２に書き戻される（Ｓ９）。これによって新ブロックアドレスへのアクセスが可能にされる。設定変更された原消去テーブルの書き戻しは最後に行われ（Ｓ１０）、これが完了されることにより、原ブロックアドレスＯＢＡのメモリブロックデータは消去許可になる。電源遮断によってステップＳ１０の処理が中断しても、原ブロックアドレスのメモリブロックが再利用不可能になり有効な記憶領域サイズの減少をもたらすこととなるが、必要なデータアクセスに支障は生じない。
【００５０】
上記より明らかなように前記ステップＳ８，Ｓ９，Ｓ１０の処理順は不所望な電源遮断によるデータ消失の防止を徹底させ、且つ記憶情報管理の論理整合を採り易くする意味において重要である。即ち、先ず、新ブロックアドレスのデータを消去不許可にして保護する処理（Ｓ８）を行った後に、原ブロックアドレスに残っているデータを容易に取り出せなくする処理（Ｓ９）、そして原ブロックアドレスに残っているデータを消去許可とする処理（Ｓ１０）を行う。例えばＳ８の処理とＳ１０の処理の順番を入れ替えて、先にＳ１０の処理を完了すると、新ブロックアドレスと原ブロックアドレスの双方に対して消去を許容する状態が発生し、このまま電源の遮断が発生すれば、その後に前記双方に対する消去許容態が維持され、必要なデータが不所望に消去される虞を生ずる。
【００５１】
《プレ消去制御》
プレ消去制御によって消去可能データ消去を行うタイミングについて説明する。
【００５２】
第１は、パワーオン動作の一貫として消去可能データ消去を行う場合である。図８にはメモリカードのパワーオン動作に応答して前記プレ消去制御を実行するときのフローチャートが例示される。メモリカード１に電源が投入されると、ＣＰＵ１５内のレジスタ初期化（Ｓ２０）と、ホストインタフェース回路１０，フラッシュコントローラ１２、及びバッファコントローラ１３に対するレジスタ初期化（Ｓ２１）を行う。そしてメモリカード１に実装されているフラッシュメモリ２を確認し（Ｓ２２）、フラッシュメモリ２からシステム情報をリードする（Ｓ２３）。次に、フラッシュメモリ２上におけるアドレス変換テーブルの格納先頭アドレスを取得してワークＲＡＭ１７に格納する（Ｓ２４）。同様にフラッシュメモリ２上における前記消去テーブルの格納先頭アドレスを取得してワークＲＡＭ１７に格納する（Ｓ２５）。その後のタイミングで、カードコントローラ５はメモリブロックの消去可能データを消去する（Ｓ２６）。消去手順については後で説明する。
【００５３】
第２は、専用コマンドに応答して消去可能データ消去を行う場合である。図９には所定の専用コマンド（ＣＭＤＸ）に応答して消去可能データの消去（プレ消去）を行うときの動作タイミングチャートが例示される。ホストコンピュータ６から書き込みコマンドＣＭＤ２４が発行されると、そのコマンドに応答してカードコントローラ５はフラッシュメモリ２に対する書き込みを行う（フラッシュ・ライト）。ホストコンピュータ６はカードコントローラ５からのコマンドに対する応答を待つ（レスポンス）。カードコントローラ５は書き込みに続いて空きチェックの処理を行う。空きチェックとは、消去テーブル部２０を用いて消去許可され（ＦＬＧ１＝“１”）且つ未消去（ＦＬＧ２＝“０”）のメモリブロックの多少を判別する処理である。ホストコンピュータ６は空きチェックの時間が経過したところで、ステータスリードコマンドＣＭＤ１３をカードコントローラ５に発行する。カードコントローラ５は空きチェック結果を出力し、ホストコンピュータ６はこれをレスポンスとして受取る。例えば、消去許可且つ未消去メモリブロックが多い、という空きチェック結果を受取った場合、ホストコンピュータ６がカードコントローラ５へプレ消去コマンドＣＭＤＸを発行する。このプレ消去コマンドＣＭＤＸはプレ消去の専用コマンドであり、消去対象アドレスを指定して行う単なる消去コマンドとは相違される。プレ消去コマンドＣＭＤＸは消去対象アドレスの指定を伴わない。
【００５４】
例えば、消去可能且つ、未消去メモリブロックが多いことを空きチェックで得た場合、カードコントローラ５からホストコンピュータ６へプレ消去コマンドＣＭＤＸの発行を要求し、ホストコンピュータ６がカードコントローラ５へプレ消去コマンドＣＭＤＸを発行する。
【００５５】
カードコントローラ５はプレ消去コマンドに応答してメモリブロックの消去可能データを消去する。消去手順については後に説明する。プレ消去中にホストコンピュータ６からアクセスコマンド等（例えばリードコマンドＣＭＤ１７）が発行されると、カードコントローラ５は消去可能データの消去処理を中止し、当該アクセスコマンドに応答する処理に移行する。ホストコンピュータ６からリードやライトのアクセス要求を待たせないようにするためである。
【００５６】
図１０には図９で説明した前記ライト要求からプレ消去に至る処理のフローチャートが例示される。カードコントローラ５はホストコンピュータ６からのコマンドを受付け可能な状態にされ（Ｓ３０）、この状態でホストコンピュータ６からライトコマンド（ＣＭＤ２４）を受付けると（Ｓ３１）、前述のようにライト対象アドレスに応じて原消去テーブル等をフラッシュメモリ２からバッファメモリ４に格納し（Ｓ３２）、新消去テーブルを用いて検索されたブロックにデータの書き込みを行う（Ｓ３３）。この後、空きチェックの処理に入り、書き込みで用いた原消去テーブルを参照して、消去許可（ＦＬＧ１＝“１”）のブロックを検索し、その中で消去可能データを保持しているブロックの多少を判定する（Ｓ３４）。要するに、消去許可（ＦＬＧ１＝“１”）且つ未消去（ＦＬＧ２＝“０”）のブロックが多いか否かを判定する（Ｓ３５）。例えば、多いとする判定は、全体の２０％以上有った場合とする。多ければ、ステータスリードコマンドＣＭＤ１３に対するレスポンスでその結果をホストコンピュータ６に返す（Ｓ３６）。消去可能データが多い場合（Ｓ３７にＹＥＳ）、ホストコンピュータ６はプレ消去コマンド（ＣＭＤ０）を発行し（Ｓ３８）、カードコントローラ５はこれに応答して前記検索した原消去テーブルを用いてプレ消去を行う（Ｓ３９）。消去可能データが少ない場合（Ｓ３７にＮＯ）、ホストコンピュータ６はプレ消去コマンドＣＭＤＸを発行することなく処理を終了する。
【００５７】
第３はコマンド処理の終了に応答して消去可能データ消去を行う場合である。図１１にはコマンド処理終了に応答して、即ち、すなわちスリープ状態に入る前に、前記プレ消去を開始する場合のフローチャートが例示される。カードコントローラ５はホストコンピュータ６からのコマンドを受付け可能な状態にされ（Ｓ４０）、この状態でホストコンピュータ６からコマンド例えばライトコマンド（ＣＭＤ２４）を受付けると（Ｓ４１）、前述のようにライト対象アドレスに応じて原消去テーブル等をフラッシュメモリ２からバッファメモリ４に格納し（Ｓ４２）、新消去テーブルを用いて検索されたブロックにデータの書き込みを行う（Ｓ４３）。通常はこれでコマンド処理を終了してスリープ状態に入るが、コマンド処理終了後に、プレ消去を行うために、書き込みで用いたバッファメモリ上の原消去テーブルを参照して、消去許可（ＦＬＧ１＝“１”）且つ未消去（ＦＬＧ２＝“０”）のブロックを検索し（Ｓ４４）、検索結果に基づいてメモリブロックに対するプレ消去を行う（Ｓ４５）。プレ消去の後、スリープ状態に入る（Ｓ４６）。特に図示はしないが、複数のメモリブロックに対し順次消去処理を行っている途中で、別のアクセスコマンドによる動作指示があったときは、現在消去中のメモリブロックに対する処理を完了した後、プレ消去を中止し、当該別のアクセスコマンドの処理を優先させる。読み出しなどの優先度の高い処理が遅れないようにするためである。
【００５８】
第４は、セキュリティーコマンドに応答する暗号演算処理に並行して消去可能データ消去を行う場合である。図１２にはセキュリティー機能を内蔵したメモリカード１Ａが例示される。図１のメモリカードに対し、ＩＣカード用マイクロコンピュータ（ＩＣカードマイコンとも称する）３０とインタフェースコントローラ３１とを追加して成る。ＩＣカードマイコン３０は、図示を省略するＣＰＵ（中央処理装置）、暗号演算器、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリメモリ）及びＩ／Ｏ（入出力回路）を有し、ＩＣカードに搭載される１チップのマイクロコンピュータによって構成される。ＩＣカードマイコン３０は認証を受けたＩＤ情報やパスワード等の認証情報が格納され、個人情報へのアクセス或は金融機関などへのアクセスに際して、アクセスの正当性がその認証情報等に基いて判定可能にされる。そして、メモリカードの外部とは暗号化した情報を入出力可能とするように、図示を省略する前記暗号演算器などを用いて暗号化及び復号の暗号演算処理を行うようになっている。ＩＣカードマイコン３０の入出力インタフェース仕様はＩＣカードの仕様に準拠しており、これをカード内でインタフェースできるようにインタフェースコントローラ３１が制御する。インタフェースコントローラ３１及びＩＣカードマイコン３０に対する動作指示はマイクロプロセッサ１１が行う。その他の構成は図１と同じである。
【００５９】
図１３には暗号演算処理に並行して消去可能データの消去を行う動作のフローチャートが示される。パワーオンに同期して図８で説明したカード初期化処理が行われ（Ｓ５０）、メモリカード１Ａはコマンド受付可能状態にされる（Ｓ５１）。このとき、カードコントローラ５がＣＭＤ５１で代表されるセキュリティーコマンドを受付けると（Ｓ５２）、マイクロプロセッサ１１はＩＣカードマイコン３０に暗号演算処理を実行させ（Ｓ５３）、これに並行してフラッシュコントローラ１２に前記消去可能データの消去処理を実行させる（Ｓ５４）。
【００６０】
図１４には図１３の動作のタイミングチャートが例示される。ホストコンピュータ６がセキュリティーコマンドＣＭＤ５１を発行すると、カードコントローラ５はそのコマンドを解析し、ＩＣカードマイコン３０に所定のＩＣカードコマンドを発行する。これによってＩＣカードマイコン３０は暗号化又は復号等の暗号演算処理を行う。暗号演算処理には暗号化のセキュリティーレベルに応じて比較的長い演算処理時間を要する。この間、ホストコンピュータ６はＩＣカードコマンドに対する応答データを待ち、フラッシュメモリ２では消去可能データの消去処理が並行される。
【００６１】
《消去可能データ消去処理手順》
図１５には消去可能データの消去処理（図８のステップＳ２６、図１０のステップＳ３９、図１１のステップＳ４５、図１３のステップＳ５４）の詳細な手順が例示される。先ず、所定の消去テーブルをバッファメモリ４に格納する（Ｓ６０）。図８のパワーオンに同期する消去処理の場合、どの消去テーブルをバッファメモリ４に格納するかは例えばランダム論理で決めれば良い。図１０の書き込みに続いて空きチェックを行った後の場合には空きチェックで利用した消去テーブルを対象とする。図１１のスリープに入る前に行う場合に、書き込み後は原消去ブロックを対象とし、それ以外のコマンド処理の後では例えばランダム論理で決めれば良い。
【００６２】
消去可能データ消去処理による消去回数（若しくは消去メモリブロック数）は回数カウンタｉで計数する。最初、回数カウンタｉは０に初期化される（Ｓ６１）。最大消去回数は固定値として、或はコマンドによりパラメータで与えられる。回数カウンタｉの値が最大消去回数よりも小さければ消去テーブルから消去可能アドレス、即ち消去許可（ＦＬＧ１＝“１”）且つ未消去（ＦＬＧ２＝“０”）のブロックアドレスを検索する。検索されたブロックアドレスの消去を開始する前にホストコンピュータ６からアクセスコマンドが発行されていないかを判別する（Ｓ６４）。発行されていなければ、検索されたブロックアドレスの消去を行う（Ｓ５６）。消去後、消去テーブルの対応ブロックアドレスの第２フラグＦＬＧ２を“１”にセットして消去済みに変更する（Ｓ６６）。この後、回数カウンタｉを＋１インクリメントし、ステップＳ６２に戻って上記処理を繰返す。
【００６３】
ステップＳ６２で回数カウンタｉの値が最大消去回数に到達すると、バッファメモリ４上の消去テーブルをフラッシュメモリ２に書き戻して（Ｓ６８）、処理を終了する。ステップＳ６４でホストコンピュータ６からのコマンド発行を検出したときは、バッファメモリ４上の消去テーブルをフラッシュメモリ２に書き戻して（Ｓ６９）、新たなコマンドの処理に移行する（Ｓ７０）。
【００６４】
図１６には消去済みフラグＦＬＧ２を各メモリブロックの管理領域の１ビットに割当てる場合のメモリアレイＡＲＹが例示される。このとき消去テーブルはブロックアドレス毎に１ビットの空き情報フラグＦＬＧ１を対応させて構成される。ＦＬＧ２＝１，ＦＬＧ１＝１は消去済み（利用可能メモリブロック）、ＦＬＧ２＝０，ＦＬＧ１＝１は消去可（消去可能データを含む未消去メモリブロック）、ＦＬＧ２＝０，ＦＬＧ１＝０は消去不可（有効データを含む使用中のメモリブロック）を示す。
【００６５】
図１７には管理領域に消去済みフラグＦＬＧ２をセットする形態を採用したときの前記消去可能データ消去処理手順が例示される。図１５の処理手順との相違点は以下の通りである。消去可能アドレスの検索は消去テーブルのＦＬＧ１だけで行う（Ｓ７２）。したがって、消去済み及び消去可双方のメモリブロックが検索される。検索されたメモリブロックに対し、その管理情報をリードし（Ｓ７３）、ＦＬＧ２から消去済みか否かを判定する（Ｓ７５）。消去済みのメモリブロックに対して消去を行う（Ｓ６５）。ＦＬＧ２はメモリブロックの管理領域に配置されるので、消去毎に当該メモリブロックのＦＬＧ２を消去済みにセットし（Ｓ７６）、図１５のＳ６８，Ｓ６９のような消去テーブルをフラッシュメモリに書き戻す処理は必要とされない。ホストコンピュータからのコマンド発行の有無はＳ６４，Ｓ７４で２回検出する。その他の処理は図１５と同じである。
【００６６】
《読み出し動作》
図１８にはアドレス変換テーブル部２１を利用したメモリカードの読み出し動作の処理フローが例示される。ホストコンピュータ６からリードコマンドが発行されると、カードコントローラ５は論理アドレスＬＢＡ（論理セクタアドレス）に対応するブロックアドレスが格納されているアドレス変換テーブルＡＴＴをバッファメモリ４のアドレス変換テーブルバッファにリードする（Ｓ８０）。このときに、アドレス変換テーブル部２１においてそれをインデックスする論理アドレス情報は昇順配置だから、先ずそれに従って、アドレス変換テーブルが配置されるメモリブロックを選べばよい。選んだブロックに対し管理領域を先ずリードして、多重化されている中から有効なアドレス変換テーブルＡＴＴの所在を把握し、これに基づいてアドレス変換テーブルＡＴＴをリードすることになる。そして、リードしたアドレス変換テーブルを検索することによりリード対象の論理アドレスに現在対応するメモリブロックアドレス（ＢＡ）を取得する（Ｓ８０）。
【００６７】
カードコントローラ５は、メモリブロックアドレスＢＡに格納されているデータをリードする（Ｓ８１）。リードデータに対してＥＣＣエラーの判定を行い（Ｓ８２）、エラーがあればＥＣＣ訂正処理を行い（Ｓ８３）、リードデータをホストコンピュータ６に向けて出力する。
【００６８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６９】
例えば、消去テーブル、アドレス変換テーブルの多重化数は４に限定されず、異なるメモリブロックを用いて多重化数を２倍の８としてもよい。この時、多重化された複数のテーブルの中で有効とするテーブルの順序は、毎回メモリブロックを相違させるように選択するのがよい。テーブルの書き換えに際し、原メモリブロックに対して新メモリブロックは相違されることになり、テーブルの書き換え中に電源遮断を生じても、原テーブルの内容は消失させずに残す事ができる。
【００７０】
また、暗号演算処理は専用の暗号演算回路を用いることに限定されず、ＣＰＵと演算プログラムによって実現する事も可能である。暗号演算処理のアルゴリズムは公開鍵で暗号化、秘密鍵で復号化を行うようなＲＳＡ暗号方式など適宜の演算アルゴリズムを採用可能である。
【００７１】
また、消去処理や書き込み処理は必ずしもワード線単位で無くてもよい。フラッシュメモリは１個のメモリセルで２値データを記憶する構成だけでなく、４値以上の多値情報を記憶する構成であってもよい。不揮発性メモリはフラッシュメモリに限定されず、高誘電体メモリなど、他の記憶形式のメモリであってよいことは言うまでもない。また、カードコントローラのような制御回路はＩＤＥなどのホストインタフェース回路を備えなくてもよく、その機能をホストコンピュータに負担させるように規格化されたメモリカードにも適用可能である。
【００７２】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００７３】
すなわち、本発明に係るメモリカードは、データの書き込み前に消去処理をその都度行わなくて済むから、データの書き込み速度を高速化することができる。また、本発明に係るメモリカードは、データを書き換えるとき、原ブロックアドレスと異なるブロックアドレスを書き込み先とするように消去テーブルで書き込みブロックアドレスの管理を行うから、消去途中などで不所望な電源遮断を生じてもデータの回復が可能である。
【図面の簡単な説明】
【図１】本発明に係るメモリカードの一例を示すブロック図である。
【図２】フラッシュメモリの記憶領域を例示する説明図である。
【図３】アドレス変換テーブル部の一部例えばブロックアドレスに配置されたアドレス変換テーブルブロックの詳細を例示する説明図である。
【図４】消去テーブル部の一部例えばブロックアドレスに配置された消去テーブルブロックの詳細を例示する説明図である。
【図５】消去テーブル及びアドレス変換テーブルを利用したメモリカードの書き込み動作の処理を例示するフローチャートである。
【図６】図５の処理における主なデータの流れ等を示す説明図である。
【図７】図５の処理における主なデータの流れ等を示す説明図である。
【図８】メモリカードのパワーオン動作に応答して前記プレ消去制御を実行するときのフローチャートである。
【図９】所定の専用コマンドに応答して消去可能データの消去を行うときの動作タイミングチャーチである。
【図１０】図９で説明した前記ライト要求からプレ消去に至る処理のフローチャートである。
【図１１】コマンド処理終了に応答してプレ消去を開始する場合のフローチャートである。
【図１２】セキュリティー機能を内蔵したメモリカードを例示するブロック図である。
【図１３】暗号演算処理に並行して消去可能データの消去を行う動作のフローチャートである。
【図１４】図１３の動作のタイミングチャートである。
【図１５】消去可能データ消去処理手順を例示するフローチャートである。
【図１６】消去済みフラグを各メモリブロックの管理領域の１ビットに割当てる場合のメモリアレイを例示する説明図である。
【図１７】管理領域に消去済みフラグをセットする形態を採用したときの消去可能データ消去処理手順を例示するフローチャートである。
【図１８】アドレス変換テーブル部を利用したメモリカードの読み出し動作のフローチャートである。
【符号の説明】
１、１Ａ  メモリカード
２  フラッシュメモリ
４  バッファメモリ
５  カードコントローラ
６  ホストコンピュータ
１０  ホストインタフェース回路
１１  マイクロプロセッサ
１２  フラッシュコントローラ
１３  バッファコントローラ
１５  ＣＰＵ
１６  プログラムメモリ
１７  ワークＲＡＭ
２０  消去テーブル部
２１  アドレス変換テーブル部
２２  ユーザエリア
２３  空きブロック領域
ＡＴＴ  アドレス変換テーブル
ＥＴ  消去テーブル
ＦＬＧ１  空き情報フラグ
ＦＬＧ２  消去済みフラグ
３０  ＩＣカードマイコン
３１  インタフェースコントローラ
【図１】
2004310477.tif 000003
【図２】
2004310477.tif 000004
【図３】
2004310477.tif 000005
【図４】
2004310477.tif 000006
【図５】
2004310477.tif 000007
【図６】
2004310477.tif 000008
【図７】
2004310477.tif 000009
【図８】
2004310477.tif 000010
【図９】
2004310477.tif 000011
【図１０】
2004310477.tif 000012
【図１１】
2004310477.tif 000013
【図１２】
2004310477.tif 000014
【図１３】
2004310477.tif 000015
【図１４】
2004310477.tif 000016
【図１５】
2004310477.tif 000017
【図１６】
2004310477.tif 000018
【図１７】
2004310477.tif 000019
【図１８】
2004310477.tif 000020