(57)【要約】マルチメディアカード（２０４）は、複数のメモリモジュール（２０６、２０８）と、外部コマンドデコーダ（２３８）と、を含む。前記外部コマンドデコーダは、所定のコマンドの所定のビットが所定の論理レベルに設定されるとき、アクセスされるべき選択メモリモジュールを前記複数のメモリモジュールから決定するための前記所定のコマンドをデコードする。【選択図】図６
2009533763.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリモジュール（２０６、２０８）と、
所定のコマンドの所定のビットが所定の論理レベルに設定されるとき、アクセスされるべき選択メモリモジュールを前記複数のメモリモジュールから決定するための前記所定のコマンドをデコードする外部コマンドデコーダ（２３８）と、
を含むことを特徴とするマルチメディアカード（２０４）。
【請求項２】
前記所定のコマンドの前記所定のビットが前記所定の論理レベルに設定されないとき、前記複数のメモリモジュールのうち所定のひとつで実行される処理を指定する前記所定のコマンドをデコードする通常コマンドデコーダ（２３６）を含むことを特徴とする請求項１記載のマルチメディアカード。
【請求項３】
前記メモリモジュールのうち前記所定のメモリモジュールで実行される前記処理はブロック読み出し／書き込み処理であって、前記所定のコマンドは前記ブロック読み出し／書き込み処理のブロック長を指定することを特徴とする請求項２記載のマルチメディアカード。
【請求項４】
前記通常コマンドデコーダは、前記選択メモリモジュールにおける少なくともひとつのメモリ処理のための少なくともひとつの次のコマンドをデコードすることを特徴とする請求項２記載のマルチメディアカード。
【請求項５】
前記所定のコマンドのビットの集合からなるビットパターンは前記選択メモリモジュールを示すことを特徴とする請求項１記載のマルチメディアカード。
【請求項６】
電子デバイスのホストシステム（２０２）において、マルチメディアカード（２０４）の複数のメモリモジュール（２０６、２０８）のうち選択メモリモジュールへのアクセスを示すために、所定のコマンドの所定のビットに所定の論理レベルを設定するステップと、
前記マルチメディアカードにおいて、前記所定のコマンドの前記所定のビットが前記所定の論理レベルに設定されるとき、アクセスされるべき前記選択メモリモジュールを決定するための前記所定のコマンドをデコードするステップと、
を含むことを特徴とする電子デバイス（２００）の複数のメモリモジュール（２０６、２０８）へアクセスする方法。
【請求項７】
前記所定のコマンドの前記所定のビットが前記所定の論理レベルに設定されないとき、前記複数のメモリモジュールのうち所定のひとつで実行される処理を指定する前記所定のコマンドをデコードするステップを含むことを特徴とする請求項６記載の電子デバイスの複数のメモリモジュールへアクセスする方法。
【請求項８】
前記メモリモジュールのうち前記所定のメモリモジュールで実行される前記処理はブロック読み出し／書き込み処理であって、前記所定のコマンドは前記ブロック読み出し／書き込み処理のブロック長を指定することを特徴とする請求項７記載の電子デバイスの複数のメモリモジュールへアクセスする方法。
【請求項９】
前記選択メモリモジュールを示すため前記所定のコマンドのビットの集合のうちひとつのホットビットを設定することを特徴とする請求項６記載の電子デバイスの複数のメモリモジュールへアクセスする方法。
【請求項１０】
前記選択メモリモジュールを示すため前記所定のコマンドのビットの集合のうちビットパターンを設定することを特徴とする請求項６記載の電子デバイスの複数のメモリモジュールへアクセスする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチメディアカード、特にマルチメディアカードの蓄積容量を増やすための効率的な機構に関する。
【背景技術】
【０００２】
図１を参照に、電子デバイス１０２は、ウェブサイトｈｔｔｐ：／／ｗｗｗ．ｍｍｃａ．ｏｒｇに述べられているように、大容量の音声及び映像データを格納するマルチメディアカード（ＭＭＣ）１０４を扱う。電子デバイス１０２はＭＭＣ１０４を収容するスロット１０６を含む。電子デバイス１０２は、携帯電話、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、デジタルカメラ等である。ＭＭＣ１０４は一般的に約４ＧＢ（ｇｉｇａ−ｂｙｔｅｓ）のメモリ容量を有する。
【０００３】
しかしながら、電子デバイスは、例えば、電子デバイス１０２が多くのアプリケーションを実行するときに、４ＧＢより大きいメモリ容量を必要とする場合もある。図２は、それぞれが大容量のデータにアクセスする第１アプリケーション１０８と第２アプリケーション１１０とを有する電子デバイス１０２のブロック図を示す。２つのアプリケーション１０８及び１１０は電子デバイス１０２のホストシステム１１２の内部に備わる。またホストシステム１１２は、第１ＭＭＣ（ｍｕｌｔｉ  ｍｅｄｉａ  ｃａｒｄ）ホストコントローラ１１６及び第２ＭＭＣホストコントローラ１１８を有するＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１１４を含む。
【０００４】
第１及び第２アプリケーション１０８及び１１０は４ＧＢより大きいデータを扱うので、電子デバイス１０２は第１ＭＭＣ（ｍｕｌｔｉ  ｍｅｄｉａ  ｃａｒｄ）１２０及び第２ＭＭＣ（ｍｕｌｔｉ  ｍｅｄｉａ  ｃａｒｄ）１２２を含む。第１ＭＭＣ１２０は、４ＧＢのメモリ容量を備える第１メモリモジュール１２６に対してメモリ処理を行う第１ＭＭＣスレーブコントローラ１２４を含む。第２ＭＭＣ１２２は、４ＧＢのメモリ容量を備える第１メモリモジュール１３０に対してメモリ処理を行う第１ＭＭＣスレーブコントローラ１２８を含む。
【０００５】
また電子デバイス１０２は、第１ＭＭＣホストコントローラ１１６と第１ＭＭＣ１２０との間で信号のやり取りを行う第１接続ピン１３２と、第２ＭＭＣホストコントローラ１１８と第２ＭＭＣ１２２との間で信号のやり取りを行う第２接続ピン１３４と、を含む。
【０００６】
図３は、４ＧＢより大きいメモリ容量を必要とするアプリケーション１０８をただひとつ有する電子デバイス１４０のブロック図を示す。このように、電子デバイス１４０は、複数のＭＭＣ１２０及び１２２を扱う。図１、図２及び図３において同じ参照番号をもつ要素は、同様の構造及び／又は機能を有する要素を参照する。
【０００７】
図２及び図３の場合、ホストコントローラ１１６及び１１８は、ウェブサイトｈｔｔｐ：／／ｗｗｗ．ｍｍｃａ．ｏｒｇに規定されているように、マルチメディアカードのコマンド生成のための現在の標準に従って、アドレス指定用の３２ビットを含む４８ビットのコマンドを生成する。したがって、各ＭＭＣ１２０、１２２は、それぞれ、約４ＧＢ（すなわち２３２）のデータ容量のメモリモジュール１２６、１３０を有する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図２及び図３に示す複数のＭＭＣ１２０及び１２２を使用すると、電子デバイスに複数のスロットや複数の接続ピン１３２及び１３４が形成され高コストであり、複数のＭＭＣ１２０及び１２２は高コストであるため、非効率である。さらに、ＭＭＣを扱う電子デバイスは携帯デバイスが典型的であるため、複数のＭＭＣが携帯電子デバイスのサイズを大きくすることは望ましくない。
【０００９】
このように、ＭＭＣのメモリ容量を増やすにあたって、効率的な機構が望まれている。解決策として、新たなコマンド標準においてアドレス指定用ビットを３２ビットよりも大きくしてもよい。しかしながら、新たなコマンド標準の認可と採用には時間を要する。さらに、新たなコマンド体系の実装には、ホストコントローラ１１６及び１１８におけるハードウェアの変更が必要であり、これには大抵大きな労力を要する。
【００１０】
したがって、本発明は、既存のコマンド標準を使用して、ＭＭＣ（ｍｕｌｔｉ  ｍｅｄｉａ  ｃａｒｄ）のメモリ容量を効率的に増やすことを目的とする。
【課題を解決するための手段】
【００１１】
本発明のマルチメディアカードは、複数のメモリモジュールと、外部コマンドデコーダと、を含む。外部コマンドデコーダは、所定のコマンドの所定のビットが定められた論理レベルに設定された場合、複数のメモリモジュールのうち所定のメモリモジュールで実行される処理を指定する所定のコマンドをデコードする。
【００１２】
本発明の別の実施形態では、マルチメディアカードは、さらに、所定のコマンドの所定のビットが所定の論理レベルに設定されないとき、複数のメモリモジュールのうち所定のメモリモジュールで実行される処理を指定する所定のコマンドをデコードする通常コマンドデコーダを含む。本発明の例では、複数のメモリモジュールで実行される処理は、ブロックの読み出し／書き込みの処理であり、所定のコマンドは、ブロックの読み出し／書き込みの処理のためにブロック長を指定する。
【００１３】
本発明の別の実施形態では、通常コマンドデコーダは、選択メモリモジュールにおける少なくともひとつのメモリ処理のための少なくともひとつの次のコマンドをデコードする。
【００１４】
本発明の実施形態の一例では、所定のコマンドのビットの集合のうちひとつのホットビットは、選択メモリモジュールを示す。本発明の実施形態の一例では、所定のコマンドのビットの集合のうちひとつのビットパターンは、選択メモリモジュールを示す。
【００１５】
この方式では、既存のコマンドは、マルチメディアカードに複数のメモリモジュールが形成されてアクセスされるように、選択メモリモジュールを示すのに使われる。既存のコマンドは、所定のメモリモジュール用に通常コマンドを規定すること（これにより初期のＭＭＣモデルとの後方互換性を保つ）、又は、マルチメディアカードにおいて複数のメモリモジュールのうち選択メモリモジュールを指定すること（これによりメモリ容量の増加を許容する）の二つの目的に使われる。電子デバイスのホストシステムにおけるソフトウェア変更とマルチメディアカードのスレーブコントローラにおけるハードウェア変更により、本発明の上記の機構は効率的に実装される。
【発明を実施するための最良の形態】
【００１６】
図４は、本発明の実施例に係る、ホストシステム２０２、及び、マルチメディアカード２０４を有する電子デバイス２００のブロック図を示す。電子デバイス２００は、携帯電話、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、デジタルカメラ、マルチメディアカードを使うその他の電子デバイス等である。
【００１７】
マルチメディアカード（ＭＭＣ）２０４は、複数のメモリモジュール２０６〜２０８によりメモリ容量を増やしている。一般に、マルチメディアカード２０４はＮ個のメモリモジュールを有し、各メモリ容量は例えば４ＧＢである。また、マルチメディアカードは複数のメモリモジュール２０６〜２０８へアクセスするために拡張ＭＭＣスレーブコントローラ２１０を含む。
【００１８】
ホストシステム２０２は、メモリモジュール２０６〜２０８に蓄積されたデータを用いて、複数のアプリケーション２１２〜２１４を実行する。各アプリケーション２１２〜２１４は、それぞれ拡張ソフトウェアドライバ２１３〜２１５を有する。また、ホストシステム２０２は、ＭＭＣホストコントローラ２１８を有する、ホストＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、すなわちデータプロセッサ）２１６を含む。ホストシステム２０２は、さらに、命令列を格納するホストメモリデバイス２２０を含む。拡張ソフトウェアドライバ２１３〜２１５による命令列の実行により、ソフトウェアドライバは図７及び図８のフローチャートの処理を実行する。
【００１９】
電子デバイス２００は、さらに、ホストシステム２０２のＭＭＣホストコントローラ２１８とＭＭＣ２０４のＭＭＣスレーブコントローラ２１０との間の信号のやり取りを行う接続ピン２２２を含む。１３本のピン２２２は、ウェブサイトｈｔｔｐ：／／ｗｗｗ．ｍｍｃａ．ｏｒｇに規定されているように、ＭＭＣを実現する現在の物理標準に従って使用される。
【００２０】
図５は本発明の他の実施例に係る電子デバイス２３０のブロック図を示す。図５の電子デバイス２３０は、図４の電子デバイス２００に類似しており、図４及び図５において同一の参照番号で示す要素は、類似の構造及び／又は機能を有する要素を表す。しかし、図５のホストシステム２０２は、複数のメモリモジュール２０６〜２０８が大量のデータを必要とする単一のアプリケーション２３２を実行する。単一のアプリケーション２３２は、拡張ソフトウェアドライバ２３３を有し、拡張ソフトウェアドライバ２３３によるメモリデバイス２２０に格納された命令列の実行により、ソフトウェアドライバ２３３は図７及び図８のフローチャートの処理を実行する。
【００２１】
図６は、本発明の実施例に係る、図４又は図５の拡張ＭＭＣスレーブコントローラ２１０のブロック図を示す。スレーブコントローラ２１０は、接続ピン２２２のうち８本のピンＤＡＴＡと接続されたデータマルチプレクサ２３２を含む。スレーブコントローラ２１０はまた、接続ピン２２２のうちコマンドピンＣＭＤと接続されたコマンドデシリアライザ２３４を含む。
【００２２】
コマンドデシリアライザ２３４は、通常コマンドデコータ２３６と外部コマンドデコーダ２３８とに接続される。通常コマンドデコーダ２３６は、メモリインターフェース２４２を介して複数のメモリモジュール２０６〜２０８へアクセスするメモリコントローラステートマシン２４０と接続される。
【００２３】
データマルチプレクサ２３２は、データピンＤＡＴＡとメモリコントローラステートマシン２４０とのデータのやり取りを行う。コマンドデシリアライザ２３４は、コマンドピンＣＭＤを介して、ホストコントローラ２１８からコマンドの全ビット（例えば４８ビット）を受信する。コマンドデシリアライザ２３４は、コマンドを分けて、コマンドのビットを通常コマンドデコーダ２３６と外部コマンドデコーダ２３８とへ送る。
【００２４】
通常コマンドデコーダ２３６は、メモリモジュール２０６〜２０８へのメモリ処理を実行するメモリコントローラステートマシンを制御するコマンドをデコードする。外部コマンドデコーダ２３８は、メモリモジュール２０６〜２０８のうちいずれがアクセスのために選択されているか（すなわち、選択メモリモジュールＳＭＭ）を示す所定のコマンドをデコードする。
【００２５】
スレーブコントローラ２１０の要素２３２、２３４、２３６、２４０及び２４２は、それぞれ、マルチメディアカードの技術においてよく知られたものである。本発明の実施例に係るスレーブコントローラ２１０は、外部コマンドデコーダ２３８を含むことにより、機能が向上している。図９は、本発明の実施例に係る外部コマンドデコーダ２３８によって実行されるフローチャートの処理を示す。
【００２６】
図７、図８及び図９のフローチャートを参照して、図４のマルチメディアカード２００又は図５の２３０の処理が説明される。図４、図５及び図７を参照に、拡張ソフトウェアドライバ２１３〜２１５（又は２３３）のひとつは、アプリケーション２１２〜２１４（又は２３２）のひとつから、複数のメモリモジュール２０６〜２０８のうち選択メモリモジュール（ＳＭＭ）へのアクセス要求を受信する（図７のステップ２５２）。拡張ソフトウェアドライバは、ＳＭＭがメモリモジュール２０６〜２０８のうち所定のものであるかどうかを判定する（図７のステップ２５４）。例えば、拡張ソフトウェアドライバはＳＭＭが第１メモリモジュール２０６であるかどうかを判定する。この機能によりただひとつのメモリモジュール２０６を使うマルチメディアカードの過去モデルとの後方互換性が保たれる。
【００２７】
ＳＭＭが第１メモリモジュール２０６である場合、拡張ソフトウェアドライバはコマンドがブロック読み出し／書き込み用であるかどうかを判定する（図７のステップ２５６）。各コマンドは、コマンドの識別子を有する。例えば、コマンドの全４８ビットのうち６ビットは６４個の異なるコマンドを実現するための識別子として使われる。コマンドの現在の標準において、ブロック読み出し／書き込み処理のブロック長を示すコマンドはコマンド１６（ＣＭＤ１６）と確認される。
【００２８】
コマンドがＣＭＤ１６でない場合、拡張ソフトウェアドライバは、コマンドの特定のタイプを識別するためのビット集合を含む、４８ビットのコマンドを生成する（図７のステップ２５８）。さらに、コマンドの全４８ビットのうちその他のビット（例えば３２ビット）は、コマンドに対応する処理のためにアクセスされる第１メモリモジュール２０６のアドレスを示す。４８ビットのコマンドは、ＭＭＣホストコントローラ２１８とコマンドピンＣＭＤを介して、マルチメディアカードのスレーブコントローラ２１０へ送られる（図７のステップ２６０）。拡張ソフトウェアドライバは、アプリケーション２１２〜２１４（又は２３２）のひとつから他のコマンドが受信されるまでアイドル状態２６２に遷移する。
【００２９】
図７のステップ２５６に戻って参照すると、コマンドがＣＭＤ１６の場合、拡張ソフトウェアドライバは、第１メモリモジュール２０６がアクセスされることを示すために、アドレス指定用として割り付けられた３２ビットのうちＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）を論理レベルが低の”０”と設定することにより、コマンドを生成する（図７のステップ２６４）。さらに、拡張ソフトウェアドライバは、６ビットのコマンド識別子を含む、ＣＭＤ１６の全４８ビットの残りを生成する。またさらに、拡張ソフトウェアドライバは、ブロック読み出し／書き込み処理のブロック長を示すため、アドレス指定用の３２ビットの残り（ＭＳＢを除く）を設定する（図７のステップ２６６）。
【００３０】
図７のステップ２６６の後、ＣＭＤ１６の全４８ビットは、ＭＭＣホストコントローラ２１８及びコマンドピンＣＭＤを介して、マルチメディアカードのスレーブコントローラ２１０に送られる（図７のステップ２６０）。拡張ソフトウェアドライバは、アプリケーション２１２〜２１４（又は２３２）のひとつから他のコマンドが受信されるまでアイドル状態２６２に遷移する。
【００３１】
図７のステップ２５４に戻って参照すると、ＳＭＭが第１モジュールでない場合、拡張ソフトウェアドライバは、コマンドがブロック読み出し／書き込み用であるか否かを判定する（図８のステップ２６８）。コマンドがブロック読み出し／書き込み用でない場合、拡張ソフトウェアドライバは、まず、３２ビットのうちＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）を論理レベルが高の”１”と設定してＣＭＤ１６を生成する（図８のステップ２７０）。
【００３２】
さらに、アドレス指定用の３２ビットの残り（ＭＳＢを除く）が、選択メモリモジュールを示すように、拡張ソフトウェアによって使われる（図８のステップ２７０）。例えば、メモリモジュールのいずれが選択メモリモジュールであるかを示すために、アドレス指定用の残りの３１ビットのうちひとつがホットビットとして論理レベルが高に設定される（３１ビットの残りは論理レベルが低に設定される）。そのような例は、マルチメディアカード２０４で使われる３２個のメモリモジュールの全てで許容される。
【００３３】
あるいは、拡張ソフトウェアドライバは、選択メモリモジュールを示すために、ＣＭＤ１６においてアドレス指定用の残りの３１ビットのビットパターンを設定する。この場合、第１のメモリモジュール２０６とは別に、追加で２３１個のメモリモジュールがマルチメディアカード２０４で使われてもよい。どちらの場合でも、生成されたＣＭＤ１６がマルチメディアカード２０４に送られる（図８のステップ２７０）。
【００３４】
さらに、拡張ソフトウェアドライバは、ステップ２５２のアクセスの要求に対応して、選択メモリモジュールで実行されるメモリ処理を示すために少なくともひとつの次のコマンドを生成する（図８のステップ２７２）。このような次のコマンドが、マルチメディアカード２０４に送られる（図８のステップ２７２）。ステップ２７０において選択メモリモジュールが示されると、ステップ２７２において次のコマンドが通常どおり生成される。他のコマンドがアプリケーション２１２〜２１４（又は２３２）のひとつから受信されるまで、拡張ソフトウェアドライバは、図８のアイドル状態２７４に遷移する。
【００３５】
図８のステップ２６８に戻って参照すると、現在のコマンドがブロック読み出し／書き込み用であって、選択メモリモジュールが第１メモリモジュール２０６でない場合、拡張ソフトウェアドライバはまずステップ２７０のようにＣＭＤ１６を生成する（図８のステップ２７６）。よって、ＣＭＤ１６のアドレス指定用の３２ビットのＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が論理レベルが高の”１”と設定され（図８のステップ２７６）、アドレス指定用の３２ビットの残り（ＭＳＢを除く）が選択メモリモジュールを指定する（図８のステップ２７６）。このようなＣＭＤ１６がマルチメディアカード２０４に送られる（図８のステップ２７６）。
【００３６】
選択メモリモジュールがＣＭＤ１６により示されると、拡張ソフトウェアドライバは、選択メモリモジュールでブロック読み出し／書き込みを実行するために、いくつかの次のコマンドを生成する。ＣＭＤ１８／ＣＭＤ２５は、拡張ソフトウェアドライバにより生成され、ブロック読み出し／書き込み処理のために選択メモリモジュールにおける開始アドレスを示すために、マルチメディアカード２０４に送られる（図８のステップ２７８）。
【００３７】
それから、マルチメディアカード２０４は、選択メモリモジュールの開始アドレスからブロック読み出し／書き込みを開始する。拡張ソフトウェアドライバが所望のデータ量を受信すると、拡張ソフトウェアドライバは、ブロック読み出し／書き込み処理に対するＳＴＯＰを示すためにＣＭＤ１２を生成してマルチメディアカード２０４に送信する（図８のステップ２８０）。そのあと、他のコマンドがアプリケーション２１２〜２１４（又は２３２）のひとつから受信されるまで、拡張ソフトウェアドライバは図８のアイドル状態２７４に遷移する。
【００３８】
図９は、本発明に係る、ＭＭＣスレーブコントローラ２１０によって実行される処理のフローチャートを示す。スレーブコントローラ２１０は、ＣＭＤピンを介して、ホストコントローラ２１８からコマンドを受信する（図９のステップ２８２）。コマンドデシリアライザ２３４はシリアルにコマンドの全４８ビットを受信して、４８ビットのコマンドをコマンドデコーダ２３６及び２３８に送るようにビットを分離する。
【００３９】
コマンドデコーダ２３６及び２３８は、コマンドがＣＭＤ１６であるか否かを判定する（図９のステップ２８４）。コマンドがＣＭＤ１６でない場合、通常コマンドデコーダ２３６はコマンドをデコードして、最近の選択モジュールにおいてコマンドで指定されるメモリ処理を実行するためにメモリコントローラステートマシン２４０を制御する（図９のステップ２８６）。スレーブコントローラ２１０は、他のコマンドがステップ２８２で受信されるまで、図９のアイドル状態２８８に遷移する。
【００４０】
ステップ２８４に戻って参照すると、コマンドがＣＭＤ１６である場合、コマンドデコーダ２３６及び２３８は、コマンドのアドレス指定用の３２ビットのＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）が所定の論理レベルが高の”１”と設定されているか否かを判定する（図９のステップ２９０）。ＭＳＢが”１”と設定されない場合、外部コマンドデコーダ２３８は不活性化され、通常コマンドデコーダ２３６は、第１メモリモジュール２０６で通常のブロック読み出し／書き込みを実行するために、ＣＭＤ１６をデコードする（図９のステップ２９２）。スレーブコントローラ２１０は、他のコマンドがステップ２８２で受信されるまで、図９のアイドル状態２８８に遷移する。
【００４１】
一方、ＭＳＢが”１”と設定される場合、外部コマンドデコーダ２３８は、第１メモリモジュール２０６を除いて、マルチメディアカード２０４の選択メモリモジュールを決定するために、ＣＭＤ１６のアドレス指定用の３２ビットの残りをデコードする（図９のステップ２９４）。外部コマンドデコーダ２３８は、ＭＳＢを除くアドレス指定用の残りの３１ビットに論理レベルが高の”１”と設定されるひとつのホットビットに基づいて、選択メモリモジュールを決定してもよい。あるいは、外部コマンドデコーダ２３８が、ＭＳＢを除く、アドレス指定用の残りの３１ビットのビットパターンに基づいて選択メモリモジュールを決定してもよい。
【００４２】
外部コマンドデコーダ２３８は、選択メモリモジュールの決定に従って、選択メモリモジュールのみがアクセス可能なように、メモリモジュールを制御してもよい。スレーブコントローラ２１０は、他のコマンドがステップ２８２で受信されるまで、図９のアイドル状態２８８に遷移する。
【００４３】
図１０、図１１及び図１２は、図４又は図５の構成要素の処理の例における、信号のタイミングチャートを示す。図１０は、第１メモリモジュール２０６がブロック読み出し／書き込み処理のためにアクセスされるときのタイミングチャートを示す。その場合、マルチメディアカード２０４の選択を示すために、コマンドＣＭＤ７が生成され、拡張ソフトウェアドライバ２１３、２１５又は２３３によりスレーブコントローラ２１０へ送信される（図１０の時間Ｔ１）。それから、コマンドＣＭＤ１６が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、アドレス指定用の３２ビットのＭＳＢが論理レベルが低の”０”と設定されて送信される（図１０の期間Ｔ２）。ブロック読み出しのブロック長を示すために、アドレス指定用の残りの３１ビットが使われる。
【００４４】
図１０のその後、コマンドＣＭＤ１７が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、ブロック読み出しの開始アドレスを示すために、送信される（図１０の期間Ｔ３）。その後、スレーブコントローラはデータを第１メモリモジュール２０６の開始アドレスから先のＣＭＤ１６で指定されるブロック長の終端まで転送する（図１０の期間Ｔ４に”レスポンス”と示す）。第１メモリモジュール２０６のブロック書き込み処理は、ブロック読み出し処理と同様であるが、図１０のＣＭＤ１７が図１０のＣＭＤ２４と置き換えられる。図１０で説明される処理は、ただひとつのメモリモジュール２０６を使うマルチメディアカードの古いモデルとの後方互換性を保証する。
【００４５】
図１１は、選択メモリモジュールが第１メモリモジュール２０６でないときのブロック読み出し処理を説明する。コマンドＣＭＤ７は生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、マルチメディアカード２０４の選択を示すために、送信される（図１１の時間Ｔ１）。それから、コマンドＣＭＤ１６が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、アドレス指定用の３２ビットのＭＳＢは論理レベルが高の”１”と設定されて送信される（図１１の期間Ｔ２）。アドレス指定用の残りの３１ビットは、第１メモリモジュールではない選択メモリモジュールを示すために使われる。
【００４６】
図１１のその後、コマンドＣＭＤ１８が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、複数のブロックから読み出す開始アドレスを示すために、送信される（図１１の期間Ｔ３）。スレーブコントローラ２１０は、開始アドレスからブロック長の既定量を読み出し始めることにより応答を返す（図１１の期間Ｔ４）。
【００４７】
拡張ソフトウェアドライバが所望のデータブロック数を受信すると、コマンドＣＭＤ１２が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ、ブロックの読み出しの停止を示すために、送信される（図１１の時間Ｔ４の後）。選択メモリモジュール２０６のブロック書き込み処理は、ブロック読み出し処理と同様であるが、図１１のＣＭＤ１８は図１１のＣＭＤ２５と置き換えられる。
【００４８】
図１２は、異なる選択メモリモジュール間の切り替えを示す。他の選択メモリモジュールが所望されるときは常に、コマンドＣＭＤ１６が生成され、拡張ソフトウェアドライバによりスレーブコントローラ２１０へ送信される（例えば図１２の期間Ｔ３及びＴ６）。第１メモリモジュール２０６とは異なるメモリモジュールを選択するために、ＣＭＤ１６のアドレス指定用の３２ビットのＭＳＢに論理レベルが高の”１”が設定される。そして、残りの３１ビットは選択メモリモジュールを示すために使われる。図１２の各ＣＭＤ１６の後に続くコマンド（例えば、図１２の期間Ｔ４、Ｔ５及びＴ７）は、対応する選択メモリモジュールに対して実行される典型的なメモリ処理を示し、対応する選択メモリモジュールは直前のＣＭＤ１６によって示される。
【００４９】
この方式において、既存のコマンド（例えばＣＭＤ１６）は、マルチメディアカード２０４において複数のメモリモジュールが形成されアクセスされるように、選択メモリモジュールを示すために使われる。既存のコマンドは、第１メモリモジュール２０６用に通常コマンドを規定すること（これにより初期のＭＭＣモデルとの後方互換性を保つ）、又は、マルチメディアカード２０４において追加のメモリモジュールのうち選択メモリモジュールを指定すること（これによりメモリ容量の増加を許容する）の二つの目的に使われる。本発明のメモリ容量を効率的に増やす機構は、ホストシステム２０２におけるソフトウェア変更とマルチメディアカード２０４のスレーブコントローラ２１０におけるハードウェア変更とを必要とする。
【００５０】
ブロック長を示すＣＭＤ１６において使われる３２ビットのＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）は、本発明では、ＣＭＤ１６が選択メモリモジュールを指定する目的のために使われているかどうかを示すために使われる。通常のブロック長は３２ビット全体で指定されるよりも小さいので、ＭＳＢはこの目的で使われてもよい。概して、読み出し／書き込み処理では、最大の可能なブロック長を指定するのに、３２ビットより小さくとも十分である。本発明はまた、通常コマンドで使用されないビットを有する他の所定のコマンド（例えばＣＭＤ１６を除く）で実装してもよい。
【００５１】
上記は例にすぎず、制限を意図していない。例えば、ここで示した、又は、説明した、コマンド、又は、要素の数は、例にすぎない。ＣＭＤ７、ＣＭＤ１２、ＣＭＤ１６、ＣＭＤ１７、ＣＭＤ１８、ＣＭＤ２４、及び、ＣＭＤ２５は、それぞれ、ウェブサイトｈｔｔｐ：／／ｗｗｗ．ｍｍｃａ．ｏｒｇにおいて先行技術で使われているとして説明されている。さらに、メモリモジュールという用語は、メモリの離散的な容量を意味している。メモリモジュール２０６〜２０８は、それぞれが独立したＩＣ（ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）チップ、又は、それぞれが同一のＩＣチップ上に形成されたメモリセグメントでもよい。
【００５２】
本発明は、請求項、及び、その均等物で定義されるように限り、制限される。
【図面の簡単な説明】
【００５３】
本発明の特徴及び利点は、添付の図面と共に表される、以下の本発明の詳細な説明を考慮することにより、よりよく理解される。
【図１】図１は、先行技術において周知のように、マルチメディアカードを使用する電子デバイスを示す。
【図２】図２は、先行技術に係る、複数のアプリケーションを実行する複数のマルチメディアカードを使用する、電子デバイスのブロック図を示す。
【図３】図３は、先行技術に係る、大容量のデータを必要とするひとつのアプリケーションを実行する複数のマルチメディアカードを使用する、電子デバイスのブロック図を示す。
【図４】図４は、本発明の実施例に係る、複数のアプリケーションを実行する大容量の単一マルチメディアカードを使用する、電子デバイスのブロック図を示す。
【図５】図５は、本発明の実施例に係る、大容量のデータを必要とする単一のアプリケーションを実行する大容量の単一マルチメディアカードを使用する、電子デバイスのブロック図を示す。
【図６】図６は、本発明の実施例に係る、図４又は図５における拡張マルチメディアカードスレーブコントローラのブロック図を示す。
【図７】図７は、本発明の実施例に係る、図４又は図５における、拡張ソフトウェアドライバにより実行される処理のフローチャートを示す。
【図８】図８は、本発明の実施例に係る、図４又は図５における、拡張ソフトウェアドライバにより実行される処理のフローチャートを示す。
【図９】図９は、本発明の実施例に係る、図６の拡張マルチメディアカードスレーブコントローラにより実行される処理のフローチャートを示す。
【図１０】図１０は、本発明の実施例に係る、図４又は図５のマルチメディアカードのメモリモジュールの所定のひとつにおけるブロックの読み出し／書き込み処理に伴う信号のタイミングチャートを示す。
【図１１】図１１は、本発明の実施例に係る、図４又は図５のマルチメディアカードの、図１０の所定のひとつとは別の選択メモリモジュールにおけるブロックの読み出し／書き込み処理に伴う信号のタイミングチャートを示す。
【図１２】図１２は、本発明の実施例に係る、異なる選択メモリモジュール間の切り替えを例示するコマンド信号のタイミングチャートを示す。
【００５４】
ここで参照される図面は説明を明確にするために記載されており、必ずしも一定の縮尺では記載されていない。図１、２、３、４、５、６、７、８、９、１０、１１及び１２において同一の参照番号で示す要素は、類似の構造及び／又は機能を有する要素を表す。
【図１】
2009533763.tif 000003
【図２】
2009533763.tif 000004
【図３】
2009533763.tif 000005
【図４】
2009533763.tif 000006
【図５】
2009533763.tif 000007
【図６】
2009533763.tif 000008
【図７】
2009533763.tif 000009
【図８】
2009533763.tif 000010
【図９】
2009533763.tif 000011
【図１０】
2009533763.tif 000012
【図１１】
2009533763.tif 000013
【図１２】
2009533763.tif 000014
【国際調査報告】
2009533763.tif 000015
2009533763.tif 000016