JP2005508547A - メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション - Google Patents

メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション Download PDF

Info

Publication number
JP2005508547A
JP2005508547A JP2003542476A JP2003542476A JP2005508547A JP 2005508547 A JP2005508547 A JP 2005508547A JP 2003542476 A JP2003542476 A JP 2003542476A JP 2003542476 A JP2003542476 A JP 2003542476A JP 2005508547 A JP2005508547 A JP 2005508547A
Authority
JP
Japan
Prior art keywords
card
firmware
reader
memory
command
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.)
Pending
Application number
JP2003542476A
Other languages
English (en)
Inventor
ロバート チャン,
ピン リ,
ファーシッド サベット−シャーギ,
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.)
SanDisk Corp
Original Assignee
SanDisk 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 SanDisk Corp filed Critical SanDisk Corp
Publication of JP2005508547A publication Critical patent/JP2005508547A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

フラッシュメモリカードと関連付けられたファームウェアが更新されることを効率的に可能にする方法および装置が開示される。本発明の1つの局面によると、メモリ格納デバイスと関連付けられたファームウェアを更新する方法は、ホストに新しいファームウェアを提供する工程と、ホストからの新しいファームウェアをホストと通信するリーダに提供する工程を包含する。リーダは、インストールされたファームウェアを備えるメモリ格納デバイスとインタフェースして、新しいファームウェアが、インストールされたファームウェアと少なくとも部分的に置き換わるように新しいファームウェアをメモリ格納デバイスに収納する。1実施形態において、この方法は、新しいファームウェアを第1のコマンドに組み込む工程をさらに包含する。

Description

【背景技術】
【0001】
(発明の背景)
(1.発明の分野)
本発明は、概して、マスデジタルデータ格納システムに関する。より具体的には、本発明は、ユーザがメモリカード等のマスデジタル格納システムと関連付けられたファームウェアを更新することを可能にするシステムおよび方法に関する。
【0002】
(2.関連技術の説明)
フラッシュメモリ格納システム等の不揮発性メモリシステムの使用は、このようなメモリシステムの物理的大きさがコンパクトであり、不揮発性メモリが繰返し再プログラムされ得るために益々増加している。フラッシュメモリ格納システムのコンパクトな物理的大きさは、益々普及しつつあるデバイスにおけるこのような格納システムの使用を容易にする。しかしながら、フラッシュメモリ格納システムを使用するデバイスは、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレーヤ、ハンドヘルドパーソナルコンピュータおよび全地球測位デバイスを含むが、これらに限定されない。フラッシュメモリ格納システムに含まれる繰返し再プログラムする不揮発性メモリの能力は、フラッシュメモリ格納システムが用いられ、かつ再使用されることを可能にする。
【0003】
メモリカード等のフラッシュメモリシステム上で命令が実行されることを可能にするファームウェアが更新される必要がある場合、ユーザは、通常、メモリカードの製造業者にカードを送り返す。製造業者は、例えば、Compact Flash(CF)カードまたはSecure Digital(SD)カードと等のメモリカード上のファームウェアを更新し得、カードに新しい機能を提供するか、またはファームウェア内のバグを修正する。通常、製造業者は、ファームウェアを更新する専用のハードウェアを用い得る。当業者によって理解されるように、メモリカード内のファームウェアを更新するために用いられるプロセッサは、通常、複雑であり、エラーが発生し易い。従って、メモリカード内のファームウェアの更新は、多くの場合、メモリカードの製造業者にとって時間を要する困難なプロセスである。
【0004】
製造業者にとって時間を要し、かつ困難であるということに加えて、メモリカード内のファームウェアを更新することは、多くの場合、ユーザにとって不便なプロセスである。更新するために、製造業者にメモリカードを送るか、そうでない場合、提供し、更新されたメモリカードの返却を待つことは、特に、メモリカードが、長期間にわたってユーザに利用可能でない場合、不便であり得る。
【0005】
従って、所望されるのは、メモリカード上のファームウェアが効率的に更新されることを可能にするシステムである。具体的には、必要とされるのは、メモリカード上のファームウェアがユーザによって効率的かつ比較的容易に更新されることを可能にし、メモリカードが製造業者に返却されることを必要としないシステムおよび方法である。
【発明の開示】
【課題を解決するための手段】
【0006】
(発明の要旨)
本発明は、フラッシュメモリカードと関連付けられたファームウェアが更新されることを効率的に可能にするシステムおよび方法に関する。本発明の1つの局面によると、メモリ格納デバイスと関連付けられたファームウェアを更新する方法は、ホストに新しいファームウェアを提供する工程、およびホストからそのホストと通信するリーダにファームウェアを送信する工程を含む。本方法は、新しいファームウェアをリーダからメモリ格納デバイス送信する工程、および新しいファームウェアをメモリ格納デバイスに収納して、新しいファームウェアが、インストールされたファームウェアと少なくとも部分的に置き換わる工程をさらに含む。1実施形態において、本方法は、新しいファームウェアを第1のコマンドに組み込む工程をさらに含む。このような実施形態において、新しいファームウェアをホストからリーダに送信することは、第1のコマンドをホストからリーダに送信する工程を含む。
【0007】
別の実施形態において、新しいファームウェアをメモリ格納デバイス内に収納することは、ホストを用いてメモリ格納デバイスの中に新しいファームウェアを書き込むことによって、インストールされたファームウェアを更新する。このような実施形態において、本方法は、新しいファームウェアがメモリ格納デバイスに収納されることを可能にするインシステムプログラミング能力をリーダに対してイネーブルすることをさらに含み得る。
【0008】
フラッシュメモリカード等のメモリ格納デバイス上のファームウェアが、ホストおよびリーダを使用して、ユーザによって実質的に更新されることを可能にすることは、更新が効率的に行われることを可能にする。各々がインシステムプログラミング内でサポートするように構成されるリーダおよびフラッシュメモリカードは、比較的長い時間を費やすことを必要とせずにカードファームウェアの更新が実行されることを可能にする。ソフトウェアパッケージを介してユーザに更新を提供し、かつソフトウェアパッケージがカードリーダと協働してメモリカードに更新を提供することを可能にすることによって、メモリカードをアップグレードするプロセスもまた、比較的に複雑でなくなる。
【0009】
本発明の別の局面によると、メモリカードと関連付けられたファームウェアを更新するシステムは、カードファームウェアがインストールされるメモリカードに加えて、新しいカードファームウェアをメモリカードに提供する手段、および新しいカードファームウェアをメモリカードに収納して、新しいカードファームウェアがインストールされたカードファームウェアと少なくとも部分的に置き換わるようにする手段を含む。1実施形態において、新しいカードファームウェアをメモリカードに提供する手段は、ホスト、およびこのホストがメモリカードとインタフェースすることを可能にする手段を含む。ホストは、ホストがメモリカードとインタフェースすることを可能にする手段に新しいカードファームウェアを提供し、ホストがメモリカードとインタフェースすることを可能にする手段は、新しいファームウェアをメモリカードに送信する手段を含む。
【0010】
本発明の別の局面によると、リーダとインタフェースするメモリ格納デバイスは、データおよびファームウェアを格納する記憶素子を含む。ファームウェアは、記憶素子と協働してデータを格納し、かつ命令を実行する。ファームウェアは、ファームウェアが実質的に更新され、他方、メモリ格納デバイスは、リーダとインタフェースされることを可能にするインシステムプログラミング能力をさらにサポートする。1実施形態において、メモリ格納デバイスは、さらに、リーダによるファームウェアの更新を受信する受信するメカニズムを含む。このような実施形態において、ファームウェアは、ファームウェアを更新する更新を収納する。
【0011】
本発明の別の局面によると、メモリデバイスが計算システムと通信することを可能にするアダプタは、ポートおよびファームウェアを含む。ポートは、メモリデバイスを実質的にアダプタの中に受け取るように構成され、ファームウェアは、インシステムプログラミング能力をサポートする。インシステムプログラミング能力は、演算システムが、更新されたメモリデバイスのファームウェアコードを、メモリデバイスに提供することを、アダプタを介して可能にすることを含む。1実施形態において、アダプタは、USBリーダまたはPCリーダのうちの1つである。
【0012】
本発明のこれらのおよび他の利点は、以下における詳細な説明を読み、図面の種々の図を検討することによって明らかになる。
【0013】
本発明は、添付の図面と関連付けられた以下の説明を参照することによって最もよく理解され得る。
【0014】
(実施形態の詳細な説明)
フラッシュメモリカード上のファームウェアを更新またはアップグレードするための従来のプロセスは、多くの場合、所有者またはユーザにとって不便であり、時間を要し、かつ困難である。通常、製造業者がユーザによって所有されるメモリカード上のファームウェアを更新するので、ユーザが製造業者にメモリカードを提供することが必要であり、メモリカードが製造業者の手元にある間、メモリカードはユーザによって使用され得ない。ユーザによって用いられるメモリカード上のファームウェアを更新するプロセスは、多くの場合、複雑であり、従って、時間を要し、かつエラーを生じ易い。
【0015】
フラッシュメモリカード上のファームウェアが、例えば、コンピュータ、およびユーザにアクセス可能であるカードリーダを用いて、ユーザによって、実質的に更新されることを可能にすることは、更新が、効率的、かつ、通常、比較的便利に実行されることを可能にする。ソフトウェアパッケージを介してユーザに更新を提供することによって、およびソフトウェアパッケージがカードリーダと協働して、メモリカードに更新を提供することを可能にすることによって、メモリカードをアップグレードするプロセスは、さらに、比較的複雑でなくなる。
【0016】
メモリカードと関連付けられたファームウェアが更新されることを可能にするシステム全体において用いるために適切であるメモリカードは、通常、ホストシステムと共に用いられる。図1を最初に参照して、例えば、Compact Flash(CF)メモリカードまたはSecure Digital(SD)カードといった不揮発性メモリデバイスを含む一般的なホストシステムが記載される。ホストコンピュータシステム100は、通常、マイクロプロセッサ108、ランダムアクセスメモリ(RAM)112、および入力/出力回路116が通信することを可能にするシステムバス104を含む。ホストシステム100が、通常、例えば、表示デバイスおよびネットワークデバイス(例示する目的で図示せず)といった他のコンポーネントを含み得ることが理解されるべきである。
【0017】
通常、ホストシステム100は、画像情報、音声情報およびビデオ画像情報を含むが、これらに限定されない情報をキャプチャすることが可能であり得る。このような情報は、リアルタイムでキャプチャされ得、ワイヤレス方式でホストシステム100に伝送され得る。ホストシステム100は実質的に任意のシステムであり得るが、ホストシステム100は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、オーディオプレーヤまたはビデオプレーヤといったシステムである。しかしながら、ホストシステム100は、通常、実質的に、データまたは情報を格納し、かつデータまたは情報を取り出す任意のシステムであり得ることが理解されるべきである。
【0018】
ホストシステム100は、さらに、データをキャプチャするだけか、またはデータを取り出すだけかのシステムでもあり得る。すなわち、ホストシステム100は、データの格納専用システムであり得るか、またはホストシステム100は、データの読み出し専用システムであり得る。例として、ホストシステム100は、データを書き込むかまたは格納するためだけに構成されるメモリライタであり得る。あるいは、ホストシステム100は、通常、データをキャプチャするのではなく、データを読み出すか、または取り出すように構成されるMP3プレーヤなどのデバイスであり得る。
【0019】
1実施形態において、取り外し可能な不揮発性メモリデバイスである不揮発性メモリデバイス120は、バス104とインタフェースして情報を格納するように構成される。通常、不揮発性メモリデバイス120は、インタフェース130を介してバス104と通信する。インタフェース130は、当業者によって理解されるように、バス104への負荷を低減するように利用され得る。1実施形態において、インタフェース130は、リーダまたはアダプタであり得る。
【0020】
不揮発性メモリデバイス120は、不揮発性メモリ124およびメモリ制御システム128を含む。1実施形態において、不揮発性メモリデバイス120は、単一チップまたはダイ上でインプリメントされ得る。あるいは、不揮発性メモリデバイス120は、複数チップモジュール、または不揮発性メモリデバイス120として共に用いられ得る複数の離散コンポーネント上でインプリメントされ得る。
【0021】
不揮発性メモリ124またはコアは、必要に応じてデータがアクセスおよび読み出され得るようにデータを格納するように構成される。不揮発性メモリ124内の特定のデータが消去され得ないことが理解されるが、不揮発性メモリ124に格納されるデータは、また、適切に消去され得る。データを格納する、読み出す、消去するプロセスは、通常、メモリ制御システム128によって制御される。1実施形態において、メモリ制御システム128は、不揮発性メモリ124の動作を管理して、不揮発性メモリ124の耐用年数が実質的に均等に使い切られるようにすることによって、不揮発性メモリ124の寿命が実質的に最大化されるようにする。
【0022】
不揮発性メモリデバイス120が、通常、メモリ制御システム128(すなわち、メモリコントローラ)を含むと記載されてきたが、すべての不揮発性メモリデバイスが、コントローラを含むのではないことが理解されるべきである。例として、PCカード、Compact Flash カード、Multi MediaカードおよびSecure Digitalカードを含むがこれらに限定されない不揮発性メモリデバイスがコントローラを含む一方で、Smart Media(R)カードおよびMemory Stickカードを含むがこれらに限定されない他の不揮発性メモリデバイスは、コントローラを含み得ない。不揮発性メモリデバイス124がコントローラを含まない実施形態において、当業者によって理解されるように、このコントローラと関連付けられた機能は、単一チップの中に統合され得る。上述のように、不揮発性メモリデバイス120は、通常、単一チップデバイスまたは複数チップモジュールのどちらかとして実現され得ることが理解されるべきである。
【0023】
1実施形態において、ホストシステム100は、カードリーダインタフェースを介して、メモリデバイス等の不揮発性メモリデバイスに情報を格納するか、または不揮発性メモリデバイスから情報を読み出すコンピュータシステムであり得る。すなわち、ホストシステム100は、データを記憶およびデータを読み出すためにメモリカードを使用するコンピュータシステムであり得る。図2は、本発明の実施形態によるメモリカードと関連付けられたファームウェアを更新するように協働するコンピュータシステム、リーダおよびメモリカードを図で示す。コンピュータシステム202は、通常、リーダ230を介してメモリカード220と通信する。リーダ230は、通常、コンピュータシステム202がメモリカード220のメモリ224内にデータを格納し、およびメモリ224からデータを取り出すことを可能にするように、コンピュータシステム202とメモリカード220との間のインタフェースとして利用される。すなわち、コンピュータシステム202がメモリカード220と通信して、コンピュータシステム202とメモリカード220との間にデータを伝送する場合、通信は、リーダ230を介して行われる。リーダ230は、メモリカード220がリーダ230と通信可能にインタフェースすることを可能にするポートまたはレセプタクル(図示せず)を備え得、従って、リーダ230は、メモリカード220とコンピュータシステム202との間で通信が行われることを可能にし得る。
【0024】
メモリカード220は、メモリ224およびコントローラ228の両方を備える。メモリ224は、記憶素子、ブロック、または、情報のビットを格納するセルを含み得る。コントローラ228は、メモリ224とインタフェースし、データのメモリ224への格納およびメモリ224からの取り出しを容易にする。コントローラ228は、命令が実行されるか、またはコントローラ228を用いて動作することを効率的に可能にすることによってコントローラ228の動作を容易にするカードファームウェア229を備える。カードファームウェア229がコンピュータシステム202およびリーダ230を用いて更新され得る実施形態について、カードファームウェア229は、インシステムプログラミング(ISP)サポート能力をさらに備える。ISPサポート能力は、通常、カードファームウェア229がユーザによって実質的に更新されることを可能にするが、カードファームウェア229を更新するために、メモリカード220が製造業者に返却されることを必要としない機能性を提供する。
【0025】
例えば、Universal Serial Bus(USB)リーダ、またはパーソナルコンピュータ(PC)カードリーダであり得るリーダ230は、リーダ230がリーダ230の動作と関連する命令を行うことを可能にするリーダファームウェア232を含む。カードファームウェア229と同様に、リーダファームウェア232は、ISPサポート能力を備える。すなわち、リーダファームウェア232は、カードファームウェア229の更新およびアップグレードをサポートするように構成される。
【0026】
カードファームウェア229が、例えば、メモリカード220の製作者からの通知によって、更新またはアップグレードを必要とすることが判定される場合、新しいかまたは更新されたカードファームウェアを備えるソフトウェア210は、コンピュータシステム202によってネットワーク240から取得され得る。例として、コンピュータシステム202は、メモリカード220の製造業者と関連するネットワーク240上のウェブサイトと通信し得、ソフトウェア210を、1実施形態において、ソフトウェアドライバ206をダウンロードする。ネットワーク240を介してソフトウェア210を取得する代わりに、ソフトウェア210は、さらに、CD−ROMまたはフロッピー(登録商標)ディスクといったメディア格納デバイスを用いて取得され得る。
【0027】
ソフトウェア210に含まれる情報は、カードファームウェア229を更新するためにリーダ230と協働するコンピュータシステム202によって用いられ得る。例えば、ソフトウェア210に含まれる新しいか、または更新されたカードファームウェアは、コンピュータシステム202によってソフトウェア210から実質的に抽出され得、リーダ230を用いてメモリカード220に提供され得る。更新されたカードファームウェアをメモリカード220に提供することは、通常、メモリカード220への入力として、例えば、入力/出力ポートへの入力として更新されたカードファームウェアを受信することか、またはメモリカード220のメカニズム(図示せず)を受信することを含む。メモリカード220は、リーダ230およびメモリカードの両方がISPサポート能力を備える場合、更新されたカードファームウェアをうまく収納し得る。
【0028】
ファームウェアがダウンロードされる場合、ISPコードの小さいブロックが、ISPを扱うように割り当てられ得る。一旦更新されたファームウェアのダウンロードが開始すると、カードファームウェア229は、通常、実質的に、そのすべての内部アクティビティを完了することが考慮に入れられるべきである。さらに、一旦更新されたカードファームウェアのダウンロードが起動すると、カードファームウェア229は、更新されたカードファームウェアの内容の読み出しと関連付けられたコマンド、およびダウンロードプロセスと関連するコマンドを除いて、いかなるコマンドも扱い得ない。一旦ダウンロードが完了すると、メモリカード220は、新規にインストールされたファームウェアを用いてリセット手続きを実行し得る。
【0029】
図3を参照して、メモリカード上のカードファームウェアを更新することと関連する一般的な工程が本発明の実施形態により記載され得る。カードファームウェアを更新するプロセス302は、ステップ306で開始し、ここで、現在メモリ上にあるカードファームウェアと実質的に置き換わるべき新しいカードファームウェアを備えるソフトウェアが、コンピュータ、すなわち、メモリカードと通信するコンピュータ上にダウンロードされる。図2を参照してすでに記載されたように、新しいカードファームウェアを備えるソフトウェアは、ネットワークからコンピュータ上にダウンロードされ得る。
【0030】
一旦ソフトウェアがダウンロードされると、ソフトウェアは、工程310にて実行されて、コンピュータとメモリカードとの間のインタフェースとして利用されるリーダ上に新しいカードファームウェアをダウンロードする。1実施形態において、ソフトウェアを実行することは、新しいカードファームウェアをソフトウェアから実質的に抽出することを含み、従って、新しいカードファームウェアがリーダに送信されるか、またはダウンロードされ得る。新しいカードファームウェアがリーダ上にダウンロードされた後、プロセスの流れは、工程314に移り、ここで、リーダは、新しいカードファームウェアをメモリカードに送信またはダウンロードする。新しいカードファームウェアを受信、またはそうでない場合、取得すると、新しいカードファームウェアは、工程318においてメモリカードにインストールされる。通常、新しいカードファームウェアは、すでにメモリカード上にあったカードファームウェアと置き換わるか、またはこれを強化する。カードファームウェアを更新するプロセスは、一旦新しいカードファームウェアがメモリカード上にインストールされると完了する。
【0031】
通常、カードファームウェアを更新する特定のプロセスは、更新されているメモリカードのタイプに依存して異なり得る。例として、SDメモリカードのカードファームウェアを更新するプロセスは、CFメモリカード上のカードファームウェアを更新するプロセスとは異なり得る。SDメモリカードのカードファームウェアを更新する1つの適切なプロセスは、図4Aおよび図4Bを参照して説明され、CFメモリカードのカードファームウェアを更新する1つの適切なプロセスは、図5を参照して後述される。
【0032】
図4Aおよび図4Bは、本発明の実施形態による、SDカード上のファームウェアを更新することと関連する工程を示すプロセスフローチャートである。SDカード上のファームウェアを更新するプロセス400は、工程404にて開始し、ここで、ホストコンピュータは、ホストコンピュータがSDカードとインタフェースすることを可能にするリーダがISPをサポートするか否かを判定する。記載される実施形態において、このような判定は、ISPサポートのためのsmall computer system interface(SCSI)Inquiryデータ情報がリーダ上で利用可能であるか否かを点検することによって下され得る。当業者によって理解されるように、SCSIは、カードリーダ等の周辺機器をコンピュータと接続するためのUSBシステムによって用いられるパラレルインタフェース標準規格である。SDカードがISPをサポートするか否かの判定は、カード専用データ情報内の特定のビットが設定されるか否か、例えば、カード専用データ情報内の第19番目のビットが「1」にセットされるか否かを判定することを含み得る。
【0033】
SDカード上のファームウェアを更新することと関連する工程は、さらに、ファームウェアをMultiMediaカード(MMC)上のファームウェアを更新するために適用され得ることが理解されるべきである。プロセス400と関連するこのような工程は、SDカードに関して記載されたが、通常、MMCカードにも適用可能である。
【0034】
工程408にて、リーダがISPをサポートするか否かに関して、判定が下される。リーダがISPをサポートしないことが判定された場合、リーダは、SDカード上のファームウェアを更新することを容易にするために用いられ得ないことが示される。従って、プロセスの流れは、リーダがISPをサポートしないことを示す例外が投げられる工程412に移る。一旦例外が投げられると、SDカード上のファームウェアを更新するプロセスは、有効に終了される。
【0035】
あるいは、リーダがISPをサポートすることが工程408にて判定された場合、工程416において、ホストは、コマンド、例えば、SCSI CheckISPコマンドを、ISPサポートを可能にするリーダ上のファームウェアに送信する。Check ISPコマンドの1実施形態は、図6Aに関して後述される。Check ISPコマンドが送信された後、ISPサポートは、工程420にてリーダに対してイネーブルされる。イネーブルされたISPサポートは、1実施形態において、カード専用データ情報内の第20番目のビットを、Check ISPコマンドに応答して「1」にセットすることを含み得る。ISPサポートをイネーブルさせるコマンドに応答して、リーダは、図6Bを参照して記載されるように、SDカードの相対カードアドレス(RCA)を実質的に識別するホストにデータ構造を戻し得る。
【0036】
一旦ISPサポートがリーダに対してイネーブルされると、ISPサポートは、工程424にて、SDまたはMMCカードに対してイネーブルされる。1実施形態において、SDまたはMMCカードに対してISPサポートをイネーブルすることは、第20番目のビットセットを有するカード専用データを書き込むこと、すなわち、ISPがサポートされることを、ホストを用いてSDまたはMMCカードに示すことを含み得る。カード専用データを取り出すためのCMD9コマンドおよびカード専用データをプログラムするためのCMD27コマンドは、図6Cに関して後述されるように、SCSI Media Card Execute SDコマンド内に実質的に組み込まれ得る。
【0037】
カード専用データがSDカードまたはMMCカードに書き込まれた後、CMD16コマンドと関連付けられたブロック長は、工程428において、ホストからSDカードに、またはMMCカードに転送されるべきカードファームウェアの大きさに設定される。当業者によって理解されるように、CMD16コマンドは、SDおよびMMCカードの両方によって認識される標準的コマンドである。CMD16コマンドは、MMCA Technical Committeeによる「MultiMedia Card System Specification Version2.2」(2000年1月に出願)に記載され、同出願は、参考のため、その全体を本明細書中で援用される。CMD16コマンドは、Media Card Execute SDコマンドに組み込まれ得る。
【0038】
工程432において、CMD16コマンドおよび新しいカードファームウェアは、Media Card Execute SDコマンド内に組み込まれ得るACMD24コマンド等のコマンドを用いて、ホストからリーダを介してSDカードに送信される。通常、ACMD24コマンドは、SDカードに新しいカードファームウェアが書き込まれることを可能にするコマンドである。従って、一旦ACMD24コマンドがSDカードによって受信されると、SDカードは、実質的に新しいカードファームウェアをインストールし得る。
【0039】
一旦新しいカードファームウェアがSDカード上にインストールされると、カードは、工程436にて、パワーオンリセットを実行する。すなわち、SDカードは、有効に自動的に再起動して、SDカードと関連付けられた初期化コードをイネーブルして、更新されたカードファームウェア、すなわち、新しいカードファームウェアを含むカードファームウェアを実質的に初期化する。1実施形態において、カードファームウェアによって実行されるパワーオンリセットは、実質的に、SDカードの電源を切り、その後、SDカードのバックアップに電源を供給する。パワーオンリセットが実行された後、工程440において、ホストは、Check ISPコマンドをリーダに送信し、リーダは、ISPサポートをディセーブルする。ISPサポートは、Check ISPコマンドを送信して適切なビットが「0」に設定されることによってディセーブルされ得る。
【0040】
ISPサポートをディセーブルするコマンドを受信すると、工程444において、リーダは、通常、ホストから自動的に電気的に切り離される。ホストからリーダを電気的に切り離すことが、ホストのUSBバスからリーダが自動的に切り離されることを含み得る一方で、リーダがホストから電気的に切り離されることは、さらに、ホストからリーダを物理的に切り離すこともまた含み得る。一旦リーダがホストから電気的に切り離されると、工程448において、リーダは、SDカードにコマンドを送信して、SDカードを再初期化する。CMD0コマンドは、SDカードをリセットし得、CMD1コマンドは、MMCカードの初期化プロセスを活性化し得、ACMD41は、SDカードを活性化し得る。
【0041】
SDカードが再初期化された後、工程452において、リーダはホストと自動的に電気的に再接続する。工程452において、ホストと自動的に電気的に再接続することによって、リーダは、有効に、ホスト、より具体的には、ホストと関連するソフトウェアが、新しいデバイスとしてのSDカードと相互通信するようにする。換言すると、工程444におけるリーダの電気的切り離し、および工程452におけるリーダの電気的再接続は、実質的に、ホストがSDカードを新しいデバイスとして見なすようにし、従って、SDカード上の更新されたファームウェアが、ホストによって認識されることを可能にする。一旦リーダがホストと自動的に電気的に再接続すると、SDカード上のカードファームウェアを更新するプロセスが完了する。
【0042】
ISPをサポートし得る、従って、ユーザによって実質的に更新され得るカードファームウェアを含むメモリカードの別のタイプは、CFカードである。図5は、本発明の実施形態による、CFカード上のファームウェアを更新することと関連する工程を示すプロセスフローチャートである。新しいファームウェアをCFカードに提供するプロセス500は、工程504において開始し、ここで、ホストコンピュータは、ホストコンピュータがCFカードと接続して動作させることを可能にするリーダがISPをサポートするか否かを判定する。記載された実施形態において、このような判定は、ISPサポートのためのSCSI Inquiryデータ情報がリーダ上で利用可能か否かを点検することによって下され得る。CFカードがISPをサポートするか否かの判定は、デバイス情報を含む特定のワード内に特定のビットが適切に設定されるか否か、例えば、IDENTIFY DEVICE情報における83語のビット0が「1」にセットされるか否かを判定することを含み得る。
【0043】
リーダがISPをサポートするか否かが工程508にて判定される。リーダがISPをサポートしないことが判定された場合、リーダは、CFカード上のファームウェアを更新するために用いられ得ないことが示される。従って、プロセスの流れは、工程512に移り、ここで、リーダがISPをサポートしないことを示す例外が投げられる。一旦例外が投げられると、CFカード上のファームウェアを更新するプロセスは、有効に終了される。
【0044】
あるいは、工程508にて、リーダがISPをサポートすることが判定された場合、ホストは、例えば、SCSI Check ISPコマンド等のコマンドをリーダ上のファームウェアに送信してISPサポートをイネーブルする。CFカードに対して用いるために適切であるCheck ISPコマンドの1実施形態は、図8Aに関して後述される。Check ISPコマンドが送信された後、ISPサポートは、工程520にて、リーダに対してイネーブルされる。ISPサポートをイネーブルすることは、1実施形態において、IDENTIFY DEVICE情報の86番目のワードにおけるビット0をCheck ISPコマンドに応答して「1」に設定することを含み得る。
【0045】
CFカードに対するISPサポートは、工程524にて、イネーブルされる。通常、ホストは、CFカードにコマンドを送信し、これは、CFカードが新しいファームウェアを自動的に受信および収納することを可能にする。1実施形態において、コマンドは、Media Card Checkであり得、ISPは、SCSI Media Card Execute CFコマンドに組み込まれるAT Attachment(ATA)コマンドの形態であり得る。当該分野において周知であるATAコマンドは、SanDisk Corporation of Sunnyvaleによる「CompactFlash Memory Card Product Manual」California(2000年4月出願)に記載される。同出願は、参考のため、その全体が本明細書中に援用される。Media Card Check CF ISPコマンドが組み込まれるSCSI Media Card Execute CFコマンドが図7Aに関して後述される。
【0046】
一旦CFカードに対するISPサポートがイネーブルされると、工程528にて、ホストからCFカードに新しいカードファームウェアが送信される。新しいカードファームウェアは、ホストからMedia Card Execute CF ISPコマンドにおけるCFカードに送信され得る。このコマンドは、SCSI Media Card Execute CFコマンドに組み込まれ得るATAコマンドである。新しいカードファームウェアがCFカードに送信された後、CFカードは、工程532にて、パワーオンリセット動作を実行し、これは、CFカード上のISPサポートをディセーブルする。プロセスの流れは、その後、工程534に進む。ここで、ホストは、Check ISPコマンドをリーダに送信して、ISPサポートをリーダに対してディセーブルする。
【0047】
ISPサポートがリーダに対してディセーブルされた後、工程536にて、リーダは、通常、ホストから自動的に電気的に切り離される。一旦リーダがホストから電気的に切り離されると、リーダは、工程540にて、CFカードにコマンドを送信してCFカードを再初期化する。1実施形態において、CFカードをリセットすることに加えて、リーダは、さらに、CFカードからの情報を識別する新しいデバイスを読み出し得る。工程540から、プロセスの流れは、工程544に移り、ここで、リーダは、自動的に電気的にホストに再接続する。自動的にホストに電気的に再接続することによって、リーダは、ホストまたはより具体的には、ホストと関連するソフトウェアが、実質的に、新しいデバイスとしてのCFカードと相互通信させる。リーダが自動的にホストと再接続すると、CFカード上のカードファームウェアを更新するプロセスが完了する。
【0048】
図4Aおよび図4Bに関してすでに述べられたように、SDカードに対してISPをサポートするシステム全体は、Check ISPコマンドの認識を含む。すなわち、SDカードと関連するISP機能セットは、Check ISPコマンドを含む。図6Aは、本発明の実施形態による、Check ISPコマンドの図で示す。図6Aは、本発明の実施形態による、Check ISPコマンドのコマンド記述子ブロックを図で示す。Check ISPコマンド記述子ブロック602は、通常、12バイト606を含み、各々が8ビット610を有する。ブロック602は、D0hコマンドコードと関連付けられ、かつ、基本的に、SCSIコマンドの成分であり、このコマンドは、ホストからリーダに、例えば、ホストからリーダと関連付けられたファームウェアに送信される。
【0049】
バイト606aは、オペレーションコードを含むように構成される。バイト606kのビット610aは、メディアカードパススルーコマンドをイネーブルするように構成される。すなわち、バイト606kのビット610aは、ホストがリーダにコマンドを送信する代わりに、ホストがコマンドまたはソフトウェアを、実質的にリーダを介してカードに直接送信し得るか否かを示すように構成される。ホストはその後、コマンドをカードに送信する。記載された実施形態において、バイト606kのビット610a、またはPASS ENBフィールドは、「1」の値にセットされ得、メディアカードパススルー機能性がイネーブルされることを示す。
【0050】
通常、メディアカードパススルー機能性は、ISPサポートがイネーブルされるとイネーブルされる。これは、ISPが通常、パススルーコマンドを用いるためである。ISPサポートがイネーブルされると、ISP ENBフィールド、例えば、バイト606kのビット610bは、「1」の値に設定され得る。従って、ISPがパススルーコマンドを用いるので、記載される実施形態において、ISP ENBフィールドが「1」に設定されると、PASS ENBフィールドもまた「1」に設定される。ISPサポートをディセーブルするために、ISP ENBフィールドは、「0」の値に設定され得る。
【0051】
バイト606kのビット610hは、「1」の値に設定され得る「ロックビット」であり、ISPモードまたはサポート、および、ホストがカードファームウェアを、実質的にリーダを介して直接カードに送信することを可能にするモードであるメディアカードパススルーモードの両方は、ISP ENBフィールドまたはPASS ENBフィールドのどちらかを変更することによってでは変更され得ないことを示す。換言すると、バイト606kのビット610hは、ISPモードおよびメディアカードパススルーモードに関して誤りが生じることを防止するように有効に利用される。
【0052】
ISP ENBフィールドが「1」にセットされ、リーダと関連付けられたファームウェアがブロック602を受信する場合、リーダファームウェアは、ISP処理のために内部フラグを設定し得る。すなわち、リーダファームウェアは、ISP処理をイネーブルするように自動的に構成され得る。リーダファームウェアは、さらに、SDカードのカード専用データがISPサポート機能を有するか否かを判定するために点検し得る。リーダファームウェアが、ISP処理をイネーブルするように構成され、ブロック602が「0」に設定されたISP ENBフィールドと共に受信されるか、または消去された場合、リーダファームウェアは、通常、対応するカードファームウェアが更新されたか、またはホストが更新プロセスを終了することを想定する。結果として、リーダは、カードをリセットし得、ホストのUSBバスから自動的に切り離され、かつ、ホストに自動的に再接続する。
【0053】
1実施形態において、リーダは、Check ISPコマンドに応答して、データブロックをホストに戻し得る。図6Bは、本発明の実施形態による、Check ISPに応答して、ホストに戻されるデータブロックを図で示す。データブロック622は、各々が8ビット630の3バイト626を含み、受信されたCheck ISPコマンドの確認として、リーダからホストに送信される。Check ISPコマンドを受信するリーダが、ISPをサポートできない場合、リーダは、Check ISPコマンドが実質的に無効であったことを示すコードをホストに戻し得ることが認識されるべきである。無効のコマンドは、SCSI Sense Data Format with ILLEGAL REQUEST(Value5)によって、Sense Keyとして、およびINVALID FIELD IN CDB(Value24hおよび00h)によってASCおよびASCQとして識別される。
【0054】
データブロック622の第1のバイト626aは、ビット630aを含み、これは、リーダが、Check ISPコマンドが実行された後、メディアカードパススルー能力がイネーブルされるか否かを示すように構成されるか否かを示すPASS ENBフィールドである。第1のバイト626aにおける第2のビット630bは、ISPサポートがイネーブルされるか否かを示すように構成されるISP ENBフィールドである。通常、PASS ENBフィールドにおける「1」の値は、メディアカードパススルー能力がイネーブルされることを示し、他方、ISP ENBフィールドにおける「1」の値は、ISPサポートがイネーブルされることを示す。
【0055】
バイト626aのビット630c〜fは、メディアカードのタイプを含むように構成される。例えば、1実施形態において、カードが標準的SDメモリカードである場合、バイト626aのビット630c〜fは、「001」と設定され得、他方、カードがMMCカードである場合、バイト626aのビット630c〜fは、「010」と設定され得る。このような実施形態において、バイト626aのビット630c〜fは、SD入力−出力(IO)カードの場合、「011」と設定され得、バイト626aのビット630c〜fは、パーソナルコンピュータメモリカード国際協会(PCMCIA)カードである場合、「100」と設定され得、バイト626aのビット630c〜fは、CFカードの場合、「101」と設定され得る。カードのタイプと関連付けられた種々のコードは多種多様であり得ることが考慮に入れられるべきである。
【0056】
いくつかのカードのタイプは、関連するRCAを有する。カードがSDカードである場合、例えば、バイト626bおよび626cは、実質的に、コマンドが正しいアドレス、すなわち、カードと関連するアドレスに送信されることを確実にするためにホストによって用いられるRCAビットを含み得る。
【0057】
図6Cは、本発明の実施形態による、Media Card Execute SDコマンド記述子ブロックを図で示す。対応するSCSIコマンド記述子(図示せず)内で構成され得るMedia Card Execute SDコマンドブロック652は、リーダを通過し、D1hコマンドコードと関連付けられるコマンドをSDカードに送信することを可能にするように構成される。ブロック652は、通常、SCSIコマンド全体か、またはラッパ内に組み込まれるSDコマンドとして構成される。バイト656aは、記載される実施形態において、D1hコマンドコードと一致するオペレーションコードに関連する情報を含むように構成される。
【0058】
ブロック652に組み込まれるSDまたはMMCコマンドは、バイト656c〜jを含む。リーダがブロック652を受信すると、リーダは、実質的に、少なくとも組み込まれたコマンドの部分を除去、例えば、バイト656c〜jに関連する情報を除去し、組み込まれたコマンドを受信側のSCカードに転送する。組み込まれたコマンドは、バイト656cに格納されるコマンドインデックスを含む。コマンドインデックスは、実質的に、SDカードへのコマンドを保持し、他方、バイト656d〜gに格納されるコマンド引数は、コマンドインデックスと関連付けられたコマンドへの引数である。バイト656h〜jは、ホストから転送されるべきデータの量と関連するデータ転送長さを保持する。
【0059】
ブロック652のバイト656kは、応答タイプを、例えば、ビット660e〜hに含むように構成され、これは、バイト656cにおいて識別されたコマンドのSDまたはMMC応答タイプを示す。バイト656kのビット660dは、データ転送の方向を示すように構成される。例として、バイト656kのビット660dが、「1」の値に設定される場合、データは、リーダからホストに転送され得、他方、バイト656kのビット660dが「0」の値に設定された場合、データは、ホストからリーダに転送され得る。バイト656k、のビット660cは、ビット660cが「1」の値に設定された場合、コマンドが正常のコマンドであると考えられるようにコマンドタイプを示すように構成されるが、ビット660cが、「0」の値に設定される場合、コマンドは、アプリケーションコマンドであると考えられる。コマンドに関連するバイト656cに応答して、応答データを取り出すか否かを示すバイト656kのビット660bは、応答データが取り出されるべき場合、「1」の値に設定され得、応答データが取り出されるべきでない場合、「0」の値に設定され得る。取り出されるべき任意の応答の長さは、バイト656h〜jで保持されるデータ転送長さによって実質的に規定される。
【0060】
通常、Media Card Execute SDコマンドは、ブロック652と関連する組み込まれたSDコマンドの実行を開始する。リーダ、または、より具体的には、リーダと関連付けられたファームウェアは、組み込まれたコマンドをSDカードに送信し、かつ任意の予定される応答を受信し得る。例として、組み込まれたコマンドが、SDカードからデータを取り出させるコマンドである場合、リーダは、通常、SDカードからのデータを読み出し、そのデータをホストに転送する。リーダがホストから読み出されるデータをロードするように構成されたバッファを有しない場合、リーダは、SDカードから部分的データを読み出し、その部分的データをホストに転送し得る。通常、バッファを有しないリーダについては、リーダは、実質的に、SDカードからリクエストされたすべてのデータがホストに転送されるまで、部分的データの読み出しおよび転送を継続する。同様に、組み込まれたコマンドは、新しいカードファームウェア等のデータをSDカードに書き込ませるコマンドである場合、リーダは、実質的には、同時に、または、少しずつ、例えば、リーダがバッファを含まない場合、ホストからデータを読み出し、このデータをホストからSDカードに書き込み得る。当業者によって理解されるように、データ転送は、通常、実質的に任意の適切なプロトコルを用いて達成され得る。1実施形態において、X3T10標準規格に準拠するデータ転送プロトコルが用いられ得る。
【0061】
SDカードに用いるために適切であるMedia Card Executeコマンドは、通常、CFカードとともに使用するために適切であるMedia Card Executeコマンドとは異なる。図7Aを参照して、CFカードと関連付けられたファームウェアに更新が行われることを可能にするシステムにおいて使用するために適切であるMedia Card Execute CFコマンドの1実施形態が、本発明により記載される。通常、SCSIコマンド記述子全体に組み込まれるSCSI Media Card Execute CFコマンドのためのコマンド記述子ブロック702は、各々が8ビット710の12バイト706を含む。Media Card Execute CFコマンドは、通常、D2hコマンドコードと一致する。バイト706aは、記載される実施形態において、D2hコマンドコードと一致する演算コードと関連付けられた情報を含むように構成される。
【0062】
バイト706f〜kは、ATAタスクファイルレジスタを用いて実質的に満たされる。換言すると、バイト706kは、CFカードと関連付けられたタスクファイルレジスタがデータとして戻され得るようにATAコマンド1F2〜1F7に対応し得る。当業者によって理解されるように、タスクファイルレジスタは、エラーレジスタ、セクタ数レジスタ、セクタレジスタ、シリンダ下位レジスタ、シリンダ高位レジスタ、デバイス/ヘッドレジスタ、およびコマンド/ステータスレジスタを含み得るが、これに限定されない。通常、バイト706f〜kは、リーダによって抽出されて、CFカードに送信され得る。データがCFカードからリーダに転送されるべき実施形態については、レジスタ値は、CFカードから取り出され、図7Bに示されるフォーマットでリーダを介してホストに戻され得る。示されるように、図7Bに示されるブロック752は、ブロック702のビット706c〜jに対応するビット716c〜jを含むが、ビット716c〜jは、通常、異なったタスクファイルレジスタ値を有する。
【0063】
バイト706lは、Media Card Execute CFコマンドを開始するホストが、ATAタスクファイルレジスタをリードバックすることを意図するか否かを示すビット710aを含むように構成される。バイト706lのビット710aが「1」の値に設定される場合、ホストが、実質的に、ATAタスクファイルレジスタをリードバックすることのみを意図することが示され得る。戻されたタスクファイルレジスタのデータフォーマットは、図7Aに示される。バイト706lの第2のビット710bは、読み出しまたは入力動作のために「1」の値に設定され、書き込みまたは出力動作のために「0」の値に設定されるように構成される。バイト7061の第3のビット710cは、転送されるべきデータがあるか否かを示すように構成される。
【0064】
通常、バイト706lのビット710が「1」の値に設定される場合を除いて、リーダは、バイト706f〜kを抽出し、タスクファイルレジスタをCFカードに送信する。データの転送がリクエストされる場合、すなわち、バイト706lのビット710cが、転送されるべきデータがあることを示す場合、タスクファイルレジスタは、セクタ数、セクタ、シリンダ、およびUSBマス格納クラスバルクオンリープロトコルといった標準的プロトコルを用いるヘッドレジスタを規定する。データ転送の方向およびデータ転送長さは、両方とも、通常、ブロック702において、例えば、バイト7061のビット710bにおいて、および実質的にブロック702を含むUSBラッパにおいて規定される。1実施形態において、用いられるデータ転送プロトコルは、X3T13標準規格等の標準規格と一致する。
【0065】
CFカードとともに用いられるために適切であるCheck ISPコマンドは、リーダファームウェアによって生成されて、CFカードに送信され得る。記載される実施形態において、このようなCheck ISPコマンドは、さらに、SDカードとともに用いるために適切であり得る。すなわち、Check ISPコマンドは、CFカードおよびSDカードに対して同じであり得る。このようなCheck ISPコマンドは、CFカードのためのD5hコマンドコードと一致し得、一旦リーダがコマンドを生成すると、通常、リーダからフラッシュカードに送信される。図8Aは、本発明の実施形態による、CFカードとともに用いるために適切であるCheck ISPコマンドと関連付けられたコマンドブロックを図で示す。コマンドブロック804は、レジスタ812と関連付けられたビット808を含む。1実施形態において、レジスタ812は、図7Aのバイト706f〜706kと関連付けられ得る。すなわち、ブロック804は、図7Aのブロック702に有効に組み込まれ得る。
【0066】
レジスタ812aと関連付けられたビット808aは、CFカードまたはSDカードがISPをサポートするようにイネーブルされるか、またはISPをサポートすることからディセーブルされるべきかを示すように構成される。レジスタ812aのビット808aは、例えば、ISPモードがイネーブルされるべきであることを示すために「1」の値に設定され得、ISPモードがディセーブルされるべきであることを示すために「0」の値にセットされ得る。レジスタ812gと関連付けられたビット808は、Dh5コマンドコードを示すように構成される。
【0067】
通常、リーダがメディアカードパススルーフィーチャセットをサポートし、Check ISPコマンド内の適切なビットがISPサポートをイネーブルするように設定され、例えば、図8Aのバイト812aのビット808aが「1」に設定される場合、リーダは、実質的に、任意の次のメディアカードパススルーコマンドを処理するように構成される。図8Aのバイト812aのビット808aが「0」に設定される場合、ホストがCFカード上のディセーブルされたISPモードを有することが示される。従って、ISPコマンドは、リーダを介してCFカードに送信され得ない。
【0068】
ISPコマンドをサポートするリーダと関連付けられたステータスレジスタ出力は、図8Bに関して記載され得る。図8Bは、本発明により、CFカードによってリーダに戻され得るデータブロックを図で示す。ブロック814は、各々が8ビット818を含むレジスタ822を含む。記載される実施形態において、0hは、エラーレジスタ822a、およびシリンダレジスタ822d、822eにて戻され、他方、55hは、セクタ数レジスタ822bにて戻され、AAhは、セクタ数レジスタ822cにて戻される。
【0069】
デバイスヘッドレジスタ822fは、選択されたデバイスをビット818eで示し、通常、「0」の値に設定され、ただ1つのメディアカードがリーダと接続されるように、および書き込み禁止がビット818dでCFカードにてアクティブであるか否かを示すように構成される。書き込み禁止がアクティブの場合、レジスタ822fのビット818dが「1」の値にセットされ得るが、書き込み禁止がアクティブでない場合、レジスタ822fのビット818dは、「0」の値に設定され得る。レジスタ822fのビット818a〜cは、メディアタイプを示すようにセットされ得る。例えば、カードがCFカードである場合、レジスタ822fのビット818a〜cは、「101」の値に設定され得る。ブロック814が、CFカードからリーダに転送されるために適切であると記載されている一方で、ブロック814は、さらに、他のメディアタイプとともに用いるように構成され得ることが理解されるべきである。ブロック814が他のメディアタイプとともに用いられる場合、レジスタ822fのビット818a〜cの内容は、適切なメディアタイプを示し得る。
【0070】
通常、50Hを戻すステータスレジスタ822gは、ビット818hを含み、これは、一旦、例えば、Check ISPコマンド等のコマンドが正しく完了すると、「0」の値に設定される。ステータスレジスタ822g内で、ビット818gは、「1」の値に設定され得、他方、デバイスの故障ビット818f、ビット818dおよびエラービット818dは、コマンドが完了すると「0」の値に設定され得る。
【0071】
Check ISPコマンドを処理する際にエラーが生じた場合、エラー出力ブロックは、CFカードからリーダに送信され得る。このようなエラー出力ブロックは、通常、ISPサポートがイネーブルされないことを示し得る。図8Cは、エラーが、本発明の実施形態により、Check ISPコマンドを処理する際に生じた場合、CFカードからリーダに送信され得るエラーデータブロックを図で示す。エラーデータブロック824は、ビット828に分割されるレジスタ832を含む。エラーが、Check ISPコマンド等のコマンドを処理する際に生じる場合、エラーレジスタ832a内のビット、例えば、ビット828cは、通常、コマンドがうまく処理されなかったことを示すように設定される。1実施形態において、エラーレジスタ832aのビット828cは、コマンドが有効に中止されたことを示すように、「1」の値に設定され得る。
【0072】
デバイス/ヘッドレジスタ832fと関連付けられるビット828eは、選択されたデバイスを示すように構成され、通常、「0」の値に設定され、ただ1つのメディアカードがリーダと接続される。ステータスレジスタ832gは、種々の情報を含むように構成される。例として、ステータスレジスタ832gは、ビット828hが実質的に「0」の値にクリアされて、コマンドの実行が有効に完了したことを示すように構成されるが、他方、通常、「1」の値に設定されて、エラーが生じたことを示すビット828aと、デバイスに故障が生じた場合、デバイスに故障が生じたときに「1」の値に設定されるように構成されるビット828fとを含む。記載された実施形態において、レジスタ832gのビット828gは、「1」の値にセットされ得、ブロック824をエラーデータブロックとして識別し、他方、レジスタ832gのビット828dは、「0」に設定され得、転送するデータがもはやないことを識別する。
【0073】
D6hコマンドコードと一致し得るMedia Card Execute CF ISPコマンドは、Media Card Execute CFコマンド、例えば、図7Aに関する上述のコマンドと関連付けられる。Media Card Execute CF ISPコマンドは、通常、対応するSCSIコマンド内に組み込まれるネイティブコマンドの実行を開始する。組み込まれたコマンドがCFカード、または潜在的な(underlying)カードからファームウェアデータを取り出させるコマンドである場合、対応するリーダは、CFカードからのデータを読み出し、読み出したデータをホストに転送し得る。リーダがバッファを含まない場合、部分データは、CFカードから読み出され、実質的に読み出されたすべてのデータが転送されるまで繰返され得る手順で、ホストに転送され得る。あるいは、組み込まれたコマンドが、ファームウェアデータをCFカードに書き込ませるコマンド、すなわち、CFカード上のファームウェアを更新させるコマンドである場合、リーダは、通常、ホストからデータを読み出し、読み出されたデータをホストからCFカードに転送する。アダプタが、バッファを有しない場合、部分データは、ホストから読み出され、実質的に、すべての読み出されたデータがCFカードに転送されるまで、繰返しCFカードに転送され得る。
【0074】
図8Dは、本発明の実施形態による、Media Card Execute CF ISPコマンドの一部分として、リーダとCFカードとの間に送信され得るコマンドブロックを図で示す。コマンドブロック844は、各々が8ビット848を含むレジスタ852を含む。コマンドレジスタ852gは、ブロック844がD6hコマンドコードと一致することを示すように構成され、他方、フィーチャレジスタ852aは、0h値を戻すように構成されたビット848b〜hと、データ転送の方向を規定するように構成されたビット848aとを含む。ファームウェアがCFカードから読み出されるべき場合、フィーチャレジスタ852aのビット848aは、「1」の値に設定され得るが、ファームウェアがCFカードに書き込まれるべき場合、フィーチャレジスタ852aのビット848aは、「0」の値に設定され得る。
【0075】
セクタ数レジスタ852bは、処理されるべき、すなわち、CFカードから読み出されるか、またはCFカードに書き込まれるべきセクタの数を格納するように構成される。セクタ数レジスタ852cは、CFカード内のファームウェアと関連付けられる関数論理ブロックアドレス(LBA)の最下位ビットを格納するか、または戻すように構成され、他方、シリンダレジスタ852d、852eは、LBAの中間バイトおよびLBAの最上位ビットをそれぞれ格納するように構成される。
【0076】
図8Eを参照して、CFカードとリーダとの間に送信され得、Media Card Execute CF ISPコマンドが正常に実行されたことを示すコマンドブロックの1実施形態が記載される。レジスタ872に分割されるビット868を含むコマンドブロック864は、コマンドが実質的にうまく実行すると、CFカードからリーダに送信され得る。レジスタ872a〜eは、実質的にクリアされ得、他方、デバイス/ヘッドレジスタ872fは、デバイスを示すビット868eを含み得、かつ「0」の値に設定され得、実質的に、コマンドの実行と関連付けられたターゲットであるただ1つのメディアカードがリーダと接続される。
【0077】
50Hを戻すように構成されたステータスレジスタ872gは、ビット868hを含み、これは、コマンドの実行が完了されたことを示すように「0」の値に設定される。ステータスレジスタ872gのビット868gは、「1」の値に設定され得、ビット868a、868d、868fは、すべて、実質的にクリアされ得るか、または、コマンドが正常に実行したことを示すように「0」の値に設定され得る。
【0078】
Media Card Execute CF ISPコマンド等のコマンドを処理する際にエラーが生じた場合、エラーデータブロックが、CFカードからリーダに送信されて、エラーが生じたことを示し得る。例えば、ホストは、CFカードがファームウェアの20キロバイト(kBs)を有することを予測し、CFカードが、実際に、ファームウェアの10kBを有する場合、エラーは、コマンドを処理する間に生じ得る。図8Fは、本発明の実施形態により、Media Card Execute CF ISPコマンドが正常に実行していないことを示すCFカードからリーダに送信され得るエラーブロックを図で示す。エラーデータブロック892は、レジスタ892と関連付けられたビット888を含む。状態レジスタ892fは、中止されたコマンドが対象としていたデバイスまたはCFカードを識別するビット888eを含む。
【0079】
コマンドを処理する際にエラーが生じた場合、CFカードは、ステータスレジスタ892gのビット888aを、エラーが生じたことを示すように設定し、対応して、エラーレジスタ892a内の関連するビット888を設定し得る。例えば、エラーレジスタ892aのビット888gは、CFカードが潜在的なデータエラーを有する場合、「1」の値に設定され得る。従って、1実施形態において、カードがプロセスをダウンロードすることが完了する前にカードが除去または変更される場合、バイト892aのビット888cは、中止されたプロセスを示すように「1」の値に設定され得る。すなわち、エラーレジスタ892aのビット888cは、コマンドがサポートされなかったためにコマンドが中止されたか、またはコマンドが実行されなかったか、またはコマンドの実行が開始されたが完了しなかったかを示すように、「1」の値に設定され得る。
【0080】
ステータスレジスタ892g内で、ビット888hおよびビット888dは、X3T10プロトコルに従って設定されなければならない。コマンドを処理する際に、デバイスの故障が原因でエラーが生じた場合、または、より一般的には、デバイスの故障が生じた場合、ステータスレジスタ892gのビット888fが「1」の値に設定され得る。ステータスレジスタ892gのビット888gは、コマンドが完了すると「1」の値に設定され得る。
【0081】
セクタ数レジスタ892cは、適用可能である場合、コマンドを実行する際にエラーを起こすCFカード内のセクタと関連付けられたLBAの最下位ビットを提供するように構成される。すなわち、セクタが、中止させるコマンドの実行をさせる場合、そのセクタのLBAの最下位ビットが、セクタ数レジスタ892c内のリーダに戻される。セクタが、コマンドが中止された原因である場合、シリンダ下位レジスタ892dおよびシリンダ上位レジスタ892eは、セクタのLBAの中間バイトおよびセクタのLBAの最上位ビットをそれぞれ戻すように構成される。
【0082】
本発明のいくつかの実施形態のみが記載されるが、本発明は、本発明の主旨または範囲から逸脱することなく、他の多くの特定の形態で実施され得ることが理解されるべきである。例として、リーダは、通常、USBリーダとして記載されてきたが、リーダは、実質的に、メモリカードがホストシステムと通信することを可能にする任意の適切なリーダまたはアダプタであり得る。適切なリーダは、PCカードリーダを含むが、これに限定されない。
【0083】
ファームウェアのダウンロードは、通常、新しいカードファームウェア、またはホストコンピュータからのコードを、リーダを介して、メモリまたはメディアカードに実質的に直接送信することを含むことが記載されてきた。ファームウェアは、ホストコンピュータからカードに実質的に直接送信される場合、システム全体の能力を強化するためになされるべき任意の変更が、実質的に、コンピュータ上のソフトウェアをアップグレードすることのみによって実行され得る。換言すると、ISP能力を強化するためにリーダファームウェアをアップグレードすることは必要とされ得ない。しかしながら、いくつかの実施形態において、新しいカードファームウェアがホストコンピュータからリーダに送信され得、リーダは、ISPコマンドをメモリカードに送信し得ることが考慮に入れられるべきである。
【0084】
メモリカードを更新またはアップグレードするために、新しいカードファームウェアがメモリカードに提供される場合、新しいカードファームウェアは、通常、現在、メモリカード上にあるファームウェアの対応する部分と置き換えることが意図されるファームウェアの部分を含む。新しいカードファームウェアは、さらに、例えば、現在のファームウェアを増強するために、現在メモリカード上にあるファームウェアに加えられるべきファームウェアの部分を含み得る。1実施形態において、メモリカードに提供される新しいカードファームウェアは、現在、メモリカード上にあるすべてのファームウェアと実質的に置き換わるように意図され得る。
【0085】
種々の機能およびコマンド記述子と関連付けられたビットおよびワードは、多種多様であり得る。換言すると、ブロックと関連付けられる異なった状態を示す特定の方法がコマンド記述子において設定される特定のビットまたはワードは、様々であり得る。例えば、ISPがサポートされることを示すように設定されるビットと、ISPサポートをイネーブルするように設定されるビットとは、通常、異なる。カード専用データ情報においてビット19を「1」に設定して、SDカードと関連付けられたシステムにおいてISPがサポートされることを示す代わりに、実質的に、任意の他のビットが設定され得る。システム全体が、ISPがサポートされることを示すように設定されるべきビットはどれかを知る限り、任意のビットがセットされ得る。
【0086】
コマンドおよびデータブロックが、SDカードまたはCFカードのどちらかとともに用いられるために適切であると一般に記載されてきたが、コマンドは、通常、他のタイプのメモリカードに適用可能であり得ることが考慮に入れられるべきである。例として、SDカードのために適切であるコマンドは、さらに、複数のメディアカードのために適切であり得る。さらに、CFカードに関して用いられるために適切であるように記載されてきたコマンドおよびデータブロックは、SDカードを含むが、これに限定されないカードの他のタイプとともに用いられるように増強され得る。あるいは、このようなコマンドおよびデータブロックは、実質的に増強されることなく、特定のタイプのメモリカードとともに用いるために適切であり得る。
【0087】
さらに、ISPコマンドを用いて更新され得るファームウェアを有するメモリカードは、多種多様であり得る。これらに限定されない上述の方法を用いて更新され得るファームウェアを有する他のタイプのメモリカードは、Memory StickカードおよびSmart Media(R)カードを含むが、これらに限定されない。
【0088】
ホストは、メモリカードと通信するリーダと通信することが記載されてきた。ホストおよびリーダは、実質的に、別のエンティティであり、すなわち、リーダは、ホストに簡単に接続され、ホストから簡単に切り離され得る周辺デバイスであり得る。リーダは、さらに、ホストの一部分であり得ることが理解されるべきである。例えば、リーダは、ホストに簡単に接続されるか、またはホストから簡単に切り離され得ないホストの一体部分であり得る。
【0089】
1実施形態において、更新され得るファームウェアは、ISPがサポートされることを可能にするファームウェアコードを含み得る。すなわち、ISPコードそれ自体は、カードファームウェアを更新またはアップグレードするように構成されるISPプロセスを用いるメモリカードにおいて更新され得る。特に、カードファームウェアが電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)およびファームウェアの実行がスタティックランダムアクセスメモリ(SRAM)内である場合、カードファームウェアと関連付けられたISPコードは、カードファームウェア更新プロセスの間、更新され得る。
【0090】
通常、本発明の種々のプロセスと関連付けられた工程は、多種多様であり得る。工程は、本発明の主旨または範囲から逸脱することなく、順序が変更、改変、追加および除去され得る。例として、SDカードおよびCFカード上のカードファームウェアを更新することと関連するプロセスは、SDカードおよびCFカードそれぞれがISPをサポートするか否かを判定することと関連する工程を包含し得る。従って、本例は、例示であり、限定的と考えられるべきでなく、本発明は、本明細書において付与された詳細に限定されるべきでなく、添付の請求項の範囲内で改変され得る。
【図面の簡単な説明】
【0091】
【図1】図1は、本発明の実施形態による、不揮発性メモリを含む一般的なホストシステムを図で示す。
【図2】図2は、本発明の実施形態による、メモリカードと関連付けられたカードファームウェアが更新され得るコンピュータシステム、およびこのシステムの部分であるリーダおよびメモリカードを図で示す。
【図3】図3は、本発明の実施形態による、カード上のカードファームウェアを更新するプロセスと関連する工程を示すプロセスフローチャートである。
【図4A】図4Aは、本発明の実施形態による、セキュアデジタルメモリカード上のファームウェア更新と関連する工程を示すプロセスフローチャートである。
【図4B】図4Bは、本発明の実施形態による、セキュアデジタルメモリカード上のファームウェアの更新と関連する工程を示すプロセスフローチャートである。
【図5】図5は、本発明の実施形態による、コンパクトフラッシュ(R)メモリ上のファームウェアの更新と関連する工程を示すプロセスフローチャートである。
【図6A】図6Aは、本発明の実施形態による、セキュアデジタルメモリカードを有するシステムにおいて用いるために適切であるCheck ISPコマンドと関連するコマンド記述子ブロックを図で示す。
【図6B】図6Bは、本発明の実施形態による、Check ISPコマンドに応答して、データをリーダからホストに戻す際に用いるために適切であるデータブロックを図で示す。
【図6C】図6Cは、本発明の実施形態による、セキュアデジタルメモリカードを有するシステムにおいて使用するために適切であるMedia Card Execute SDコマンドと関連付けられたコマンド記述子ブロックを図で示す。
【図7A】図7Aは、本発明の実施形態による、Compact Flashメモリカードを有するシステムにおいて使用するために適切であるMedia Card Execute CFと関連付けられたコマンド記述子ブロックを図で示す。
【図7B】図7Bは、本発明の実施形態による、Media Card Execute CFコマンドに応答して、Compact Flashメモリカードによってホストに戻され得るブロックを図で示す。
【図8A】図8Aは、本発明の実施形態による、コンパクトフラッシュ(R)カードと共に用いるために適切であるCheck ISPコマンドと関連付けられたコマンドブロックレジスタデータを図で示す。
【図8B】図8Bは、本発明の実施形態による、コンパクトフラッシュ(R)カードによってリーダに戻され得るコマンドブロックレジスタデータを図で示す。
【図8C】図8Cは、本発明の実施形態による、Check ISPコマンドを処理する際にエラーが発生した場合、コンパクトカードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。
【図8D】図8Dは、本発明による実施形態による、Media Card Execute CF ISPコマンドの一部分として、コンパクトフラッシュ(R)カードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。
【図8E】図8Eは、本発明の実施形態による、Media Card Execute CF ISPコマンドが正常に実行したことを示す、コンパクトフラッシュ(R)カードとリーダとの間に送信され得るコマンドブロックレジスタデータを図で示す。
【図8F】図8Fは、本発明によるMedia Card Execute CF ISPコマンドが正常に実行しなかったことを示す、コンパクトフラッシュ(R)カードからリーダに送信され得るコマンドブロックレジスタデータを図で示す。

Claims (30)

  1. メモリ格納デバイスと関連付けられたファームウェアを更新する方法であって、
    ホストに新しいファームウェアを提供する工程と、
    該新しいファームウェアを該ホストからリーダに送信する工程であって、該ホストは、該リーダと通信し、該リーダは、該メモリ格納デバイスとインタフェースするように構成され、該メモリ格納デバイスは、インストールされたファームウェアを備える、工程と、
    該新しいファームウェアを該リーダから該メモリ格納デバイスに送信する工程と、
    該新しいファームウェアを該メモリ格納デバイスに収納する工程であって、該新しいファームウェアは、該インストールされたファームウェアと少なくとも部分的に置き換わる、工程と
    を包含する、方法。
  2. 前記新しいファームウェアを第1のコマンドに組み込む工程であって、該新しいファームウェアを前記ホストから前記リーダに送信する工程は、前記第1のコマンドを該ホストから該リーダに送信する工程を包含する、工程をさらに包含する、請求項1に記載の方法。
  3. 前記組み込まれた新しいファームウェアを前記第1のコマンドから実質的に抽出する工程であって、前記リーダは、該組み込まれた新しいファームウェアを実質的に抽出する、工程をさらに包含する、請求項2に記載の方法。
  4. 前記ホストに前記新しいファームウェアを提供する工程は、該新しいファームウェアをサーバからダウンロードする工程を包含する、請求項1に記載の方法。
  5. 前記新しいファームウェアを前記メモリ格納デバイスに収納する工程は、前記インストールされたファームウェアを更新する、請求項1に記載の方法。
  6. 前記新しいファームウェアを前記メモリ格納デバイスに収納する工程は、
    前記ホストを用いて、該新しいファームウェアを該メモリ格納デバイスに書き込む工程をさらに包含する、請求項5に記載の方法。
  7. インシステムプログラミング能力を前記リーダに対してイネーブルする工程であって、該インシステムプログラミング能力は、前記新しいファームウェアが前記メモリ格納デバイスに収納されることを可能にする、工程をさらに包含する、請求項6に記載の方法。
  8. 前記新しいファームウェアを前記メモリ格納デバイスに収納した後、該メモリ格納デバイスをリセットする工程と、
    前記インシステムプログラミング能力を前記リーダに対してディセーブルする工程と、
    該リーダを該前記ホストから実質的に通信的に切断する工程と、
    該メモリ格納デバイスを再初期化する工程と、
    該リーダを該ホストから実質的に通信的に再接続する工程と
    をさらに包含する、請求項7に記載の方法。
  9. 前記メモリ格納デバイスは、不揮発性メモリを含むメモリカードである、請求項8に記載の方法。
  10. 前記メモリカードは、セキュアデジタルカード、Compact Flashカード、マルチメディアカード、スマートメディアカード、およびMemory Stickカードからなる群より選択されるメモリカードである、請求項9に記載の方法。
  11. メモリカードと関連付けられたファームウェアを更新するシステムであって、
    インストールされたカードファームウェアを含むメモリカードと、
    該メモリカードに新しいカードファームウェアを提供する手段と、
    該メモリカードに該新しいカードファームウェアを収納して、該新しいカードファームウェアが、該インストールされたカードファームウェアと少なくとも部分的に置き換わるようにする手段と
    を備える、システム。
  12. 前記メモリカードに前記新しいカードファームウェアを提供する前記手段は、
    ホストと、
    該ホストが該メモリカードとインタフェースすることを可能にする手段であって、該ホストが該メモリカードとインタフェースすることを可能にする該方法に、該新しいカードファームウェアを提供するように構成される、手段と
    を備える、請求項11に記載のシステム。
  13. 前記ホストは、前記新しいカードファームウェアを第1のコマンドに組み込む手段を備え、該ホストが前記メモリカードとインタフェースすることを可能にする前記手段に該第1のコマンドを提供する、請求項12に記載のシステム。
  14. 前記ホストが前記メモリカードとインタフェースすることを可能にする前記手段は、前記組み込まれた新しいカードファームウェアを前記第1のコマンドから実質的に抽出する手段を備える、請求項13に記載のシステム。
  15. 前記ホストは、前記メモリカードに情報を書き込むように構成される、請求項12に記載のシステム。
  16. 前記ホストは、前記メモリカードから情報を読み出すように構成される、請求項12に記載のシステム。
  17. 前記メモリカードは、不揮発性メモリを含む、請求項11に記載のシステム。
  18. 前記メモリカードは、セキュアデジタルカード、Compact Flashカード、マルチメディアカードおよびMemory Stickカードからなる群より選択されるメモリカードである、請求項15に記載のシステム。
  19. リーダとインタフェースするように構成されるメモリ格納デバイスであって、
    データを格納するように構成される記憶素子と、
    該記憶素子と協働して該データを格納し、かつ命令を実行するように構成されるファームウェアであって、インシステムプログラミング能力をサポートするようにさらに構成され、該インシステムプログラミング能力は、該ファームウェアが実質的に更新されることを可能にし、他方、該メモリ格納デバイスは、該リーダとインタフェースする、ファームウェアと
    を備える、メモリ格納デバイス。
  20. 前記リーダを介して前記ファームウェアの更新を受信するように構成される受信メカニズムをさらに備える、請求項19に記載のメモリ格納デバイス。
  21. 前記ファームウェアは、該ファームウェアを更新する前記更新を収納する、請求項20に記載のメモリ格納デバイス。
  22. 前記更新されたファームウェアは、パワーオンリセットを実行して、前記メモリ格納デバイスと関連付けられた該ファームウェアを実質的にリセットする能力を備える、請求項21に記載のメモリ格納デバイス。
  23. コントローラであって、前記ファームウェアが該コントローラに含まれる、コントローラをさらに備える、請求項19に記載のメモリ格納デバイス。
  24. 前記記憶素子は、不揮発性メモリ記憶素子である、請求項19に記載のメモリ格納デバイス。
  25. 前記メモリ格納デバイスは、セキュアデジタルカード、Compact Flashカード、マルチメディアカードおよびMemory Stickカードからなる群より選択されるメモリ格納デバイスである、請求項24に記載のメモリ格納デバイス。
  26. メモリデバイスが計算システムと通信することを可能にするように構成されるアダプタであって、
    該メモリデバイスを受け取るように構成されるポートと、
    インシステムプログラミング能力をサポートするように構成されるファームウェアであって、該インシステムプログラミング能力は、該計算システムが該メモリデバイスの更新されたファームウェアコードを、該アダプタを介して該メモリデバイスに提供することを可能にする工程を含む、ファームウェアと
    を備える、アダプタ。
  27. USBリーダまたはPCリーダのうちの一つである、請求項25に記載のアダプタ。
  28. ホストとリーダとメモリ格納デバイスとを備えるコンピュータシステム内で用いるために適切であるコマンド記述子であって、該リーダおよび該メモリ格納デバイスは、該リーダと関連付けられたファームウェアのインシステムプログラミング更新をサポートするように構成され、該コマンド記述子は、
    演算コードを示すように構成されるビットの第1のセットであって、該演算コードは、該コマンド記述子によってサポートされる第1のコマンドと関連付けられる、ビットの第1のセットと、
    インシステムプログラムが該メモリ格納デバイス内でイネーブルされるべきことを示すように構成される、少なくとも第1のビットと
    を備える、コマンド記述子。
  29. 少なくとも第2のコマンドが前記リーダを介して前記ホストから前記メモリ格納デバイスに通過することが可能であることを示すように構成される少なくとも第2のビットであって、該第2のコマンドは、パススルーコマンドである、第2のビットをさらに備える、請求項28に記載のコマンド記述子。
  30. 前記少なくとも第1のビットは、前記リーダと関係付けられた前記ファームウェアに、該ファームウェアの前記インシステムプログラミング更新がサポートされることを示すように内部フラグを実質的に設定させるように構成される、請求項28に記載のコマンド記述子。
JP2003542476A 2001-11-06 2002-10-03 メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション Pending JP2005508547A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/005,740 US7320126B2 (en) 2001-11-06 2001-11-06 Implementation of in system programming to update firmware on memory cards
PCT/US2002/031888 WO2003040917A2 (en) 2001-11-06 2002-10-03 Implementation of in-system programming to update firmware on memory cards

Publications (1)

Publication Number Publication Date
JP2005508547A true JP2005508547A (ja) 2005-03-31

Family

ID=21717477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003542476A Pending JP2005508547A (ja) 2001-11-06 2002-10-03 メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション

Country Status (6)

Country Link
US (2) US7320126B2 (ja)
EP (1) EP1459174A2 (ja)
JP (1) JP2005508547A (ja)
CN (1) CN1293466C (ja)
AU (1) AU2002363505A1 (ja)
WO (1) WO2003040917A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344206A (ja) * 2005-06-08 2006-12-21 Feitian Technologies Co Ltd ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス
JP2013513874A (ja) * 2009-12-24 2013-04-22 ▲華▼▲為▼▲終▼端有限公司 データカードのアップグレーディング方法およびデバイス
JP2014528110A (ja) * 2011-07-27 2014-10-23 ▲華▼▲為▼▲終▼端有限公司 データカードを更新する方法、パーソナルコンピュータ、およびデータカード
JP2014238838A (ja) * 2013-06-08 2014-12-18 ▲華▼▲為▼▲終▼端有限公司 ファームウェアを更新するための方法、装置、および通信デバイス

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702984B1 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. High volume testing for USB electronic data flash cards
US7295443B2 (en) 2000-07-06 2007-11-13 Onspec Electronic, Inc. Smartconnect universal flash media card adapters
US6438638B1 (en) 2000-07-06 2002-08-20 Onspec Electronic, Inc. Flashtoaster for reading several types of flash-memory cards with or without a PC
US6618788B1 (en) * 2000-09-27 2003-09-09 Cypress Semiconductor, Inc. ATA device control via a packet-based interface
US7320126B2 (en) * 2001-11-06 2008-01-15 Sandisk Corporation Implementation of in system programming to update firmware on memory cards
US20030140129A1 (en) * 2002-01-24 2003-07-24 Noam Livnat Installing communication protocol in a handheld device
US20040049617A1 (en) * 2002-09-05 2004-03-11 Integrated Circuit Solution Inc. Method of firmware update by USB interface
JP2004139442A (ja) * 2002-10-18 2004-05-13 Toyota Motor Corp 情報端末装置、情報端末装置の動作制御方法、特定情報記憶プログラム、特定情報記憶プログラムを格納する記憶媒体、所定情報変更プログラム、端末動作プログラム、端末動作プログラムを格納する記憶媒体、及びセンタ
US20040083469A1 (en) * 2002-10-23 2004-04-29 Ping-Sheng Chen Method for updating firmware of optical disk system
US7246266B2 (en) * 2002-11-21 2007-07-17 Chris Sneed Method and apparatus for firmware restoration in modems
WO2004086363A2 (en) * 2003-03-27 2004-10-07 M-Systems Flash Disk Pioneers Ltd. Data storage device with full access by all users
TW200421172A (en) * 2003-04-04 2004-10-16 Incomm Technologies Co Ltd Drive codes upgrading method of portable memory device and device thereof
EP1652075B1 (en) * 2003-07-29 2018-10-31 Qualcomm Incorporated Mobile handset with update agent implemented in hardware
WO2005064480A2 (de) 2003-12-30 2005-07-14 Wibu-Systems Ag Verfahren zum steuern eines datenverarbeitungsgeräts
TWI240203B (en) * 2004-02-25 2005-09-21 Via Tech Inc A device which updates firmware by a memory card
US7676839B2 (en) 2004-03-15 2010-03-09 Xceedid Systems and methods for access control
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
AU2005264988B2 (en) * 2004-06-17 2011-09-22 Cytokinetics, Inc. Substituted urea derivatives for treating cardiac diseases
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US8195781B2 (en) * 2004-08-19 2012-06-05 Hewlett-Packard Development Company, L.P. Network management with scalable trap definitions
KR100689223B1 (ko) 2005-04-18 2007-03-02 삼성에스디에스 주식회사 스마트 카드 운영체제의 최적화 패치 방법 및 보안 패치방법
TWI345175B (en) * 2005-06-08 2011-07-11 Winbond Electronics Corp Method for updating firmware of memory card
US20070022179A1 (en) * 2005-07-22 2007-01-25 Samsung Electronics Co., Ltd. Display device with cable card and updating method thereof
US20070168668A1 (en) * 2005-12-08 2007-07-19 Chang Robert C Media card with command pass through mechanism
US8078788B2 (en) 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US20070136501A1 (en) * 2005-12-08 2007-06-14 Chang Robert C Media card command pass through methods
US7663922B2 (en) * 2006-02-02 2010-02-16 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory devices with lower and upper bit lines sharing a voltage control block, and memory cards and systems having the same
KR100666184B1 (ko) * 2006-02-02 2007-01-09 삼성전자주식회사 하부 비트라인들과 상부 비트라인들이 전압제어블락을공유하는 3-레벨 불휘발성 반도체 메모리 장치
JP2007280347A (ja) * 2006-03-14 2007-10-25 Ricoh Co Ltd メモリカード及びメモリカード制御切替方法
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
US8082543B2 (en) * 2006-08-17 2011-12-20 Hewlett-Packard Development Company, L.P. Methods and systems for arbitrating error handling and firmware updates
KR100849212B1 (ko) * 2006-10-12 2008-07-31 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
US8166105B2 (en) * 2006-10-20 2012-04-24 Nec Corporation Portable terminal, server, and method for realizing function of portable terminal using network
US20080103658A1 (en) * 2006-10-27 2008-05-01 Spx Corporation Scan tool software update using an image
US10311427B2 (en) * 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
US9348730B2 (en) * 2007-01-31 2016-05-24 Standard Microsystems Corporation Firmware ROM patch method
EP2150891B1 (en) * 2007-05-21 2019-03-06 Thomson Licensing Robust firmware upgrade in a network terminal
US8161199B1 (en) * 2007-06-25 2012-04-17 Marvell International Ltd. Smart printer cartridge
US8806472B2 (en) * 2007-09-27 2014-08-12 Ericsson Ab In-service software upgrade utilizing metadata-driven state translation
US20110039306A1 (en) * 2008-04-24 2011-02-17 New England Biolabs, Inc. Reagent Containing a Thermostable Endonuclease
US8977783B2 (en) * 2009-10-21 2015-03-10 Media Ip, Llc High-speed secure content transfer to SD card from kiosk
US9595300B2 (en) * 2009-10-21 2017-03-14 Media Ip, Llc Contextual chapter navigation
CN102117214B (zh) * 2010-01-06 2014-03-19 浙江德景电子科技有限公司 一种嵌入式设备及其数据文件下载方法
US8898803B1 (en) 2010-01-11 2014-11-25 Media Ip, Llc Content and identity delivery system for portable playback of content and streaming service integration
EP2563091B1 (en) * 2010-04-23 2016-06-08 Huawei Device Co., Ltd. Wireless internet-accessing module, host, communication method thereof, and data card
CN104978225A (zh) * 2010-08-02 2015-10-14 中颖电子股份有限公司 固件更新方法和装置
US8745749B2 (en) * 2010-11-15 2014-06-03 Media Ip, Llc Virtual secure digital card
EP2469408A1 (en) * 2010-12-22 2012-06-27 France Telecom System and method for remotely triggering actions on a mobile device
US8924778B2 (en) * 2010-12-29 2014-12-30 Lsi Corporation Method to synchronize a replacement controller's firmware version to the native configuration database version on a simplex array
US8775827B2 (en) 2011-03-28 2014-07-08 Media Ip, Llc Read and write optimization for protected area of memory
US8949879B2 (en) 2011-04-22 2015-02-03 Media Ip, Llc Access controls for known content
KR101466560B1 (ko) * 2011-06-07 2014-11-28 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
CN102945190B (zh) * 2012-11-05 2016-05-11 无敌科技(西安)有限公司 利用卡片对嵌入式设备Code更新过程中被中断后仍可继续更新的方法
KR101427755B1 (ko) * 2013-04-26 2014-08-07 주식회사 코아로직 Usb를 이용한 펌웨어 업그레이드 장치 및 방법
CA2915620C (en) 2013-06-18 2022-12-13 Ciambella Ltd. Method and apparatus for code virtualization and remote process call generation
EP3019956A4 (en) * 2013-07-12 2017-03-15 Ciambella Ltd. Method and apparatus for firmware virtualization
CN103365693A (zh) * 2013-07-26 2013-10-23 浪潮电子信息产业股份有限公司 一种基于硬件侦测的固件自动选择实现方法
EP2887213A1 (en) * 2013-12-19 2015-06-24 Gemalto SA Method for transferring applicative data between two instances of an application
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
EP2930641B1 (en) * 2014-04-07 2019-04-03 Nxp B.V. Method of Programming a Smart Card, Computer Program Product and Programmable Smart Card
CN104428751A (zh) * 2014-06-27 2015-03-18 华为技术有限公司 程序数据的更新方法及设备
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
CN106909352A (zh) * 2015-12-22 2017-06-30 北京谊安医疗系统股份有限公司 一种嵌入式设备的固件升级方法
US9946532B2 (en) * 2016-06-15 2018-04-17 Canon Information And Imaging Solutions, Inc. Apparatus, system and method for updating a peripheral connected to image processing device
EP3596593B1 (en) 2017-03-14 2024-05-01 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
CN107957874B (zh) * 2017-11-21 2021-07-13 上海航天测控通信研究所 可恢复的驻留式星载软件在轨编程方法
WO2022204911A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory device with embedded firmware repairing mechanism
TWI784500B (zh) * 2021-04-28 2022-11-21 威鋒電子股份有限公司 電子裝置及其安全韌體更新方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359350B (zh) * 1995-02-13 2012-10-03 英特特拉斯特技术公司 用于安全地管理在数据项上的操作的方法
AU2521297A (en) * 1996-04-11 1997-10-29 Hitachi Limited Disk drive and computer
EP0845738A3 (en) * 1996-11-28 2006-09-20 Hitachi, Ltd. Storage system which transfers a command and data corresponding to said command subsequent to said command
GB9713094D0 (en) 1997-06-21 1997-08-27 Philips Electronics Nv Optical disc drive
US6266809B1 (en) 1997-08-15 2001-07-24 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6199194B1 (en) 1998-09-25 2001-03-06 Adaptec, Inc. Method and system for programming firmware over a computer network
US6237091B1 (en) 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
US6402028B1 (en) 1999-04-06 2002-06-11 Visa International Service Association Integrated production of smart cards
AU4371700A (en) 1999-04-30 2000-11-17 Centennial Technologies, Inc. Combination ata/linear flash memory device
US7019778B1 (en) 1999-06-02 2006-03-28 Eastman Kodak Company Customizing a digital camera
WO2001078020A1 (en) 2000-04-11 2001-10-18 Visa International Service Association Integrated production of smart cards
US7228538B1 (en) * 2000-05-02 2007-06-05 International Business Machines Corporation Method, system, and program for updating firmware to a storage system comprised of multiple controllers
US6968453B2 (en) * 2001-01-17 2005-11-22 International Business Machines Corporation Secure integrated device with secure, dynamically-selectable capabilities
US20020137501A1 (en) * 2001-03-23 2002-09-26 Rajendra Datar Systems and methods for wireless memory programming
DE20109810U1 (de) 2001-06-13 2001-08-23 Datafab Sys Inc Externer Flash-Karten-Leser mit USB 2,0-Schnittstelle
US20020194403A1 (en) * 2001-06-15 2002-12-19 Khein-Seng Pua Audio video signal processing device
US7320126B2 (en) * 2001-11-06 2008-01-15 Sandisk Corporation Implementation of in system programming to update firmware on memory cards

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344206A (ja) * 2005-06-08 2006-12-21 Feitian Technologies Co Ltd ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス
JP4663572B2 (ja) * 2005-06-08 2011-04-06 フェイシャン・テクノロジーズ・カンパニー・リミテッド ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス
JP2013513874A (ja) * 2009-12-24 2013-04-22 ▲華▼▲為▼▲終▼端有限公司 データカードのアップグレーディング方法およびデバイス
JP2014528110A (ja) * 2011-07-27 2014-10-23 ▲華▼▲為▼▲終▼端有限公司 データカードを更新する方法、パーソナルコンピュータ、およびデータカード
JP2014238838A (ja) * 2013-06-08 2014-12-18 ▲華▼▲為▼▲終▼端有限公司 ファームウェアを更新するための方法、装置、および通信デバイス
US9804832B2 (en) 2013-06-08 2017-10-31 Huawei Device Co., Ltd Method, apparatus, and communication device for updating firmware

Also Published As

Publication number Publication date
US8296752B2 (en) 2012-10-23
US20070234341A1 (en) 2007-10-04
EP1459174A2 (en) 2004-09-22
AU2002363505A1 (en) 2003-05-19
CN1547699A (zh) 2004-11-17
WO2003040917A2 (en) 2003-05-15
US20030088868A1 (en) 2003-05-08
CN1293466C (zh) 2007-01-03
WO2003040917A3 (en) 2004-05-13
US7320126B2 (en) 2008-01-15

Similar Documents

Publication Publication Date Title
JP2005508547A (ja) メモリカード上のファームウェアを更新するインシステムプログラムのインプリメンテーション
US9245634B2 (en) Initialization of flash storage via an embedded controller
US7412558B2 (en) Semiconductor storage device
US7676640B2 (en) Flash memory controller controlling various flash memory cells
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
EP3518097B1 (en) Firmware updating method and electronic device using the same
US20100122017A1 (en) Memory controller, non-volatile memory system, and host device
US20060224821A1 (en) System for parallel updating flash memory and method for the same
US20040199911A1 (en) Apparatus and method for upgrading execution code of the portable memory device
US20110246760A1 (en) Electronic device and electronic device system
US20130067455A1 (en) Memory online update system and method
CN111444030A (zh) 数据储存装置及避免固件失效的方法
CN108170368A (zh) 在线升级固件的方法及系统
US20050010914A1 (en) Method for upgrading firmware
US20080301358A1 (en) Electronic device that Downloads Operational Firmware from an External Host
KR20070074134A (ko) 메모리 카드의 저장용량을 확장시키는 장치 및 그를 이용한메모리 카드의 동작 방법
WO2007132931A1 (ja) データ記憶装置およびこの初期化方法
JP2005050097A (ja) 情報処理装置、情報処理方法、プログラム、記録媒体
US8627157B2 (en) Storing apparatus
CN116204353B (zh) 车机系统的恢复还原方法、装置、设备及存储介质
US20240231833A9 (en) Download method of program to settlement terminal and settlement terminal
US20240134651A1 (en) Download method of program to settlement terminal and settlement terminal
KR20060024682A (ko) 이동 통신 단말기의 업그레이드 시간 단축 방법
US8560824B2 (en) Methods and devices for decompressing and executing option memory for device in shadow memory of a computer system having a BIOS
JP4608174B2 (ja) エンタテインメント装置、情報処理装置及び可搬型記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090224