(57)【要約】【課題】メモリカードに内蔵されているマイクロコンピュータのファームウェアに不備が確認された場合であっても、ファームウェアを保持するＲＯＭを交換することなく、新しいファームウェアに書き換えることができるメモリカードを提供する。【解決手段】フラッシュメモリ３と、ｉＲＡＭ６と、ファームウェアに従い動作するＣＰＵ５とを備え、ホスト端末１から入力されたファームウェアはフラッシュメモリ３に書き込まれた後、ｉＲＡＭ６に転送されるものであり、ＣＰＵ５は、ｉＲＡＭ６で記憶されているファームウェアにより動作する。【選択図】      図１
2004280287.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性の第１の記憶部と、
揮発性の第２の記憶部と、
ファームウェアに従い動作する中央処理ユニットと、
メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、
外部装置から受け取ったファームウェアは、前記コントロールユニットにより、前記第１の記憶部に書き込まれた後に前記第２の記憶部に転送されるものであり、
前記中央処理ユニットは、前記第２の記憶部に記憶されている前記ファームウェアにより動作するものである、
ことを特徴とするメモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、
前記第１の記憶部は、フラッシュメモリから構成されるものであり、
前記第２の記憶部は、スタティック型ＲＡＭである、
ことを特徴とするメモリカード。
【請求項３】
請求項１または２記載のメモリカードにおいて、
前記第１の記憶部に書き込まれた前記ファームウェアは、前記メモリカードとデータを送受する外部装置の電源投入時またはリセット時に、前記第２の記憶部に転送される、
ことを特徴とするメモリカード。
【請求項４】
請求項１ないし３のいずれかに記載のメモリカードにおいて、
前記ファームウェアは、前記第１の記憶部の記憶領域のうち、ユーザから認識不能なシステム領域に書き込まれるものであり、
該システム領域の一部に、前記ファームウェアの先頭アドレスも書き込まれるものである、
ことを特徴とするメモリカード。
【請求項５】
請求項１ないし４のいずれかに記載のメモリカードにおいて、
前記第１の記憶部に記憶されているファームウェアを新たなファームウエアに書き換える場合には、当該第１の記憶部の，現在のファームウェアが記憶されている領域とは別の領域に新たなファームウェアを格納し、当該第１の記憶部にファームウェアを格納する領域が足りなくなったときには、古い順に上書きをしていく、
ことを特徴とするメモリカード。
【請求項６】
請求項１ないし５のいずれかに記載のメモリカードにおいて、
前記ファームウェアは各ファームウエアごとに所定の単位に分割可能なものであり、
当該ファームウエアを前記第１の記憶部から前記第２の記憶部に転送する際には、処理に必要な命令に対応する部分が転送される、
ことを特徴とするメモリカード。
【請求項７】
請求項１ないし６のいずれかに記載のメモリカードにおいて、
前記第１の記憶部から前記第２の記憶部への前記ファームウェアの転送時に、前記第２の記憶部にファームウェアすべてを格納できない場合には、前記中央処理ユニットは、前記第２の記憶部と、一時的なデータ記憶のためのデータ転送用バッファＲＡＭとに当該ファームウェアを分割して格納させ、該中央処理ユニットは、両者に格納されたファームウェアにより動作する、
ことを特徴とするメモリカード。
【請求項８】
電気的に書き換え可能な不揮発性の第１の記憶部と、
揮発性の第２の記憶部と、
ファームウェアに従い動作する中央処理ユニットと、
メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、
外部装置から受け取ったファームウェアは前記コントロールユニットにより前記第１の記憶部に書き込まれるものであり、
前記中央処理ユニットは、前記第１の記憶部で記憶されている前記ファームウェアにより動作するものである、
ことを特徴とするメモリカード。
【請求項９】
請求項８記載のメモリカードにおいて、
前記第１の記憶部のみに前記ファームウェアが記憶されている、
ことを特徴とするメモリカード。
【請求項１０】
請求項１ないし９のいずれかに記載のメモリカードにおいて、
前記コントロールユニットによるファームウェアの転送は、ユーザデータの書き込み、読み出しを行う場合に使用されるインターフェースを介して行われるものである、
ことを特徴とするメモリカード。
【請求項１１】
請求項１ないし１０のいずれかに記載のメモリカードにおいて、
暗号化されたファームウェアを復号化する復号化回路をさらに備え、
外部装置から受け取った暗号化されたファームウェアは、前記復号化回路により復号された後に前記第１の記憶部に書き込まれるものである、
ことを特徴とするメモリカード。
【請求項１２】
請求項１１記載のメモリカードにおいて、
前記復号化回路は、前記メモリカードへの暗号化されたユーザデータの書き込み時にも、該暗号化されたユーザデータの復号化を行うものである、
ことを特徴とするメモリカード。
【請求項１３】
請求項１１または１２記載のメモリカードにおいて、
前記メモリカードは通信機能を有する外部装置に接続可能であり、
該外部装置により所定の通信回線を介して取得された暗号化後のファームウェアの一部もしくはすべてが、前記第１の記憶部に書き込まれることで、ファームウェアが追加、あるいは変更される、
ことを特徴とするメモリカード。
【請求項１４】
請求項１ないし１３のいずれかに記載のメモリカードにおいて、
前記第１の記憶部に格納されるファームウェアには、検査・解析用のファームウェアが含まれておらず、
前記検査・解析用のファームウェアは、外部装置から前記第２の記憶部に直接書き込まれるものである、
ことを特徴とするメモリカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリカードに関するものであり、特にフラッシュメモリ等の不揮発性の記憶部を主な記憶手段とするメモリカードの開発期間の短縮および開発費用の削減を実現できるもの、さらにはフラッシュメモリの不揮発性を利用して特に有効な技術を提供せんとするものである。
【０００２】
【従来の技術】
従来、この種のメモリカードは図１４のブロック図に示すように構成されている。従来のメモリカード１０２は、単体もしくは複数のフラッシュメモリチップが組み合わされてなるフラッシュメモリ１０３と、メモリカード１０２に内蔵されるマイクロコンピュータ１０４と、カードコントロールユニット１０７とを備える。マイクロコンピュータ１０４はさらに、マイクロコンピュータ１０４に内蔵される中央処理ユニット１０５（以下、ＣＰＵと称す）と、ＣＰＵ１０５を制御するファームウェアを保持するＲＯＭ１０６とを有する。カードコントロールユニット１０７は、ＣＰＵ１０５の命令を受け、ユーザデータの書き込みや、読み出しを行う。このようなメモリカード１０２において、マイクロコンピュータ１０４はファームウェアによって命令を解読し、動作する。したがって、フラッシュメモリ１０３への書き込み、読み出しを制御するコントローラチップ（図示せず）内にファームウェアを保持するためのＲＯＭ１０６を内蔵している。
【０００３】
しかし、上記のような従来の構成では、ファームウェアに不備があった場合に、ファームウェアの変更が困難なため、マイクロコンピュータ内にマスクＲＯＭと揮発性ＲＡＭとを備え、マスクＲＯＭにはマイクロコンピュータを制御する基本ルーチンのみを格納し、その他のメインルーチン等をフラッシュメモリのファームウェア領域にホスト端末から書き込んだ後、電源投入時またはリセット時にマイクロコンピュータ内の揮発性メモリに転送できる構成としたメモリカードもある（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開２０００−８２１２２号公報（第３−８頁、第１図）
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の構成により実現されるメモリカードでは、メインルーチン等のファームウェアの変更は容易にできるが、マイクロコンピュータ内のマスクＲＯＭに格納されている基本ルーチンについては、変更が困難である。特に、開発者の意図しないバグがマスクＲＯＭに格納された基本ルーチンに発生した場合、対応することができないという問題がある。
【０００６】
本発明は上記問題点を解決するためになされたものであり、ファームウェアの変更を容易に行うことができ、開発者の意図していないバグに対しても容易に対応可能なメモリカードを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、本発明によるメモリカードは、電気的に書き換え可能な不揮発性の第１の記憶部と、揮発性の第２の記憶部と、ファームウェアに従い動作する中央処理ユニットと、メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、外部装置から受け取ったファームウェアは、前記コントロールユニットにより、前記第１の記憶部に書き込まれた後に前記第２の記憶部に転送されるものであり、前記中央処理ユニットは、前記第２の記憶部に記憶されている前記ファームウェアにより動作するものである、ことを特徴とするものである。
【０００８】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部は、フラッシュメモリから構成されるものであり、前記第２の記憶部は、スタティック型ＲＡＭである、ことを特徴とするものである。
【０００９】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部に書き込まれた前記ファームウェアは、前記メモリカードとデータを送受する外部装置の電源投入時またはリセット時に、前記第２の記憶部に転送される、ことを特徴とするものである。
【００１０】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記ファームウェアは、前記第１の記憶部の記憶領域のうち、ユーザから認識不能なシステム領域に書き込まれるものであり、該システム領域の一部に、前記ファームウェアの先頭アドレスも書き込まれるものである、ことを特徴とするものである。
【００１１】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部に記憶されているファームウェアを新たなファームウエアに書き換える場合には、当該第１の記憶部の，現在のファームウェアが記憶されている領域とは別の領域に新たなファームウェアを格納し、当該第１の記憶部にファームウェアを格納する領域が足りなくなったときには、古い順に上書きをしていく、ことを特徴とするものである。
【００１２】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記ファームウェアは各ファームウエアごとに所定の単位に分割可能なものであり、当該ファームウエアを前記第１の記憶部から前記第２の記憶部に転送する際には、処理に必要な命令に対応する部分が転送される、ことを特徴とするものである。
【００１３】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部から前記第２の記憶部への前記ファームウェアの転送時に、前記第２の記憶部にファームウェアすべてを格納できない場合には、前記中央処理ユニットは、前記第２の記憶部と、一時的なデータ記憶のためのデータ転送用バッファＲＡＭとに当該ファームウェアを分割して格納させ、該中央処理ユニットは、両者に格納されたファームウェアにより動作する、ことを特徴とするものである。
【００１４】
また、本発明によるメモリカードは、電気的に書き換え可能な不揮発性の第１の記憶部と、揮発性の第２の記憶部と、ファームウェアに従い動作する中央処理ユニットと、メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、外部装置から受け取ったファームウェアは前記コントロールユニットにより前記第１の記憶部に書き込まれるものであり、前記中央処理ユニットは、前記第１の記憶部で記憶されている前記ファームウェアにより動作するものである、ことを特徴とするものである。
【００１５】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部のみに前記ファームウェアが記憶されている、ことを特徴とするものである。
【００１６】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記コントロールユニットによるファームウェアの転送は、ユーザデータの書き込み、読み出しを行う場合に使用されるインターフェースを介して行われるものである、ことを特徴とするものである。
【００１７】
また、本発明によるメモリカードは、前記メモリカードにおいて、暗号化されたファームウェアを復号化する復号化回路をさらに備え、外部装置から受け取った暗号化されたファームウェアは、前記復号化回路により復号された後に前記第１の記憶部に書き込まれるものである、ことを特徴とするものである。
【００１８】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記復号化回路は、前記メモリカードへの暗号化されたユーザデータの書き込み時にも、該暗号化されたユーザデータの復号化を行うものである、ことを特徴とするものである。
【００１９】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記メモリカードは通信機能を有する外部装置に接続可能であり、該外部装置により所定の通信回線を介して取得された暗号化後のファームウェアの一部もしくはすべてが、前記第１の記憶部に書き込まれることで、ファームウェアが追加、あるいは変更される、ことを特徴とするものである。
【００２０】
また、本発明によるメモリカードは、前記メモリカードにおいて、前記第１の記憶部に格納されるファームウェアには、検査・解析用のファームウェアが含まれておらず、前記検査・解析用のファームウェアは、外部装置から前記第２の記憶部に直接書き込まれるものである、ことを特徴とするものである。
【００２１】
【発明の実施の形態】
（実施の形態１）
図１は、本発明の実施の形態１によるメモリカードの構成を示すブロック図である。この実施の形態１は、請求項１ないし５の発明に対応するものである。
図１において、本実施の形態１によるメモリカード２は、フラッシュメモリ（第１の記憶部）３と、メモリカード２に内蔵されるマイクロコンピュータ４と、カードコントロールユニット（コントロールユニット）７とを備える。また、マイクロコンピュータ４は、ＣＰＵ（中央処理ユニット）５と、ＣＰＵ５を制御するファームウェアを格納するインストラクションＲＡＭ（第２の記憶部；以下、ｉＲＡＭと称す）６とを内蔵する。ここで、このｉＲＡＭとは、マイクロコンピュータ４に関する命令（インストラクション）が格納される揮発性の記憶部からなり、一般にスタティック型のメモリであるＳＲＡＭを用いるが、これはＤＲＡＭにより構成してもよい。
【００２２】
図２は、図１におけるフラッシュメモリ３のメモリマップの一例を示す図である。図２において、フラッシュメモリ３は、システム領域８と、ユーザ領域９とから構成される。システム領域８は、さらに、システム領域８内にファームウェアを格納するファームウェア格納領域１０と、ファームウェア格納領域１０内に格納されたファームウェアの先頭アドレスを格納するファームウェアアドレス格納領域１１と、予備領域１２とを有する。
【００２３】
本実施の形態１によるメモリカード２のマイクロコンピュータ４は、ｉＲＡＭ６に書き込まれたファームウェアにしたがって動作し、メモリカード２の各部を制御する。このｉＲＡＭ６は揮発性の記憶部からなり、ＣＰＵ５の動作に必要なファームウェアを保持する。
【００２４】
フラッシュメモリ３は、ユーザには見えない領域であるシステム領域８と、ユーザに見える領域であるユーザ領域９とに分けられる。ユーザ領域９には、ユーザが必要とするデータを書き込むことができ、また読み出すことができる。従来のメモリカードのシステム領域はおもに予備領域１２として用いられているが、本実施の形態１によるメモリカード２においては、マイクロコンピュータ４の動作に必要なファームウェアがシステム領域８に格納される。
【００２５】
このフラッシュメモリ３に格納されたファームウェアは、外部装置（以下、ホスト端末と称す）１の電源投入時、もしくはリセット制御時に、カードコントロールユニット７によってｉＲＡＭ６へ転送され、マイクロコンピュータ４を起動させる。
【００２６】
マイクロコンピュータ４起動後は、マイクロコンピュータ４内のＣＰＵ５がｉＲＡＭ６に格納されたファームウェアに従い、ホスト端末１からフラッシュメモリ３への書き込み動作を制御し、またフラッシュメモリ３からホスト端末１への読み出し動作を制御する。
【００２７】
カードコントロールユニット７はマイクロコンピュータ４の制御を受けて、ホスト端末１からフラッシュメモリ３への書き込み処理、もしくはフラッシュメモリ３からホスト端末１への読み出し処理を実行する。このとき、ホスト端末１とカードコントロールユニット７のデータの送受は、メモリカード２のインターフェース条件にしたがって行われ、カードコントロールユニット７はホスト端末１とフラッシュメモリ３とを、そのインターフェース条件によって接続させるインターフェース回路として機能する。
【００２８】
次に、ファームウェアをフラッシュメモリ３に格納する方法について、詳しく説明する。まずホスト端末１の電源投入後、カードコントロールユニット７はｉＲＡＭ６の中にファームウェアが格納されているか否かを判別する。ｉＲＡＭ６内にファームウェアが格納されていなければ、次にフラッシュメモリ３内にファームウェアが格納されているか否かを判別する。フラッシュメモリ３にもファームウェアが格納されていなければ、カードコントロールユニット７はホスト端末１へファームウェアが格納されていないことを告げる。
【００２９】
ホスト端末１はフラッシュメモリ３内にファームウェアが書き込まれていないことを認識した場合、図３に示すように、本来のファームウェアをフラッシュメモリ３へ書き込むために用いる転送用ファームウェアをｉＲＡＭ６へ書き込む。そのｉＲＡＭ６に書き込まれた転送用ファームウェアにしたがってフラッシュメモリ３が初期化された後、図４に示すように、ホスト端末１から本来のファームウェアが転送され、フラッシュメモリ３へこのファームウェアが書き込まれる。
【００３０】
フラッシュメモリ３内にファームウェアが書き込まれれば、次回から電源投入後にカードコントロールユニット７はフラッシュメモリ３内にファームウェアが書き込まれていることを認識する。したがって、図５に示すようにフラッシュメモリ３からｉＲＡＭ６へファームウェアが転送され、マイクロコンピュータ４が起動する。
【００３１】
このとき、ファームウェアは図２に示すシステム領域８内のファームウェア格納領域１０に格納されており、またフラッシュメモリ３内のシステム領域８内にはファームウェアアドレス格納領域１１が設けられている。カードコントロールユニット７は、フラッシュメモリ３にファームウェアの存在を認識した後、このファームウェアアドレス格納領域１１内のファームウェアの先頭アドレスを取得し、ｉＲＡＭ６へファームウェアを転送し、マイクロコンピュータ４を起動させる。
【００３２】
このように、マイクロコンピュータ４のｉＲＡＭ６にはファームウェア転送処理によりファームウェアが格納される。そして、メモリカード２はそのファームウェアを用いて、ユーザデータの書き込み、読み出しを実行することができる。
【００３３】
ここで、ファームウェアの不備が確認されたことによって、あるいはその他の理由によってファームウェアを書き換えたいときには、下記の手順でそのファームウェアの書き換えを行う。図２に示すシステム領域８内の構成を図６に示す。図６において、ファームウェア格納領域１７には、ファームウェアが格納されており、ファームウェアアドレス格納領域１５には、そのファームウェア格納領域１７に格納されているファームウェアの先頭アドレスが格納されており、また、ブランク領域１６が数個用意されている。
【００３４】
あらかじめファームウェア格納領域１７にファームウェアＡ１８のみが格納されており、ファームウェアを書き換える場合について説明する。この場合には、カードコントロールユニット７はファームウェア格納領域１７に格納されているファームウェアＡ１８を削除せず、ファームウェアＢ２０を書き込む。そして、そのファームウェアＢ２０の先頭アドレスＢをファームウェアアドレス格納領域１５のブランク領域１６へ書き込む。図６における２１は、このようにして元々ブランク領域１６であった領域に書き込まれたファームウエアＢ２０の先頭アドレスである。ファームウェアＢ２０が書き込まれた後は、カードコントロールユニット７は更新された先頭アドレスＢ２１を読み込み、初期化を行う。この初期化により、メモリカードにデータを書き込むための準備が完了する。さらにファームウェアの更新を行う場合には、上記と同様にファームウェアＣ２２をファームウェア格納領域１７に書き込み、その先頭アドレスＣ２３をファームウェアアドレス格納領域１５のブランク領域１６に書き込む。そして、次の起動時、もしくはリセット制御後には、先頭アドレスＣ２３を読み込み、初期化を行う。このように、ファームウェアを書き換える場合にはファームウェア格納領域１７、及びファームウェアアドレス格納領域１５のブランク領域１６に最新のファームウェアとファームウェアの先頭アドレスとをそれぞれ書き込み、ブランク領域に順番に格納していく。ファームウェアアドレス格納領域１５、もしくはファームウェア格納領域１７にブランク領域がなくなった場合には、最も古いファームウェアとその先頭アドレスの領域に上書きしていく。このようにすることで、仮にファームウェアＢ２０をフラッシュメモリ３に書き込んでいる途中に、ホスト端末１の電源が落ちるなどのアクシデントがあったとしても、完全な形で残っている直前のファームウェアであるファームウェアＡ１８を用いることができ、ファームウェア書き換え時に起こりうるアクシデントに対して、安全性を向上させることができる。
【００３５】
以上のように、本実施の形態１によるメモリカードによれば、電気的に書き換え可能な不揮発性のフラッシュメモリ３と、揮発性のｉＲＡＭ６と、ファームウェアに従い動作するＣＰＵ５とを備え、ホスト端末１から受け取ったファームウェアをフラッシュメモリ３に書き込んだ後、ｉＲＡＭ６に転送し、ＣＰＵ５がｉＲＡＭ６で記憶されているファームウェアにより動作するようにしたことで、開発者が意図しないバグなど、ファームウェアの不備が確認された際には、容易にファームウェアを書き換えることができる。
【００３６】
また、フラッシュメモリ３で記憶されているファームウェアを書き換える場合には、既存のファームウェアとは別の領域に新たなファームウェアを格納し、ファームウェアを格納する領域が足りなくなったときに、古い順に上書きをしていくようにすることで、仮にファームウェアをフラッシュメモリ３に書き込んでいる途中に、ホスト端末１の電源が落ちるなどのアクシデントがあったとしても、完全な形で残っている直前のファームウェアを用いることができ、安全性を向上させることができる。
【００３７】
（実施の形態２）
この実施の形態２は、請求項６の発明に対応するものである。
本発明の実施の形態２によるメモリカードの構成は、実施の形態１の図１で示される構成と同様である。ただし、本実施の形態２によるファームウェアの構成は、実施の形態１のものとは異なっている。本実施の形態２によるファームウェアは、いくつかの部分に分かれており、その部分ごとにｉＲＡＭ６に転送可能なように構成されている。ここで、特に限定しないで“ファームウェア”という場合には、ファームウェアの全体、あるいはいくつかの部分に分かれたファームウェアの部分のいずれをも示し得るものとする。
【００３８】
図７は、本実施の形態２によるメモリカード２のフラッシュメモリ３のメモリマップの一例を示す図である。図７において、ファームウェアＡ２５は最初に格納されていたファームウェアであり、ファームウェアＢ２７は書き換えられたファームウェアであり、ファームウェアＣ２９はさらに書き換えられたファームウェアである。ここで、ファームウェアＡ２５などは、上述のように、いくつかの部分に分かれているものであるが、図７のメモリマップでは、一つのファームウェアとして示している。初期化ファームウェアアドレス格納領域２４には、ファームウェアＡ２５の初期化ファームウェアの先頭アドレス２６と、ファームウェアＢ２７の初期化ファームウェアの先頭アドレス２８と、ファームウェアＣ２９の初期化ファームウェアの先頭アドレス３０とが格納されている。なお、先頭アドレス２６などは、初期化ファームウェアの先頭アドレスを示すものであるが、それ以外の部分のファームウェア、例えば、書き込みファームウェアや読み出しファームウェアなどの先頭アドレスは、初期化ファームウェアなどのファームウェア内に記載されており、初期化ファームウェアの動作を終了した後には、必要に応じて、次の動作で必要となるファームウェアの先頭アドレスを取得するようになっている。
【００３９】
以上のように構成された本実施の形態２によるメモリカード２において、その動作を説明する。
本実施の形態２によるメモリカード２の動作は、ファームウェアをｉＲＡＭ６へ転送する転送方法以外、実施の形態１によるメモリカード２の動作と同様である。以下、そのファームウェアの転送方法について説明する。
【００４０】
カードコントロールユニット７は、フラッシュメモリ３にファームウェアの存在を確認するときに、図７に示す初期化ファームウェアアドレス格納領域２４にアクセスする。ここで、ファームウェア格納領域１７内のファームウェアは特に制限されないが、例えば、メモリカード２の初期化動作、フラッシュメモリ３への書き込み動作、ホスト端末１への読み出し動作のように、数種類に分類されている。それら分類されたすべてのファームウェアは、すべてフラッシュメモリに格納されている。図７に示すように、最初に書き込まれたファームウェアをファームウェアＡ２５とする。このとき、マイクロコンピュータ４を起動させ、メモリカード２の初期化を行うための初期化ファームウェアが必要となる。
【００４１】
そこで、本実施の形態２によるメモリカード２では、ファームウェアＡ２５内の初期化ファームウェアの先頭アドレスＡ２６が初期化ファームウェアアドレス格納領域２４に書き込まれている。カードコントロールユニット７は電源投入後、もしくはリセット制御後に、初期化ファームウェアアドレス格納領域２４にアクセスし、初期化ファームウェアの先頭アドレスＡ２６を取得し、ファームウェア格納領域１７から初期化ファームウェアをｉＲＡＭ６へ転送させる。
【００４２】
初期化ファームウェアがｉＲＡＭ６へ転送された後は、マイクロコンピュータ４が起動され、メモリカード２の初期化が行われる。その後は、ホスト端末１からの要求をマイクロコンピュータ４が解読し、処理に必要なファームウェアをフラッシュメモリ３内のファームウェア格納領域１７からｉＲＡＭ６へ順次転送させる。
【００４３】
このように、マイクロコンピュータ４のｉＲＡＭ６にはファームウェア転送処理により、ファームウェアが格納され、メモリカード２はユーザデータの書き込みや、読み出しを実行することができる。
【００４４】
以上のように、本実施の形態２によるメモリカードによれば、ファームウェアは所定の単位ごとに分割可能なものであり、フラッシュメモリ３からｉＲＡＭ６に転送する際に、処理に必要な命令に対応するファームウェアの部分が転送されるようにすることで、実施の形態１と同様のメリットに加え、ｉＲＡＭ６の容量を、実施の形態１によるメモリカードよりも削減することができ、チップ面積削減に貢献することができる。
【００４５】
（実施の形態３）
この実施の形態３は、請求項７の発明に対応するものである。
図８は、本発明の実施の形態３によるメモリカードの構成を示すブロック図である。図８に示す本実施の形態３によるメモリカード２の構成は、カードコントロールユニット７内の一時的データ保存用のバッファＲＡＭ３１，３２を明記している以外、図１に示す実施の形態１の構成と同様のものある。なお、バッファＲＡＭ３１、３２の個数はこれら２個に限定されるものではない。
【００４６】
以上のように構成された本実施の形態３によるメモリカード２において、その動作を説明する。本実施の形態３によるメモリカード２は、実施の形態１または２のそれぞれのメモリカードにおいて適用できる。なお、図８は、カードコントロールユニット７内のバッファＲＡＭをファームウェア格納用ＲＡＭとして共用する状態を示している。
【００４７】
図８に示すように、フラッシュメモリ３に格納されたファームウェアをｉＲＡＭ６へ転送する際、ｉＲＡＭ６の格納容量よりファームウェアの容量の方が大きい場合には、マイクロコンピュータ４はカードコントロールユニット７内に実現する一時的データ保存用のバッファＲＡＭ３１にファームウェアを格納させ、そのバッファＲＡＭからＣＰＵ５は命令を受け取る。それでも格納しきれないときには、バッファＲＡＭ３２にもファームウェアを格納させ、ＣＰＵ５は命令を受け取る。つまり、本実施の形態３によるメモリカード２は、ｉＲＡＭ６の容量が十分でない場合に、カードコントロールユニット７内の一時的データ保存用のバッファＲＡＭをファームウェア格納用ＲＡＭとして共用することができるものである。
【００４８】
以上のように、本実施の形態３によるメモリカードによれば、フラッシュメモリ３からｉＲＡＭ６へのファームウェアの転送時に、ｉＲＡＭ６にファームウェアすべてを格納できない場合には、そのｉＲＡＭ６と、一時的なデータ記憶のためのデータ転送用バッファＲＡＭ３１，３２とにファームウェアを格納させ、ＣＰＵ５は、両者に格納されたファームウェアにより動作するようにしたことで、ｉＲＡＭ６の容量を削減でき、チップ面積削減に貢献することができる。
【００４９】
（実施の形態４）
この実施の形態４は、請求項８または９の発明に対応するものである。
図９は、本発明の実施の形態４によるメモリカードの構成を示すブロック図である。図９に示す本実施の形態４によるメモリカード２の構成は、図１に示す実施の形態１の構成と同様のものである。
【００５０】
以上のように構成された本実施の形態４によるメモリカード２において、その動作を説明する。本実施の形態４によるメモリカード２は、実施の形態１ないし３のそれぞれのメモリカードにおいて適用できる。
【００５１】
図９に示すマイクロコンピュータ４のファームウェアを読み込むインターフェースは、カードコントロールユニット７を介し、直接フラッシュメモリ３に接続させる。したがって、本実施の形態４によるメモリカード２では、フラッシュメモリ３内のファームウェア格納領域以外にはファームウェアを記憶する記憶部を設けない。このため、マイクロコンピュータ４のＣＰＵ５は、フラッシュメモリ３に格納されたファームウェアを直接読み込み、処理を行う。なお、図９で示されるｉＲＡＭ６は、ファームウェアをフラッシュメモリ３に書き込むために用いるファームウェア（ファームウェア転送用ファームウェア）を格納するためなどに用いられるが、フラッシュメモリ３に格納されるファームウェア（メモリカード制御用ファームウェア）全体を格納する場合よりは、そのｉＲＡＭ６の容量を小さくすることができる。
【００５２】
以上のように、本実施の形態４によるメモリカードによれば、電気的に書き換え可能な不揮発性のフラッシュメモリ３と、ファームウェアに従い動作するＣＰＵ５とを備え、ホスト端末１から受け取ったファームウェアはフラッシュメモリ３に書き込まれ、ＣＰＵ５は、フラッシュメモリ３に記憶されているファームウェアにより動作するようにしたことで、直接フラッシュメモリ３内に格納されたファームウェアを読み込むことができるため、ｉＲＡＭ６の容量を削減でき、チップ面積削減に貢献できる。
【００５３】
（実施の形態５）
この実施の形態５は請求項１０の発明に対応するものである。
図１０は、本発明の実施の形態５によるメモリカードの構成を示すブロック図である。図１０に示す本実施の形態５によるメモリカード２の構成は、図１に示す実施の形態１の構成と同様のものである。
【００５４】
以上のように構成された本実施の形態５によるメモリカード２において、その動作を説明する。本実施の形態５によるメモリカード２の制御は、実施の形態１ないし４のそれぞれのメモリカードにおいて適用できる。
【００５５】
本実施の形態５によって実施されるメモリカード２は、フラッシュメモリ３にファームウェアを格納させる場合に、メモリカード２にユーザが記憶させたいデータを書き込む際に使用する，カードコントロールユニット７のインターフェースを利用してファームウェアをフラッシュメモリ３に書き込む。同様に、フラッシュメモリ３内のファームウェアをｉＲＡＭ６へ転送させる場合にも、ユーザが記憶させたデータを読み出す際に使用する，カードコントロールユニット７のインターフェースを利用してｉＲＡＭ６へ転送させる。したがって、図１０に示すように、ファームウェアの書き込み、読み出しはユーザデータの書き込み、読み出し用のインターフェースを流用することができる。
【００５６】
以上のように、本実施の形態５によるメモリカードによれば、フラッシュメモリ３にファームウェアを格納する場合やフラッシュメモリ３からｉＲＡＭ６へのファームウェアの転送は、ユーザデータの書き込み、読み出しを行う場合に使用されるインターフェースを介して行われるようにしたことで、ファームウェア転送用のハードウェアを追加することなくファームウェアの転送を行うことができるため、チップ面積の拡大を抑えることができる。
【００５７】
（実施の形態６）
この実施の形態６は請求項１１ないし１３の発明に対応するものである。
図１１は、本発明の実施の形態６によるメモリカードの構成を示すブロック図である。図１１に示す本実施の形態６によるメモリカード２の構成は、ファームウェアが暗号化されている点を除けば、図１に示す実施の形態１の構成と同様のものである。図１１において、暗号化されたファームウェア３３がフラッシュメモリ３に書き込まれる様子が示されている。
【００５８】
以上のように構成された本実施の形態６によるメモリカードにおいて、その動作を説明する。本実施の形態６によるメモリカード２の制御は、実施の形態１ないし５のそれぞれのメモリカードにおいて適用できる。
【００５９】
本実施の形態６によるメモリカード２においては、ホスト端末１からファームウェアを書き込む際、ファームウェアを暗号化しておく。そして、メモリカード２内に設けられている暗号化されたユーザデータを復号化するファームウエア復号化回路７１、すなわちカードコントロールユニット７に含まれる内部復号化回路を流用し、暗号化ファームウェア３３がメモリカード２内に入力された場合に、内部復号化回路によりメモリカード２内でファームウェアの復号を自動的に実行し、フラッシュメモリ３へファームウェアの書き込みを行う。その後の動作は、実施の形態１〜５と同様であり、その説明を省略する。
【００６０】
次に、ホスト端末１が暗号化されたファームウェアをサーバから取得する方法について、図１２を用いて簡単に説明しておく。図１２において、パーソナル・コンピュータ（ＰＣ）５１は、ホスト端末１に対応しており、通信機能を有している。このＰＣ５１は通信回線５２を介して暗号化されたファームウェアを提供するサーバ５３に接続されている。ここで、この通信回線５２とは、例えば、インターネットや電話回線などである。ＰＣ５１は、その通信機能を用い、通信回線５２を介して所望の暗号化されたファームウェアをサーバ５３から取得する。そして、その取得したファームウェアを上記説明のようにしてメモリカード２に書き込むことにより、ファームウェアの追加、あるいは更新を行う。
【００６１】
なお、このときにメモリカード２に書き込む暗号化されたファームウェアは、メモリカード２で必要としているファームウェアのすべてでもよく、あるいはその一部でもよい。
【００６２】
さらに、上記説明ではネットワークを介してファームウェアを取得する場合について説明したが、例えばＣＤ−ＲＯＭやリムーバブル磁気ディスクなどの記録媒体に暗号化されたファームウェアを保存しておき、その記録媒体に保存されたファームウェアをＰＣ５１により読み出すことにより、メモリカード２にファームウェアを書き込むようにしてもよく、ＰＣ５１への暗号化されたファームウェアの提供方法は問わない。
【００６３】
以上のように、本実施の形態６によるメモリカードによれば、ホスト端末１から受け取った暗号化されたファームウェアを、暗号化されたファームウェアを復号化する復号化回路により復号した後にフラッシュメモリ３に書き込むようにしたことで、例えば、アップデート・仕様修正ファームウェアをインターネット上のホームページに置いた場合に、ユーザは最新のファームウェアをメモリカード２に書き込むことができ、メモリカード２提供者はいつでも最新のファームウェアを提供することができる。さらに、ファームウェアを暗号化しておくことで、ファームウェアの機密を保護できるため、ファームウェアに対するセキュリティ性を向上させることができる。
【００６４】
（実施の形態７）
この実施の形態７は請求項１４の発明に対応するものである。
図１３は、本発明の実施の形態７によるメモリカードの構成を示すブロック図である。図１３に示す本実施の形態７によるメモリカード２の構成は、メモリカード２のフラッシュメモリ３に格納されるファームウェアに検査・解析用のファームウェアが含まれない以外、図１に示す実施の形態１の構成と同様のものである。図１３において、検査・解析用のファームウェア３４がｉＲＡＭ６に書き込まれる様子が示されている。
【００６５】
以上のように構成された本実施の形態７によるメモリカードにおいて、その動作を説明する。本実施の形態７によるメモリカード２の制御は、実施の形態１ないし６のそれぞれのメモリカードにおいて適用できる。
【００６６】
一般のメモリカードに格納されるファームウェアには、メモリカードとしての機能を実現するためのファームウェアの他に、その機能を検証する検査・解析用ファームウェアが含まれている。しかし実際に検査・解析用ファームウェアを必要とするのはテスト時のみであり、テストに合格したメモリカードを使用する際には必要ではない。一方、その検査・解析用ファームウェアをメモリカードに格納しておくと、格納するファームウェアの容量は大きくなる。
【００６７】
本実施の形態７によるメモリカード２では、テスト時に検査・解析ファームウェア３４をホスト端末１からｉＲＡＭ６へ転送し、テストを行う。したがって、フラッシュメモリ３に書き込まれるファームウェアは、検査・解析ファームウェア３４を含む必要がなく、フラッシュメモリ３に格納されるファームウェアの容量を削減できる。
【００６８】
以上のように、本実施の形態７によるメモリカードによれば、フラッシュメモリ３に格納されるファームウェアには、検査・解析用のファームウェアが含まれておらず、検査・解析用のファームウェアは、ホスト端末１からｉＲＡＭ６に直接書き込まれるようにしたことで、検査・解析用のファームウェアをフラッシュメモリ３に格納する必要がないため、ファームウェアの容量を削減することができる。また、従来例のように、検査・解析用のファームウェアをＲＯＭに格納する必要はないため、メモリカード２に発生した何らかの不備を解析するときなどに、その解析に適したファームウェアを用いることができ、検査・解析の自由度を高めることができる。
【００６９】
なお、上記各実施の形態において、不揮発性のメモリとしてフラッシュメモリ３を用いる場合について説明したが、フラッシュメモリ３に代えてＦＥＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＯＵＭ（Ｏｖｏｎｉｃｓ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）などの不揮発性メモリを用いてもよい。
【００７０】
また、揮発性メモリが必要ない場合は、これを省略することも可能である。
【００７１】
【発明の効果】
以上のように、本発明によるメモリカードによれば、電気的に書き換え可能な不揮発性の第１の記憶部と、揮発性の第２の記憶部と、ファームウェアに従い動作する中央処理ユニットと、メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、外部装置から受け取ったファームウェアは、前記コントロールユニットにより、前記第１の記憶部に書き込まれた後に前記第２の記憶部に転送されるものであり、前記中央処理ユニットは、前記第２の記憶部に記憶されている前記ファームウェアにより動作するものであることで、ファームウェアの不備が確認されたとしても、第１の記憶部に格納されたファームウェアを書き換えるだけでよいため、コントローラチップを交換することなく、容易にファームウェアを変更することができる。したがって、メモリカードの開発期間、開発コストを削減させることができる。さらに、基本ルーチンに対しても変更できるため、開発者の意図していないバグに対しても対応可能なメモリカードを提供することができ、メモリカードに搭載されているマイコンの自由度を高めることができる。さらにまた、ファームウェアのアップデート、もしくは仕様修正を容易に実施することもできる。
【００７２】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、前記第１の記憶部に記憶されているファームウェアを新たなファームウエアに書き換える場合には、当該第１の記憶部の，現在のファームウェアが記憶されている領域とは別の領域に新たなファームウェアを格納し、当該第１の記憶部にファームウェアを格納する領域が足りなくなったときには、古い順に上書きをしていくことで、仮にファームウェアを第１の記憶部に書き込んでいる途中に、外部装置の電源が落ちるなどのアクシデントがあったとしても、完全な形で残っている直前のファームウェアを用いることができ、ファームウェア書き換え時に起こりうるアクシデントに対して、安全性を向上させることができる。
【００７３】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、前記ファームウェアは各ファームウエアごとに所定の単位に分割可能なものであり、当該ファームウエアを前記第１の記憶部から前記第２の記憶部に転送する際には、処理に必要な命令に対応する部分が転送されるようにすることで、メモリカード内に設ける第２の記憶部は大きな容量を持つ必要がなく、メモリカードにおける回路面積を削減させることができる。
【００７４】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、前記第１の記憶部から前記第２の記憶部への前記ファームウェアの転送時に、前記第２の記憶部にファームウェアすべてを格納できない場合には、前記中央処理ユニットは、前記第２の記憶部と、一時的なデータ記憶のためのデータ転送用バッファＲＡＭとに当該ファームウェアを分割して格納させ、該中央処理ユニットは、両者に格納されたファームウェアにより動作するようにすることで、第２の記憶部の面積を小さくすることができ、回路面積を削減させることができる。
【００７５】
また、本発明によるメモリカードによれば、電気的に書き換え可能な不揮発性の第１の記憶部と、揮発性の第２の記憶部と、ファームウェアに従い動作する中央処理ユニットと、メモリカード内，外のデータのやりとりを制御するコントロールユニットとを備え、外部装置から受け取ったファームウェアは前記コントロールユニットにより前記第１の記憶部に書き込まれるものであり、前記中央処理ユニットは、前記第１の記憶部で記憶されている前記ファームウェアにより動作するものとすることで、第２の記憶部の面積を小さくすることができ、回路面積を削減させることができる。
【００７６】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、前記コントロールユニットによるファームウェアの転送は、ユーザデータの書き込み、読み出しを行う場合に使用されるインターフェースを介して行われるものとすることで、ハードウェアを追加することなく、本発明によるメモリカードを実現することができる。
【００７７】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、暗号化されたファームウェアを復号化する復号化回路をさらに備え、外部装置から受け取った暗号化されたファームウェアは、前記復号化回路により復号された後に前記第１の記憶部に書き込まれるものとすることで、ファームウェアの機密を保護することができる。例えば、インターネットのような公衆通信回線のホームページ上に、アップデート、もしくは仕様変更されたファームウェアを置いておき、ユーザがそのファームウェアを入手し、メモリカードの第１の記憶部に書き込めば、ユーザは最新のファームウェアをメモリカードに書き込むことができ、メモリカード提供者はファームウェアの機密を保護し、かつ最新のファームウェアを提供することができる。
【００７８】
また、本発明によるメモリカードによれば、前記メモリカードにおいて、前記第１の記憶部に格納されるファームウェアには、検査・解析用のファームウェアが含まれておらず、前記検査・解析用のファームウェアは、外部装置から前記第２の記憶部に直接書き込まれるものとすることで、検査、もしくは解析を容易化することができ、さらにファームウェアの容量も削減することができる。また、従来例のように、検査・解析用のファームウェアをＲＯＭに格納する必要はないため、メモリカードに発生した何らかの不備を解析するときなどに、その解析に適したファームウェアを用いることができ、検査・解析の自由度を高めることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１によるメモリカードの構成を示すブロック図である。
【図２】本発明の実施の形態１によるフラッシュメモリのメモリマップの一例を示す図である。
【図３】本発明の実施の形態１におけるファームウェアの転送を説明するための図である。
【図４】本発明の実施の形態１におけるファームウェアの転送を説明するための図である。
【図５】本発明の実施の形態１におけるファームウェアの転送を説明するための図である。
【図６】本発明の実施の形態１によるシステム領域内のメモリマップの一例を示す図である。
【図７】本発明の実施の形態２によるメモリカードのシステム領域内のメモリマップの一例を示す図である。
【図８】本発明の実施の形態３によるメモリカードにおいて、バッファＲＡＭを用いたファームウェアの転送について説明するための図である。
【図９】本発明の実施の形態４によるメモリカードにおいて、マイクロコンピュータがフラッシュメモリからファームウェアを直接読み出している状態について説明するための図である。
【図１０】本発明の実施の形態５によるメモリカードにおいて、ユーザデータの転送に用いられるインターフェースを介したファームウェアの送受について説明するための図である。
【図１１】本発明の実施の形態６によるメモリカードにおいて、暗号化されたファームウェアを復号化し、フラッシュメモリに格納することについて説明するための図である。
【図１２】本発明の実施の形態６によるメモリカードにおいて、サーバからファームウェアを取得する方法について説明するための図である。
【図１３】本発明の実施の形態７によるメモリカードにおいて、ホスト端末からの検査・解析用ファームウェアの転送について説明するための図である。
【図１４】従来のメモリカードの構成を示すブロック図である。
【符号の説明】
１  外部装置（ホスト端末）
２  メモリカード
３  フラッシュメモリ
４  マイクロコンピュータ
５  中央処理ユニット（ＣＰＵ）
６  ｉＲＡＭ
７  カードコントロールユニット
８  システム領域
９  ユーザ領域
１０  ファームウェア格納領域
１１  ファームウェアアドレス格納領域
１２  予備領域
１５  ファームウェアアドレス格納領域
１６  ブランク領域
１７  ファームウェア格納領域
１８、２５  ファームウェアＡ
１９、２６  先頭アドレスＡ
２０、２７  ファームウェアＢ
２１、２８  先頭アドレスＢ
２２、２９  ファームウェアＣ
２３、３０  先頭アドレスＣ
２４  初期化ファームウェアアドレス格納領域
３１  バッファＲＡＭ１
３２  バッファＲＡＭ２
３３  暗号化ファームウェア
３４  検査・解析ファームウェア
５１  パーソナル・コンピュータ（ＰＣ）
５２  通信回線
５３  サーバ
７１  ファームウエア復号化回路
【図１】
2004280287.tif 000003
【図２】
2004280287.tif 000004
【図３】
2004280287.tif 000005
【図４】
2004280287.tif 000006
【図５】
2004280287.tif 000007
【図６】
2004280287.tif 000008
【図７】
2004280287.tif 000009
【図８】
2004280287.tif 000010
【図９】
2004280287.tif 000011
【図１０】
2004280287.tif 000012
【図１１】
2004280287.tif 000013
【図１２】
2004280287.tif 000014
【図１３】
2004280287.tif 000015
【図１４】
2004280287.tif 000016