(57)【要約】【課題】  メモリ動作を効率的に行うことが可能なメモリカードシステムおよびメモリカードを提供する。【解決手段】  ホスト１０と複数のメモリカード［１］１１ａ〜［Ｎ］１１ｎがそれぞれコマンド線［１］１２ａ〜［Ｎ］１２ｎおよびデータ線［１］１３ａ〜［Ｎ］１３ｎによって接続された構成において、ホスト１０に、複数のメモリカード［１］１１ａ〜［Ｎ］１１ｎを一斉にメモリ動作可能な状態に遷移させるコマンドを発行させ、前記コマンドによって複数のメモリカード［１］１１ａ〜［Ｎ］１１ｎをメモリ動作可能な状態に遷移させ、その後、ホスト１０に、書き込み又は読み出し等のメモリ動作を指定するコマンドを発行させることで、複数のメモリカード［１］１１ａ〜［Ｎ］１１ｎが一括してメモリ動作を行うことを可能にする。【選択図】  図１
2006119954.tif 000002
【特許請求の範囲】
【請求項１】
ホストと、複数のメモリカードとを備えたメモリカードシステムであって、
前記複数のメモリカードは、
前記複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第１のコマンドが前記ホストから入力された際に、前記第１のコマンドに応じてメモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移し、
前記メモリ動作が可能な内部状態で、前記複数のメモリカードに対して一括してメモリ動作を行わせる第２のコマンドが前記ホストから入力された際に、前記第２のコマンドに応じてメモリ動作を行うことを特徴とするメモリカードシステム。
【請求項２】
ホストと、複数のメモリカードとを備えたメモリカードシステムであって、
前記ホストは、
内部状態の遷移を要求し、かつメモリカードの選択情報を含まないブロードキャスト仕様の第１のコマンドを、前記複数のメモリカードに向けて出力する機能と、
メモリ動作の動作内容を指定する第２のコマンドを、前記複数のメモリカードに向けて出力する機能とを有し、
前記複数のメモリカードは、
前記第１のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、
前記メモリ動作が可能な内部状態で前記第２のコマンドが入力された際に、前記第２のコマンドで指定された動作内容でメモリ動作を行う機能とを有することを特徴とするメモリカードシステム。
【請求項３】
請求項１または２記載のメモリカードシステムにおいて、
前記複数のメモリカードは、それぞれ個別にコマンド線およびデータ線を備え、前記個別に備えたコマンド線およびデータ線によって前記ホストと接続されることを特徴とするメモリカードシステム。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリカードシステムにおいて、
前記メモリ動作の中には、読み出し動作と書き込み動作と消去動作が含まれ、
前記第２のコマンドによって、前記読み出し動作と前記書き込み動作と前記消去動作の中のいずれか一つのメモリ動作を指定可能であることを特徴とするメモリカードシステム。
【請求項５】
複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第１のコマンドがホストから入力された際に、前記第１のコマンドを解釈し、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能を有することを特徴とするメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードシステムおよびメモリカードに関し、特に、ホストに複数のＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードが接続されたメモリカードシステムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
本発明者が検討したところによれば、メモリカードシステムの技術に関しては、以下のようなものが考えられる。
【０００３】
例えば、メモリカードの規格であるＳＤメモリカード規格では、ＳＤモードやＳＰＩモードが定義されている。この内、市場で多く採用されているＳＤモードでは、ホストが複数のメモリカード（以降、カードと略す場合有り）にデータを書き込む場合、カード毎に順番で書き込みを行う必要がある。また、ホストが複数のカードからデータを読み出す場合、及びホストが複数のカードの内容を消去する場合も同様である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、前記のようなメモリカードシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
例えば、前述したＳＤメモリカード規格のＳＤモードを用いてメモリカードへの書き込みを行う際には、図８のような処理手順となる。図８は、本発明の前提として検討した技術のメモリカードシステムにおいて、複数のメモリカードへの書き込み手順の一例を示す処理フロー図である。図８では、ホストが、書き込み不可能なスタンバイ状態にある２枚のカード（カード［１］とカード［２］）に対し、同じアドレスにデータを書き込む場合を想定している。ここでは、カード［１］とカード［２］のＲＣＡ（バス上での動的な相対アドレス）はそれぞれ‘１’と‘２’とする。また、以下においては、図８中の番号に対応させて処理手順の説明を行う。
【０００６】
（１）ホストは、カード［１］，［２］に向けて、スタンバイ状態にあるカードをトランスファー状態に遷移させるＣＭＤ７（ＲＣＡ＝１）を送信する。
【０００７】
（２）カード［１］は、ＣＭＤ７（ＲＣＡ＝１）を受信するとトランスファー状態に遷移する。カード［２］は、自身のＲＣＡと異なるのでスタンバイ状態に留まる。
【０００８】
（３）ホストは、ライトコマンドを送信する。ライトコマンドは、トランスファー状態にあるカードのみが受信する。また、ライトコマンドには、１ブロック（５１２バイトなど）への書き込みコマンドであるＣＭＤ２４、複数ブロックへの書き込みコマンドであるＣＭＤ２５などがある。ここでは、ＣＭＤ２５を使用するものとする。
【０００９】
（４）カード［１］は、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信の準備をする。また、ホストにライトコマンドを受信したことを通知するレスポンスを送信する。カード［２］は、スタンバイ状態でありライトコマンドを受信しない。
【００１０】
（５）ホストは、カード［１］からライトコマンドに対応するレスポンスを受信すると、ライトデータ（データ１）を送信する。
【００１１】
（６）カード［１］は、ライトデータを受信すると、自身のメモリにライトデータを書き込む。ライトコマンドの引数により指定されたアドレスから、ストップコマンド（ＣＭＤ１２）を受信するまで書き込む。
【００１２】
（７）ホストは、アプリケーションなどから要求されたサイズを書き込むまで前記（３）と（５）の処理を繰り返す。
【００１３】
（８）ホストは、書き込みが終了すると、書き込み動作にエラーがなかったかを確認するため、カード［１］に現在のカードステータスを取得するコマンドであるＣＭＤ１３（ＲＣＡ＝１）を送信する。
【００１４】
（９）カード［１］は、ＣＭＤ１３（ＲＣＡ＝１）を受信すると自身のカードステータスをホストに送信する。カード［２］は、自身のＲＣＡと異なるためＣＭＤ１３を受信しない。
【００１５】
（１０）ホストは、カード［１］からカードステータスを取得すると、カードステータスを解析し、書き込み動作にエラーがなかったかを確認する。もしエラーが有れば、その内容をアプリケーションに通知するなどのエラー処理を行う。
【００１６】
（１１）前記（１０）においてエラーがなかった場合、カード［１］の書き込み動作を完了してカード［２］の書き込み動作に移行する。ホストは、スタンバイ状態にあるカードをトランスファー状態に遷移させるＣＭＤ７（ＲＣＡ＝２）を送信する。
【００１７】
（１２）カード［２］は、ＣＭＤ７（ＲＣＡ＝２）を受信するとトランスファー状態に遷移する。カード［１］は、自身のＲＣＡと異なるためスタンバイ状態に遷移する。
【００１８】
（１３）ホストは、ライトコマンドを送信する。
【００１９】
（１４）カード［２］は、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信の準備をする。また、ホストにライトコマンドを受信したことを通知するレスポンスを送信する。カード［１］は、スタンバイ状態でありライトコマンドを受信しない。
【００２０】
（１５）ホストは、カード［２］からライトコマンドに対応するレスポンスを受信すると、ライトデータ（データ２）を送信する。
【００２１】
（１６）カード［２］は、ライトデータを受信すると、自身のメモリにライトデータを書き込む。
【００２２】
（１７）ホストは、アプリケーションなどから要求されたサイズを書き込むまで前記（１３）と（１５）の処理を繰り返す。
【００２３】
（１８）ホストは、書き込みが終了すると、書き込み動作にエラーがなかったか確認するため、カード［２］に現在のカードステータスを取得するコマンドであるＣＭＤ１３（ＲＣＡ＝２）を送信する。
【００２４】
（１９）カード［２］は、ＣＭＤ１３（ＲＣＡ＝２）を受信すると自身のカードステータスをホストに送信する。カード［１］は、自身のカードステータスと異なるためＣＭＤ１３を受信しない。
【００２５】
（２０）ホストは、カード［２］からカードステータスを取得すると、カードステータスを解析し、書き込み動作にエラーがなかったかを確認する。もしエラーが有れば、その内容をアプリケーションに通知するなどのエラー処理を行う。エラーがなかった場合、２枚のカードの書き込み動作を完了する。
【００２６】
なお、ここでは、カードに対するメモリ動作の内、２枚のカードへの書き込み動作を例としたが、その他のメモリ動作（読み出しまたは消去など）の場合やカードが３枚以上の場合でも同様に、各カード毎に順番でトランスファー状態に遷移させながらメモリ動作を行う必要がある。
【００２７】
このように、本発明の前提として検討した技術（以降、従来技術と呼ぶ）では、１つのホストが、複数のカードに対して同時にメモリ動作を行うことができない。これは、ＳＤメモリカード規格では、トランスファー状態となったカードのみにメモリ動作が可能であり、２枚以上のカードを同時にトランスファー状態に遷移させることができないためである。
【００２８】
したがって、仮に、ホストが複数のカードの同じアドレスに対してデータの書き込み、読み出し、または消去を行う場合であっても、各カード毎に順番でメモリ動作を行わなければならない。そうすると、メモリ動作時間や消費電力の無駄によりメモリ動作が非効率となり、これによって、複数のカードを備えたメモリカードシステムの特徴を十分に活かすことができないこととなる。
【００２９】
そこで、本発明の目的は、メモリ動作を効率的に行うことが可能なメモリカードシステムおよびメモリカードを提供することにある。
【００３０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００３１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００３２】
本発明によるメモリカードシステムは、ホストと、複数のメモリカードとを備え、複数のメモリカードは、ホストから、これら複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第１のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移し、このメモリ動作が可能な内部状態で、ホストから、これら複数のメモリカードのメモリ動作を一括して行わせる第２のコマンドが入力された際に、この第２のコマンドに応じたメモリ動作を行うものとなっている。
【００３３】
すなわち、従来技術においては、複数のメモリカードの中から１枚ずつ選択しながらメモリ動作を行わせていたが、本発明を用いることで複数のメモリカードに対して一括してメモリ動作を行わせることが可能になり、時間や消費電力の面でメモリ動作を効率的に行うことが可能になる。
【００３４】
また、本発明によるメモリカードシステムは、ホストと、複数のメモリカードとを備え、前記ホストは、内部状態の遷移を要求し、かつメモリカードの選択情報を含まないブロードキャスト仕様の第１のコマンドを、複数のメモリカードに向けて出力する機能と、メモリ動作の動作内容を指定する第２のコマンドを複数のメモリカードに向けて出力する機能とを有し、前記複数のメモリカードは、第１のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、このメモリ動作が可能な内部状態で第２のコマンドが入力された際に、第２のコマンドで指定された動作内容でメモリ動作を行う機能とを有するものとなっている。
【００３５】
すなわち、メモリカードの規格において広く用いられている、メモリカードの選択情報を含む状態遷移コマンドを変更して、メモリカードの選択情報を含まないブロードキャスト仕様の状態遷移コマンドとなる第１のコマンドを設け、この第１のコマンドを活用して、複数のメモリカードに対し一括してメモリ動作を行わせる。そして、このようなシステムは、従来技術のメモリカードシステムに若干の機能的な追加を行うことのみで容易に実現することが可能である。
【００３６】
また、本発明によるメモリカードシステムは、ホストと、ホストに対して物理的に接続された複数のメモリカードとを備え、ホストは、複数のメモリカードの中から選定した複数のメモリカードに向けて、内部状態の遷移を要求しかつメモリカードの選択情報を含まないブロードキャスト仕様の第１のコマンドを出力する機能と、前記選定した複数のメモリカードに向けて、メモリ動作の動作内容を指定する第２のコマンドを出力する機能とを有し、前記選定した複数のメモリカードは、第１のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、このメモリ動作が可能な内部状態で第２のコマンドが入力された際に、第２のコマンドで指定された動作内容でメモリ動作を行う機能とを有するものとなっている。
【００３７】
すなわち、ホスト側の処理で、複数のメモリカードの中から２以上となる複数のメモリカードを選定し、この選定した複数のメモリカードに向けて第１のコマンドを出力することで、この選定した複数のメモリカードに限って一括したメモリ動作を行わせるものとなっている。これによって、一括してメモリ動作を行わせたい複数のメモリカードと、そうでない単数または複数のメモリカードを混在させたメモリカードシステムを構築することができ、システム構成の自由度が高まる。
【００３８】
また、本発明によるメモリカードは、複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第１のコマンドがホストから入力された際に、第１のコマンドを解釈し、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能を有するものとなっている。
【００３９】
なお、これまでに述べた複数のメモリカードは、例えば、それぞれ個別にコマンド線およびデータ線を備え、これら個別に備えたコマンド線およびデータ線によってホストと接続されるものとなっている。すなわち、メモリカードが、コマンドに対してレスポンスを発生するような場合、このような構成が要求される。このような構成の代表的なものとしては、ＳＤメモリカードのＳＤモードが挙げられる。
【００４０】
また、これまでに述べたメモリ動作の中には、例えば、読み出し動作と書き込み動作と消去動作が含まれている。そして、前記第２のコマンドによって、読み出し動作と書き込み動作と消去動作の中のいずれか一つのメモリ動作を指定可能となっている。すなわち、複数のメモリカードで、読み出し動作、書き込み動作、または消去動作を一括して行うことが可能になる。
【発明の効果】
【００４１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００４２】
ホストと複数のメモリカードからなるシステムにおいて、複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させるコマンドを設けることなどで、メモリカードのメモリ動作を効率的に行うことが可能になる。
【発明を実施するための最良の形態】
【００４３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００４４】
図１は、本発明の一実施の形態によるメモリカードシステムにおいて、その構成の一例を示すシステム概略図である。図１に示すメモリカードシステムは、ホスト１０と複数のカード［１］１１ａ、［２］１１ｂ、…、［Ｎ］１１ｎによって構成され、ホストと各カード［１］１１ａ〜［Ｎ］１１ｎの間が、各カード［１］１１ａ〜［Ｎ］１１ｎ毎に個別に設けられたコマンド線およびデータ線によって接続されている。すなわち、ホスト１０とカード［１］１１ａとの間が、コマンド線［１］１２ａおよびデータ線［１］１３ａによって接続され、以降同様に、ホスト１０とカード［Ｎ］１１ｎとの間が、コマンド線［Ｎ］１２ｎおよびデータ線［Ｎ］１３ｎによって接続されている。
【００４５】
ここでは、複数のカード［１］１１ａ〜［Ｎ］１１ｎは全て同一仕様のものとし、ホスト１０と各カードは、例えばＳＤメモリカード規格のＳＤモードによって定義されたコマンドおよびレスポンスに基づいて動作が可能なように構成されているものとする。したがって、コマンド線［１］１２ａ〜［Ｎ］１２ｎおよびデータ線［１］１３ａ〜［Ｎ］１３ｎ上では、ＳＤモードに基づく電気的仕様でコマンド、レスポンスおよびデータとなる電気的信号が伝送される。なお、ＳＤモードでは、その規格により、図１のように各カード毎に独立してコマンド線およびデータ線を設ける必要がある。
【００４６】
ホスト１０は、例えば、アプリケーションプログラム１００と、ファイルシステム１０１と、デバイスドライバ１０２と、ホストコントローラ１０３などを含んでいる。アプリケーションプログラム１００は、例えばフォルダやファイルの操作を行う機能を備えたエクスプローラや、音楽データの再生機能等を備えたオーディオプレーヤーなどといった一般的なアプリケーションソフトウエアである。ファイルシステム１０１は、アプリケーションプログラム１００による処理が可能なように、デバイスドライバ１０２との間の入出力データをファイル形式に変換するシステムソフトウエアである。具体例としては、ＦＡＴ１６やＦＡＴ３２などのＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）規格に準拠したものなどが挙げられる。
【００４７】
デバイスドライバ１０２は、ＳＤメモリカード規格に基づくコマンドシーケンスおよびトランザクションの管理、ならびにホストコントローラ１０３の制御などをするソフトウエアである。ホストコントローラ１０３は、デバイスドライバ１０２の制御を受け、コマンド線［１］１２ａ〜［Ｎ］１２ｎおよびデータ線［１］１３ａ〜［Ｎ］１３ｎを介してメモリカード［１］１１ａ〜［Ｎ］１１ｎとの間でコマンドの送信、レスポンスの受信、およびデータの送受信などを行うハードウエアである。
【００４８】
なお、図１には示していないが、ホスト１０は、例えば、マイクロプロセッサ又はマイクロコンピュータ等のコンピュータを含んでおり、前述したアプリケーションプログラム１００、ファイルシステム１０１およびデバイスドライバ１０２といったソフトウエアは、このようなコンピュータによって実行される。また、ホスト１０が例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の場合、前述したソフトウエアは、ファイルシステム１０１およびデバイスドライバ１０２等を含むＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とオーディオプレーヤーなどのアプリケーション１００といった形態にもなり得る。
【００４９】
各メモリカード［１］１１ａ〜［Ｎ］１１ｎのそれぞれは、例えば、送受信バッファ１１１と、カードコントローラ１１０と、フラッシュメモリ１１２などを含んでいる。送受信バッファ１１１は、ホスト１０から受信したデータ、またはホスト１０に送信するデータを一時的に格納するハードウエアである。カードコントローラ１１０は、例えば、送受信バッファ１１１に格納されたデータを参照しながら、コマンド解析等を含むＳＤメモリカード規格に基づく通信プロトコルの管理を行う機能や、送受信バッファ１１１とフラッシュメモリ１１２間のデータ転送の管理を行う機能などを備え、ハードウエアまたはハードウエアとソフトウエアの組み合わせによって構成される。
【００５０】
フラッシュメモリ１１２は、ＦＡＴ情報などのファイルシステム関連のデータや、オーディオファイルなどのユーザデータを格納するメモリデバイスである。一般的には、ＮＡＮＤ型のものやＡＮＤ型のものなどが知られており、読み出し動作、書き込み動作、および消去動作といったメモリ動作が可能となっている。
【００５１】
このような構成において、本発明では、前述したホスト１０内のデバイスドライバ１０２およびホストコントローラ１０３と、各メモリカード［１］１１ａ〜［Ｎ］１１ｎ内のカードコントローラ１１０が、ＳＤメモリカード規格に対応するための一般的な機能に加えて更に次のような機能を備えることを特徴としている。すなわち、ＳＤメモリカード規格で通常定義されている状態およびコマンドに加えて、複数のメモリカードが書き込み／読み出し／消去コマンドに対応可能な内部状態にあるマルチトランスファー状態と、複数のメモリカードをマルチトランスファー状態に遷移させるＣＭＤ６２（ＧＯ＿ＭＵＬＴＩ＿ＴＲＡＮＳ）というコマンドを新規に定義し、これらの状態およびコマンドに対応するための機能を備える。
【００５２】
なお、ＣＭＤ６２は、ＳＤメモリカード規格で予約されているコマンド番号であり、そのフォーマットを、例えば図２のように定義するとよい。図２は、本発明の一実施の形態によるメモリカードシステムにおいて、ホストとメモリカード間で用いられるコマンド仕様の一例を示す図である。図２では、ｂｃｒ（ｂｒｏａｄｃａｓｔ  ｃｏｍｍａｎｄ  ｗｉｔｈ  ｒｅｓｐｏｎｓｅ）型のＣＭＤ６２（＝ＧＯ＿ＭＵＬＴＩ＿ＴＲＡＮＳコマンド）が定義されている。ｂｃｒ型とは、ＣＭＤラインからバス上のすべてのカードに対して一斉に発行される所謂ブロードキャスト仕様のコマンドで、更にそのコマンドを受けてバス上のすべてのカードがコマンド線から同時にレスポンスを返すというものである。
【００５３】
図２では、ＣＭＤ６２発行時における引数の最下位ビットが遷移ビットと定義され、その仕様は、遷移ビットが設定（＝１’ｂ）されているＣＭＤ６２を受信したメモリカードの内部状態が、スタンバイ状態であるならばマルチトランスファー状態へ遷移し、マルチトランスファー状態であるならばスタンバイ状態へ遷移するというものになっている。そして、さらにＣＭＤ６２を受信したメモリカードが、それに対応してコマンド線からマルチトランスファー状態を反映したレスポンス（Ｒ１−Ｅｘ）を返信する仕様となっている。そこで、このようなコマンド仕様に対応する機能を図１のホスト１０内のデバイスドライバ１０２およびホストコントローラ１０３や、複数のカード［１］１１ａ〜［Ｎ］１１ｎ内のカードコントローラ１１０に備え、例えば図３に示すような動作を行う。
【００５４】
図３は、図１のメモリシステムにおいて、その動作概要の一例を従来技術と比較して説明するための図であり、（ａ）は、本発明の動作概要の説明図、（ｂ）は、従来技術の動作概要の説明図である。図３（ａ），（ｂ）においては、ホスト１０からカード［１］１１ａ、カード［２］１１ｂ、…、カード［Ｎ］１１ｎの同一アドレスに対し、それぞれデータ［１］、データ［２］、…、データ［Ｎ］を書き込む場合を想定し、カード［１］１１ａ、カード［２］１１ｂ、…、カード［Ｎ］１１ｎは、ＲＣＡがそれぞれ、‘１’、‘２’、…、‘Ｎ’であり、全てスタンバイ状態であるものとする。
【００５５】
このような状態において、カードへの書き込み動作は、（１）メモリカードを選択する過程、（２）コマンド送受信の過程、（３）データ送信とデータ書き込み過程から構成される。以下に、各過程の動作について述べる。
【００５６】
（１）カードを選択する過程
本発明においては、図３（ａ）に示すように、ホスト１０が、カードの識別情報を含まない第１のコマンドとしてＣＭＤ６２を全てのカード［１］１１ａ〜［Ｎ］１１ｎに送信する。全てのカード［１］１１ａ〜［Ｎ］１１ｎは、ＣＭＤ６２を受信し、カードコントローラ１１０によってこのコマンドを解釈し、マルチトランスファー状態に遷移する。その後、ホスト１０に向けてＣＭＤ６２に対するレスポンスを返す。これによって、全てのカード［１］１１ａ〜［Ｎ］１１ｎが選択される。
【００５７】
一方、従来技術においては、図３（ｂ）に示すように、１枚のカードしか選択できないので、ホスト１０は、例えばカード［１］１１ａのＲＣＡ＝１を設定し、カードの識別情報（ＲＣＡ＝１）を含んだＣＭＤ７を全てのカード［１］１１ａ〜［Ｎ］１１ｎに送信する。カード［１］１１ａは、トランスファー状態に遷移し、ホスト１０にＣＭＤ７に対するレスポンスを返す。他のカード［２］１１ｂ〜［Ｎ］１１ｎは、ＲＣＡが異なるのでスタンバイ状態に留まる。すなわち、カード［１］１１ａのみが選択される。なお、ＳＤメモリカード規格では、図３のように、コマンド線［１］１２ａ〜［Ｎ］１２ｎが物理的に独立していても、カード初期化終了後のスタンバイ状態やトランスファー状態では共通なコマンドとそれに対応するレスポンスが転送される。
【００５８】
（２）コマンド送受信の過程
本発明においては、図３（ａ）に示すように、ホスト１０が、メモリ動作を指定する第２のコマンドの一例としてライトコマンド（＝ＣＭＤ２５）を全てのカード［１］１１ａ〜［Ｎ］１１ｎに送信する。ここで、全てのカード［１］１１ａ〜［Ｎ］１１ｎがライトコマンド受信可能なマルチトランスファー状態にあるので、全てのカード［１］１１ａ〜［Ｎ］１１ｎがライトコマンドを受信する。ライトコマンドを受信したカード［１］１１ａ〜［Ｎ］１１ｎは、データ受信準備をし、ホスト１０にライトコマンドに対するレスポンスを返す。
【００５９】
一方、従来技術においては、図３（ｂ）に示すように、ホスト１０がライトコマンド（＝ＣＭＤ２５）を全てのカード［１］１１ａ〜［Ｎ］１１ｎに送信する。だだし、カード［１］１１ａのみがライトコマンドを受信可能なトランスファー状態にあるため、カード［１］１１ａのみがライトコマンドを受信する。ライトコマンドを受信したカード［１］１１ａは、データ受信準備をし、ホスト１０にライトコマンドに対するレスポンスを返す。
【００６０】
（３）データ送信とデータ書き込み過程
本発明においては、図３（ａ）に示すように、ホスト１０が、カード［１］１１ａ、カード［２］１１ｂ、…、カード［Ｎ］１１ｎに対して、それぞれ、ライトデータとなるデータ［１］、データ［２］、…、データ［Ｎ］を送信する。データ［１］、データ［２］、…、データ［Ｎ］を受信すると、カード［１］１１ａ、カード［２］１１ｂ、…、カード［Ｎ］１１ｎは、自身のフラッシュメモリ１１２にそれぞれデータ［１］、データ［２］、…、データ［Ｎ］を書き込む。
【００６１】
一方、従来技術においては、図３（ｂ）に示すように、ホスト１０がカード［１］１１ａに対してライトデータに対応するデータ［１］を送信する。データ［１］を受信すると、カード［１］１１ａは、自身のフラッシュメモリ１１２にデータ［１］を書き込む。
【００６２】
このように、本発明のメモリカードシステムでは、前記（１）〜（３）の１回の処理で全カードへのデータ書き込み動作が完了する。ところが、従来技術のメモリカードシステムでは、カード［２］１１ｂ〜［Ｎ］１１ｎを対象に、前記（１）〜（３）の処理をあとＮ−１回繰り返す必要がある。
【００６３】
すなわち、前記（１）、（２）、（３）の処理に必要な時間を、それぞれＴｓ（＝カード選択時間）、Ｔｃ（＝コマンド送受信時間）、Ｔａ（＝データ送信と書き込み時間）とすると、本発明で必要な処理時間Ｔ１は、Ｔ１＝Ｔｓ＋Ｔｃ＋Ｔａとなり、従来技術で必要な時間Ｔ２は、カード枚数をＮとするとＴ２＝Ｎ×Ｔ１となる。Ｔ１は、例えば１０Ｋバイトのデータを書き込む場合、数ｍｓｅｃ程度となる。したがって、本発明のメモリカードシステムを用いることで、従来技術のメモリカードシステムに比べて（カード枚数−１）×数ｍｓｅｃ程度の効率化が得られることになる。
【００６４】
そして、この効率化された時間は、製品の他機能（マルチメディアデータのデコード等）で使用することができる。なお、実用面において、図３のカード［１］１１ａ〜［Ｎ］１１ｎの中に既存のカードが混在した場合でも、現状のＳＤメモリカード規格に従うと新規に定義したＣＭＤ６２には応答しないので、下位互換性は保持される。
【００６５】
また、ここではメモリ動作として書き込み動作を例としたが、同様に、複数のカードをＣＭＤ６２によりマルチトランスファー状態に遷移させることで、読み出し動作および消去動作の効率化を図ることも可能である。さらに、このような時間的な効率化によって、消費電力を低減することも可能になる。削減されるエネルギーは、例えば、書き込みと読み出しにおいて、カード１枚あたり１０Ｋバイトのデータが転送される場合、数１００μＪ程度である。
【００６６】
そして、このような効果は、カードの枚数が多いほど効果が大きくなる。したがって、本発明のメモリカードシステムは、例えば、ＳＤカードフォーマット機器やデジタルカメラなどの製品に付加するＳＤカードを作成する機器といった多数のカードを作成する必要のあるメモリカードホスト機器等に適用して特に有益なものとなる。また、高いデータセキュリティを要求されるメモリシステムなどにおいて、常にデータのバックアップが必要な場合などで用いることも可能である。
【００６７】
つぎに、これまでに説明した書き込み動作、読み出し動作および消去動作のより具体的な動作を、図４、図５および図６を用いて説明する。図４は、図１のメモリカードシステムにおいて、その書き込み動作の詳細な一例を示す処理フロー図である。図５は、図１のメモリカードシステムにおいて、その読み出し動作の詳細な一例を示す処理フロー図である。図６は、図１のメモリカードシステムにおいて、その消去動作の詳細な一例を示す処理フロー図である。
【００６８】
図４においては、ホストが書き込み不可能な“スタンバイ状態”にある２枚のカード（カード［１］とカード［２］）に一括してデータを書き込む場合を想定している。すなわち、図１においてＮ＝２の場合である。ここでは、カード［１］とカード［２］のＲＣＡは、それぞれ‘１’と‘２’とする。なお、カードが３枚以上の場合でも同様な動作となる。以下、図４中の番号に対応させて説明を行う。
【００６９】
（１）ホスト１０は、カード［１］１１ａとカード［２］１１ｂに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。“マルチトランスファー状態”とは、複数のカードがライトコマンド（ＣＭＤ２５等）、リードコマンド（ＣＭＤ１８等）、及び消去関連コマンド（ＣＭＤ３８等）を受信できる状態である。
【００７０】
（２）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“マルチトランスファー状態”に遷移する。また、ＣＭＤ６２のレスポンスをホストに送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【００７１】
（３）ホスト１０はライトコマンドを送信する。
【００７２】
（４）カード［１］１１ａとカード［２］１１ｂは、“マルチトランスファー状態”にあるのでライトコマンドを受信できる。カード［１］１１ａとカード［２］１１ｂは、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信準備をする。また、ホスト１０に対しライトコマンドを受信したことを通知するレスポンスを送信する。
【００７３】
（５）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからライトコマンドに対応するレスポンスを受信すると、カード［１］１１ａとカード［２］１１ｂに対してライトデータ（データ１とデータ２）を送信する。なお、カード［１］１１ａとカード［２］１１ｂに送信するデータ内容は、本発明で機能拡張したホスト１０のデバイスドライバ１０２とホストコントローラ１０３により区別する必要がある。
【００７４】
（６）カード［１］１１ａとカード［２］１１ｂは、ライトデータを受信すると、自身のフラッシュメモリ１１２にライトデータを書き込む。ライトコマンドの引数により指定されたアドレスから、ストップコマンド（＝ＣＭＤ１２）を受信するまで書き込む。
【００７５】
（７）ホスト１０は、アプリケーションプログラム１００などから要求されたサイズだけ書き込むまで、前記（３）と（５）の処理を繰り返す。
【００７６】
（８）ホスト１０は、書き込みが終了すると、カード［１］１１ａとカード［２］１１ｂを“スタンバイ状態”に戻すこと、及び書き込み動作にエラーがなかったかを確認するため、カード［１］１１ａとカード［２］１１ｂにＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。
【００７７】
（９）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“スタンバイ状態”に遷移する。また、ＣＭＤ６２のレスポンスをホスト１０に送信する。レスポンスには、“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【００７８】
（１０）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからＣＭＤ６２に対応するレスポンスを受信すると、その内容を解析し、書き込み動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションプログラム１００に通知するなどのエラー処理をする。一方、エラーがなかった場合、２枚のカードの同時書き込み動作は完了する。
【００７９】
以上の動作より、ホストが複数のカードの同じアドレスにデータを書き込む場合、一括して書き込むことが可能となり、書き込み時間の短縮と消費電力の削減が得られる。具体的には、従来技術で必要であった図の（１１）〜（２０）の処理が省略できる。
【００８０】
図５においては、ホストが複数のカードの同じアドレスから一括してデータを読み出す場合を想定している。ここでは、図１においてＮ＝２とし、ホストが、読み出し不可能な“スタンバイ状態”にある２枚のカード（カード［１］とカード［２］）から同じアドレスのデータを読み出す場合で説明する。なお、カード［１］とカード［２］のＲＣＡはそれぞれ‘１’と‘２’とする。また、カードが３枚以上の場合でも同様な動作となる。以下、図５中の番号に対応させて説明を行う。
【００８１】
（１）ホスト１０は、カード［１］１１ａとカード［２］１１ｂに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。
【００８２】
（２）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“マルチトランスファー状態”に遷移する。また、ＣＭＤ６２のレスポンスをホスト１０に送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【００８３】
（３）ホスト１０はリードコマンドを送信する。
【００８４】
（４）カード［１］１１ａとカード［２］１１ｂは、“マルチトランスファー状態”にあるのでリードコマンドを受信できる。カード［１］１１ａとカード［２］１１ｂは、リードコマンドを受信すると、リードコマンドの内容を解析し、データ送信準備をする。また、ホスト１０にリードコマンドを受信したことを通知するレスポンスを送信する。
【００８５】
（５）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからリードコマンドに対応するレスポンスを受信すると、データ受信準備をする。
【００８６】
（６）カード［１］１１ａとカード［２］１１ｂは、リードコマンドの引数により指定されたアドレスからデータ（データ１とデータ２）を読み出し、そのデータをストップコマンド（＝ＣＭＤ１２）を受信するまでホスト１０に送信する。
【００８７】
（７）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからデータを受信する。なお、カード［１］１１ａとカード［２］１１ｂから受信するデータ内容は、本発明で機能拡張したホスト１０のデバイスドライバ１０２とホストコントローラ１０３により区別し、上位のアプリケーションプログラム１００などに渡す必要がある。
【００８８】
（８）ホスト１０は、アプリケーションプログラム１００などから要求されたサイズだけ読み出すまで、前記（３）、（５）および（７）の処理を繰り返す。
【００８９】
（９）ホスト１０は、読み出しが終了すると、カード［１］１１ａとカード［２］１１ｂを“スタンバイ状態”に戻すこと、及び読み出し動作にエラーがなかったかを確認するため、カード［１］１１ａとカード［２］１１ｂにＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。
【００９０】
（１０）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“スタンバイ状態”に遷移する。また、ＣＭＤ６２のレスポンスをホスト１０に送信する。レスポンスには“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【００９１】
（１１）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからＣＭＤ６２に対応するレスポンスを受信すると、その内容を解析し、読み出し動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションに通知するなどのエラー処理をする。一方、エラーがなかった場合、２枚のカードからの同時読み出し動作は完了する。
【００９２】
以上のような動作により、ホストが複数のカードの同じアドレスからデータを読み出す場合、一括して読み出すことが可能となり、読み出し時間の短縮と消費電力の削減が得られる。
【００９３】
図６においては、ホストが複数のカードの同じアドレスの内容を一括して消去する場合を想定している。ここでは、図１においてＮ＝２とし、ホストが、消去不可能な“スタンバイ状態”にある２枚のカード（カード［１］とカード［２］）の同じアドレスの内容を消去する場合で説明する。なお、カード［１］とカード［２］のＲＣＡはそれぞれ‘１’と‘２’とする。また、カードが３枚以上の場合でも同様な動作となる。以下、図６中の番号に対応させて説明を行う。
【００９４】
（１）ホスト１０は、カード［１］１１ａとカード［２］１１ｂに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。
【００９５】
（２）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“マルチトランスファー状態”に遷移する。また、ＣＭＤ６２のレスポンスをホストに送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【００９６】
（３）ホスト１０は、カード［１］１１ａとカード［２］１１ｂに消去する先頭アドレスを指定する消去先頭アドレス設定コマンドを送信する。
【００９７】
（４）カード［１］１１ａとカード［２］１１ｂは、“マルチトランスファー状態”にあるので消去先頭アドレス設定コマンドを受信できる。カード［１］１１ａとカード［２］１１ｂは、消去先頭アドレス設定コマンドを受信すると、消去先頭アドレスを解析する。また、ホスト１０に消去先頭アドレス設定コマンドを受信したことを通知するレスポンスを送信する。
【００９８】
（５）ホスト１０は、カード［１］１１ａとカード［２］１１ｂから消去先頭アドレス設定コマンドに対応するレスポンスを受信すると、ホスト１０は、カード［１］１１ａとカード［２］１１ｂに対し、消去する最終アドレスを指定する消去最終アドレス設定コマンドを送信する。
【００９９】
（６）カード［１］１１ａとカード［２］１１ｂは、“マルチトランスファー状態”にあるので消去最終アドレス設定コマンドを受信できる。カード［１］１１ａとカード［２］１１ｂは、消去最終アドレス設定コマンドを受信すると、消去最終アドレスを解析する。また、ホスト１０に消去最終アドレス設定コマンドを受信したことを通知するレスポンスを送信する。
【０１００】
（７）ホスト１０は、カード［１］１１ａとカード［２］１１ｂから消去最終アドレス設定コマンドに対応するレスポンスを受信すると、ホスト１０は、カード［１］１１ａとカード［２］１１ｂに消去の実行を命令する消去実行コマンドを送信する。
【０１０１】
（８）カード［１］１１ａとカード［２］１１ｂは、“マルチトランスファー状態”にあるので消去実行コマンドを受信できる。カード［１］１１ａとカード［２］１１ｂは、消去実行コマンドを受信すると、消去を実行する。消去完了後、ホスト１０に対し、消去が完了したことを通知するレスポンスを送信する。
【０１０２】
（９）ホスト１０は、カード［１］１１ａとカード［２］１１ｂから消去実行コマンドに対応するレスポンスを受信すると、カード［１］１１ａとカード［２］１１ｂを“スタンバイ状態”に戻すこと、及び消去動作にエラーがなかったかを確認するため、カード［１］１１ａとカード［２］１１ｂにＣＭＤ６２（遷移ビット＝１’ｂ）を送信する。
【０１０３】
（１０）カード［１］１１ａとカード［２］１１ｂは、ＣＭＤ６２（遷移ビット＝１’ｂ）を受信すると“スタンバイ状態”に遷移する。また、ＣＭＤ６２のレスポンスをホスト１０に送信する。レスポンスには“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【０１０４】
（１１）ホスト１０は、カード［１］１１ａとカード［２］１１ｂからＣＭＤ６２に対応するレスポンスを受信すると、その内容を解析し、消去動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションプログラム１００に通知するなどのエラー処理をする。一方、エラーがなかった場合、２枚のカードの同時消去動作は完了する。
【０１０５】
以上のような動作により、ホストが、複数のカードの同じアドレスの内容を消去する場合、一括して消去することが可能となり、消去時間の短縮と消費電力の削減が得られる。
【０１０６】
ところで、これまでの説明においては、ＣＭＤ６２を用いて全てのカードに対して一括してメモリ動作（書き込み動作、読み出し動作、消去動作）を行う構成例を示したが、例えば、図７に示すように任意に選定した複数のカードに対してのみメモリ動作を行う構成にしてもよい。図７は、本発明の一実施の形態によるメモリカードシステムにおいて、図１の構成を応用した構成およびその動作の一例を示す説明図である。
【０１０７】
図７に示すメモリカードシステムは、ホスト１０と複数のカード［１］１１ａ、［２］１１ｂ、…、［Ｊ］１１ｊ、…、［Ｎ］１１ｎによって構成され、ホスト１０とカード［１］１１ａの間が、コマンド線［１］１２ａおよびデータ線［１］１３ａによって接続され、以降同様に、ホスト１０と各カード［２］１１ｂ、…、［Ｊ］１１ｊ、…、［Ｎ］１１ｎの間が、それぞれコマンド線［２］１２ｂ、…、［Ｊ］１２ｊ、…、［Ｎ］１２ｎおよびデータ線［２］１３ｂ、…、［Ｊ］１３ｊ、…、［Ｎ］１３ｎによって接続されている。
【０１０８】
ホスト１０や各カード［１］１１ａ〜［Ｎ］１１ｎは、これまでに述べたような機能を備えたものとなっているが、ここでは、更に、ホスト１０内のデバイスドライバ１０２またはホストコントローラ１０３に対し、ＣＭＤ６２（＝ＧＯ＿ＭＵＬＴＩ＿ＴＲＡＮＳコマンド）を発行するカードを選定する機能を設ける。これにより、“マルチトランスファー状態”に遷移させたいカードにのみＣＭＤ６２を発行することで、同時にメモリ動作を行わせるカードを選択することが可能となる。
【０１０９】
図７では、例えば、カード［２］１１ｂとカード［Ｊ］１１ｊを選択して、これらのカードに対してのみＣＭＤ６２を発行している例を示している。このような構成および動作を用いることで、システム構築の自由度を高めることが可能になる。
【０１１０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１１１】
本発明のメモリカードシステムは、ＳＤメモリカードのフォーマット機器などといった多数のカードを作成する必要のあるメモリカードホスト機器等に適用して特に有益なものであり、これに限らず、カードの内容を完全に消去するメモリカードホスト製品や、複数のカードスロットを持つＵＳＢリーダライタ製品や、ＳＤメモリカードと上位互換性のあるメモリカードやＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ（登録商標））カード等を含むシステムといったメモリカードシステム全般に広く適用可能である。
【図面の簡単な説明】
【０１１２】
【図１】本発明の一実施の形態によるメモリカードシステムにおいて、その構成の一例を示すシステム概略図である。
【図２】本発明の一実施の形態によるメモリカードシステムにおいて、ホストとメモリカード間で用いられるコマンド仕様の一例を示す図である。
【図３】図１のメモリシステムにおいて、その動作概要の一例を従来技術と比較して説明するための図であり、（ａ）は、本発明の動作概要の説明図、（ｂ）は、従来技術の動作概要の説明図である。
【図４】図１のメモリカードシステムにおいて、その書き込み動作の詳細な一例を示す処理フロー図である。
【図５】図１のメモリカードシステムにおいて、その読み出し動作の詳細な一例を示す処理フロー図である。
【図６】図１のメモリカードシステムにおいて、その消去動作の詳細な一例を示す処理フロー図である。
【図７】本発明の一実施の形態によるメモリカードシステムにおいて、図１の構成を応用した構成およびその動作の一例を示す説明図である。
【図８】本発明の前提として検討した技術のメモリカードシステムにおいて、複数のメモリカードへの書き込み手順の一例を示す処理フロー図である。
【符号の説明】
【０１１３】
１０  ホスト
１１ａ，１１ｂ，１１ｊ，１１ｎ  メモリカード
１２ａ，１２ｂ，１２ｊ，１２ｎ  コマンド線
１３ａ，１３ｂ，１３ｊ，１３ｎ  データ線
１００  アプリケーションプログラム
１０１  ファイルシステム
１０２  デバイスドライバ
１０３  ホストコントローラ
１１０  カードコントローラ
１１１  送受信バッファ
１１２  フラッシュメモリ
【図１】
2006119954.tif 000003
【図２】
2006119954.tif 000004
【図３】
2006119954.tif 000005
【図４】
2006119954.tif 000006
【図５】
2006119954.tif 000007
【図６】
2006119954.tif 000008
【図７】
2006119954.tif 000009
【図８】
2006119954.tif 000010