(57)【要約】【課題】例えば、フラッシュおよびＥＥＰＲＯＭ・ＮＶＭモジュールの両方からなる大容量ＳＩＭカード等の、データ処理システムの性能および耐久性を向上させるためのシステムおよび方法を提供する。【解決手段】（ａ）ユーザ・データを記憶するための第一のＮＶＭ、そして（ｂ）ユーザ・データに関連する管理データを記憶するための、第一のＮＶＭから分離した第二のＮＶＭを含むＳＩＭカード。第一のＮＶＭはブロック消去可能であること、そして第二のＮＶＭはワード消去可能であることが好ましい。第一のＮＶＭはフラッシュメモリであること、そして第二のＮＶＭはＥＥＰＲＯＭであることが好ましい。管理データは、第一のＮＶＭの仮想アドレスを物理デバイス・アドレスへマップするためのマッピング・テーブルを含むことが好ましい。ユーザ・データおよび管理データは、ファイル・システム内で編成されることが好ましい。管理データは、少なくとも一つのファイル・アロケーション・テーブルを含むことが最も好ましい。管理データは、少なくとも一つのファイル・ディレクトリを含むことが最も好ましい。この場合、少なくとも一つのファイル・ディレクトリは、ファイル名、ファイル・サイズ、ファイル属性およびファイル・セクターの物理アドレスからなるグループから選択される少なくとも一つのアイテムを含む。【選択図】図２
2009525511.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）ユーザ・データを記憶するための第一のＮＶＭ、そして
（ｂ）前記ユーザ・データに関連する管理データを記憶するための、前記第一のＮＶＭから分離した第二のＮＶＭからなるＳＩＭカード。
【請求項２】
前記第一のＮＶＭがブロック消去可能であり、前記第二のＮＶＭがワード消去可能である、請求項１のカード。
【請求項３】
前記第一のＮＶＭがフラッシュメモリであり、前記第二のＮＶＭがＥＥＰＲＯＭである、請求項１のカード。
【請求項４】
さらに、
（ｃ）前記第一のＮＶＭおよび前記第二のＮＶＭを収容するためのハウジングからなる、請求項１のカード。
【請求項５】
前記ハウジングが、スマートカードＩＤ１フォーム・ファクタを持つように構成される、請求項４のカード。
【請求項６】
前記ハウジングが、スマートカードＩＤ―０００フォーム・ファクタを持つように構成される、請求項４のカード。
【請求項７】
前記管理データが、前記第一のＮＶＭの仮想アドレスを物理デバイス・アドレスへマップするためのマッピング・テーブルを含む、請求項１のカード。
【請求項８】
前記ユーザ・データおよび前記管理データが、ファイル・システム内で編成される、請求項１のカード。
【請求項９】
前記管理データが、少なくとも一つのファイル・アロケーション・テーブルを含む、請求項８のカード。
【請求項１０】
前記管理データが、少なくとも一つのファイル・ディレクトリを含み、そして前記少なくとも一つのファイル・ディレクトリが、ファイル名、ファイル・サイズ、ファイル属性およびファイル・セクターの物理アドレスからなるグループから選択した少なくとも一つのアイテムを含む、請求項８のカード。
【請求項１１】
ＳＩＭカード内のデータを管理するための方法であって、
（ａ）カード内に記憶すべきユーザ・データを受信するステップ、
（ｂ）前記ユーザ・データを第一のＮＶＭへ書き込むステップ、そして
（ｃ）前記第一のＮＶＭから分離した第二のＮＶＭへ、前記ユーザ・データに関連した管理データを書き込むステップからなる、方法。
【請求項１２】
前記管理データが、前記第一のＮＶＭの仮想アドレスを物理デバイス・アドレスへマップするためのマッピング・テーブルを含む、請求項１１の方法。
【請求項１３】
前記ユーザ・データおよび前記管理データが、ファイル・システム内で編成される、請求項１１の方法。
【請求項１４】
前記管理データが、少なくとも一つのファイル・アロケーション・テーブルを含む、請求項１３の方法。
【請求項１５】
前記管理データが、少なくとも一つのファイル・ディレクトリを含み、そして前記少なくとも一つのファイル・ディレクトリが、ファイル名、ファイル・サイズ、ファイル属性およびファイル・セクターの物理アドレスからなるグループから選択した少なくとも一つのアイテムを含む、請求項１３の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データおよびアプリケーション記憶のために不揮発性メモリ（ＮＶＭ）を用いるデータ処理システム、そして、そのような記憶装置を管理するための方法に関する。フラッシュと電気的に消去可能でプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）ＮＶＭモジュールとの両方からなる拡張スマートカード等の、データ処理システムの性能および耐久性を向上させるシステムおよび方法を開示する。
【背景技術】
【０００２】
そのようなデータ処理システムの典型的な例は、スマートカードである。スマートカードは、埋め込み型の集積回路（ＩＣ）を持つプラスチック・カードである。スマートカードは、磁気帯カードへの改善として開発されたもので、磁気帯カードを超えるいくつかの優位性を提供する。例えば、スマートカードの最大記憶容量は、磁気帯カードのそれよりも非常により大きい。スマートカードの応用として用いる大容量ＳＩＭカードは、典型的に、２５６ＫＢを超えるメモリ記憶域を含む。また、多くは、６４ＭＢを超えるメモリ記憶域を含む。そのようなアプリケーションに用いるメモリの種類として、フラッシュメモリは人気が高い。
【０００３】
スマートカードは、典型的に、メモリそして（関連するロジック・メモリおよびソフトウェアを持つ）マイクロコントローラを含む。スマートカード内に記憶されたデータへのアクセスは、オペレーティングシステムおよびセキュリティ・ロジックによって制御されるインターフェイスを介して行う。前衛的な大容量スマートカードの例は、（イスラエル、キーファ・サバ、Ｍシステムズ社から入手可能な）メガＳＩＭ（商標）カードである。メガＳＩＭ（商標）カードは、ＭＭＳ（すなわち、マルチメディア・メッセージ通信サービス）、ＭＰ３（すなわち、メディアプレーヤ３規格）、そしてビデオ・ファイルをダウンロードする等の、種々の前衛的な移動サービスに対して、スマートカード販売業者が、（外的メモリ・カード記憶とは対照的に）ＳＩＭ内に記憶容量を備え、完全なパーソナル情報管理（ＰＩＭ）機能を提供し、そして高解像度の画像記憶を可能にする。
【０００４】
大容量ＳＩＭカードは、追加の記憶メモリを持つ標準ＳＩＭカードである。ＥＥＰＲＯＭは、標準ＳＩＭ機能の一部であって、ＳＩＭデータ・ファイルを、ＩＳＯ７８１６・ＳＩＭインターフェイスを介して管理するために使用するものである。そのようなデータは、暗号化キー、そしてＳＩＭベースのコンタクト・リストを含む。ＥＥＰＲＯＭが、記憶メモリよりもセキュアなＳＩＭコントローラの一部であるため、ＥＥＰＲＯＭは非常に安全なメモリ・コンポーネントと考えられている。記憶メモリは、典型的に、特別なセキュリティ・メカニズムのない商業的なフラッシュメモリである。記憶メモリは、高速インターフェイス（例えば、ＭＭＣ、ＳＤおよびＵＳＢ）を介してアクセス可能であり、ユーザ・データ（例えば、画像、音楽、ビデオおよびアプリケーション）を記憶するのに利用されている。ＥＥＰＲＯＭとは異なり、記憶メモリは、典型的に、標準ＦＡＴ（ファイル・アロケーション・テーブル）ファイル・システムとしてフォーマットされ、ＳＩＭカードそれ自体によってではなく、ホスト・デバイス（例えば、携帯電話）のオペレーティングシステムによって管理される。
【０００５】
図１は、従来の技術によるデータ処理システム、大容量ＳＩＭカード１８の簡略ブロック図である。大容量ＳＩＭカード１８は、ＳＩＭバス４を介して数種類のメモリへ接続されるＳＩＭ・ＣＰＵ２を含む。ＲＡＭ６は、主に一時的なデータ記憶に使用される揮発性メモリである。ＲＡＭ６は、また、アプリケーション・キャッシュとしても用いられる。ＲＯＭ８は、オペレーティングシステムおよびアプリケーションを記憶するために使用される、恒久的な消去不能記憶装置である。いくつかのシステムにおいては、ロードされるソフトウェアを変更させて機能を拡張させる柔軟性を提供するために、ＲＯＭ８に代えて、消去可能なメモリ記憶装置を備える場合もある。
【０００６】
ＥＥＰＲＯＭ１０は、バイト・プログラム可能な、電気的に消去可能なＮＶＭである。ＥＥＰＲＯＭ１０は、主に、構成関連の情報を、そしてアプリケーションに応じて半恒久的なデータを記憶するために使用する。大容量ＮＡＮＤタイプ・フラッシュメモリ１２も電気的に消去可能ＮＶＭであるが、フラッシュメモリ１２は、ＥＥＰＲＯＭ１０よりもかなり大きい。フラッシュメモリ１２は、典型的に、例えば、画像、音楽、ビデオおよびデータベース（電話帳等）のマス・データ記憶に使用する。ＥＥＰＲＯＭ１０は、ワード（すなわち、書き込み可能な最小ビット数）が書き込まれる度にワード消去されるという観点で、「逐語的に」消去可能である。いくつかのＥＥＰＲＯＭは、また、より速く書き込むことを支援する、オプションのブロック消去コマンドを提供する。これは、「ブロック毎に」のみ消去可能なフラッシュメモリ１２とは対照的である。二つのインターフェイスが、データ処理システムを外部デバイス（例えば携帯電話）に接続するために用いられる。大容量記憶装置へアクセスするためには、高速インターフェイス１４Ａが使用され、レガシー・デバイスへの接続には、低速インターフェイス１４Ｂ、すなわちＩＳＯ７８１６インターフェイスが使用される。
【０００７】
これらのコンポーネント（ＳＩＭ・ＣＰＵ２、ＳＩＭバス４、ＲＡＭ６、ＲＯＭ８、ＥＥＰＲＯＭ１０、フラッシュメモリ１２、そしてインターフェイス１４Ａおよび１４Ｂ）は、ハウジング１６内に設けられている。フラッシュメモリ１２は、ユーザ・データ２０、フラッシュメモリ管理データ２２、ＦＡＴ２４およびファイル・メタデータ・ディレクトリ２６を含む。タイプ別の情報（すなわち、ユーザ・データ２０または管理データ２２）をどこに記憶すべきかを決定するロジックは、デバイス・リソースの管理に対して責任を負うＳＩＭ・ＣＰＵ２によって処理される。
【０００８】
大容量ＳＩＭカード１８は携帯電話２８内に属し、高速インターフェイス１４Ｂが電話バス３０へ作動可能に接続している。携帯電話２８は、電話オペレーションを実行するための電話ＣＰＵ３２、（例えば、キーパッド、マイク、スピーカおよびスクリーン等の）ユーザ・インターフェイス・コンポーネントを代表するＩ／Ｏ３４、そしてフラッシュメモリ１２内の記憶を管理するオペレーティングシステム３８を記憶するためのメモリ３６を持つ。
【０００９】
二つの主なタイプの、シリコン・ベースＮＶＭが、本発明に関連する。
（１）ＥＥＰＲＯＭデバイスは、フローティングゲート・トランジスタから構成されたＮＶＭである。ＥＥＰＲＯＭデバイスは、ランダムアクセス・メモリ（ＲＡＭ）と同様に作動するが、ＥＥＰＲＯＭの書き込みシーケンスは、ＲＡＭよりも遅い。また、各ロケーションへの書き込み回数は、１００，０００に制限されている。
（２）フラッシュメモリ・デバイスは、フラッシュデバイスが、フラッシュタイプのフローティングゲート・トランジスタから構成された不揮発性の、電気的に消去可能でプログラム可能な、リードオンリー・メモリである点において、ＥＥＰＲＯＭデバイスに類似している。しかしながら、フラッシュデバイスには、物理アドレス・レベルでのそれらの使用を少し洗練されたものにする特定な制限がある。フラッシュデバイスでは、メモリの以前に書き込んだ領域には、その領域に対して予め消去オペレーションを行わない限り、再び書き込むことは不可能である。これは、再びプログラム可能にするには、フラッシュ・セルを消去（例えば、「１ロジック」へプログラム）しなければならないことを意味する。ＥＥＰＲＯＭセルも、同様にそのような消去オペレーションを必要とする。違いは、ＥＥＰＲＯＭにおいては、消去オペレーションが、デバイスによって内部的に書き込みオペレーションの一部として実行されることである。
【００１０】
フラッシュデバイスは、さらに、ＮＡＮＤタイプ・フラッシュデバイスとＮＯＲタイプ・フラッシュデバイスとに分類される。ＮＡＮＤタイプ・デバイスとＮＯＲタイプ・デバイスとの大きな違いは、ＮＡＮＤタイプ・デバイスがブロック読み取りアクセスに限られるのに対して、ＮＯＲタイプ・デバイスがランダム読み取りアクセスを持つことである。フラッシュデバイス上の消去は、現在市販のＮＡＮＤタイプ・デバイスにおいて典型的にサイズが１６から１２８キロバイトの、通常「消去ブロック」と呼ぶ、比較的大きなグループのセルに対してのみ実行できる（ＮＯＲタイプ・デバイスは、より大きな消去ブロックを持つ）。したがって、単一バイトまたは１キロバイトの一部のコンテンツを更新するのに、「ハウス・キーピング」オペレーションを必要とする（すなわち、更新すべきでない消去ブロックのすべてのセクションを最初に他の箇所へ移動させて、消去中も維持させてから、オプションとして、それらのセクションを元の位置へ戻してもよい）。
【００１１】
さらに、ＮＡＮＤタイプ・デバイスのブロックは、通常、いくつかの「不良ブロック」を含む。そのようなブロックは、信頼できないので、使用を避けるべきである。このため、初期のデバイス・テスト中にメーカは、そのようなブロックを不良と標識する。また、後のデバイスの通常使用中にブロックの不良が検出されたときにアプリケーション・ソフトウェアがそのようなブロックを不良と標識する。フラッシュデバイス、特にＮＡＮＤタイプ・デバイスは、ＥＥＰＲＯＭデバイスと比較して、より密度が高く比較的安価である。このことは、ソリッドステート・ハードディスクの置換としてフラッシュデバイスを用いることを非常に魅力的なものとする。
【００１２】
従来の技術によるフラッシュデバイスの制限を克服するために、バン氏の米国特許第５，４０４，４８５号（以下、バン４８５と呼ぶ）は、フラッシュファイル・システム（ＦＦＳ）を開示している。この特許は、本発明の譲受人に譲渡されており、参照によって本文に完全に記述したものとみなす。ＦＦＳは、フラッシュデバイスにデータ記憶およびデータ操作のシステムを提供することによって、これらのデバイスが磁気ディスクをエミュレートすることを可能にしている。従来の技術においては、アプリケーションまたはオペレーティングシステムは、物理アドレスではなく仮想アドレスを用いて、フラッシュ記憶サブシステムと相互作用する。ソフトウェア・アプリケーションと物理デバイスとの間には、仮想アドレスから物理アドレスへのマッピングを提供する中間層が存在する。
【００１３】
ソフトウェアは、記憶システムが、制限なしでランダムに読んだり書いたりできる連続な欠陥のない媒体を持つとみなすのに、物理アドレス指定スキームは、スキームのアドレス範囲内に（例えば、不良ブロックに起因する）「ホール」を持つため、仮想アドレス範囲において互いに隣接したデータの部分が、物理アドレス範囲では離れている可能性がある。上述のマッピングを実行する中間層は、ソフトウェア・ドライバでもよい。典型的なスマートカード内では、スマートカードの埋め込み型ＣＰＵ上でドライバが実行される。択一的に、中間層は、フラッシュデバイスを制御するコントローラ内に埋め込まれてもよく、この場合、ホスト・コンピュータが記憶装置にアクセスするとき、ホスト・コンピュータのメインＣＰＵに対するインターフェイスとして機能する。
【００１４】
そのようなアドレス・マッピングを実行するソフトウェアまたはファームウェアの実施例は、典型的に、「フラッシュ管理システム」または「フラッシュファイル・システム」と呼ぶ。しかし、後者の用語は、その実施例が、パソコンのオペレーティングシステムで使用するファイルという意味において「ファイル」を必ずしもサポートするわけではなく、むしろ、ハードディスク・ソフトウェア・ドライバがエクスポートするものに類似したブロック・デバイス・インターフェイスをサポートするため、誤った名称である。
【００１５】
すべてのタイプの、シリコン・ベースのＮＶＭは、損耗を受ける。これは、特定な書き込みあるいは消去回数後に、関連ブロックまたはバイトが故障する確率が高いことを意味する。（データ耐久度と呼ぶ）典型的なデータ・サイクリング数は、１００，０００回の消去あるいは書き込みであり、その後、ロケーションをもはや消去できない確率は高い。
【００１６】
上記のフラッシュ管理システムを用いる従来の技術によるデバイスは、フラッシュメモリの一つのセクションを、管理情報（例えばマッピング・テーブル）を維持するために確保している。フラッシュデバイスが新しいデータで更新される度に、オペレーションは、実際のデータの書き込みと、更新管理情報の書き込みというもう一つの書き込みとを行う。このプロセスは、これら二つの書き込みオペレーションが連続的に実行されなければならないため、書き込みプロセスが遅くなる。管理情報を記憶するためにフラッシュ領域を用いることのもう一つの欠点は、フラッシュメモリのブロック・アクセスという特徴に起因する。単一バイトの更新には、ページ全体の書き込みオペレーション、そして多くの場合ブロック消去オペレーションが関わるため、このプロセスをさらに遅くする。
【００１７】
考慮すべきもう一つの要因は、データ処理システムが、典型的に、ファイル名、サイズ、属性（例えばアクセス許可）、そしてファイル・データを維持する少なくとも一つのセクターの物理アドレスを含むファイル・メタデータに関連させたファイル内にデータを編成するという事実である。ファイル・メタデータは、ディレクトリと、ファイルへの記憶アドレスの割り当てを記録するＦＡＴ内に維持される。従来の技術によるシステムは、同じデータ記憶デバイス内の、この目的のために割り当てたメモリ領域内にＦＡＴを維持する。新しいファイルを書き込む、または既存ファイルを更新することは、いくつかの連続書き込みオペレーションを伴う。実際のデータを書き込むためのもの、ディレクトリへ書き込むためのもの、そしてＦＡＴへ書き込むためのもう一つ。上記に説明したように、記憶デバイスがフラッシュデバイスである場合、これらの書き込みオペレーションの各々は、実際に、二つの書き込みオペレーションを含む。一方が実際のセクターへ書き込むこと、そして他方がフラッシュ管理データを更新すること。管理ディレクトリの更新は、２、３バイトのみの書き込みを必要とするものであるが、フラッシュメモリへの書き込みは、常に、ページ全体の書き込みオペレーション、そして多くの場合ブロック消去オペレーションを必要とする。
【００１８】
チェン氏の米国特許第６，４５６，５２８号に説明がある従来の技術は、情報を記憶するための二つの異なる方法を持つ同じデバイス内の一つのロケーションへＦＡＴデータを書き込むことを提案している。この従来の技術は、一方の方法を用いてＦＡＴを、そして他方を用いてデータを記憶することの利点について考察している。しかしながら、この従来の技術は、データおよび管理データの両方に対して同じ記憶デバイスを用いる。この従来の技術は、二つの連続的な書き込みオペレーションの問題、そして本出願で考察するページ全体の更新の必要性を解決しない。
【００１９】
従来の技術によるシステムのもう一つの例は、オークレール氏およびハラリ氏の米国特許第５，７７８，４１８号に開示されている。この特許は、ソリッドステート・メモリ・デバイスと、ディスクの性能を拡張するための回転ディスクとの組み合わせを開示している。この特許は、機械式ハードディスクあるいはソリッドステート・メモリ・デバイスのいずれかにおける、ロジック・セクター・アドレスと物理データ記憶ロケーションとの間でのマッピングを説明する。この従来の技術によるシステムは、本出願で考察するように、管理関連のデータとデバイスへ書き込むべき実際データとを区別することによって書き込みオペレーションの効率を改善するという課題を扱っていない。
【００２０】
二つの独立した記憶デバイスを用いるシステムを持つことは望ましいことであろう。そのようなシステムは、上述の（ユーザ・データに対する一つと、管理データに対する一つとの）二つの書き込みオペレーションが平行に実行されることを可能にすることによって性能を改善するだろう。
【発明の開示】
【発明が解決しようとする課題】
【００２１】
明確にする目的で、以下のいくつかの用語を、特に本出願の内容に対して定義する。本文における用語「マッピング・テーブル」は、フラッシュファイル・システム（ＦＦＳ）管理情報に言及する。本文における用語「ファイル・メタデータ」は、ファイル・システム（ＦＳ）管理情報に言及する。本文における用語「管理データ」は、ＦＦＳあるいはＦＳソフトウェア・モジュールが用いる管理情報に言及する。
【００２２】
本文における用語「ユーザ・データ」は、ユーザによって記憶される実ファイルに言及する。本発明は、単一レベル・セル（ＳＬＣ）フラッシュメモリおよびマルチレベル・セル（ＭＬＣ）フラッシュメモリの両方へ適用できる。以降の考察は、主にＳＬＣセルに集中するが、本発明がどのようにＭＬＣセルへ適用可能であるかは、同業者には明らかである。本文における用語「消去」および「書き込み」は、メモリ・セルのスレショルド電圧を設定することに言及し、消去は、典型的に、１ロジック値に対応するよう電圧を設定し、そして書き込みは、典型的に、ＳＬＣセルの場合、０ロジック値に対応するよう電圧を設定する。本文では、用語「書き込み」および「プログラミング」を置換可能に用いている。
【００２３】
本文における用語「大容量ＳＩＭカード」は、上述のレガシーＳＩＭカード機能に加えて、画像および音楽ファイルを記憶するために典型的に用いられる大容量（すなわち、＞２５６ＫＢ、望ましくは＞６４ＭＢ）のメモリ記憶装置（例えば、フラッシュメモリ）を含むＳＩＭカードに言及する。大容量ＳＩＭカードは、通常、大容量記憶装置にアクセスするための、ＳＤ（セキュア・デジタル（商標））またはＭＭＣ（マルチメディア・カード）インターフェイス等の高速インターフェイスを持つ。
【００２４】
本発明の目的は、例えば、フラッシュおよびＥＥＰＲＯＭ・ＮＶＭモジュールの両方からなる大容量ＳＩＭカード等の、データ処理システムの性能および耐久性を向上させるためのシステムおよび方法を提供することである。
【００２５】
本発明には、二つの異なる種類の管理アプリケーションが関わる。
（１）（名称にも関わらず、ファイルとは無関係である）フラッシュファイル・システム（ＦＦＳ）は、フラッシュメモリをブロック・デバイスとして管理する。ＦＦＳは、損耗平準化、エラー検出および訂正を行い、必要に応じて消去オペレーションを実行する。ＦＦＳは、仮想アドレスを物理デバイス・アドレスへ論理的にマップするマッピング・テーブルを維持する（すなわち、セクター番号を、論理あるいは仮想アドレス（すなわち、セクター番号）に対して現在割り当てられている物理アドレスへ変換する）。
（２）ファイル・システム（ＦＳ）は、典型的に、使用中のオペレーティングシステムの一部である。ＦＳは、（ファイル名、ファイル属性を含む）ファイル・メタデータを、ディレクトリ領域およびファイル・アロケーション・テーブル（ＦＡＴ）内に記憶する。
【００２６】
本発明によれば、フラッシュメモリ・モジュールは、データを記憶するために用いられる。他方、管理データの一部分（またはすべて）は、ＥＥＰＲＯＭモジュール内に記憶される。ＦＦＳマッピング・テーブルをＥＥＰＲＯＭ内に記憶することによって、以下の大きな改善が達成できる。
（ａ）性能の向上。ほとんどの場合は、わずか２、３バイトのみの書き込みが必要である。もしマッピング・テーブルをフラッシュメモリ内に記憶するならば、フラッシュメモリへの書き込みの度にページ全体を再び書き込むことになるだろう。加えて、空きページが全くないならば、このオペレーションは、ブロック消去オペレーションを伴うことになり、このプロセスをさらに遅くする。
（ｂ）少ないメモリ損耗。典型的な管理データ更新には、わずか２、３バイトが関係するのみであるため、ＥＥＰＲＯＭの使用は、フルページを再び書き込む必要性を排除する。
（ｃ）簡略化した、より効率的なＦＦＳ管理。ＦＦＳ管理アプリケーションは、ＥＥＰＲＯＭ内の関連バイトに直接的にアクセスできるため、フルページ・アクセスの必要は全くない。
【００２７】
本発明の追加の改善は、フラッシュメモリ内への代わりにＥＥＰＲＯＭ内へ、ファイル・メタデータまたは特にＦＡＴを記憶することによって達成可能である。ＦＡＴは、典型的に、ファイルがアップデートされる度に更新される。本発明は、ＦＡＴを記憶するために、バイト・アクセス・メモリ（ＥＥＰＲＯＭ）を用いる。このことは、フラッシュメモリの代わりにＥＥＰＲＯＭ内にマッピング・テーブル情報を記憶することによって達成可能なことに類似する、性能の向上および損耗の減少をもたらす。
【００２８】
本発明は、どのフラッシュ・ベースのデータ記憶システムにも役立つが、特に、他の理由でＥＥＰＲＯＭが典型的に存在する大容量ＳＩＭカードに有用である。注目すべきことは、本発明が、フラッシュメモリを管理する特定な方法に限定されないことである。ＥＥＰＲＯＭ内にファイル・メタデータを、そしてフラッシュメモリ内にユーザ・データを置くことによって、どのフラッシュ管理アルゴリズムをも拡張できる。
【００２９】
したがって、本発明によれば、以下のものを含むＳＩＭカードが初めて提供される。（ａ）ユーザ・データを記憶するための第一のＮＶＭ。そして（ｂ）ユーザ・データに関連する管理データを記憶するための、第一のＮＶＭから分離した第二のＮＶＭ。
【００３０】
第一のＮＶＭはブロック消去可能であること、そして第二のＮＶＭはワード消去可能であることが好ましい。
【００３１】
第一のＮＶＭはフラッシュメモリであること、そして第二のＮＶＭはＥＥＰＲＯＭであることが好ましい。
【００３２】
カードは、さらに、以下のものを含むことが好ましい。（ｃ）第一のＮＶＭおよび第二のＮＶＭを収容するためのハウジング。ハウジングは、スマートカードＩＤ１またはＩＤー０００フォーム・ファクタを持つように構成されることが最も好ましい。
【００３３】
管理データは、第一のＮＶＭの仮想アドレスを物理デバイス・アドレスへマップするためのマッピング・テーブルを含むことが好ましい。
【００３４】
ユーザ・データおよび管理データは、ファイル・システム内で編成されることが好ましい。
【００３５】
管理データは、少なくとも一つのファイル・アロケーション・テーブルを含むことが最も好ましい。
【００３６】
管理データは、少なくとも一つのファイル・ディレクトリを含むことが最も好ましい。この場合、少なくとも一つのファイル・ディレクトリは、ファイル名、ファイル・サイズ、ファイル属性およびファイル・セクターの物理アドレスからなるグループから選択される少なくとも一つのアイテムを含む。
【００３７】
本発明によれば、ＳＩＭカード内のデータを管理するための、以下のステップを含む方法が初めて提供される。（ａ）カード内に記憶すべきユーザ・データを受信するステップ。（ｂ）ユーザ・データを第一のＮＶＭへ書き込むステップ。そして（ｃ）第一のＮＶＭから分離した第二のＮＶＭへ、ユーザ・データに関連した管理データを書き込むステップ。
【００３８】
管理データは、第一のＮＶＭの仮想アドレスを物理デバイス・アドレスへマップするためのマッピング・テーブルを含むことが好ましい。
【００３９】
ユーザ・データおよび管理データは、ファイル・システム内で編成されることが好ましい。
【００４０】
管理データは、少なくとも一つのファイル・アロケーション・テーブルを含むことが最も好ましい。
【００４１】
管理データは、少なくとも一つのファイル・ディレクトリを含むことが最も好ましい。この場合、少なくとも一つのファイル・ディレクトリは、ファイル名、ファイル・サイズ、ファイル属性およびファイル・セクターの物理アドレスからなるグループから選択される少なくとも一つのアイテムを含む。
【００４２】
これらの実施例および他の実施例を、以下で詳細に説明する。
【００４３】
さて、本発明を、例証としての添付の図面を参照しながら説明する。
【発明を実施するための最良の形態】
【００４４】
本発明は、データ処理システムの性能および耐久性の両方を向上させるためのシステムおよび方法に関する。本発明による、データ処理システムの性能および耐久性の両方を向上させるための原理および作用は、付随の説明および図面を参照にすれば、よりよく理解できる。
【００４５】
さて、図面を参照する。図２は、本発明の好適実施例による、典型的なデータ処理システムを表す簡略ブロック図である。具体的には、図２は、本発明の原理に従って修正した図１の大容量ＳＩＭカードを表す。ＳＩＭバス４は、数種類のメモリを結合する。ＲＡＭ６は、一時的なデータ記憶に主に使用される揮発性メモリである。ＲＡＭ６は、アプリケーション・キャッシュとしても使用される。ＲＯＭ８は、オペレーティングシステムおよびアプリケーションを記憶するために使用される、恒久的な、消去不可能な記憶装置である。いくつかのシステムでは、ロードされるソフトウェアを変更して拡張する際の柔軟性を提供するために、ＲＯＭ８の代わりに、消去可能なメモリ記憶装置を実装することもある。本発明によって指定するように、管理データ２２、ＦＡＴ  ２４およびファイル・メタデータ・ディレクトリ２６は、（図１に示す構成とは対照的に）ＥＥＰＲＯＭ１０内に記憶され、そしてユーザ・データ２０はフラッシュメモリ１２内に記憶される。
【００４６】
ＥＥＰＲＯＭ１０は、バイト・プログラムが可能な、電気的に消去可能なＮＶＭである。ＥＥＰＲＯＭ１０は、構成関連の情報を記憶するために、そしてアプリケーションに応じて、半恒久的なデータを記憶するために使用される。しかし、従来の技術に一般的な、ＥＥＰＲＯＭ１０のそれらの用途に加えて、本発明のＥＥＰＲＯＭ１０は、また、フラッシュメモリ管理データ２２、ＦＡＴ２４およびファイル・メタデータ・ディレクトリ２６を記憶する。フラッシュメモリ１２も電気的に消去可能なＮＶＭであるが、フラッシュメモリ１２は、ＥＥＰＲＯＭ１０よりもサイズが著しく大きい。フラッシュメモリ１２は、典型的に、例えば、画像、音楽、ビデオおよび（電話帳等の）データベースのマス・データ記憶のために使用される。インターフェイス１４Ａおよび１４Ｂは、データ処理システムを、（例えば携帯電話等の）外部デバイスに接続するために使用される。これらのコンポーネント（バス４、ＲＡＭ６、ＲＯＭ８、ＥＥＰＲＯＭ１０、フラッシュメモリ１２およびインターフェイス１４Ａおよび１４Ｂ）は、ハウジング１６内に設けられている。好適実施例においては、ハウジング１６は、（例えば、スマートカードＩＤ１またはＩＤー０００等の）スマートカード・フォーム・ファクタを持つ。
【００４７】
図３は、本発明の好適実施例による、メモリ・デバイス・ドライバの一部として実装される、書き込みセクターの典型的なオペレーション・プロシージャを表すフローチャートである。図３に示すオペレーション・プロシージャを説明する際に、より明確にするために、図２に示すコンポーネントを参照する。この例は、管理データ２２およびＦＡＴ２４をＥＥＰＲＯＭ１０内に維持し、他のファイル・メタデータおよびユーザ・データ２０をフラッシュメモリ１２内に記憶するシステムを表す。（例えば、ファイルを書き込む、ファイルを消去する、ファイルを作成する、ディレクトリを作成する）ファイル・システム・コマンドは、（例えば、図２に示すスマートカード・インターフェイス１４Ａおよび１４Ｂ等の）インターフェイスを介して、デバイスが受信し、デバイスは、一つのセクター上でのオペレーションを開始する（ブロック４０）。オペレーション要求が定義するセクター番号は、そのセクター番号がＦＡＴ２４に属するかどうかを判定するために調べられる（４２ブロック）。
【００４８】
このアルゴリズムを実行するファームウェアは、ＦＡＴ構造および物理ロケーションを認識していると仮定する。アルゴリズムを実行しているファームウェアがＦＡＴ構造および物理ロケーションを認識していない場合は、このステップ（４２ブロック）はスキップしてもよい。この場合、すべてのセクターを非ＦＡＴとみなす。セクターが、本発明によればＥＥＰＲＯＭ１０内に記憶されるＦＡＴ２４の一部として識別された場合は、ＦＡＴ２４を更新する（４４ブロック）。この場合、フラッシュメモリ１２へ書き込むデータは全く要求されず、プロセスは終了する（ブロック４６）。セクターがＦＡＴセクターでない場合、ファームウェアは、ユーザ・データ２０を記憶するための空き領域を割り当てる必要がある（ブロック４８）。ユーザ・データ２０のための空きがある場合、ファームウェアは、ユーザ・データ２０をフラッシュメモリ１２へ書き込んで（ブロック５０）、ＥＥＰＲＯＭ１０内の管理データ２２を更新する（ブロック５２）。両オペレーション５０および５２が平行に実行されてから、プロセスは終了する（ブロック５４）。
【００４９】
スマートカード実施例では、このことは、ＣＰＵ２が、ＥＥＰＲＯＭ１０内の管理データ２２を更新するのに、ユーザ・データ２０がフラッシュメモリ１２へ実際に書き込まれるのを待つ必要がないことを意味する。利用可能な空きがない場合、ファームウェアは、フラッシュメモリ１２内の不使用ブロックを消去する、そしてユーザ・データ２０を密集化させる「ハウスキーピング」オペレーション（ブロック５６）を実行する。加えて、ブロック５６で実行されているユーザ・データ２０の再編成を反映するために、ＥＥＰＲＯＭ１０内の管理データ２２が更新される（５８ブロック）。両オペレーション（ブロック５６および５８）は、平行に実行される（すなわち、ＣＰＵ２は、フラッシュ関連のオペレーション（ブロック５６）が完了するのを待たずに、ＥＥＰＲＯＭ１０内の管理データ２２を更新する（ブロック５８））。
【００５０】
不使用ブロックを消去するステップ（ブロック５６）は、以下の理由により必要である。フラッシュメモリ１２への書き込みのためには、書き込まれるブロックのすべてのビットが１ロジックを持つことを確かにする必要がある。書き込みオペレーションは、代表電圧レベルを１ロジックから０ロジックへ変化させることのみが可能である（０ロジックから１ロジックへの変更は、消去オペレーションが実行する）。ブロックが使用されていない場合、ブロックが既に消去されている（すなわち、ブロックのすべてのビットが１ロジックを持つ）のかが明らかではない。典型的に、不使用ブロックが以前に消去されているということはない。
【００５１】
本発明を限られた数の実施例に関して説明したが、本発明の多くの変形、修正、そして他の応用が可能であることは明らかである。
【図面の簡単な説明】
【００５２】
【図１】図１は、従来の技術によるデータ処理システムの簡略ブロック図である。
【図２】図２は、本発明の好適実施例による典型的なデータ処理システムを表す簡略ブロック図である。
【図３】図３は、本発明の好適実施例による、メモリ・デバイス・ドライバの一部として実装される書き込みセクターの典型的なオペレーション・プロシージャを表すフローチャートである。
【図１】
2009525511.tif 000003
【図２】
2009525511.tif 000004
【図３】
2009525511.tif 000005