説明

メモリカードシステムおよびメモリカード

【課題】 メモリ動作を効率的に行うことが可能なメモリカードシステムおよびメモリカードを提供する。
【解決手段】 ホスト10と複数のメモリカード[1]11a〜[N]11nがそれぞれコマンド線[1]12a〜[N]12nおよびデータ線[1]13a〜[N]13nによって接続された構成において、ホスト10に、複数のメモリカード[1]11a〜[N]11nを一斉にメモリ動作可能な状態に遷移させるコマンドを発行させ、前記コマンドによって複数のメモリカード[1]11a〜[N]11nをメモリ動作可能な状態に遷移させ、その後、ホスト10に、書き込み又は読み出し等のメモリ動作を指定するコマンドを発行させることで、複数のメモリカード[1]11a〜[N]11nが一括してメモリ動作を行うことを可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリカードシステムおよびメモリカードに関し、特に、ホストに複数のSD(Secure Digital)メモリカードが接続されたメモリカードシステムに適用して有効な技術に関するものである。
【背景技術】
【0002】
本発明者が検討したところによれば、メモリカードシステムの技術に関しては、以下のようなものが考えられる。
【0003】
例えば、メモリカードの規格であるSDメモリカード規格では、SDモードやSPIモードが定義されている。この内、市場で多く採用されているSDモードでは、ホストが複数のメモリカード(以降、カードと略す場合有り)にデータを書き込む場合、カード毎に順番で書き込みを行う必要がある。また、ホストが複数のカードからデータを読み出す場合、及びホストが複数のカードの内容を消去する場合も同様である。
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、前記のようなメモリカードシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0005】
例えば、前述したSDメモリカード規格のSDモードを用いてメモリカードへの書き込みを行う際には、図8のような処理手順となる。図8は、本発明の前提として検討した技術のメモリカードシステムにおいて、複数のメモリカードへの書き込み手順の一例を示す処理フロー図である。図8では、ホストが、書き込み不可能なスタンバイ状態にある2枚のカード(カード[1]とカード[2])に対し、同じアドレスにデータを書き込む場合を想定している。ここでは、カード[1]とカード[2]のRCA(バス上での動的な相対アドレス)はそれぞれ‘1’と‘2’とする。また、以下においては、図8中の番号に対応させて処理手順の説明を行う。
【0006】
(1)ホストは、カード[1],[2]に向けて、スタンバイ状態にあるカードをトランスファー状態に遷移させるCMD7(RCA=1)を送信する。
【0007】
(2)カード[1]は、CMD7(RCA=1)を受信するとトランスファー状態に遷移する。カード[2]は、自身のRCAと異なるのでスタンバイ状態に留まる。
【0008】
(3)ホストは、ライトコマンドを送信する。ライトコマンドは、トランスファー状態にあるカードのみが受信する。また、ライトコマンドには、1ブロック(512バイトなど)への書き込みコマンドであるCMD24、複数ブロックへの書き込みコマンドであるCMD25などがある。ここでは、CMD25を使用するものとする。
【0009】
(4)カード[1]は、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信の準備をする。また、ホストにライトコマンドを受信したことを通知するレスポンスを送信する。カード[2]は、スタンバイ状態でありライトコマンドを受信しない。
【0010】
(5)ホストは、カード[1]からライトコマンドに対応するレスポンスを受信すると、ライトデータ(データ1)を送信する。
【0011】
(6)カード[1]は、ライトデータを受信すると、自身のメモリにライトデータを書き込む。ライトコマンドの引数により指定されたアドレスから、ストップコマンド(CMD12)を受信するまで書き込む。
【0012】
(7)ホストは、アプリケーションなどから要求されたサイズを書き込むまで前記(3)と(5)の処理を繰り返す。
【0013】
(8)ホストは、書き込みが終了すると、書き込み動作にエラーがなかったかを確認するため、カード[1]に現在のカードステータスを取得するコマンドであるCMD13(RCA=1)を送信する。
【0014】
(9)カード[1]は、CMD13(RCA=1)を受信すると自身のカードステータスをホストに送信する。カード[2]は、自身のRCAと異なるためCMD13を受信しない。
【0015】
(10)ホストは、カード[1]からカードステータスを取得すると、カードステータスを解析し、書き込み動作にエラーがなかったかを確認する。もしエラーが有れば、その内容をアプリケーションに通知するなどのエラー処理を行う。
【0016】
(11)前記(10)においてエラーがなかった場合、カード[1]の書き込み動作を完了してカード[2]の書き込み動作に移行する。ホストは、スタンバイ状態にあるカードをトランスファー状態に遷移させるCMD7(RCA=2)を送信する。
【0017】
(12)カード[2]は、CMD7(RCA=2)を受信するとトランスファー状態に遷移する。カード[1]は、自身のRCAと異なるためスタンバイ状態に遷移する。
【0018】
(13)ホストは、ライトコマンドを送信する。
【0019】
(14)カード[2]は、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信の準備をする。また、ホストにライトコマンドを受信したことを通知するレスポンスを送信する。カード[1]は、スタンバイ状態でありライトコマンドを受信しない。
【0020】
(15)ホストは、カード[2]からライトコマンドに対応するレスポンスを受信すると、ライトデータ(データ2)を送信する。
【0021】
(16)カード[2]は、ライトデータを受信すると、自身のメモリにライトデータを書き込む。
【0022】
(17)ホストは、アプリケーションなどから要求されたサイズを書き込むまで前記(13)と(15)の処理を繰り返す。
【0023】
(18)ホストは、書き込みが終了すると、書き込み動作にエラーがなかったか確認するため、カード[2]に現在のカードステータスを取得するコマンドであるCMD13(RCA=2)を送信する。
【0024】
(19)カード[2]は、CMD13(RCA=2)を受信すると自身のカードステータスをホストに送信する。カード[1]は、自身のカードステータスと異なるためCMD13を受信しない。
【0025】
(20)ホストは、カード[2]からカードステータスを取得すると、カードステータスを解析し、書き込み動作にエラーがなかったかを確認する。もしエラーが有れば、その内容をアプリケーションに通知するなどのエラー処理を行う。エラーがなかった場合、2枚のカードの書き込み動作を完了する。
【0026】
なお、ここでは、カードに対するメモリ動作の内、2枚のカードへの書き込み動作を例としたが、その他のメモリ動作(読み出しまたは消去など)の場合やカードが3枚以上の場合でも同様に、各カード毎に順番でトランスファー状態に遷移させながらメモリ動作を行う必要がある。
【0027】
このように、本発明の前提として検討した技術(以降、従来技術と呼ぶ)では、1つのホストが、複数のカードに対して同時にメモリ動作を行うことができない。これは、SDメモリカード規格では、トランスファー状態となったカードのみにメモリ動作が可能であり、2枚以上のカードを同時にトランスファー状態に遷移させることができないためである。
【0028】
したがって、仮に、ホストが複数のカードの同じアドレスに対してデータの書き込み、読み出し、または消去を行う場合であっても、各カード毎に順番でメモリ動作を行わなければならない。そうすると、メモリ動作時間や消費電力の無駄によりメモリ動作が非効率となり、これによって、複数のカードを備えたメモリカードシステムの特徴を十分に活かすことができないこととなる。
【0029】
そこで、本発明の目的は、メモリ動作を効率的に行うことが可能なメモリカードシステムおよびメモリカードを提供することにある。
【0030】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0031】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【0032】
本発明によるメモリカードシステムは、ホストと、複数のメモリカードとを備え、複数のメモリカードは、ホストから、これら複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第1のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移し、このメモリ動作が可能な内部状態で、ホストから、これら複数のメモリカードのメモリ動作を一括して行わせる第2のコマンドが入力された際に、この第2のコマンドに応じたメモリ動作を行うものとなっている。
【0033】
すなわち、従来技術においては、複数のメモリカードの中から1枚ずつ選択しながらメモリ動作を行わせていたが、本発明を用いることで複数のメモリカードに対して一括してメモリ動作を行わせることが可能になり、時間や消費電力の面でメモリ動作を効率的に行うことが可能になる。
【0034】
また、本発明によるメモリカードシステムは、ホストと、複数のメモリカードとを備え、前記ホストは、内部状態の遷移を要求し、かつメモリカードの選択情報を含まないブロードキャスト仕様の第1のコマンドを、複数のメモリカードに向けて出力する機能と、メモリ動作の動作内容を指定する第2のコマンドを複数のメモリカードに向けて出力する機能とを有し、前記複数のメモリカードは、第1のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、このメモリ動作が可能な内部状態で第2のコマンドが入力された際に、第2のコマンドで指定された動作内容でメモリ動作を行う機能とを有するものとなっている。
【0035】
すなわち、メモリカードの規格において広く用いられている、メモリカードの選択情報を含む状態遷移コマンドを変更して、メモリカードの選択情報を含まないブロードキャスト仕様の状態遷移コマンドとなる第1のコマンドを設け、この第1のコマンドを活用して、複数のメモリカードに対し一括してメモリ動作を行わせる。そして、このようなシステムは、従来技術のメモリカードシステムに若干の機能的な追加を行うことのみで容易に実現することが可能である。
【0036】
また、本発明によるメモリカードシステムは、ホストと、ホストに対して物理的に接続された複数のメモリカードとを備え、ホストは、複数のメモリカードの中から選定した複数のメモリカードに向けて、内部状態の遷移を要求しかつメモリカードの選択情報を含まないブロードキャスト仕様の第1のコマンドを出力する機能と、前記選定した複数のメモリカードに向けて、メモリ動作の動作内容を指定する第2のコマンドを出力する機能とを有し、前記選定した複数のメモリカードは、第1のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、このメモリ動作が可能な内部状態で第2のコマンドが入力された際に、第2のコマンドで指定された動作内容でメモリ動作を行う機能とを有するものとなっている。
【0037】
すなわち、ホスト側の処理で、複数のメモリカードの中から2以上となる複数のメモリカードを選定し、この選定した複数のメモリカードに向けて第1のコマンドを出力することで、この選定した複数のメモリカードに限って一括したメモリ動作を行わせるものとなっている。これによって、一括してメモリ動作を行わせたい複数のメモリカードと、そうでない単数または複数のメモリカードを混在させたメモリカードシステムを構築することができ、システム構成の自由度が高まる。
【0038】
また、本発明によるメモリカードは、複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第1のコマンドがホストから入力された際に、第1のコマンドを解釈し、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能を有するものとなっている。
【0039】
なお、これまでに述べた複数のメモリカードは、例えば、それぞれ個別にコマンド線およびデータ線を備え、これら個別に備えたコマンド線およびデータ線によってホストと接続されるものとなっている。すなわち、メモリカードが、コマンドに対してレスポンスを発生するような場合、このような構成が要求される。このような構成の代表的なものとしては、SDメモリカードのSDモードが挙げられる。
【0040】
また、これまでに述べたメモリ動作の中には、例えば、読み出し動作と書き込み動作と消去動作が含まれている。そして、前記第2のコマンドによって、読み出し動作と書き込み動作と消去動作の中のいずれか一つのメモリ動作を指定可能となっている。すなわち、複数のメモリカードで、読み出し動作、書き込み動作、または消去動作を一括して行うことが可能になる。
【発明の効果】
【0041】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0042】
ホストと複数のメモリカードからなるシステムにおいて、複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させるコマンドを設けることなどで、メモリカードのメモリ動作を効率的に行うことが可能になる。
【発明を実施するための最良の形態】
【0043】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0044】
図1は、本発明の一実施の形態によるメモリカードシステムにおいて、その構成の一例を示すシステム概略図である。図1に示すメモリカードシステムは、ホスト10と複数のカード[1]11a、[2]11b、…、[N]11nによって構成され、ホストと各カード[1]11a〜[N]11nの間が、各カード[1]11a〜[N]11n毎に個別に設けられたコマンド線およびデータ線によって接続されている。すなわち、ホスト10とカード[1]11aとの間が、コマンド線[1]12aおよびデータ線[1]13aによって接続され、以降同様に、ホスト10とカード[N]11nとの間が、コマンド線[N]12nおよびデータ線[N]13nによって接続されている。
【0045】
ここでは、複数のカード[1]11a〜[N]11nは全て同一仕様のものとし、ホスト10と各カードは、例えばSDメモリカード規格のSDモードによって定義されたコマンドおよびレスポンスに基づいて動作が可能なように構成されているものとする。したがって、コマンド線[1]12a〜[N]12nおよびデータ線[1]13a〜[N]13n上では、SDモードに基づく電気的仕様でコマンド、レスポンスおよびデータとなる電気的信号が伝送される。なお、SDモードでは、その規格により、図1のように各カード毎に独立してコマンド線およびデータ線を設ける必要がある。
【0046】
ホスト10は、例えば、アプリケーションプログラム100と、ファイルシステム101と、デバイスドライバ102と、ホストコントローラ103などを含んでいる。アプリケーションプログラム100は、例えばフォルダやファイルの操作を行う機能を備えたエクスプローラや、音楽データの再生機能等を備えたオーディオプレーヤーなどといった一般的なアプリケーションソフトウエアである。ファイルシステム101は、アプリケーションプログラム100による処理が可能なように、デバイスドライバ102との間の入出力データをファイル形式に変換するシステムソフトウエアである。具体例としては、FAT16やFAT32などのFAT(File Allocation Table)規格に準拠したものなどが挙げられる。
【0047】
デバイスドライバ102は、SDメモリカード規格に基づくコマンドシーケンスおよびトランザクションの管理、ならびにホストコントローラ103の制御などをするソフトウエアである。ホストコントローラ103は、デバイスドライバ102の制御を受け、コマンド線[1]12a〜[N]12nおよびデータ線[1]13a〜[N]13nを介してメモリカード[1]11a〜[N]11nとの間でコマンドの送信、レスポンスの受信、およびデータの送受信などを行うハードウエアである。
【0048】
なお、図1には示していないが、ホスト10は、例えば、マイクロプロセッサ又はマイクロコンピュータ等のコンピュータを含んでおり、前述したアプリケーションプログラム100、ファイルシステム101およびデバイスドライバ102といったソフトウエアは、このようなコンピュータによって実行される。また、ホスト10が例えばPC(Personal Computer)等の場合、前述したソフトウエアは、ファイルシステム101およびデバイスドライバ102等を含むOS(Operating System)とオーディオプレーヤーなどのアプリケーション100といった形態にもなり得る。
【0049】
各メモリカード[1]11a〜[N]11nのそれぞれは、例えば、送受信バッファ111と、カードコントローラ110と、フラッシュメモリ112などを含んでいる。送受信バッファ111は、ホスト10から受信したデータ、またはホスト10に送信するデータを一時的に格納するハードウエアである。カードコントローラ110は、例えば、送受信バッファ111に格納されたデータを参照しながら、コマンド解析等を含むSDメモリカード規格に基づく通信プロトコルの管理を行う機能や、送受信バッファ111とフラッシュメモリ112間のデータ転送の管理を行う機能などを備え、ハードウエアまたはハードウエアとソフトウエアの組み合わせによって構成される。
【0050】
フラッシュメモリ112は、FAT情報などのファイルシステム関連のデータや、オーディオファイルなどのユーザデータを格納するメモリデバイスである。一般的には、NAND型のものやAND型のものなどが知られており、読み出し動作、書き込み動作、および消去動作といったメモリ動作が可能となっている。
【0051】
このような構成において、本発明では、前述したホスト10内のデバイスドライバ102およびホストコントローラ103と、各メモリカード[1]11a〜[N]11n内のカードコントローラ110が、SDメモリカード規格に対応するための一般的な機能に加えて更に次のような機能を備えることを特徴としている。すなわち、SDメモリカード規格で通常定義されている状態およびコマンドに加えて、複数のメモリカードが書き込み/読み出し/消去コマンドに対応可能な内部状態にあるマルチトランスファー状態と、複数のメモリカードをマルチトランスファー状態に遷移させるCMD62(GO_MULTI_TRANS)というコマンドを新規に定義し、これらの状態およびコマンドに対応するための機能を備える。
【0052】
なお、CMD62は、SDメモリカード規格で予約されているコマンド番号であり、そのフォーマットを、例えば図2のように定義するとよい。図2は、本発明の一実施の形態によるメモリカードシステムにおいて、ホストとメモリカード間で用いられるコマンド仕様の一例を示す図である。図2では、bcr(broadcast command with response)型のCMD62(=GO_MULTI_TRANSコマンド)が定義されている。bcr型とは、CMDラインからバス上のすべてのカードに対して一斉に発行される所謂ブロードキャスト仕様のコマンドで、更にそのコマンドを受けてバス上のすべてのカードがコマンド線から同時にレスポンスを返すというものである。
【0053】
図2では、CMD62発行時における引数の最下位ビットが遷移ビットと定義され、その仕様は、遷移ビットが設定(=1’b)されているCMD62を受信したメモリカードの内部状態が、スタンバイ状態であるならばマルチトランスファー状態へ遷移し、マルチトランスファー状態であるならばスタンバイ状態へ遷移するというものになっている。そして、さらにCMD62を受信したメモリカードが、それに対応してコマンド線からマルチトランスファー状態を反映したレスポンス(R1−Ex)を返信する仕様となっている。そこで、このようなコマンド仕様に対応する機能を図1のホスト10内のデバイスドライバ102およびホストコントローラ103や、複数のカード[1]11a〜[N]11n内のカードコントローラ110に備え、例えば図3に示すような動作を行う。
【0054】
図3は、図1のメモリシステムにおいて、その動作概要の一例を従来技術と比較して説明するための図であり、(a)は、本発明の動作概要の説明図、(b)は、従来技術の動作概要の説明図である。図3(a),(b)においては、ホスト10からカード[1]11a、カード[2]11b、…、カード[N]11nの同一アドレスに対し、それぞれデータ[1]、データ[2]、…、データ[N]を書き込む場合を想定し、カード[1]11a、カード[2]11b、…、カード[N]11nは、RCAがそれぞれ、‘1’、‘2’、…、‘N’であり、全てスタンバイ状態であるものとする。
【0055】
このような状態において、カードへの書き込み動作は、(1)メモリカードを選択する過程、(2)コマンド送受信の過程、(3)データ送信とデータ書き込み過程から構成される。以下に、各過程の動作について述べる。
【0056】
(1)カードを選択する過程
本発明においては、図3(a)に示すように、ホスト10が、カードの識別情報を含まない第1のコマンドとしてCMD62を全てのカード[1]11a〜[N]11nに送信する。全てのカード[1]11a〜[N]11nは、CMD62を受信し、カードコントローラ110によってこのコマンドを解釈し、マルチトランスファー状態に遷移する。その後、ホスト10に向けてCMD62に対するレスポンスを返す。これによって、全てのカード[1]11a〜[N]11nが選択される。
【0057】
一方、従来技術においては、図3(b)に示すように、1枚のカードしか選択できないので、ホスト10は、例えばカード[1]11aのRCA=1を設定し、カードの識別情報(RCA=1)を含んだCMD7を全てのカード[1]11a〜[N]11nに送信する。カード[1]11aは、トランスファー状態に遷移し、ホスト10にCMD7に対するレスポンスを返す。他のカード[2]11b〜[N]11nは、RCAが異なるのでスタンバイ状態に留まる。すなわち、カード[1]11aのみが選択される。なお、SDメモリカード規格では、図3のように、コマンド線[1]12a〜[N]12nが物理的に独立していても、カード初期化終了後のスタンバイ状態やトランスファー状態では共通なコマンドとそれに対応するレスポンスが転送される。
【0058】
(2)コマンド送受信の過程
本発明においては、図3(a)に示すように、ホスト10が、メモリ動作を指定する第2のコマンドの一例としてライトコマンド(=CMD25)を全てのカード[1]11a〜[N]11nに送信する。ここで、全てのカード[1]11a〜[N]11nがライトコマンド受信可能なマルチトランスファー状態にあるので、全てのカード[1]11a〜[N]11nがライトコマンドを受信する。ライトコマンドを受信したカード[1]11a〜[N]11nは、データ受信準備をし、ホスト10にライトコマンドに対するレスポンスを返す。
【0059】
一方、従来技術においては、図3(b)に示すように、ホスト10がライトコマンド(=CMD25)を全てのカード[1]11a〜[N]11nに送信する。だだし、カード[1]11aのみがライトコマンドを受信可能なトランスファー状態にあるため、カード[1]11aのみがライトコマンドを受信する。ライトコマンドを受信したカード[1]11aは、データ受信準備をし、ホスト10にライトコマンドに対するレスポンスを返す。
【0060】
(3)データ送信とデータ書き込み過程
本発明においては、図3(a)に示すように、ホスト10が、カード[1]11a、カード[2]11b、…、カード[N]11nに対して、それぞれ、ライトデータとなるデータ[1]、データ[2]、…、データ[N]を送信する。データ[1]、データ[2]、…、データ[N]を受信すると、カード[1]11a、カード[2]11b、…、カード[N]11nは、自身のフラッシュメモリ112にそれぞれデータ[1]、データ[2]、…、データ[N]を書き込む。
【0061】
一方、従来技術においては、図3(b)に示すように、ホスト10がカード[1]11aに対してライトデータに対応するデータ[1]を送信する。データ[1]を受信すると、カード[1]11aは、自身のフラッシュメモリ112にデータ[1]を書き込む。
【0062】
このように、本発明のメモリカードシステムでは、前記(1)〜(3)の1回の処理で全カードへのデータ書き込み動作が完了する。ところが、従来技術のメモリカードシステムでは、カード[2]11b〜[N]11nを対象に、前記(1)〜(3)の処理をあとN−1回繰り返す必要がある。
【0063】
すなわち、前記(1)、(2)、(3)の処理に必要な時間を、それぞれTs(=カード選択時間)、Tc(=コマンド送受信時間)、Ta(=データ送信と書き込み時間)とすると、本発明で必要な処理時間T1は、T1=Ts+Tc+Taとなり、従来技術で必要な時間T2は、カード枚数をNとするとT2=N×T1となる。T1は、例えば10Kバイトのデータを書き込む場合、数msec程度となる。したがって、本発明のメモリカードシステムを用いることで、従来技術のメモリカードシステムに比べて(カード枚数−1)×数msec程度の効率化が得られることになる。
【0064】
そして、この効率化された時間は、製品の他機能(マルチメディアデータのデコード等)で使用することができる。なお、実用面において、図3のカード[1]11a〜[N]11nの中に既存のカードが混在した場合でも、現状のSDメモリカード規格に従うと新規に定義したCMD62には応答しないので、下位互換性は保持される。
【0065】
また、ここではメモリ動作として書き込み動作を例としたが、同様に、複数のカードをCMD62によりマルチトランスファー状態に遷移させることで、読み出し動作および消去動作の効率化を図ることも可能である。さらに、このような時間的な効率化によって、消費電力を低減することも可能になる。削減されるエネルギーは、例えば、書き込みと読み出しにおいて、カード1枚あたり10Kバイトのデータが転送される場合、数100μJ程度である。
【0066】
そして、このような効果は、カードの枚数が多いほど効果が大きくなる。したがって、本発明のメモリカードシステムは、例えば、SDカードフォーマット機器やデジタルカメラなどの製品に付加するSDカードを作成する機器といった多数のカードを作成する必要のあるメモリカードホスト機器等に適用して特に有益なものとなる。また、高いデータセキュリティを要求されるメモリシステムなどにおいて、常にデータのバックアップが必要な場合などで用いることも可能である。
【0067】
つぎに、これまでに説明した書き込み動作、読み出し動作および消去動作のより具体的な動作を、図4、図5および図6を用いて説明する。図4は、図1のメモリカードシステムにおいて、その書き込み動作の詳細な一例を示す処理フロー図である。図5は、図1のメモリカードシステムにおいて、その読み出し動作の詳細な一例を示す処理フロー図である。図6は、図1のメモリカードシステムにおいて、その消去動作の詳細な一例を示す処理フロー図である。
【0068】
図4においては、ホストが書き込み不可能な“スタンバイ状態”にある2枚のカード(カード[1]とカード[2])に一括してデータを書き込む場合を想定している。すなわち、図1においてN=2の場合である。ここでは、カード[1]とカード[2]のRCAは、それぞれ‘1’と‘2’とする。なお、カードが3枚以上の場合でも同様な動作となる。以下、図4中の番号に対応させて説明を行う。
【0069】
(1)ホスト10は、カード[1]11aとカード[2]11bに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるCMD62(遷移ビット=1’b)を送信する。“マルチトランスファー状態”とは、複数のカードがライトコマンド(CMD25等)、リードコマンド(CMD18等)、及び消去関連コマンド(CMD38等)を受信できる状態である。
【0070】
(2)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“マルチトランスファー状態”に遷移する。また、CMD62のレスポンスをホストに送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【0071】
(3)ホスト10はライトコマンドを送信する。
【0072】
(4)カード[1]11aとカード[2]11bは、“マルチトランスファー状態”にあるのでライトコマンドを受信できる。カード[1]11aとカード[2]11bは、ライトコマンドを受信すると、ライトコマンドの内容を解析しデータ受信準備をする。また、ホスト10に対しライトコマンドを受信したことを通知するレスポンスを送信する。
【0073】
(5)ホスト10は、カード[1]11aとカード[2]11bからライトコマンドに対応するレスポンスを受信すると、カード[1]11aとカード[2]11bに対してライトデータ(データ1とデータ2)を送信する。なお、カード[1]11aとカード[2]11bに送信するデータ内容は、本発明で機能拡張したホスト10のデバイスドライバ102とホストコントローラ103により区別する必要がある。
【0074】
(6)カード[1]11aとカード[2]11bは、ライトデータを受信すると、自身のフラッシュメモリ112にライトデータを書き込む。ライトコマンドの引数により指定されたアドレスから、ストップコマンド(=CMD12)を受信するまで書き込む。
【0075】
(7)ホスト10は、アプリケーションプログラム100などから要求されたサイズだけ書き込むまで、前記(3)と(5)の処理を繰り返す。
【0076】
(8)ホスト10は、書き込みが終了すると、カード[1]11aとカード[2]11bを“スタンバイ状態”に戻すこと、及び書き込み動作にエラーがなかったかを確認するため、カード[1]11aとカード[2]11bにCMD62(遷移ビット=1’b)を送信する。
【0077】
(9)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“スタンバイ状態”に遷移する。また、CMD62のレスポンスをホスト10に送信する。レスポンスには、“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【0078】
(10)ホスト10は、カード[1]11aとカード[2]11bからCMD62に対応するレスポンスを受信すると、その内容を解析し、書き込み動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションプログラム100に通知するなどのエラー処理をする。一方、エラーがなかった場合、2枚のカードの同時書き込み動作は完了する。
【0079】
以上の動作より、ホストが複数のカードの同じアドレスにデータを書き込む場合、一括して書き込むことが可能となり、書き込み時間の短縮と消費電力の削減が得られる。具体的には、従来技術で必要であった図の(11)〜(20)の処理が省略できる。
【0080】
図5においては、ホストが複数のカードの同じアドレスから一括してデータを読み出す場合を想定している。ここでは、図1においてN=2とし、ホストが、読み出し不可能な“スタンバイ状態”にある2枚のカード(カード[1]とカード[2])から同じアドレスのデータを読み出す場合で説明する。なお、カード[1]とカード[2]のRCAはそれぞれ‘1’と‘2’とする。また、カードが3枚以上の場合でも同様な動作となる。以下、図5中の番号に対応させて説明を行う。
【0081】
(1)ホスト10は、カード[1]11aとカード[2]11bに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるCMD62(遷移ビット=1’b)を送信する。
【0082】
(2)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“マルチトランスファー状態”に遷移する。また、CMD62のレスポンスをホスト10に送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【0083】
(3)ホスト10はリードコマンドを送信する。
【0084】
(4)カード[1]11aとカード[2]11bは、“マルチトランスファー状態”にあるのでリードコマンドを受信できる。カード[1]11aとカード[2]11bは、リードコマンドを受信すると、リードコマンドの内容を解析し、データ送信準備をする。また、ホスト10にリードコマンドを受信したことを通知するレスポンスを送信する。
【0085】
(5)ホスト10は、カード[1]11aとカード[2]11bからリードコマンドに対応するレスポンスを受信すると、データ受信準備をする。
【0086】
(6)カード[1]11aとカード[2]11bは、リードコマンドの引数により指定されたアドレスからデータ(データ1とデータ2)を読み出し、そのデータをストップコマンド(=CMD12)を受信するまでホスト10に送信する。
【0087】
(7)ホスト10は、カード[1]11aとカード[2]11bからデータを受信する。なお、カード[1]11aとカード[2]11bから受信するデータ内容は、本発明で機能拡張したホスト10のデバイスドライバ102とホストコントローラ103により区別し、上位のアプリケーションプログラム100などに渡す必要がある。
【0088】
(8)ホスト10は、アプリケーションプログラム100などから要求されたサイズだけ読み出すまで、前記(3)、(5)および(7)の処理を繰り返す。
【0089】
(9)ホスト10は、読み出しが終了すると、カード[1]11aとカード[2]11bを“スタンバイ状態”に戻すこと、及び読み出し動作にエラーがなかったかを確認するため、カード[1]11aとカード[2]11bにCMD62(遷移ビット=1’b)を送信する。
【0090】
(10)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“スタンバイ状態”に遷移する。また、CMD62のレスポンスをホスト10に送信する。レスポンスには“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【0091】
(11)ホスト10は、カード[1]11aとカード[2]11bからCMD62に対応するレスポンスを受信すると、その内容を解析し、読み出し動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションに通知するなどのエラー処理をする。一方、エラーがなかった場合、2枚のカードからの同時読み出し動作は完了する。
【0092】
以上のような動作により、ホストが複数のカードの同じアドレスからデータを読み出す場合、一括して読み出すことが可能となり、読み出し時間の短縮と消費電力の削減が得られる。
【0093】
図6においては、ホストが複数のカードの同じアドレスの内容を一括して消去する場合を想定している。ここでは、図1においてN=2とし、ホストが、消去不可能な“スタンバイ状態”にある2枚のカード(カード[1]とカード[2])の同じアドレスの内容を消去する場合で説明する。なお、カード[1]とカード[2]のRCAはそれぞれ‘1’と‘2’とする。また、カードが3枚以上の場合でも同様な動作となる。以下、図6中の番号に対応させて説明を行う。
【0094】
(1)ホスト10は、カード[1]11aとカード[2]11bに対し、“スタンバイ状態”にあるカードを“マルチトランスファー状態”に遷移させるCMD62(遷移ビット=1’b)を送信する。
【0095】
(2)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“マルチトランスファー状態”に遷移する。また、CMD62のレスポンスをホストに送信する。レスポンスには“マルチトランスファー状態”に遷移したことを示す内容が含まれる。
【0096】
(3)ホスト10は、カード[1]11aとカード[2]11bに消去する先頭アドレスを指定する消去先頭アドレス設定コマンドを送信する。
【0097】
(4)カード[1]11aとカード[2]11bは、“マルチトランスファー状態”にあるので消去先頭アドレス設定コマンドを受信できる。カード[1]11aとカード[2]11bは、消去先頭アドレス設定コマンドを受信すると、消去先頭アドレスを解析する。また、ホスト10に消去先頭アドレス設定コマンドを受信したことを通知するレスポンスを送信する。
【0098】
(5)ホスト10は、カード[1]11aとカード[2]11bから消去先頭アドレス設定コマンドに対応するレスポンスを受信すると、ホスト10は、カード[1]11aとカード[2]11bに対し、消去する最終アドレスを指定する消去最終アドレス設定コマンドを送信する。
【0099】
(6)カード[1]11aとカード[2]11bは、“マルチトランスファー状態”にあるので消去最終アドレス設定コマンドを受信できる。カード[1]11aとカード[2]11bは、消去最終アドレス設定コマンドを受信すると、消去最終アドレスを解析する。また、ホスト10に消去最終アドレス設定コマンドを受信したことを通知するレスポンスを送信する。
【0100】
(7)ホスト10は、カード[1]11aとカード[2]11bから消去最終アドレス設定コマンドに対応するレスポンスを受信すると、ホスト10は、カード[1]11aとカード[2]11bに消去の実行を命令する消去実行コマンドを送信する。
【0101】
(8)カード[1]11aとカード[2]11bは、“マルチトランスファー状態”にあるので消去実行コマンドを受信できる。カード[1]11aとカード[2]11bは、消去実行コマンドを受信すると、消去を実行する。消去完了後、ホスト10に対し、消去が完了したことを通知するレスポンスを送信する。
【0102】
(9)ホスト10は、カード[1]11aとカード[2]11bから消去実行コマンドに対応するレスポンスを受信すると、カード[1]11aとカード[2]11bを“スタンバイ状態”に戻すこと、及び消去動作にエラーがなかったかを確認するため、カード[1]11aとカード[2]11bにCMD62(遷移ビット=1’b)を送信する。
【0103】
(10)カード[1]11aとカード[2]11bは、CMD62(遷移ビット=1’b)を受信すると“スタンバイ状態”に遷移する。また、CMD62のレスポンスをホスト10に送信する。レスポンスには“スタンバイ状態”に遷移したことや、エラー情報などが含まれる。
【0104】
(11)ホスト10は、カード[1]11aとカード[2]11bからCMD62に対応するレスポンスを受信すると、その内容を解析し、消去動作にエラーがなかったかを確認する。もし、エラーがあればその内容をアプリケーションプログラム100に通知するなどのエラー処理をする。一方、エラーがなかった場合、2枚のカードの同時消去動作は完了する。
【0105】
以上のような動作により、ホストが、複数のカードの同じアドレスの内容を消去する場合、一括して消去することが可能となり、消去時間の短縮と消費電力の削減が得られる。
【0106】
ところで、これまでの説明においては、CMD62を用いて全てのカードに対して一括してメモリ動作(書き込み動作、読み出し動作、消去動作)を行う構成例を示したが、例えば、図7に示すように任意に選定した複数のカードに対してのみメモリ動作を行う構成にしてもよい。図7は、本発明の一実施の形態によるメモリカードシステムにおいて、図1の構成を応用した構成およびその動作の一例を示す説明図である。
【0107】
図7に示すメモリカードシステムは、ホスト10と複数のカード[1]11a、[2]11b、…、[J]11j、…、[N]11nによって構成され、ホスト10とカード[1]11aの間が、コマンド線[1]12aおよびデータ線[1]13aによって接続され、以降同様に、ホスト10と各カード[2]11b、…、[J]11j、…、[N]11nの間が、それぞれコマンド線[2]12b、…、[J]12j、…、[N]12nおよびデータ線[2]13b、…、[J]13j、…、[N]13nによって接続されている。
【0108】
ホスト10や各カード[1]11a〜[N]11nは、これまでに述べたような機能を備えたものとなっているが、ここでは、更に、ホスト10内のデバイスドライバ102またはホストコントローラ103に対し、CMD62(=GO_MULTI_TRANSコマンド)を発行するカードを選定する機能を設ける。これにより、“マルチトランスファー状態”に遷移させたいカードにのみCMD62を発行することで、同時にメモリ動作を行わせるカードを選択することが可能となる。
【0109】
図7では、例えば、カード[2]11bとカード[J]11jを選択して、これらのカードに対してのみCMD62を発行している例を示している。このような構成および動作を用いることで、システム構築の自由度を高めることが可能になる。
【0110】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0111】
本発明のメモリカードシステムは、SDメモリカードのフォーマット機器などといった多数のカードを作成する必要のあるメモリカードホスト機器等に適用して特に有益なものであり、これに限らず、カードの内容を完全に消去するメモリカードホスト製品や、複数のカードスロットを持つUSBリーダライタ製品や、SDメモリカードと上位互換性のあるメモリカードやMMC(MultiMediaCard(登録商標))カード等を含むシステムといったメモリカードシステム全般に広く適用可能である。
【図面の簡単な説明】
【0112】
【図1】本発明の一実施の形態によるメモリカードシステムにおいて、その構成の一例を示すシステム概略図である。
【図2】本発明の一実施の形態によるメモリカードシステムにおいて、ホストとメモリカード間で用いられるコマンド仕様の一例を示す図である。
【図3】図1のメモリシステムにおいて、その動作概要の一例を従来技術と比較して説明するための図であり、(a)は、本発明の動作概要の説明図、(b)は、従来技術の動作概要の説明図である。
【図4】図1のメモリカードシステムにおいて、その書き込み動作の詳細な一例を示す処理フロー図である。
【図5】図1のメモリカードシステムにおいて、その読み出し動作の詳細な一例を示す処理フロー図である。
【図6】図1のメモリカードシステムにおいて、その消去動作の詳細な一例を示す処理フロー図である。
【図7】本発明の一実施の形態によるメモリカードシステムにおいて、図1の構成を応用した構成およびその動作の一例を示す説明図である。
【図8】本発明の前提として検討した技術のメモリカードシステムにおいて、複数のメモリカードへの書き込み手順の一例を示す処理フロー図である。
【符号の説明】
【0113】
10 ホスト
11a,11b,11j,11n メモリカード
12a,12b,12j,12n コマンド線
13a,13b,13j,13n データ線
100 アプリケーションプログラム
101 ファイルシステム
102 デバイスドライバ
103 ホストコントローラ
110 カードコントローラ
111 送受信バッファ
112 フラッシュメモリ

【特許請求の範囲】
【請求項1】
ホストと、複数のメモリカードとを備えたメモリカードシステムであって、
前記複数のメモリカードは、
前記複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第1のコマンドが前記ホストから入力された際に、前記第1のコマンドに応じてメモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移し、
前記メモリ動作が可能な内部状態で、前記複数のメモリカードに対して一括してメモリ動作を行わせる第2のコマンドが前記ホストから入力された際に、前記第2のコマンドに応じてメモリ動作を行うことを特徴とするメモリカードシステム。
【請求項2】
ホストと、複数のメモリカードとを備えたメモリカードシステムであって、
前記ホストは、
内部状態の遷移を要求し、かつメモリカードの選択情報を含まないブロードキャスト仕様の第1のコマンドを、前記複数のメモリカードに向けて出力する機能と、
メモリ動作の動作内容を指定する第2のコマンドを、前記複数のメモリカードに向けて出力する機能とを有し、
前記複数のメモリカードは、
前記第1のコマンドが入力された際に、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能と、
前記メモリ動作が可能な内部状態で前記第2のコマンドが入力された際に、前記第2のコマンドで指定された動作内容でメモリ動作を行う機能とを有することを特徴とするメモリカードシステム。
【請求項3】
請求項1または2記載のメモリカードシステムにおいて、
前記複数のメモリカードは、それぞれ個別にコマンド線およびデータ線を備え、前記個別に備えたコマンド線およびデータ線によって前記ホストと接続されることを特徴とするメモリカードシステム。
【請求項4】
請求項1〜3のいずれか1項に記載のメモリカードシステムにおいて、
前記メモリ動作の中には、読み出し動作と書き込み動作と消去動作が含まれ、
前記第2のコマンドによって、前記読み出し動作と前記書き込み動作と前記消去動作の中のいずれか一つのメモリ動作を指定可能であることを特徴とするメモリカードシステム。
【請求項5】
複数のメモリカードを一括してメモリ動作が可能な内部状態に遷移させる第1のコマンドがホストから入力された際に、前記第1のコマンドを解釈し、メモリ動作が不可能な内部状態からメモリ動作が可能な内部状態に遷移する機能を有することを特徴とするメモリカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−119954(P2006−119954A)
【公開日】平成18年5月11日(2006.5.11)
【国際特許分類】
【出願番号】特願2004−307846(P2004−307846)
【出願日】平成16年10月22日(2004.10.22)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】