(57)【要約】フラッシュメモリカードと関連付けられたファームウェアが更新されることを効率的に可能にする方法および装置が開示される。本発明の１つの局面によると、メモリ格納デバイスと関連付けられたファームウェアを更新する方法は、ホストに新しいファームウェアを提供する工程と、ホストからの新しいファームウェアをホストと通信するリーダに提供する工程を包含する。リーダは、インストールされたファームウェアを備えるメモリ格納デバイスとインタフェースして、新しいファームウェアが、インストールされたファームウェアと少なくとも部分的に置き換わるように新しいファームウェアをメモリ格納デバイスに収納する。１実施形態において、この方法は、新しいファームウェアを第１のコマンドに組み込む工程をさらに包含する。
2005508547.tif 000002
【特許請求の範囲】
【請求項１】
メモリ格納デバイスと関連付けられたファームウェアを更新する方法であって、
ホストに新しいファームウェアを提供する工程と、
該新しいファームウェアを該ホストからリーダに送信する工程であって、該ホストは、該リーダと通信し、該リーダは、該メモリ格納デバイスとインタフェースするように構成され、該メモリ格納デバイスは、インストールされたファームウェアを備える、工程と、
該新しいファームウェアを該リーダから該メモリ格納デバイスに送信する工程と、
該新しいファームウェアを該メモリ格納デバイスに収納する工程であって、該新しいファームウェアは、該インストールされたファームウェアと少なくとも部分的に置き換わる、工程と
を包含する、方法。
【請求項２】
前記新しいファームウェアを第１のコマンドに組み込む工程であって、該新しいファームウェアを前記ホストから前記リーダに送信する工程は、前記第１のコマンドを該ホストから該リーダに送信する工程を包含する、工程をさらに包含する、請求項１に記載の方法。
【請求項３】
前記組み込まれた新しいファームウェアを前記第１のコマンドから実質的に抽出する工程であって、前記リーダは、該組み込まれた新しいファームウェアを実質的に抽出する、工程をさらに包含する、請求項２に記載の方法。
【請求項４】
前記ホストに前記新しいファームウェアを提供する工程は、該新しいファームウェアをサーバからダウンロードする工程を包含する、請求項１に記載の方法。
【請求項５】
前記新しいファームウェアを前記メモリ格納デバイスに収納する工程は、前記インストールされたファームウェアを更新する、請求項１に記載の方法。
【請求項６】
前記新しいファームウェアを前記メモリ格納デバイスに収納する工程は、
前記ホストを用いて、該新しいファームウェアを該メモリ格納デバイスに書き込む工程をさらに包含する、請求項５に記載の方法。
【請求項７】
インシステムプログラミング能力を前記リーダに対してイネーブルする工程であって、該インシステムプログラミング能力は、前記新しいファームウェアが前記メモリ格納デバイスに収納されることを可能にする、工程をさらに包含する、請求項６に記載の方法。
【請求項８】
前記新しいファームウェアを前記メモリ格納デバイスに収納した後、該メモリ格納デバイスをリセットする工程と、
前記インシステムプログラミング能力を前記リーダに対してディセーブルする工程と、
該リーダを該前記ホストから実質的に通信的に切断する工程と、
該メモリ格納デバイスを再初期化する工程と、
該リーダを該ホストから実質的に通信的に再接続する工程と
をさらに包含する、請求項７に記載の方法。
【請求項９】
前記メモリ格納デバイスは、不揮発性メモリを含むメモリカードである、請求項８に記載の方法。
【請求項１０】
前記メモリカードは、セキュアデジタルカード、Ｃｏｍｐａｃｔ  Ｆｌａｓｈカード、マルチメディアカード、スマートメディアカード、およびＭｅｍｏｒｙ  Ｓｔｉｃｋカードからなる群より選択されるメモリカードである、請求項９に記載の方法。
【請求項１１】
メモリカードと関連付けられたファームウェアを更新するシステムであって、
インストールされたカードファームウェアを含むメモリカードと、
該メモリカードに新しいカードファームウェアを提供する手段と、
該メモリカードに該新しいカードファームウェアを収納して、該新しいカードファームウェアが、該インストールされたカードファームウェアと少なくとも部分的に置き換わるようにする手段と
を備える、システム。
【請求項１２】
前記メモリカードに前記新しいカードファームウェアを提供する前記手段は、
ホストと、
該ホストが該メモリカードとインタフェースすることを可能にする手段であって、該ホストが該メモリカードとインタフェースすることを可能にする該方法に、該新しいカードファームウェアを提供するように構成される、手段と
を備える、請求項１１に記載のシステム。
【請求項１３】
前記ホストは、前記新しいカードファームウェアを第１のコマンドに組み込む手段を備え、該ホストが前記メモリカードとインタフェースすることを可能にする前記手段に該第１のコマンドを提供する、請求項１２に記載のシステム。
【請求項１４】
前記ホストが前記メモリカードとインタフェースすることを可能にする前記手段は、前記組み込まれた新しいカードファームウェアを前記第１のコマンドから実質的に抽出する手段を備える、請求項１３に記載のシステム。
【請求項１５】
前記ホストは、前記メモリカードに情報を書き込むように構成される、請求項１２に記載のシステム。
【請求項１６】
前記ホストは、前記メモリカードから情報を読み出すように構成される、請求項１２に記載のシステム。
【請求項１７】
前記メモリカードは、不揮発性メモリを含む、請求項１１に記載のシステム。
【請求項１８】
前記メモリカードは、セキュアデジタルカード、Ｃｏｍｐａｃｔ  Ｆｌａｓｈカード、マルチメディアカードおよびＭｅｍｏｒｙ  Ｓｔｉｃｋカードからなる群より選択されるメモリカードである、請求項１５に記載のシステム。
【請求項１９】
リーダとインタフェースするように構成されるメモリ格納デバイスであって、
データを格納するように構成される記憶素子と、
該記憶素子と協働して該データを格納し、かつ命令を実行するように構成されるファームウェアであって、インシステムプログラミング能力をサポートするようにさらに構成され、該インシステムプログラミング能力は、該ファームウェアが実質的に更新されることを可能にし、他方、該メモリ格納デバイスは、該リーダとインタフェースする、ファームウェアと
を備える、メモリ格納デバイス。
【請求項２０】
前記リーダを介して前記ファームウェアの更新を受信するように構成される受信メカニズムをさらに備える、請求項１９に記載のメモリ格納デバイス。
【請求項２１】
前記ファームウェアは、該ファームウェアを更新する前記更新を収納する、請求項２０に記載のメモリ格納デバイス。
【請求項２２】
前記更新されたファームウェアは、パワーオンリセットを実行して、前記メモリ格納デバイスと関連付けられた該ファームウェアを実質的にリセットする能力を備える、請求項２１に記載のメモリ格納デバイス。
【請求項２３】
コントローラであって、前記ファームウェアが該コントローラに含まれる、コントローラをさらに備える、請求項１９に記載のメモリ格納デバイス。
【請求項２４】
前記記憶素子は、不揮発性メモリ記憶素子である、請求項１９に記載のメモリ格納デバイス。
【請求項２５】
前記メモリ格納デバイスは、セキュアデジタルカード、Ｃｏｍｐａｃｔ  Ｆｌａｓｈカード、マルチメディアカードおよびＭｅｍｏｒｙ  Ｓｔｉｃｋカードからなる群より選択されるメモリ格納デバイスである、請求項２４に記載のメモリ格納デバイス。
【請求項２６】
メモリデバイスが計算システムと通信することを可能にするように構成されるアダプタであって、
該メモリデバイスを受け取るように構成されるポートと、
インシステムプログラミング能力をサポートするように構成されるファームウェアであって、該インシステムプログラミング能力は、該計算システムが該メモリデバイスの更新されたファームウェアコードを、該アダプタを介して該メモリデバイスに提供することを可能にする工程を含む、ファームウェアと
を備える、アダプタ。
【請求項２７】
ＵＳＢリーダまたはＰＣリーダのうちの一つである、請求項２５に記載のアダプタ。
【請求項２８】
ホストとリーダとメモリ格納デバイスとを備えるコンピュータシステム内で用いるために適切であるコマンド記述子であって、該リーダおよび該メモリ格納デバイスは、該リーダと関連付けられたファームウェアのインシステムプログラミング更新をサポートするように構成され、該コマンド記述子は、
演算コードを示すように構成されるビットの第１のセットであって、該演算コードは、該コマンド記述子によってサポートされる第１のコマンドと関連付けられる、ビットの第１のセットと、
インシステムプログラムが該メモリ格納デバイス内でイネーブルされるべきことを示すように構成される、少なくとも第１のビットと
を備える、コマンド記述子。
【請求項２９】
少なくとも第２のコマンドが前記リーダを介して前記ホストから前記メモリ格納デバイスに通過することが可能であることを示すように構成される少なくとも第２のビットであって、該第２のコマンドは、パススルーコマンドである、第２のビットをさらに備える、請求項２８に記載のコマンド記述子。
【請求項３０】
前記少なくとも第１のビットは、前記リーダと関係付けられた前記ファームウェアに、該ファームウェアの前記インシステムプログラミング更新がサポートされることを示すように内部フラグを実質的に設定させるように構成される、請求項２８に記載のコマンド記述子。
【発明の詳細な説明】
【背景技術】
【０００１】
（発明の背景）
（１．発明の分野）
本発明は、概して、マスデジタルデータ格納システムに関する。より具体的には、本発明は、ユーザがメモリカード等のマスデジタル格納システムと関連付けられたファームウェアを更新することを可能にするシステムおよび方法に関する。
【０００２】
（２．関連技術の説明）
フラッシュメモリ格納システム等の不揮発性メモリシステムの使用は、このようなメモリシステムの物理的大きさがコンパクトであり、不揮発性メモリが繰返し再プログラムされ得るために益々増加している。フラッシュメモリ格納システムのコンパクトな物理的大きさは、益々普及しつつあるデバイスにおけるこのような格納システムの使用を容易にする。しかしながら、フラッシュメモリ格納システムを使用するデバイスは、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレーヤ、ハンドヘルドパーソナルコンピュータおよび全地球測位デバイスを含むが、これらに限定されない。フラッシュメモリ格納システムに含まれる繰返し再プログラムする不揮発性メモリの能力は、フラッシュメモリ格納システムが用いられ、かつ再使用されることを可能にする。
【０００３】
メモリカード等のフラッシュメモリシステム上で命令が実行されることを可能にするファームウェアが更新される必要がある場合、ユーザは、通常、メモリカードの製造業者にカードを送り返す。製造業者は、例えば、Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（ＣＦ）カードまたはＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ（ＳＤ）カードと等のメモリカード上のファームウェアを更新し得、カードに新しい機能を提供するか、またはファームウェア内のバグを修正する。通常、製造業者は、ファームウェアを更新する専用のハードウェアを用い得る。当業者によって理解されるように、メモリカード内のファームウェアを更新するために用いられるプロセッサは、通常、複雑であり、エラーが発生し易い。従って、メモリカード内のファームウェアの更新は、多くの場合、メモリカードの製造業者にとって時間を要する困難なプロセスである。
【０００４】
製造業者にとって時間を要し、かつ困難であるということに加えて、メモリカード内のファームウェアを更新することは、多くの場合、ユーザにとって不便なプロセスである。更新するために、製造業者にメモリカードを送るか、そうでない場合、提供し、更新されたメモリカードの返却を待つことは、特に、メモリカードが、長期間にわたってユーザに利用可能でない場合、不便であり得る。
【０００５】
従って、所望されるのは、メモリカード上のファームウェアが効率的に更新されることを可能にするシステムである。具体的には、必要とされるのは、メモリカード上のファームウェアがユーザによって効率的かつ比較的容易に更新されることを可能にし、メモリカードが製造業者に返却されることを必要としないシステムおよび方法である。
【発明の開示】
【課題を解決するための手段】
【０００６】
（発明の要旨）
本発明は、フラッシュメモリカードと関連付けられたファームウェアが更新されることを効率的に可能にするシステムおよび方法に関する。本発明の１つの局面によると、メモリ格納デバイスと関連付けられたファームウェアを更新する方法は、ホストに新しいファームウェアを提供する工程、およびホストからそのホストと通信するリーダにファームウェアを送信する工程を含む。本方法は、新しいファームウェアをリーダからメモリ格納デバイス送信する工程、および新しいファームウェアをメモリ格納デバイスに収納して、新しいファームウェアが、インストールされたファームウェアと少なくとも部分的に置き換わる工程をさらに含む。１実施形態において、本方法は、新しいファームウェアを第１のコマンドに組み込む工程をさらに含む。このような実施形態において、新しいファームウェアをホストからリーダに送信することは、第１のコマンドをホストからリーダに送信する工程を含む。
【０００７】
別の実施形態において、新しいファームウェアをメモリ格納デバイス内に収納することは、ホストを用いてメモリ格納デバイスの中に新しいファームウェアを書き込むことによって、インストールされたファームウェアを更新する。このような実施形態において、本方法は、新しいファームウェアがメモリ格納デバイスに収納されることを可能にするインシステムプログラミング能力をリーダに対してイネーブルすることをさらに含み得る。
【０００８】
フラッシュメモリカード等のメモリ格納デバイス上のファームウェアが、ホストおよびリーダを使用して、ユーザによって実質的に更新されることを可能にすることは、更新が効率的に行われることを可能にする。各々がインシステムプログラミング内でサポートするように構成されるリーダおよびフラッシュメモリカードは、比較的長い時間を費やすことを必要とせずにカードファームウェアの更新が実行されることを可能にする。ソフトウェアパッケージを介してユーザに更新を提供し、かつソフトウェアパッケージがカードリーダと協働してメモリカードに更新を提供することを可能にすることによって、メモリカードをアップグレードするプロセスもまた、比較的に複雑でなくなる。
【０００９】
本発明の別の局面によると、メモリカードと関連付けられたファームウェアを更新するシステムは、カードファームウェアがインストールされるメモリカードに加えて、新しいカードファームウェアをメモリカードに提供する手段、および新しいカードファームウェアをメモリカードに収納して、新しいカードファームウェアがインストールされたカードファームウェアと少なくとも部分的に置き換わるようにする手段を含む。１実施形態において、新しいカードファームウェアをメモリカードに提供する手段は、ホスト、およびこのホストがメモリカードとインタフェースすることを可能にする手段を含む。ホストは、ホストがメモリカードとインタフェースすることを可能にする手段に新しいカードファームウェアを提供し、ホストがメモリカードとインタフェースすることを可能にする手段は、新しいファームウェアをメモリカードに送信する手段を含む。
【００１０】
本発明の別の局面によると、リーダとインタフェースするメモリ格納デバイスは、データおよびファームウェアを格納する記憶素子を含む。ファームウェアは、記憶素子と協働してデータを格納し、かつ命令を実行する。ファームウェアは、ファームウェアが実質的に更新され、他方、メモリ格納デバイスは、リーダとインタフェースされることを可能にするインシステムプログラミング能力をさらにサポートする。１実施形態において、メモリ格納デバイスは、さらに、リーダによるファームウェアの更新を受信する受信するメカニズムを含む。このような実施形態において、ファームウェアは、ファームウェアを更新する更新を収納する。
【００１１】
本発明の別の局面によると、メモリデバイスが計算システムと通信することを可能にするアダプタは、ポートおよびファームウェアを含む。ポートは、メモリデバイスを実質的にアダプタの中に受け取るように構成され、ファームウェアは、インシステムプログラミング能力をサポートする。インシステムプログラミング能力は、演算システムが、更新されたメモリデバイスのファームウェアコードを、メモリデバイスに提供することを、アダプタを介して可能にすることを含む。１実施形態において、アダプタは、ＵＳＢリーダまたはＰＣリーダのうちの１つである。
【００１２】
本発明のこれらのおよび他の利点は、以下における詳細な説明を読み、図面の種々の図を検討することによって明らかになる。
【００１３】
本発明は、添付の図面と関連付けられた以下の説明を参照することによって最もよく理解され得る。
【００１４】
（実施形態の詳細な説明）
フラッシュメモリカード上のファームウェアを更新またはアップグレードするための従来のプロセスは、多くの場合、所有者またはユーザにとって不便であり、時間を要し、かつ困難である。通常、製造業者がユーザによって所有されるメモリカード上のファームウェアを更新するので、ユーザが製造業者にメモリカードを提供することが必要であり、メモリカードが製造業者の手元にある間、メモリカードはユーザによって使用され得ない。ユーザによって用いられるメモリカード上のファームウェアを更新するプロセスは、多くの場合、複雑であり、従って、時間を要し、かつエラーを生じ易い。
【００１５】
フラッシュメモリカード上のファームウェアが、例えば、コンピュータ、およびユーザにアクセス可能であるカードリーダを用いて、ユーザによって、実質的に更新されることを可能にすることは、更新が、効率的、かつ、通常、比較的便利に実行されることを可能にする。ソフトウェアパッケージを介してユーザに更新を提供することによって、およびソフトウェアパッケージがカードリーダと協働して、メモリカードに更新を提供することを可能にすることによって、メモリカードをアップグレードするプロセスは、さらに、比較的複雑でなくなる。
【００１６】
メモリカードと関連付けられたファームウェアが更新されることを可能にするシステム全体において用いるために適切であるメモリカードは、通常、ホストシステムと共に用いられる。図１を最初に参照して、例えば、Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（ＣＦ）メモリカードまたはＳｅｃｕｒｅ  Ｄｉｇｉｔａｌ（ＳＤ）カードといった不揮発性メモリデバイスを含む一般的なホストシステムが記載される。ホストコンピュータシステム１００は、通常、マイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２、および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００が、通常、例えば、表示デバイスおよびネットワークデバイス（例示する目的で図示せず）といった他のコンポーネントを含み得ることが理解されるべきである。
【００１７】
通常、ホストシステム１００は、画像情報、音声情報およびビデオ画像情報を含むが、これらに限定されない情報をキャプチャすることが可能であり得る。このような情報は、リアルタイムでキャプチャされ得、ワイヤレス方式でホストシステム１００に伝送され得る。ホストシステム１００は実質的に任意のシステムであり得るが、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、オーディオプレーヤまたはビデオプレーヤといったシステムである。しかしながら、ホストシステム１００は、通常、実質的に、データまたは情報を格納し、かつデータまたは情報を取り出す任意のシステムであり得ることが理解されるべきである。
【００１８】
ホストシステム１００は、さらに、データをキャプチャするだけか、またはデータを取り出すだけかのシステムでもあり得る。すなわち、ホストシステム１００は、データの格納専用システムであり得るか、またはホストシステム１００は、データの読み出し専用システムであり得る。例として、ホストシステム１００は、データを書き込むかまたは格納するためだけに構成されるメモリライタであり得る。あるいは、ホストシステム１００は、通常、データをキャプチャするのではなく、データを読み出すか、または取り出すように構成されるＭＰ３プレーヤなどのデバイスであり得る。
【００１９】
１実施形態において、取り外し可能な不揮発性メモリデバイスである不揮発性メモリデバイス１２０は、バス１０４とインタフェースして情報を格納するように構成される。通常、不揮発性メモリデバイス１２０は、インタフェース１３０を介してバス１０４と通信する。インタフェース１３０は、当業者によって理解されるように、バス１０４への負荷を低減するように利用され得る。１実施形態において、インタフェース１３０は、リーダまたはアダプタであり得る。
【００２０】
不揮発性メモリデバイス１２０は、不揮発性メモリ１２４およびメモリ制御システム１２８を含む。１実施形態において、不揮発性メモリデバイス１２０は、単一チップまたはダイ上でインプリメントされ得る。あるいは、不揮発性メモリデバイス１２０は、複数チップモジュール、または不揮発性メモリデバイス１２０として共に用いられ得る複数の離散コンポーネント上でインプリメントされ得る。
【００２１】
不揮発性メモリ１２４またはコアは、必要に応じてデータがアクセスおよび読み出され得るようにデータを格納するように構成される。不揮発性メモリ１２４内の特定のデータが消去され得ないことが理解されるが、不揮発性メモリ１２４に格納されるデータは、また、適切に消去され得る。データを格納する、読み出す、消去するプロセスは、通常、メモリ制御システム１２８によって制御される。１実施形態において、メモリ制御システム１２８は、不揮発性メモリ１２４の動作を管理して、不揮発性メモリ１２４の耐用年数が実質的に均等に使い切られるようにすることによって、不揮発性メモリ１２４の寿命が実質的に最大化されるようにする。
【００２２】
不揮発性メモリデバイス１２０が、通常、メモリ制御システム１２８（すなわち、メモリコントローラ）を含むと記載されてきたが、すべての不揮発性メモリデバイスが、コントローラを含むのではないことが理解されるべきである。例として、ＰＣカード、Ｃｏｍｐａｃｔ  Ｆｌａｓｈ  カード、Ｍｕｌｔｉ  ＭｅｄｉａカードおよびＳｅｃｕｒｅ  Ｄｉｇｉｔａｌカードを含むがこれらに限定されない不揮発性メモリデバイスがコントローラを含む一方で、Ｓｍａｒｔ  Ｍｅｄｉａ（Ｒ）カードおよびＭｅｍｏｒｙ  Ｓｔｉｃｋカードを含むがこれらに限定されない他の不揮発性メモリデバイスは、コントローラを含み得ない。不揮発性メモリデバイス１２４がコントローラを含まない実施形態において、当業者によって理解されるように、このコントローラと関連付けられた機能は、単一チップの中に統合され得る。上述のように、不揮発性メモリデバイス１２０は、通常、単一チップデバイスまたは複数チップモジュールのどちらかとして実現され得ることが理解されるべきである。
【００２３】
１実施形態において、ホストシステム１００は、カードリーダインタフェースを介して、メモリデバイス等の不揮発性メモリデバイスに情報を格納するか、または不揮発性メモリデバイスから情報を読み出すコンピュータシステムであり得る。すなわち、ホストシステム１００は、データを記憶およびデータを読み出すためにメモリカードを使用するコンピュータシステムであり得る。図２は、本発明の実施形態によるメモリカードと関連付けられたファームウェアを更新するように協働するコンピュータシステム、リーダおよびメモリカードを図で示す。コンピュータシステム２０２は、通常、リーダ２３０を介してメモリカード２２０と通信する。リーダ２３０は、通常、コンピュータシステム２０２がメモリカード２２０のメモリ２２４内にデータを格納し、およびメモリ２２４からデータを取り出すことを可能にするように、コンピュータシステム２０２とメモリカード２２０との間のインタフェースとして利用される。すなわち、コンピュータシステム２０２がメモリカード２２０と通信して、コンピュータシステム２０２とメモリカード２２０との間にデータを伝送する場合、通信は、リーダ２３０を介して行われる。リーダ２３０は、メモリカード２２０がリーダ２３０と通信可能にインタフェースすることを可能にするポートまたはレセプタクル（図示せず）を備え得、従って、リーダ２３０は、メモリカード２２０とコンピュータシステム２０２との間で通信が行われることを可能にし得る。
【００２４】
メモリカード２２０は、メモリ２２４およびコントローラ２２８の両方を備える。メモリ２２４は、記憶素子、ブロック、または、情報のビットを格納するセルを含み得る。コントローラ２２８は、メモリ２２４とインタフェースし、データのメモリ２２４への格納およびメモリ２２４からの取り出しを容易にする。コントローラ２２８は、命令が実行されるか、またはコントローラ２２８を用いて動作することを効率的に可能にすることによってコントローラ２２８の動作を容易にするカードファームウェア２２９を備える。カードファームウェア２２９がコンピュータシステム２０２およびリーダ２３０を用いて更新され得る実施形態について、カードファームウェア２２９は、インシステムプログラミング（ＩＳＰ）サポート能力をさらに備える。ＩＳＰサポート能力は、通常、カードファームウェア２２９がユーザによって実質的に更新されることを可能にするが、カードファームウェア２２９を更新するために、メモリカード２２０が製造業者に返却されることを必要としない機能性を提供する。
【００２５】
例えば、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）リーダ、またはパーソナルコンピュータ（ＰＣ）カードリーダであり得るリーダ２３０は、リーダ２３０がリーダ２３０の動作と関連する命令を行うことを可能にするリーダファームウェア２３２を含む。カードファームウェア２２９と同様に、リーダファームウェア２３２は、ＩＳＰサポート能力を備える。すなわち、リーダファームウェア２３２は、カードファームウェア２２９の更新およびアップグレードをサポートするように構成される。
【００２６】
カードファームウェア２２９が、例えば、メモリカード２２０の製作者からの通知によって、更新またはアップグレードを必要とすることが判定される場合、新しいかまたは更新されたカードファームウェアを備えるソフトウェア２１０は、コンピュータシステム２０２によってネットワーク２４０から取得され得る。例として、コンピュータシステム２０２は、メモリカード２２０の製造業者と関連するネットワーク２４０上のウェブサイトと通信し得、ソフトウェア２１０を、１実施形態において、ソフトウェアドライバ２０６をダウンロードする。ネットワーク２４０を介してソフトウェア２１０を取得する代わりに、ソフトウェア２１０は、さらに、ＣＤ−ＲＯＭまたはフロッピー（登録商標）ディスクといったメディア格納デバイスを用いて取得され得る。
【００２７】
ソフトウェア２１０に含まれる情報は、カードファームウェア２２９を更新するためにリーダ２３０と協働するコンピュータシステム２０２によって用いられ得る。例えば、ソフトウェア２１０に含まれる新しいか、または更新されたカードファームウェアは、コンピュータシステム２０２によってソフトウェア２１０から実質的に抽出され得、リーダ２３０を用いてメモリカード２２０に提供され得る。更新されたカードファームウェアをメモリカード２２０に提供することは、通常、メモリカード２２０への入力として、例えば、入力／出力ポートへの入力として更新されたカードファームウェアを受信することか、またはメモリカード２２０のメカニズム（図示せず）を受信することを含む。メモリカード２２０は、リーダ２３０およびメモリカードの両方がＩＳＰサポート能力を備える場合、更新されたカードファームウェアをうまく収納し得る。
【００２８】
ファームウェアがダウンロードされる場合、ＩＳＰコードの小さいブロックが、ＩＳＰを扱うように割り当てられ得る。一旦更新されたファームウェアのダウンロードが開始すると、カードファームウェア２２９は、通常、実質的に、そのすべての内部アクティビティを完了することが考慮に入れられるべきである。さらに、一旦更新されたカードファームウェアのダウンロードが起動すると、カードファームウェア２２９は、更新されたカードファームウェアの内容の読み出しと関連付けられたコマンド、およびダウンロードプロセスと関連するコマンドを除いて、いかなるコマンドも扱い得ない。一旦ダウンロードが完了すると、メモリカード２２０は、新規にインストールされたファームウェアを用いてリセット手続きを実行し得る。
【００２９】
図３を参照して、メモリカード上のカードファームウェアを更新することと関連する一般的な工程が本発明の実施形態により記載され得る。カードファームウェアを更新するプロセス３０２は、ステップ３０６で開始し、ここで、現在メモリ上にあるカードファームウェアと実質的に置き換わるべき新しいカードファームウェアを備えるソフトウェアが、コンピュータ、すなわち、メモリカードと通信するコンピュータ上にダウンロードされる。図２を参照してすでに記載されたように、新しいカードファームウェアを備えるソフトウェアは、ネットワークからコンピュータ上にダウンロードされ得る。
【００３０】
一旦ソフトウェアがダウンロードされると、ソフトウェアは、工程３１０にて実行されて、コンピュータとメモリカードとの間のインタフェースとして利用されるリーダ上に新しいカードファームウェアをダウンロードする。１実施形態において、ソフトウェアを実行することは、新しいカードファームウェアをソフトウェアから実質的に抽出することを含み、従って、新しいカードファームウェアがリーダに送信されるか、またはダウンロードされ得る。新しいカードファームウェアがリーダ上にダウンロードされた後、プロセスの流れは、工程３１４に移り、ここで、リーダは、新しいカードファームウェアをメモリカードに送信またはダウンロードする。新しいカードファームウェアを受信、またはそうでない場合、取得すると、新しいカードファームウェアは、工程３１８においてメモリカードにインストールされる。通常、新しいカードファームウェアは、すでにメモリカード上にあったカードファームウェアと置き換わるか、またはこれを強化する。カードファームウェアを更新するプロセスは、一旦新しいカードファームウェアがメモリカード上にインストールされると完了する。
【００３１】
通常、カードファームウェアを更新する特定のプロセスは、更新されているメモリカードのタイプに依存して異なり得る。例として、ＳＤメモリカードのカードファームウェアを更新するプロセスは、ＣＦメモリカード上のカードファームウェアを更新するプロセスとは異なり得る。ＳＤメモリカードのカードファームウェアを更新する１つの適切なプロセスは、図４Ａおよび図４Ｂを参照して説明され、ＣＦメモリカードのカードファームウェアを更新する１つの適切なプロセスは、図５を参照して後述される。
【００３２】
図４Ａおよび図４Ｂは、本発明の実施形態による、ＳＤカード上のファームウェアを更新することと関連する工程を示すプロセスフローチャートである。ＳＤカード上のファームウェアを更新するプロセス４００は、工程４０４にて開始し、ここで、ホストコンピュータは、ホストコンピュータがＳＤカードとインタフェースすることを可能にするリーダがＩＳＰをサポートするか否かを判定する。記載される実施形態において、このような判定は、ＩＳＰサポートのためのｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）Ｉｎｑｕｉｒｙデータ情報がリーダ上で利用可能であるか否かを点検することによって下され得る。当業者によって理解されるように、ＳＣＳＩは、カードリーダ等の周辺機器をコンピュータと接続するためのＵＳＢシステムによって用いられるパラレルインタフェース標準規格である。ＳＤカードがＩＳＰをサポートするか否かの判定は、カード専用データ情報内の特定のビットが設定されるか否か、例えば、カード専用データ情報内の第１９番目のビットが「１」にセットされるか否かを判定することを含み得る。
【００３３】
ＳＤカード上のファームウェアを更新することと関連する工程は、さらに、ファームウェアをＭｕｌｔｉＭｅｄｉａカード（ＭＭＣ）上のファームウェアを更新するために適用され得ることが理解されるべきである。プロセス４００と関連するこのような工程は、ＳＤカードに関して記載されたが、通常、ＭＭＣカードにも適用可能である。
【００３４】
工程４０８にて、リーダがＩＳＰをサポートするか否かに関して、判定が下される。リーダがＩＳＰをサポートしないことが判定された場合、リーダは、ＳＤカード上のファームウェアを更新することを容易にするために用いられ得ないことが示される。従って、プロセスの流れは、リーダがＩＳＰをサポートしないことを示す例外が投げられる工程４１２に移る。一旦例外が投げられると、ＳＤカード上のファームウェアを更新するプロセスは、有効に終了される。
【００３５】
あるいは、リーダがＩＳＰをサポートすることが工程４０８にて判定された場合、工程４１６において、ホストは、コマンド、例えば、ＳＣＳＩ  ＣｈｅｃｋＩＳＰコマンドを、ＩＳＰサポートを可能にするリーダ上のファームウェアに送信する。Ｃｈｅｃｋ  ＩＳＰコマンドの１実施形態は、図６Ａに関して後述される。Ｃｈｅｃｋ  ＩＳＰコマンドが送信された後、ＩＳＰサポートは、工程４２０にてリーダに対してイネーブルされる。イネーブルされたＩＳＰサポートは、１実施形態において、カード専用データ情報内の第２０番目のビットを、Ｃｈｅｃｋ  ＩＳＰコマンドに応答して「１」にセットすることを含み得る。ＩＳＰサポートをイネーブルさせるコマンドに応答して、リーダは、図６Ｂを参照して記載されるように、ＳＤカードの相対カードアドレス（ＲＣＡ）を実質的に識別するホストにデータ構造を戻し得る。
【００３６】
一旦ＩＳＰサポートがリーダに対してイネーブルされると、ＩＳＰサポートは、工程４２４にて、ＳＤまたはＭＭＣカードに対してイネーブルされる。１実施形態において、ＳＤまたはＭＭＣカードに対してＩＳＰサポートをイネーブルすることは、第２０番目のビットセットを有するカード専用データを書き込むこと、すなわち、ＩＳＰがサポートされることを、ホストを用いてＳＤまたはＭＭＣカードに示すことを含み得る。カード専用データを取り出すためのＣＭＤ９コマンドおよびカード専用データをプログラムするためのＣＭＤ２７コマンドは、図６Ｃに関して後述されるように、ＳＣＳＩ  Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンド内に実質的に組み込まれ得る。
【００３７】
カード専用データがＳＤカードまたはＭＭＣカードに書き込まれた後、ＣＭＤ１６コマンドと関連付けられたブロック長は、工程４２８において、ホストからＳＤカードに、またはＭＭＣカードに転送されるべきカードファームウェアの大きさに設定される。当業者によって理解されるように、ＣＭＤ１６コマンドは、ＳＤおよびＭＭＣカードの両方によって認識される標準的コマンドである。ＣＭＤ１６コマンドは、ＭＭＣＡ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｔｔｅｅによる「ＭｕｌｔｉＭｅｄｉａ  Ｃａｒｄ  Ｓｙｓｔｅｍ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ２．２」（２０００年１月に出願）に記載され、同出願は、参考のため、その全体を本明細書中で援用される。ＣＭＤ１６コマンドは、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンドに組み込まれ得る。
【００３８】
工程４３２において、ＣＭＤ１６コマンドおよび新しいカードファームウェアは、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンド内に組み込まれ得るＡＣＭＤ２４コマンド等のコマンドを用いて、ホストからリーダを介してＳＤカードに送信される。通常、ＡＣＭＤ２４コマンドは、ＳＤカードに新しいカードファームウェアが書き込まれることを可能にするコマンドである。従って、一旦ＡＣＭＤ２４コマンドがＳＤカードによって受信されると、ＳＤカードは、実質的に新しいカードファームウェアをインストールし得る。
【００３９】
一旦新しいカードファームウェアがＳＤカード上にインストールされると、カードは、工程４３６にて、パワーオンリセットを実行する。すなわち、ＳＤカードは、有効に自動的に再起動して、ＳＤカードと関連付けられた初期化コードをイネーブルして、更新されたカードファームウェア、すなわち、新しいカードファームウェアを含むカードファームウェアを実質的に初期化する。１実施形態において、カードファームウェアによって実行されるパワーオンリセットは、実質的に、ＳＤカードの電源を切り、その後、ＳＤカードのバックアップに電源を供給する。パワーオンリセットが実行された後、工程４４０において、ホストは、Ｃｈｅｃｋ  ＩＳＰコマンドをリーダに送信し、リーダは、ＩＳＰサポートをディセーブルする。ＩＳＰサポートは、Ｃｈｅｃｋ  ＩＳＰコマンドを送信して適切なビットが「０」に設定されることによってディセーブルされ得る。
【００４０】
ＩＳＰサポートをディセーブルするコマンドを受信すると、工程４４４において、リーダは、通常、ホストから自動的に電気的に切り離される。ホストからリーダを電気的に切り離すことが、ホストのＵＳＢバスからリーダが自動的に切り離されることを含み得る一方で、リーダがホストから電気的に切り離されることは、さらに、ホストからリーダを物理的に切り離すこともまた含み得る。一旦リーダがホストから電気的に切り離されると、工程４４８において、リーダは、ＳＤカードにコマンドを送信して、ＳＤカードを再初期化する。ＣＭＤ０コマンドは、ＳＤカードをリセットし得、ＣＭＤ１コマンドは、ＭＭＣカードの初期化プロセスを活性化し得、ＡＣＭＤ４１は、ＳＤカードを活性化し得る。
【００４１】
ＳＤカードが再初期化された後、工程４５２において、リーダはホストと自動的に電気的に再接続する。工程４５２において、ホストと自動的に電気的に再接続することによって、リーダは、有効に、ホスト、より具体的には、ホストと関連するソフトウェアが、新しいデバイスとしてのＳＤカードと相互通信するようにする。換言すると、工程４４４におけるリーダの電気的切り離し、および工程４５２におけるリーダの電気的再接続は、実質的に、ホストがＳＤカードを新しいデバイスとして見なすようにし、従って、ＳＤカード上の更新されたファームウェアが、ホストによって認識されることを可能にする。一旦リーダがホストと自動的に電気的に再接続すると、ＳＤカード上のカードファームウェアを更新するプロセスが完了する。
【００４２】
ＩＳＰをサポートし得る、従って、ユーザによって実質的に更新され得るカードファームウェアを含むメモリカードの別のタイプは、ＣＦカードである。図５は、本発明の実施形態による、ＣＦカード上のファームウェアを更新することと関連する工程を示すプロセスフローチャートである。新しいファームウェアをＣＦカードに提供するプロセス５００は、工程５０４において開始し、ここで、ホストコンピュータは、ホストコンピュータがＣＦカードと接続して動作させることを可能にするリーダがＩＳＰをサポートするか否かを判定する。記載された実施形態において、このような判定は、ＩＳＰサポートのためのＳＣＳＩ  Ｉｎｑｕｉｒｙデータ情報がリーダ上で利用可能か否かを点検することによって下され得る。ＣＦカードがＩＳＰをサポートするか否かの判定は、デバイス情報を含む特定のワード内に特定のビットが適切に設定されるか否か、例えば、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ情報における８３語のビット０が「１」にセットされるか否かを判定することを含み得る。
【００４３】
リーダがＩＳＰをサポートするか否かが工程５０８にて判定される。リーダがＩＳＰをサポートしないことが判定された場合、リーダは、ＣＦカード上のファームウェアを更新するために用いられ得ないことが示される。従って、プロセスの流れは、工程５１２に移り、ここで、リーダがＩＳＰをサポートしないことを示す例外が投げられる。一旦例外が投げられると、ＣＦカード上のファームウェアを更新するプロセスは、有効に終了される。
【００４４】
あるいは、工程５０８にて、リーダがＩＳＰをサポートすることが判定された場合、ホストは、例えば、ＳＣＳＩ  Ｃｈｅｃｋ  ＩＳＰコマンド等のコマンドをリーダ上のファームウェアに送信してＩＳＰサポートをイネーブルする。ＣＦカードに対して用いるために適切であるＣｈｅｃｋ  ＩＳＰコマンドの１実施形態は、図８Ａに関して後述される。Ｃｈｅｃｋ  ＩＳＰコマンドが送信された後、ＩＳＰサポートは、工程５２０にて、リーダに対してイネーブルされる。ＩＳＰサポートをイネーブルすることは、１実施形態において、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ情報の８６番目のワードにおけるビット０をＣｈｅｃｋ  ＩＳＰコマンドに応答して「１」に設定することを含み得る。
【００４５】
ＣＦカードに対するＩＳＰサポートは、工程５２４にて、イネーブルされる。通常、ホストは、ＣＦカードにコマンドを送信し、これは、ＣＦカードが新しいファームウェアを自動的に受信および収納することを可能にする。１実施形態において、コマンドは、Ｍｅｄｉａ  Ｃａｒｄ  Ｃｈｅｃｋであり得、ＩＳＰは、ＳＣＳＩ  Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドに組み込まれるＡＴ  Ａｔｔａｃｈｍｅｎｔ（ＡＴＡ）コマンドの形態であり得る。当該分野において周知であるＡＴＡコマンドは、ＳａｎＤｉｓｋ  Ｃｏｒｐｏｒａｔｉｏｎ  ｏｆ  Ｓｕｎｎｙｖａｌｅによる「ＣｏｍｐａｃｔＦｌａｓｈ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｐｒｏｄｕｃｔ  Ｍａｎｕａｌ」Ｃａｌｉｆｏｒｎｉａ（２０００年４月出願）に記載される。同出願は、参考のため、その全体が本明細書中に援用される。Ｍｅｄｉａ  Ｃａｒｄ  Ｃｈｅｃｋ  ＣＦ  ＩＳＰコマンドが組み込まれるＳＣＳＩ  Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドが図７Ａに関して後述される。
【００４６】
一旦ＣＦカードに対するＩＳＰサポートがイネーブルされると、工程５２８にて、ホストからＣＦカードに新しいカードファームウェアが送信される。新しいカードファームウェアは、ホストからＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドにおけるＣＦカードに送信され得る。このコマンドは、ＳＣＳＩ  Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドに組み込まれ得るＡＴＡコマンドである。新しいカードファームウェアがＣＦカードに送信された後、ＣＦカードは、工程５３２にて、パワーオンリセット動作を実行し、これは、ＣＦカード上のＩＳＰサポートをディセーブルする。プロセスの流れは、その後、工程５３４に進む。ここで、ホストは、Ｃｈｅｃｋ  ＩＳＰコマンドをリーダに送信して、ＩＳＰサポートをリーダに対してディセーブルする。
【００４７】
ＩＳＰサポートがリーダに対してディセーブルされた後、工程５３６にて、リーダは、通常、ホストから自動的に電気的に切り離される。一旦リーダがホストから電気的に切り離されると、リーダは、工程５４０にて、ＣＦカードにコマンドを送信してＣＦカードを再初期化する。１実施形態において、ＣＦカードをリセットすることに加えて、リーダは、さらに、ＣＦカードからの情報を識別する新しいデバイスを読み出し得る。工程５４０から、プロセスの流れは、工程５４４に移り、ここで、リーダは、自動的に電気的にホストに再接続する。自動的にホストに電気的に再接続することによって、リーダは、ホストまたはより具体的には、ホストと関連するソフトウェアが、実質的に、新しいデバイスとしてのＣＦカードと相互通信させる。リーダが自動的にホストと再接続すると、ＣＦカード上のカードファームウェアを更新するプロセスが完了する。
【００４８】
図４Ａおよび図４Ｂに関してすでに述べられたように、ＳＤカードに対してＩＳＰをサポートするシステム全体は、Ｃｈｅｃｋ  ＩＳＰコマンドの認識を含む。すなわち、ＳＤカードと関連するＩＳＰ機能セットは、Ｃｈｅｃｋ  ＩＳＰコマンドを含む。図６Ａは、本発明の実施形態による、Ｃｈｅｃｋ  ＩＳＰコマンドの図で示す。図６Ａは、本発明の実施形態による、Ｃｈｅｃｋ  ＩＳＰコマンドのコマンド記述子ブロックを図で示す。Ｃｈｅｃｋ  ＩＳＰコマンド記述子ブロック６０２は、通常、１２バイト６０６を含み、各々が８ビット６１０を有する。ブロック６０２は、Ｄ０ｈコマンドコードと関連付けられ、かつ、基本的に、ＳＣＳＩコマンドの成分であり、このコマンドは、ホストからリーダに、例えば、ホストからリーダと関連付けられたファームウェアに送信される。
【００４９】
バイト６０６ａは、オペレーションコードを含むように構成される。バイト６０６ｋのビット６１０ａは、メディアカードパススルーコマンドをイネーブルするように構成される。すなわち、バイト６０６ｋのビット６１０ａは、ホストがリーダにコマンドを送信する代わりに、ホストがコマンドまたはソフトウェアを、実質的にリーダを介してカードに直接送信し得るか否かを示すように構成される。ホストはその後、コマンドをカードに送信する。記載された実施形態において、バイト６０６ｋのビット６１０ａ、またはＰＡＳＳ  ＥＮＢフィールドは、「１」の値にセットされ得、メディアカードパススルー機能性がイネーブルされることを示す。
【００５０】
通常、メディアカードパススルー機能性は、ＩＳＰサポートがイネーブルされるとイネーブルされる。これは、ＩＳＰが通常、パススルーコマンドを用いるためである。ＩＳＰサポートがイネーブルされると、ＩＳＰ  ＥＮＢフィールド、例えば、バイト６０６ｋのビット６１０ｂは、「１」の値に設定され得る。従って、ＩＳＰがパススルーコマンドを用いるので、記載される実施形態において、ＩＳＰ  ＥＮＢフィールドが「１」に設定されると、ＰＡＳＳ  ＥＮＢフィールドもまた「１」に設定される。ＩＳＰサポートをディセーブルするために、ＩＳＰ  ＥＮＢフィールドは、「０」の値に設定され得る。
【００５１】
バイト６０６ｋのビット６１０ｈは、「１」の値に設定され得る「ロックビット」であり、ＩＳＰモードまたはサポート、および、ホストがカードファームウェアを、実質的にリーダを介して直接カードに送信することを可能にするモードであるメディアカードパススルーモードの両方は、ＩＳＰ  ＥＮＢフィールドまたはＰＡＳＳ  ＥＮＢフィールドのどちらかを変更することによってでは変更され得ないことを示す。換言すると、バイト６０６ｋのビット６１０ｈは、ＩＳＰモードおよびメディアカードパススルーモードに関して誤りが生じることを防止するように有効に利用される。
【００５２】
ＩＳＰ  ＥＮＢフィールドが「１」にセットされ、リーダと関連付けられたファームウェアがブロック６０２を受信する場合、リーダファームウェアは、ＩＳＰ処理のために内部フラグを設定し得る。すなわち、リーダファームウェアは、ＩＳＰ処理をイネーブルするように自動的に構成され得る。リーダファームウェアは、さらに、ＳＤカードのカード専用データがＩＳＰサポート機能を有するか否かを判定するために点検し得る。リーダファームウェアが、ＩＳＰ処理をイネーブルするように構成され、ブロック６０２が「０」に設定されたＩＳＰ  ＥＮＢフィールドと共に受信されるか、または消去された場合、リーダファームウェアは、通常、対応するカードファームウェアが更新されたか、またはホストが更新プロセスを終了することを想定する。結果として、リーダは、カードをリセットし得、ホストのＵＳＢバスから自動的に切り離され、かつ、ホストに自動的に再接続する。
【００５３】
１実施形態において、リーダは、Ｃｈｅｃｋ  ＩＳＰコマンドに応答して、データブロックをホストに戻し得る。図６Ｂは、本発明の実施形態による、Ｃｈｅｃｋ  ＩＳＰに応答して、ホストに戻されるデータブロックを図で示す。データブロック６２２は、各々が８ビット６３０の３バイト６２６を含み、受信されたＣｈｅｃｋ  ＩＳＰコマンドの確認として、リーダからホストに送信される。Ｃｈｅｃｋ  ＩＳＰコマンドを受信するリーダが、ＩＳＰをサポートできない場合、リーダは、Ｃｈｅｃｋ  ＩＳＰコマンドが実質的に無効であったことを示すコードをホストに戻し得ることが認識されるべきである。無効のコマンドは、ＳＣＳＩ  Ｓｅｎｓｅ  Ｄａｔａ  Ｆｏｒｍａｔ  ｗｉｔｈ  ＩＬＬＥＧＡＬ  ＲＥＱＵＥＳＴ（Ｖａｌｕｅ５）によって、Ｓｅｎｓｅ  Ｋｅｙとして、およびＩＮＶＡＬＩＤ  ＦＩＥＬＤ  ＩＮ  ＣＤＢ（Ｖａｌｕｅ２４ｈおよび００ｈ）によってＡＳＣおよびＡＳＣＱとして識別される。
【００５４】
データブロック６２２の第１のバイト６２６ａは、ビット６３０ａを含み、これは、リーダが、Ｃｈｅｃｋ  ＩＳＰコマンドが実行された後、メディアカードパススルー能力がイネーブルされるか否かを示すように構成されるか否かを示すＰＡＳＳ  ＥＮＢフィールドである。第１のバイト６２６ａにおける第２のビット６３０ｂは、ＩＳＰサポートがイネーブルされるか否かを示すように構成されるＩＳＰ  ＥＮＢフィールドである。通常、ＰＡＳＳ  ＥＮＢフィールドにおける「１」の値は、メディアカードパススルー能力がイネーブルされることを示し、他方、ＩＳＰ  ＥＮＢフィールドにおける「１」の値は、ＩＳＰサポートがイネーブルされることを示す。
【００５５】
バイト６２６ａのビット６３０ｃ〜ｆは、メディアカードのタイプを含むように構成される。例えば、１実施形態において、カードが標準的ＳＤメモリカードである場合、バイト６２６ａのビット６３０ｃ〜ｆは、「００１」と設定され得、他方、カードがＭＭＣカードである場合、バイト６２６ａのビット６３０ｃ〜ｆは、「０１０」と設定され得る。このような実施形態において、バイト６２６ａのビット６３０ｃ〜ｆは、ＳＤ入力−出力（ＩＯ)カードの場合、「０１１」と設定され得、バイト６２６ａのビット６３０ｃ〜ｆは、パーソナルコンピュータメモリカード国際協会（ＰＣＭＣＩＡ）カードである場合、「１００」と設定され得、バイト６２６ａのビット６３０ｃ〜ｆは、ＣＦカードの場合、「１０１」と設定され得る。カードのタイプと関連付けられた種々のコードは多種多様であり得ることが考慮に入れられるべきである。
【００５６】
いくつかのカードのタイプは、関連するＲＣＡを有する。カードがＳＤカードである場合、例えば、バイト６２６ｂおよび６２６ｃは、実質的に、コマンドが正しいアドレス、すなわち、カードと関連するアドレスに送信されることを確実にするためにホストによって用いられるＲＣＡビットを含み得る。
【００５７】
図６Ｃは、本発明の実施形態による、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンド記述子ブロックを図で示す。対応するＳＣＳＩコマンド記述子（図示せず）内で構成され得るＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンドブロック６５２は、リーダを通過し、Ｄ１ｈコマンドコードと関連付けられるコマンドをＳＤカードに送信することを可能にするように構成される。ブロック６５２は、通常、ＳＣＳＩコマンド全体か、またはラッパ内に組み込まれるＳＤコマンドとして構成される。バイト６５６ａは、記載される実施形態において、Ｄ１ｈコマンドコードと一致するオペレーションコードに関連する情報を含むように構成される。
【００５８】
ブロック６５２に組み込まれるＳＤまたはＭＭＣコマンドは、バイト６５６ｃ〜ｊを含む。リーダがブロック６５２を受信すると、リーダは、実質的に、少なくとも組み込まれたコマンドの部分を除去、例えば、バイト６５６ｃ〜ｊに関連する情報を除去し、組み込まれたコマンドを受信側のＳＣカードに転送する。組み込まれたコマンドは、バイト６５６ｃに格納されるコマンドインデックスを含む。コマンドインデックスは、実質的に、ＳＤカードへのコマンドを保持し、他方、バイト６５６ｄ〜ｇに格納されるコマンド引数は、コマンドインデックスと関連付けられたコマンドへの引数である。バイト６５６ｈ〜ｊは、ホストから転送されるべきデータの量と関連するデータ転送長さを保持する。
【００５９】
ブロック６５２のバイト６５６ｋは、応答タイプを、例えば、ビット６６０ｅ〜ｈに含むように構成され、これは、バイト６５６ｃにおいて識別されたコマンドのＳＤまたはＭＭＣ応答タイプを示す。バイト６５６ｋのビット６６０ｄは、データ転送の方向を示すように構成される。例として、バイト６５６ｋのビット６６０ｄが、「１」の値に設定される場合、データは、リーダからホストに転送され得、他方、バイト６５６ｋのビット６６０ｄが「０」の値に設定された場合、データは、ホストからリーダに転送され得る。バイト６５６ｋ、のビット６６０ｃは、ビット６６０ｃが「１」の値に設定された場合、コマンドが正常のコマンドであると考えられるようにコマンドタイプを示すように構成されるが、ビット６６０ｃが、「０」の値に設定される場合、コマンドは、アプリケーションコマンドであると考えられる。コマンドに関連するバイト６５６ｃに応答して、応答データを取り出すか否かを示すバイト６５６ｋのビット６６０ｂは、応答データが取り出されるべき場合、「１」の値に設定され得、応答データが取り出されるべきでない場合、「０」の値に設定され得る。取り出されるべき任意の応答の長さは、バイト６５６ｈ〜ｊで保持されるデータ転送長さによって実質的に規定される。
【００６０】
通常、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンドは、ブロック６５２と関連する組み込まれたＳＤコマンドの実行を開始する。リーダ、または、より具体的には、リーダと関連付けられたファームウェアは、組み込まれたコマンドをＳＤカードに送信し、かつ任意の予定される応答を受信し得る。例として、組み込まれたコマンドが、ＳＤカードからデータを取り出させるコマンドである場合、リーダは、通常、ＳＤカードからのデータを読み出し、そのデータをホストに転送する。リーダがホストから読み出されるデータをロードするように構成されたバッファを有しない場合、リーダは、ＳＤカードから部分的データを読み出し、その部分的データをホストに転送し得る。通常、バッファを有しないリーダについては、リーダは、実質的に、ＳＤカードからリクエストされたすべてのデータがホストに転送されるまで、部分的データの読み出しおよび転送を継続する。同様に、組み込まれたコマンドは、新しいカードファームウェア等のデータをＳＤカードに書き込ませるコマンドである場合、リーダは、実質的には、同時に、または、少しずつ、例えば、リーダがバッファを含まない場合、ホストからデータを読み出し、このデータをホストからＳＤカードに書き込み得る。当業者によって理解されるように、データ転送は、通常、実質的に任意の適切なプロトコルを用いて達成され得る。１実施形態において、Ｘ３Ｔ１０標準規格に準拠するデータ転送プロトコルが用いられ得る。
【００６１】
ＳＤカードに用いるために適切であるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅコマンドは、通常、ＣＦカードとともに使用するために適切であるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅコマンドとは異なる。図７Ａを参照して、ＣＦカードと関連付けられたファームウェアに更新が行われることを可能にするシステムにおいて使用するために適切であるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドの１実施形態が、本発明により記載される。通常、ＳＣＳＩコマンド記述子全体に組み込まれるＳＣＳＩ  Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドのためのコマンド記述子ブロック７０２は、各々が８ビット７１０の１２バイト７０６を含む。Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドは、通常、Ｄ２ｈコマンドコードと一致する。バイト７０６ａは、記載される実施形態において、Ｄ２ｈコマンドコードと一致する演算コードと関連付けられた情報を含むように構成される。
【００６２】
バイト７０６ｆ〜ｋは、ＡＴＡタスクファイルレジスタを用いて実質的に満たされる。換言すると、バイト７０６ｋは、ＣＦカードと関連付けられたタスクファイルレジスタがデータとして戻され得るようにＡＴＡコマンド１Ｆ２〜１Ｆ７に対応し得る。当業者によって理解されるように、タスクファイルレジスタは、エラーレジスタ、セクタ数レジスタ、セクタレジスタ、シリンダ下位レジスタ、シリンダ高位レジスタ、デバイス／ヘッドレジスタ、およびコマンド／ステータスレジスタを含み得るが、これに限定されない。通常、バイト７０６ｆ〜ｋは、リーダによって抽出されて、ＣＦカードに送信され得る。データがＣＦカードからリーダに転送されるべき実施形態については、レジスタ値は、ＣＦカードから取り出され、図７Ｂに示されるフォーマットでリーダを介してホストに戻され得る。示されるように、図７Ｂに示されるブロック７５２は、ブロック７０２のビット７０６ｃ〜ｊに対応するビット７１６ｃ〜ｊを含むが、ビット７１６ｃ〜ｊは、通常、異なったタスクファイルレジスタ値を有する。
【００６３】
バイト７０６ｌは、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドを開始するホストが、ＡＴＡタスクファイルレジスタをリードバックすることを意図するか否かを示すビット７１０ａを含むように構成される。バイト７０６ｌのビット７１０ａが「１」の値に設定される場合、ホストが、実質的に、ＡＴＡタスクファイルレジスタをリードバックすることのみを意図することが示され得る。戻されたタスクファイルレジスタのデータフォーマットは、図７Ａに示される。バイト７０６ｌの第２のビット７１０ｂは、読み出しまたは入力動作のために「１」の値に設定され、書き込みまたは出力動作のために「０」の値に設定されるように構成される。バイト７０６１の第３のビット７１０ｃは、転送されるべきデータがあるか否かを示すように構成される。
【００６４】
通常、バイト７０６ｌのビット７１０が「１」の値に設定される場合を除いて、リーダは、バイト７０６ｆ〜ｋを抽出し、タスクファイルレジスタをＣＦカードに送信する。データの転送がリクエストされる場合、すなわち、バイト７０６ｌのビット７１０ｃが、転送されるべきデータがあることを示す場合、タスクファイルレジスタは、セクタ数、セクタ、シリンダ、およびＵＳＢマス格納クラスバルクオンリープロトコルといった標準的プロトコルを用いるヘッドレジスタを規定する。データ転送の方向およびデータ転送長さは、両方とも、通常、ブロック７０２において、例えば、バイト７０６１のビット７１０ｂにおいて、および実質的にブロック７０２を含むＵＳＢラッパにおいて規定される。１実施形態において、用いられるデータ転送プロトコルは、Ｘ３Ｔ１３標準規格等の標準規格と一致する。
【００６５】
ＣＦカードとともに用いられるために適切であるＣｈｅｃｋ  ＩＳＰコマンドは、リーダファームウェアによって生成されて、ＣＦカードに送信され得る。記載される実施形態において、このようなＣｈｅｃｋ  ＩＳＰコマンドは、さらに、ＳＤカードとともに用いるために適切であり得る。すなわち、Ｃｈｅｃｋ  ＩＳＰコマンドは、ＣＦカードおよびＳＤカードに対して同じであり得る。このようなＣｈｅｃｋ  ＩＳＰコマンドは、ＣＦカードのためのＤ５ｈコマンドコードと一致し得、一旦リーダがコマンドを生成すると、通常、リーダからフラッシュカードに送信される。図８Ａは、本発明の実施形態による、ＣＦカードとともに用いるために適切であるＣｈｅｃｋ  ＩＳＰコマンドと関連付けられたコマンドブロックを図で示す。コマンドブロック８０４は、レジスタ８１２と関連付けられたビット８０８を含む。１実施形態において、レジスタ８１２は、図７Ａのバイト７０６ｆ〜７０６ｋと関連付けられ得る。すなわち、ブロック８０４は、図７Ａのブロック７０２に有効に組み込まれ得る。
【００６６】
レジスタ８１２ａと関連付けられたビット８０８ａは、ＣＦカードまたはＳＤカードがＩＳＰをサポートするようにイネーブルされるか、またはＩＳＰをサポートすることからディセーブルされるべきかを示すように構成される。レジスタ８１２ａのビット８０８ａは、例えば、ＩＳＰモードがイネーブルされるべきであることを示すために「１」の値に設定され得、ＩＳＰモードがディセーブルされるべきであることを示すために「０」の値にセットされ得る。レジスタ８１２ｇと関連付けられたビット８０８は、Ｄｈ５コマンドコードを示すように構成される。
【００６７】
通常、リーダがメディアカードパススルーフィーチャセットをサポートし、Ｃｈｅｃｋ  ＩＳＰコマンド内の適切なビットがＩＳＰサポートをイネーブルするように設定され、例えば、図８Ａのバイト８１２ａのビット８０８ａが「１」に設定される場合、リーダは、実質的に、任意の次のメディアカードパススルーコマンドを処理するように構成される。図８Ａのバイト８１２ａのビット８０８ａが「０」に設定される場合、ホストがＣＦカード上のディセーブルされたＩＳＰモードを有することが示される。従って、ＩＳＰコマンドは、リーダを介してＣＦカードに送信され得ない。
【００６８】
ＩＳＰコマンドをサポートするリーダと関連付けられたステータスレジスタ出力は、図８Ｂに関して記載され得る。図８Ｂは、本発明により、ＣＦカードによってリーダに戻され得るデータブロックを図で示す。ブロック８１４は、各々が８ビット８１８を含むレジスタ８２２を含む。記載される実施形態において、０ｈは、エラーレジスタ８２２ａ、およびシリンダレジスタ８２２ｄ、８２２ｅにて戻され、他方、５５ｈは、セクタ数レジスタ８２２ｂにて戻され、ＡＡｈは、セクタ数レジスタ８２２ｃにて戻される。
【００６９】
デバイスヘッドレジスタ８２２ｆは、選択されたデバイスをビット８１８ｅで示し、通常、「０」の値に設定され、ただ１つのメディアカードがリーダと接続されるように、および書き込み禁止がビット８１８ｄでＣＦカードにてアクティブであるか否かを示すように構成される。書き込み禁止がアクティブの場合、レジスタ８２２ｆのビット８１８ｄが「１」の値にセットされ得るが、書き込み禁止がアクティブでない場合、レジスタ８２２ｆのビット８１８ｄは、「０」の値に設定され得る。レジスタ８２２ｆのビット８１８ａ〜ｃは、メディアタイプを示すようにセットされ得る。例えば、カードがＣＦカードである場合、レジスタ８２２ｆのビット８１８ａ〜ｃは、「１０１」の値に設定され得る。ブロック８１４が、ＣＦカードからリーダに転送されるために適切であると記載されている一方で、ブロック８１４は、さらに、他のメディアタイプとともに用いるように構成され得ることが理解されるべきである。ブロック８１４が他のメディアタイプとともに用いられる場合、レジスタ８２２ｆのビット８１８ａ〜ｃの内容は、適切なメディアタイプを示し得る。
【００７０】
通常、５０Ｈを戻すステータスレジスタ８２２ｇは、ビット８１８ｈを含み、これは、一旦、例えば、Ｃｈｅｃｋ  ＩＳＰコマンド等のコマンドが正しく完了すると、「０」の値に設定される。ステータスレジスタ８２２ｇ内で、ビット８１８ｇは、「１」の値に設定され得、他方、デバイスの故障ビット８１８ｆ、ビット８１８ｄおよびエラービット８１８ｄは、コマンドが完了すると「０」の値に設定され得る。
【００７１】
Ｃｈｅｃｋ  ＩＳＰコマンドを処理する際にエラーが生じた場合、エラー出力ブロックは、ＣＦカードからリーダに送信され得る。このようなエラー出力ブロックは、通常、ＩＳＰサポートがイネーブルされないことを示し得る。図８Ｃは、エラーが、本発明の実施形態により、Ｃｈｅｃｋ  ＩＳＰコマンドを処理する際に生じた場合、ＣＦカードからリーダに送信され得るエラーデータブロックを図で示す。エラーデータブロック８２４は、ビット８２８に分割されるレジスタ８３２を含む。エラーが、Ｃｈｅｃｋ  ＩＳＰコマンド等のコマンドを処理する際に生じる場合、エラーレジスタ８３２ａ内のビット、例えば、ビット８２８ｃは、通常、コマンドがうまく処理されなかったことを示すように設定される。１実施形態において、エラーレジスタ８３２ａのビット８２８ｃは、コマンドが有効に中止されたことを示すように、「１」の値に設定され得る。
【００７２】
デバイス／ヘッドレジスタ８３２ｆと関連付けられるビット８２８ｅは、選択されたデバイスを示すように構成され、通常、「０」の値に設定され、ただ１つのメディアカードがリーダと接続される。ステータスレジスタ８３２ｇは、種々の情報を含むように構成される。例として、ステータスレジスタ８３２ｇは、ビット８２８ｈが実質的に「０」の値にクリアされて、コマンドの実行が有効に完了したことを示すように構成されるが、他方、通常、「１」の値に設定されて、エラーが生じたことを示すビット８２８ａと、デバイスに故障が生じた場合、デバイスに故障が生じたときに「１」の値に設定されるように構成されるビット８２８ｆとを含む。記載された実施形態において、レジスタ８３２ｇのビット８２８ｇは、「１」の値にセットされ得、ブロック８２４をエラーデータブロックとして識別し、他方、レジスタ８３２ｇのビット８２８ｄは、「０」に設定され得、転送するデータがもはやないことを識別する。
【００７３】
Ｄ６ｈコマンドコードと一致し得るＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドは、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンド、例えば、図７Ａに関する上述のコマンドと関連付けられる。Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドは、通常、対応するＳＣＳＩコマンド内に組み込まれるネイティブコマンドの実行を開始する。組み込まれたコマンドがＣＦカード、または潜在的な（ｕｎｄｅｒｌｙｉｎｇ）カードからファームウェアデータを取り出させるコマンドである場合、対応するリーダは、ＣＦカードからのデータを読み出し、読み出したデータをホストに転送し得る。リーダがバッファを含まない場合、部分データは、ＣＦカードから読み出され、実質的に読み出されたすべてのデータが転送されるまで繰返され得る手順で、ホストに転送され得る。あるいは、組み込まれたコマンドが、ファームウェアデータをＣＦカードに書き込ませるコマンド、すなわち、ＣＦカード上のファームウェアを更新させるコマンドである場合、リーダは、通常、ホストからデータを読み出し、読み出されたデータをホストからＣＦカードに転送する。アダプタが、バッファを有しない場合、部分データは、ホストから読み出され、実質的に、すべての読み出されたデータがＣＦカードに転送されるまで、繰返しＣＦカードに転送され得る。
【００７４】
図８Ｄは、本発明の実施形態による、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドの一部分として、リーダとＣＦカードとの間に送信され得るコマンドブロックを図で示す。コマンドブロック８４４は、各々が８ビット８４８を含むレジスタ８５２を含む。コマンドレジスタ８５２ｇは、ブロック８４４がＤ６ｈコマンドコードと一致することを示すように構成され、他方、フィーチャレジスタ８５２ａは、０ｈ値を戻すように構成されたビット８４８ｂ〜ｈと、データ転送の方向を規定するように構成されたビット８４８ａとを含む。ファームウェアがＣＦカードから読み出されるべき場合、フィーチャレジスタ８５２ａのビット８４８ａは、「１」の値に設定され得るが、ファームウェアがＣＦカードに書き込まれるべき場合、フィーチャレジスタ８５２ａのビット８４８ａは、「０」の値に設定され得る。
【００７５】
セクタ数レジスタ８５２ｂは、処理されるべき、すなわち、ＣＦカードから読み出されるか、またはＣＦカードに書き込まれるべきセクタの数を格納するように構成される。セクタ数レジスタ８５２ｃは、ＣＦカード内のファームウェアと関連付けられる関数論理ブロックアドレス（ＬＢＡ）の最下位ビットを格納するか、または戻すように構成され、他方、シリンダレジスタ８５２ｄ、８５２ｅは、ＬＢＡの中間バイトおよびＬＢＡの最上位ビットをそれぞれ格納するように構成される。
【００７６】
図８Ｅを参照して、ＣＦカードとリーダとの間に送信され得、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドが正常に実行されたことを示すコマンドブロックの１実施形態が記載される。レジスタ８７２に分割されるビット８６８を含むコマンドブロック８６４は、コマンドが実質的にうまく実行すると、ＣＦカードからリーダに送信され得る。レジスタ８７２ａ〜ｅは、実質的にクリアされ得、他方、デバイス／ヘッドレジスタ８７２ｆは、デバイスを示すビット８６８ｅを含み得、かつ「０」の値に設定され得、実質的に、コマンドの実行と関連付けられたターゲットであるただ１つのメディアカードがリーダと接続される。
【００７７】
５０Ｈを戻すように構成されたステータスレジスタ８７２ｇは、ビット８６８ｈを含み、これは、コマンドの実行が完了されたことを示すように「０」の値に設定される。ステータスレジスタ８７２ｇのビット８６８ｇは、「１」の値に設定され得、ビット８６８ａ、８６８ｄ、８６８ｆは、すべて、実質的にクリアされ得るか、または、コマンドが正常に実行したことを示すように「０」の値に設定され得る。
【００７８】
Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンド等のコマンドを処理する際にエラーが生じた場合、エラーデータブロックが、ＣＦカードからリーダに送信されて、エラーが生じたことを示し得る。例えば、ホストは、ＣＦカードがファームウェアの２０キロバイト（ｋＢｓ）を有することを予測し、ＣＦカードが、実際に、ファームウェアの１０ｋＢを有する場合、エラーは、コマンドを処理する間に生じ得る。図８Ｆは、本発明の実施形態により、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドが正常に実行していないことを示すＣＦカードからリーダに送信され得るエラーブロックを図で示す。エラーデータブロック８９２は、レジスタ８９２と関連付けられたビット８８８を含む。状態レジスタ８９２ｆは、中止されたコマンドが対象としていたデバイスまたはＣＦカードを識別するビット８８８ｅを含む。
【００７９】
コマンドを処理する際にエラーが生じた場合、ＣＦカードは、ステータスレジスタ８９２ｇのビット８８８ａを、エラーが生じたことを示すように設定し、対応して、エラーレジスタ８９２ａ内の関連するビット８８８を設定し得る。例えば、エラーレジスタ８９２ａのビット８８８ｇは、ＣＦカードが潜在的なデータエラーを有する場合、「１」の値に設定され得る。従って、１実施形態において、カードがプロセスをダウンロードすることが完了する前にカードが除去または変更される場合、バイト８９２ａのビット８８８ｃは、中止されたプロセスを示すように「１」の値に設定され得る。すなわち、エラーレジスタ８９２ａのビット８８８ｃは、コマンドがサポートされなかったためにコマンドが中止されたか、またはコマンドが実行されなかったか、またはコマンドの実行が開始されたが完了しなかったかを示すように、「１」の値に設定され得る。
【００８０】
ステータスレジスタ８９２ｇ内で、ビット８８８ｈおよびビット８８８ｄは、Ｘ３Ｔ１０プロトコルに従って設定されなければならない。コマンドを処理する際に、デバイスの故障が原因でエラーが生じた場合、または、より一般的には、デバイスの故障が生じた場合、ステータスレジスタ８９２ｇのビット８８８ｆが「１」の値に設定され得る。ステータスレジスタ８９２ｇのビット８８８ｇは、コマンドが完了すると「１」の値に設定され得る。
【００８１】
セクタ数レジスタ８９２ｃは、適用可能である場合、コマンドを実行する際にエラーを起こすＣＦカード内のセクタと関連付けられたＬＢＡの最下位ビットを提供するように構成される。すなわち、セクタが、中止させるコマンドの実行をさせる場合、そのセクタのＬＢＡの最下位ビットが、セクタ数レジスタ８９２ｃ内のリーダに戻される。セクタが、コマンドが中止された原因である場合、シリンダ下位レジスタ８９２ｄおよびシリンダ上位レジスタ８９２ｅは、セクタのＬＢＡの中間バイトおよびセクタのＬＢＡの最上位ビットをそれぞれ戻すように構成される。
【００８２】
本発明のいくつかの実施形態のみが記載されるが、本発明は、本発明の主旨または範囲から逸脱することなく、他の多くの特定の形態で実施され得ることが理解されるべきである。例として、リーダは、通常、ＵＳＢリーダとして記載されてきたが、リーダは、実質的に、メモリカードがホストシステムと通信することを可能にする任意の適切なリーダまたはアダプタであり得る。適切なリーダは、ＰＣカードリーダを含むが、これに限定されない。
【００８３】
ファームウェアのダウンロードは、通常、新しいカードファームウェア、またはホストコンピュータからのコードを、リーダを介して、メモリまたはメディアカードに実質的に直接送信することを含むことが記載されてきた。ファームウェアは、ホストコンピュータからカードに実質的に直接送信される場合、システム全体の能力を強化するためになされるべき任意の変更が、実質的に、コンピュータ上のソフトウェアをアップグレードすることのみによって実行され得る。換言すると、ＩＳＰ能力を強化するためにリーダファームウェアをアップグレードすることは必要とされ得ない。しかしながら、いくつかの実施形態において、新しいカードファームウェアがホストコンピュータからリーダに送信され得、リーダは、ＩＳＰコマンドをメモリカードに送信し得ることが考慮に入れられるべきである。
【００８４】
メモリカードを更新またはアップグレードするために、新しいカードファームウェアがメモリカードに提供される場合、新しいカードファームウェアは、通常、現在、メモリカード上にあるファームウェアの対応する部分と置き換えることが意図されるファームウェアの部分を含む。新しいカードファームウェアは、さらに、例えば、現在のファームウェアを増強するために、現在メモリカード上にあるファームウェアに加えられるべきファームウェアの部分を含み得る。１実施形態において、メモリカードに提供される新しいカードファームウェアは、現在、メモリカード上にあるすべてのファームウェアと実質的に置き換わるように意図され得る。
【００８５】
種々の機能およびコマンド記述子と関連付けられたビットおよびワードは、多種多様であり得る。換言すると、ブロックと関連付けられる異なった状態を示す特定の方法がコマンド記述子において設定される特定のビットまたはワードは、様々であり得る。例えば、ＩＳＰがサポートされることを示すように設定されるビットと、ＩＳＰサポートをイネーブルするように設定されるビットとは、通常、異なる。カード専用データ情報においてビット１９を「１」に設定して、ＳＤカードと関連付けられたシステムにおいてＩＳＰがサポートされることを示す代わりに、実質的に、任意の他のビットが設定され得る。システム全体が、ＩＳＰがサポートされることを示すように設定されるべきビットはどれかを知る限り、任意のビットがセットされ得る。
【００８６】
コマンドおよびデータブロックが、ＳＤカードまたはＣＦカードのどちらかとともに用いられるために適切であると一般に記載されてきたが、コマンドは、通常、他のタイプのメモリカードに適用可能であり得ることが考慮に入れられるべきである。例として、ＳＤカードのために適切であるコマンドは、さらに、複数のメディアカードのために適切であり得る。さらに、ＣＦカードに関して用いられるために適切であるように記載されてきたコマンドおよびデータブロックは、ＳＤカードを含むが、これに限定されないカードの他のタイプとともに用いられるように増強され得る。あるいは、このようなコマンドおよびデータブロックは、実質的に増強されることなく、特定のタイプのメモリカードとともに用いるために適切であり得る。
【００８７】
さらに、ＩＳＰコマンドを用いて更新され得るファームウェアを有するメモリカードは、多種多様であり得る。これらに限定されない上述の方法を用いて更新され得るファームウェアを有する他のタイプのメモリカードは、Ｍｅｍｏｒｙ  ＳｔｉｃｋカードおよびＳｍａｒｔ  Ｍｅｄｉａ（Ｒ）カードを含むが、これらに限定されない。
【００８８】
ホストは、メモリカードと通信するリーダと通信することが記載されてきた。ホストおよびリーダは、実質的に、別のエンティティであり、すなわち、リーダは、ホストに簡単に接続され、ホストから簡単に切り離され得る周辺デバイスであり得る。リーダは、さらに、ホストの一部分であり得ることが理解されるべきである。例えば、リーダは、ホストに簡単に接続されるか、またはホストから簡単に切り離され得ないホストの一体部分であり得る。
【００８９】
１実施形態において、更新され得るファームウェアは、ＩＳＰがサポートされることを可能にするファームウェアコードを含み得る。すなわち、ＩＳＰコードそれ自体は、カードファームウェアを更新またはアップグレードするように構成されるＩＳＰプロセスを用いるメモリカードにおいて更新され得る。特に、カードファームウェアが電気的に消去可能なプログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）およびファームウェアの実行がスタティックランダムアクセスメモリ（ＳＲＡＭ）内である場合、カードファームウェアと関連付けられたＩＳＰコードは、カードファームウェア更新プロセスの間、更新され得る。
【００９０】
通常、本発明の種々のプロセスと関連付けられた工程は、多種多様であり得る。工程は、本発明の主旨または範囲から逸脱することなく、順序が変更、改変、追加および除去され得る。例として、ＳＤカードおよびＣＦカード上のカードファームウェアを更新することと関連するプロセスは、ＳＤカードおよびＣＦカードそれぞれがＩＳＰをサポートするか否かを判定することと関連する工程を包含し得る。従って、本例は、例示であり、限定的と考えられるべきでなく、本発明は、本明細書において付与された詳細に限定されるべきでなく、添付の請求項の範囲内で改変され得る。
【図面の簡単な説明】
【００９１】
【図１】図１は、本発明の実施形態による、不揮発性メモリを含む一般的なホストシステムを図で示す。
【図２】図２は、本発明の実施形態による、メモリカードと関連付けられたカードファームウェアが更新され得るコンピュータシステム、およびこのシステムの部分であるリーダおよびメモリカードを図で示す。
【図３】図３は、本発明の実施形態による、カード上のカードファームウェアを更新するプロセスと関連する工程を示すプロセスフローチャートである。
【図４Ａ】図４Ａは、本発明の実施形態による、セキュアデジタルメモリカード上のファームウェア更新と関連する工程を示すプロセスフローチャートである。
【図４Ｂ】図４Ｂは、本発明の実施形態による、セキュアデジタルメモリカード上のファームウェアの更新と関連する工程を示すプロセスフローチャートである。
【図５】図５は、本発明の実施形態による、コンパクトフラッシュ（Ｒ）メモリ上のファームウェアの更新と関連する工程を示すプロセスフローチャートである。
【図６Ａ】図６Ａは、本発明の実施形態による、セキュアデジタルメモリカードを有するシステムにおいて用いるために適切であるＣｈｅｃｋ  ＩＳＰコマンドと関連するコマンド記述子ブロックを図で示す。
【図６Ｂ】図６Ｂは、本発明の実施形態による、Ｃｈｅｃｋ  ＩＳＰコマンドに応答して、データをリーダからホストに戻す際に用いるために適切であるデータブロックを図で示す。
【図６Ｃ】図６Ｃは、本発明の実施形態による、セキュアデジタルメモリカードを有するシステムにおいて使用するために適切であるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＳＤコマンドと関連付けられたコマンド記述子ブロックを図で示す。
【図７Ａ】図７Ａは、本発明の実施形態による、Ｃｏｍｐａｃｔ  Ｆｌａｓｈメモリカードを有するシステムにおいて使用するために適切であるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦと関連付けられたコマンド記述子ブロックを図で示す。
【図７Ｂ】図７Ｂは、本発明の実施形態による、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦコマンドに応答して、Ｃｏｍｐａｃｔ  Ｆｌａｓｈメモリカードによってホストに戻され得るブロックを図で示す。
【図８Ａ】図８Ａは、本発明の実施形態による、コンパクトフラッシュ（Ｒ）カードと共に用いるために適切であるＣｈｅｃｋ  ＩＳＰコマンドと関連付けられたコマンドブロックレジスタデータを図で示す。
【図８Ｂ】図８Ｂは、本発明の実施形態による、コンパクトフラッシュ（Ｒ）カードによってリーダに戻され得るコマンドブロックレジスタデータを図で示す。
【図８Ｃ】図８Ｃは、本発明の実施形態による、Ｃｈｅｃｋ  ＩＳＰコマンドを処理する際にエラーが発生した場合、コンパクトカードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。
【図８Ｄ】図８Ｄは、本発明による実施形態による、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドの一部分として、コンパクトフラッシュ（Ｒ）カードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。
【図８Ｅ】図８Ｅは、本発明の実施形態による、Ｍｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドが正常に実行したことを示す、コンパクトフラッシュ（Ｒ）カードとリーダとの間に送信され得るコマンドブロックレジスタデータを図で示す。
【図８Ｆ】図８Ｆは、本発明によるＭｅｄｉａ  Ｃａｒｄ  Ｅｘｅｃｕｔｅ  ＣＦ  ＩＳＰコマンドが正常に実行しなかったことを示す、コンパクトフラッシュ（Ｒ）カードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。
【図１】
2005508547.tif 000003
【図２】
2005508547.tif 000004
【図３】
2005508547.tif 000005
【図４Ａ】
2005508547.tif 000006
【図４Ｂ】
2005508547.tif 000007
【図５】
2005508547.tif 000008
【図６Ａ】
2005508547.tif 000009
【図６Ｂ】
2005508547.tif 000010
【図６Ｃ】
2005508547.tif 000011
【図７Ａ】
2005508547.tif 000012
【図７Ｂ】
2005508547.tif 000013
【図８Ａ】
2005508547.tif 000014
【図８Ｂ】
2005508547.tif 000015
【図８Ｃ】
2005508547.tif 000016
【図８Ｄ】
2005508547.tif 000017
【図８Ｅ】
2005508547.tif 000018
【図８Ｆ】
2005508547.tif 000019
【国際公開パンフレット】
2005508547.tif 000020
2005508547.tif 000021
2005508547.tif 000022
2005508547.tif 000023
2005508547.tif 000024
2005508547.tif 000025
2005508547.tif 000026
2005508547.tif 000027
2005508547.tif 000028
2005508547.tif 000029
2005508547.tif 000030
2005508547.tif 000031
2005508547.tif 000032
2005508547.tif 000033
2005508547.tif 000034
2005508547.tif 000035
2005508547.tif 000036
2005508547.tif 000037
2005508547.tif 000038
2005508547.tif 000039
2005508547.tif 000040
2005508547.tif 000041
2005508547.tif 000042
2005508547.tif 000043
2005508547.tif 000044
2005508547.tif 000045
2005508547.tif 000046
2005508547.tif 000047
2005508547.tif 000048
2005508547.tif 000049
2005508547.tif 000050
2005508547.tif 000051
2005508547.tif 000052
2005508547.tif 000053
2005508547.tif 000054
2005508547.tif 000055
2005508547.tif 000056
2005508547.tif 000057
2005508547.tif 000058
2005508547.tif 000059
2005508547.tif 000060
2005508547.tif 000061
2005508547.tif 000062
2005508547.tif 000063
2005508547.tif 000064
2005508547.tif 000065
【国際公開パンフレット（コレクトバージョン）】
2005508547.tif 000066
2005508547.tif 000067
【国際調査報告】
2005508547.tif 000068
2005508547.tif 000069
2005508547.tif 000070