説明

メモリカード、並びにメモリカード制御装置およびメモリカード制御方法

【課題】第1の規格に対応する機器においても、第1の規格で定められた最大メモリ容量よりも大きなメモリ容量を有するメモリカードを利用する。
【解決手段】本発明のメモリカードは、第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有する不揮発性メモリと、不揮発性メモリへのアクセスを制御する制御部と、を備える。不揮発性メモリは複数のユーザ領域を有している。制御部は、ユーザ領域を論理ユニット番号によって管理しており、第1の規格に従ったアクセスコマンドを受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、アクセスコマンドに応じたアクセス動作を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の規格に対応するメモリカード、並びにメモリカード制御装置およびメモリカード制御方法に関する。
【背景技術】
【0002】
メモリカードの規格として最大2GBまでのデータを管理可能なSD(Secure Degial,登録商標」が知られている。また、SDの上位互換性を有する規格であり、2GBを越える最大32GBまでのデータを管理可能なSDHC(SD High Capacity,登録商標)が知られている。
【0003】
SDHCメモリカードを利用する場合にはSDHCに対応した専用の機器が必要である。一方、SDHCに対応しておらずSDに対応した機器では、SDHCメモリカードを利用することができない。また、SDでは最大2GBまでしかサポートできず、2GBよりも大容量のデータを扱いたい場合には、SDHCに対応するSDHCメモリカードを利用することになる。
【0004】
従って、SDHCに対応していない機器を使用するユーザが、2GBよりも大容量のデータを扱いたい場合には、メモリカードとしてSDHCメモリカードを用い、SDHCに対応した機器を新たに用意しなければならない、という問題があった。
【0005】
なお、上記問題は、SDとSDHCとの間の問題だけでなく、第1の規格と、第1の規格よりも大きな最大メモリ容量が定められた第2の規格に対応するメモリカードに共通する問題である。
【0006】
【特許文献1】特許第3641230号公報
【特許文献2】特開2007−280347号公報
【特許文献3】特許第3923715号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、第1の規格に対応する機器においても、第1の規格で定められた最大メモリ容量よりも大きなメモリ容量を有するメモリカードを利用することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0009】
[適用例1]
メモリカードであって、
第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有する不揮発性メモリと、
前記不揮発性メモリへのアクセスを制御する制御部と、を備え、
前記不揮発性メモリは複数のユーザ領域を有しており、
前記制御部は、前記ユーザ領域を論理ユニット番号によって管理しており、前記第1の規格に従ったアクセスコマンドを受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、前記アクセスコマンドに応じたアクセス動作を実行する、
メモリカード。
このようにすれば、第1の規格に対応する機器において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、アクセスコマンドに応じたアクセス動作を実行することができる。従って、第1の規格に対応する機器においても、第1の規格で定められた最大メモリ容量よりも大きなメモリ容量を有するメモリカードを利用することができる。
【0010】
[適用例2]
適用例1記載のメモリカードであって、
前記制御部は、前記第1の規格に対して上位互換性を有し、前記第1の規格よりも大きな最大メモリ容量が定められた第2の規格に従ったアクセスコマンドを受けた場合において、前記アクティブユーザ領域に対してのみ前記アクセスコマンドに応じたアクセス動作を実行する
ことを特徴とするメモリカード。
このようにすれば、さらに、第2の規格に対応する機器においても、アクティブユーザ領域に対してのみ、アクセスコマンドに応じたアクセス動作を実行することができる。
【0011】
[適用例3]
適用例1または適用例2記載のメモリカードであって、
前記不揮発性メモリは複数のユーザ領域を有しており、
前記制御部は、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
このようにすれば、第1の規格に対応する機器および第2の規格に対応する機器においても、アクティブユーザ領域を切り換えることにより、複数のユーザ領域のいずれに対してもアクセス動作を実行することができる。
【0012】
[適用例4]
適用例3記載のメモリカードであって、
前記制御部は、前記各ユーザ領域の論理ユニット番号を変更することによって前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
このようにすれば、アクティブユーザ領域の切り換えを容易に実行することができる。
【0013】
[適用例5]
適用例3記載のメモリカードであって、
前記特定の論理ユニット番号を記憶するためのアクティブユーザ領域記憶部を有し、
前記制御部は、
前記切り替えコマンドを受けた場合において、前記切り替えコマンドに含まれる論理ユニット番号を、前記あらかじめ選択された論理ユニット番号として前記アクティブユーザ領域記憶部に記憶し、
前記アクティブユーザ領域記憶部に記憶された前記あらかじめ選択された論理ユニット番号と一致する論理ユニット番号が付されているユーザ領域を、前記アクティブユーザ領域とすることにより、前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
このようにしても、アクティブユーザ領域の切り換えを容易に実行することができる。
【0014】
[適用例6]
適用例1ないし適用例5のいずれかに記載のメモリカードであって、
前記制御部は、前記ユーザ領域の設定コマンドを受けた場合において、前記設定コマンドに含まれるユーザ領域設定情報に基づいて前記不揮発性メモリに用意されるユーザ領域を設定する
ことを特徴とするメモリカード。
このようにすれば、ユーザ領域の設定を変更することができる。
【0015】
[適用例7]
適用例1ないし適用例6のいずれかに記載のメモリカードであって、
前記制御部は、アクセスを希望するユーザ領域を示すアクセス先論理ユニット番号を保持するアクセス先論理ユニット番号保持部を含み、
前記アクセス先論理ユニット番号の設定コマンドを受けた場合において、前記設定コマンドに含まれる論理ユニット番号を、前記アクセス先論理ユニット番号として前記アクセス先論理ユニット番号保持部に記憶し、
前記アクセスコマンドを受けた場合において、前記アクセス先論理ユニット番号と一致する論理ユニット番号が付されているユーザ領域に対して、前記アクセスコマンドに応じたアクセス動作を実行する
ことを特徴とするメモリカード。
このようにすれば、アクセスしたいユーザ領域へのアクセスを容易に実行することができる。
【0016】
[適用例8]
論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードを制御するメモリカード制御装置であって、
あるユーザ領域へのアクセスを実行する場合には、
第1に、アクセスを希望するユーザ領域を示す論理ユニット番号を、アクセス先論理ユニット番号の設定コマンドに含めて前記メモリカードに送信することによって、前記アクセスを希望するユーザ領域を指定し、
第2に、アクセスコマンドを送信することにより、前記アクセスを希望するユーザ領域へのアクセスを制御する
ことを特徴とするメモリカード制御装置。
このようにすれば、論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードの、アクセスを希望するユーザ領域へのアクセスを実行することができる。
[適用例9]
メモリカードを制御するメモリカード制御装置であって、
前記メモリカードは、
第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有し、複数のユーザ領域を有する不揮発性メモリと、
前記ユーザ領域を論理ユニット番号によって管理しており、前記第1の規格に従ったアクセス要求を受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、前記アクセス要求に応じたアクセス動作を実行するとともに、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える制御部と、を備えており、
前記メモリカード制御装置は、
前記アクティブユーザ領域の切り替えコマンドを前記メモリカードに対して送出することにより、前記アクティブユーザ領域の切り替えを制御する
ことを特徴とするメモリカード制御装置。
このようにすれば、第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有し、複数のユーザ領域を有する不揮発性メモリと、ユーザ領域を論理ユニット番号によって管理しており、第1の規格に従ったアクセス要求を受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、アクセス要求に応じたアクセス動作を実行するとともに、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える制御部と、を備えたメモリカードの、アクティブユーザ領域の切り替えを制御することができる。
【0017】
[適用例10]
論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードを制御するメモリカード制御方法であって、
あるユーザ領域へのアクセスを実行する場合には、
第1に、アクセスを希望するユーザ領域を示す論理ユニット番号を、アクセス先論理ユニット番号の設定コマンドに含めて前記メモリカードに送信することによって、前記アクセスを希望するユーザ領域を指定し、
第2に、アクセスコマンドを送信することにより、前記アクセスを希望するユーザ領域へのアクセスを制御する
ことを特徴とするメモリカード制御方法。
このようにすれば、論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードの、アクセスを希望するユーザ領域へのアクセスを実行することができる。
【0018】
[適用例11]
メモリカードを制御するメモリカード制御方法であって、
前記メモリカードは、
第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有し、複数のユーザ領域を有する不揮発性メモリと、
前記ユーザ領域を論理ユニット番号によって管理しており、前記第1の規格に従ったアクセス要求を受けた場合において、特定の論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、前記アクセス要求に応じたアクセス動作を実行するとともに、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える制御部と、を備えており、
前記アクティブユーザ領域の切り替えコマンドを前記メモリカードに対して送出することにより、前記アクティブユーザ領域の切り替えを制御する
ことを特徴とするメモリカード制御方法。
このようにすれば、第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有し、複数のユーザ領域を有する不揮発性メモリと、ユーザ領域を論理ユニット番号によって管理しており、第1の規格に従ったアクセス要求を受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、アクセス要求に応じたアクセス動作を実行するとともに、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える制御部と、を備えたメモリカードの、アクティブユーザ領域の切り替えを制御することができる。
【0019】
なお、本発明は、種々の形態で実現することが可能であり、例えば、メモリカード、メモリカード制御装置、メモリカード制御方法等の種々の形態で実現することができる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.変形例:
【0021】
A.第1実施例:
A1.メモリカードの構成:
図1は、本発明の第1実施例としてのメモリカード10の内部構成を示すブロック図である。このメモリカード10は、カードコントローラ100およびメモリコア200を備える。なお、このメモリカード10は、SDメモリカードおよびSDHCメモリカードと同様の外形形状を有し、SDの規格およびSDHCの規格に準拠している。
【0022】
カードコントローラ100は、SDあるいはSDHCの規格に従ったコマンドに応じて、メモリコア200へのアクセス動作を制御する。
【0023】
メモリコア200は、例えば、フラッシュメモリ等の不揮発性メモリで構成されており、システム領域210、LUN管理領域220、保護領域230、および、ユーザ領域240を備える。ユーザ領域240は、LUN(Logical Unit Number,論理ユニット番号)として0〜3が付された4つの領域(以下、「LUN領域」とも呼ぶ)に区分されている。なお、以下では、各LUN領域を、それぞれに付されたLUNの番号(以下、「LUN#」とも呼ぶ)を引用して、LUN0領域〜LUN3領域とも呼ぶこととする。
【0024】
システム領域210には、カードコントローラ100がコマンドに応じてメモリコア200へのアクセス動作を制御するために用いられる種々の制御情報が記憶されている。また、保護領域230には、著作権保護情報等の保護情報が記憶される。
【0025】
図2は、メモリコア200のLUN管理領域220に記憶されるLUN管理情報について示す説明図である。LUN管理領域220には、LUN領域の数に相当するLUNの最大番号(以下、「最大LUN#」とも呼ぶ)と、アクティブLUN領域として設定されているLUN領域のLUNの番号(以下、「アクティブLUN#」とも呼ぶ)と、が記憶されている。さらに、LUN0領域〜LUN3領域の領域ごとに、LUN#と、スタートアドレスと、エンドアドレスと、が記憶されている。なお、ユーザ領域がブロック単位で管理される場合には、スタートアドレスおよびエンドアドレスではなくスタートブロックおよびエンドブロックとしてもよい。また、エンドアドレスあるいはエンドブロックではなく、領域のバイト数あるいはブロック数としてもよい。
【0026】
なお、カードコントローラ100は、LUN管理領域220に記憶されているLUN管理情報を参照することにより、ユーザ領域240中にLUN領域を構築し管理する。そして、カードコントローラ100は、以下で説明するように、SDの規格あるいはSDHCの規格に従ったアクセスコマンドに応じて、ユーザ領域240中に区分されているLUN領域へのアクセス動作を制御する。
【0027】
A2.SDメモリカード用のカードアダプタを用いたメモリカード制御装置によるアクセス動作:
図3は、SDメモリカード用のカードアダプタを用いたメモリカード制御装置20の構成を示す説明図である。このメモリカード制御装置20は、ホスト30と、ホスト30にSDメモリカードを接続するためのカードアダプタ40とを備えている。
【0028】
ホスト30は、例えば、パーソナルコンピュータなどのコンピュータ機器である。カードアダプタ40は、USB(Universal Serial Bus)デバイスの一つであり、USBケーブル50を介してホスト30のUSBインタフェース36に接続される。また、カードアダプタ40には、SDメモリカードを着脱自在に装着可能なカードスロット44が設けられている。実施例のメモリカード10は、SDメモリカードと同様の形状を有し、SDの規格に準拠しているので、カードスロット44に着脱自在に装着することができる。
【0029】
ホスト30では、図に示すように、ファイラなどのアプリケーション32が実行される。アプリケーション32は、オペレーティングシステム(OS)の一部であるファイルシステム34を介して、メモリカード10のメモリコア200に含まれるユーザ領域240のうちアクティブLUN領域へのアクセスを行なう。このとき、USBインタフェース36は、ファイルシステム34を介して入力されるアプリケーション32からのファイル操作要求に応じて、メモリカード10に対してアクセスコマンドを発行する。なお、ファイルシステム34は、後述するようにして、取得した最大LUN#に基づいて、ユーザ領域240のうち、アクティブLUN領域に設定されている1つのLUN領域のみをディスク装置と同様のストレージデバイスとして扱う。
【0030】
カードアダプタ40は、SDメモリカードへのアクセスを制御するためのカードアダプタコントローラ42を備えている。このカードアダプタコントローラ42は、ホスト30とメモリカード10との間のインタフェースとして機能する。具体的には、このカードアダプタコントローラ42は、ホスト30からのアクセスコマンドに応じて、カードバス46を介してメモリカード10に対してSDの規格に従ったアクセスコマンドを発行し、メモリカード10の動作を制御する。
【0031】
メモリカード10は、上記したように、カードコントローラ100を備えている。そして、このカードコントローラ100は、以下で説明するように、SDの規格に従ったアクセスコマンドに応じて、メモリコア200のユーザ領域240に構築されているLUN領域のうち、アクティブLUN領域へのアクセス動作を制御する。
【0032】
図4は、図3に示したメモリカード制御装置20によるメモリカード10へのアクセス動作について示す説明図である。まず、USBデバイスとしてのカードアダプタ40がUSBケーブル50を介してホスト30に接続されると、USBの規格に従って、USBデバイスが接続されたことを示す情報(以下、「USB接続情報」とも呼ぶ)がUSBケーブル50を介してホスト30に通知される。これにより、ホスト30は、USBデバイスが接続されたことを検出し(処理<1>)、カードアダプタ40の初期化処理を実行する(処理<2>)。この結果、ホスト30は、カードアダプタ40に装着されるメモリカード、本実施例ではメモリカード10を、USBクラスがマスストレージデバイスのデバイスであると認識する。
【0033】
そして、ホスト30は、初期化処理を終了すると、次に、USBの規格に従って最大LUN#の取得をカードアダプタ40に対して要求する(処理<3>)。このとき、カードアダプタ40は、SDメモリカードのみに対応するカードアダプタであり、SDメモリカードのLUN#は「0」以外にはないので、カードアダプタコントローラ42が最大LUN#として「0」を応答する(処理<4>)。最大LUN#の応答結果を受け取ったホスト30は、LUN#が「0」のLUN領域(LUN0領域)をストレージデバイスとして扱うように設定する(処理<5>)。
【0034】
次に、ホスト30からカードアダプタ40に対して、ホスト30のアプリケーション32からのファイル操作要求に応じて、アクセスコマンドをUSBの規格に従って発行し、LUN0領域に対するアクセス要求、例えば、読み出し要求を行なう(処理<6>)。このとき、カードスロット44にメモリカード10が装着されている場合には、カードアダプタ40では、カードアダプタコントローラ42がメモリカード10に対して対応するアクセスコマンドをSDの規格に従って発行して、アクセス要求を行なう(処理<7>)。なお、メモリカード10が装着されていない場合には、応答結果として、メモリカードが装着されていない旨のエラー情報を返す。
【0035】
アクセス要求を受けたメモリカード10は、アクティブLUN領域として設定されているLUN領域(図2の例では、LUN1領域)を検索して、対応するファイルを読み出し、カードアダプタ40に送出する(処理<8>)。カードアダプタ40はメモリカード10から受け取ったファイルを、ホスト30からのアクセス要求に対する応答結果として、ホスト30に送出する(処理<9>)。
【0036】
図5は、メモリカード制御装置20を用いた場合に実行されるメモリカード10におけるアクセス動作の概要について示す説明図である。メモリカード10のカードコントローラ100は、以下で説明するように、カードアダプタ40のカードアダプタコントローラ42からのアクセス要求(処理<7>)に対応して、上記処理<8>の処理を実行する。カードコントローラ100は、カードアダプタコントローラ42からのアクセス要求を受け取ると、第1に、LUN管理領域220に記憶されているLUN管理情報(図2参照)中のアクティブLUN#を参照する。第2に、アクティブLUN#と同じ番号のLUN領域(図2の例では、LUN1領域)のスタートアドレスおよびエンドアドレスを、LUN管理情報を参照して取得する。第3に、取得したスタートアドレスおよびエンドアドレスに基づいて、アクティブLUN領域として設定されているLUN領域(LUN1領域)中を検索して対応するファイルを読み出す。これにより、メモリカード10のカードコントローラ100は、設定されているアクティブLUN領域へのアクセスを実行することができる。なお、アクティブLUN#の参照、および、スタートアドレスとエンドアドレスの取得は、実際には、最初のアクセス要求時においてのみ実行され、カードコントローラ100のレジスタ(不図示)にセットされる。そして、以降のアクセス要求に対しては、レジスタにセットされたアクティブLUN#、スタートアドレス、および、エンドアドレスを利用して、アクセスが実行される。このようにすれば、アクセス効率の面で効果的である。
【0037】
なお、上記アクセス動作の例では、読み出しアクセス動作について例に説明したが、書き込みアクセス動作においても同様である。
【0038】
以上のように、図3に示したメモリカード制御装置20では、上記実施例のメモリカード10のメモリコア200に含まれるユーザ領域240に構築されている4つのLUN領域LUN0〜LUN3のうち、アクティブLUN領域として設定されている1つのLUN領域、本例ではLUN1領域に対してアクセス動作を実行することができる。従って、実施例のメモリカード10は、SDメモリカード用のカードアダプタ40を用いたメモリカード制御装置20であっても、アクセスすることが可能である。すなわち、実施例のメモリカード10は、SDメモリカードへのアクセスを実行することが可能な機器において、アクセス可能な領域としてあらかじめ設定されているアクティブLUN領域のみに制限されるものの、アクセスすることが可能である。
【0039】
なお、上記説明では、SDメモリカード用のカードアダプタを用いたメモリカード制御装置を例に説明したが、SDHCメモリカード用のカードアダプタを用いたメモリカード制御装置の場合にも、同様に、実施例のメモリカード10に対してアクセスすることが可能である。
【0040】
A3.専用カードアダプタを用いたメモリカード制御装置によるアクセス動作:
図6は、専用のカードアダプタを用いたメモリカード制御装置20Bの構成を示す説明図である。このメモリカード制御装置20Bは、SDメモリカード用のカードアダプタ40を用いたメモリカード制御装置20(図2参照)と同様に、ホスト30と、ホスト30に実施例のメモリカード10を接続するための専用のカードアダプタ40Bとを備えている。
【0041】
ホスト30のファイルシステム34は、後述するように、取得した最大LUN#に基づいて、メモリカード10のメモリコア200のユーザ領域240に構築されている4つのLUN領域LUN0〜LUN3を、それぞれ、ディスク装置と同様のストレージデバイスとして扱う。
【0042】
カードアダプタ40Bは、実施例のメモリカード10へのアクセスを制御するためのカードアダプタコントローラ42Bを備えている。このカードアダプタコントローラ42Bは、ホスト30からのアクセスコマンドに応じて、カードバス46を介してメモリカード10に対してSDの規格に従ったアクセスコマンドを発行する。このとき、カードアダプタコントローラ42Bは、4つのLUN領域LUN0〜LUN3の中からアクセスLUN領域として指定したLUN領域へのアクセス動作を制御する。
【0043】
図7〜図9は、図6に示したメモリカード制御装置20Bによるメモリカード10へのアクセス動作について示す説明図である。まず、カードスロット44にメモリカードが装着されると、USBデバイスとしてのカードアダプタ40Bは、USBデバイスが接続されたことを示すUSB接続信号をホスト30に送出する。これにより、ホスト30は、USBデバイスが接続されたことを検出し(処理<1>)、カードアダプタ40Bの初期化処理を実行する(処理<2>)。この結果、ホスト30は、カードアダプタ40Bに装着されたメモリカード、本実施例ではメモリカード10を、USBクラスがマスストレージデバイスのデバイスであると認識する。
【0044】
そして、ホスト30は、初期化処理を終了すると、次に、USBの規格に従って最大LUN#の取得をカードアダプタ40Bに対して要求する(処理<3>)。このとき、カードアダプタ40Bでは、カードアダプタコントローラ42Bがメモリカード10に対して最大LUN#の取得を要求する(処理<5>)。なお、この最大LUN#の取得を要求するためのコマンドは、SDあるいはSDHCの規格には存在していない。そこで、最大LUN#の取得を要求するためのコマンド(例えば、[GET_MAX_LUN])を新たに定義し、新たに定義したコマンドを発行することにより、最大LUN#の取得の要求が実行される。
【0045】
そして最大LUN#の取得要求を受けたメモリカード10は、LUN管理領域220に記憶されている最大LUN#、図2の例では、「3」を読み出して、カードアダプタ40Bに対して応答する(処理<5>)。そして、カードアダプタ40Bでは、カードアダプタコントローラ42Bがメモリカード10から受け取った最大LUN#を、ホスト30からの最大LUN#の取得要求に対する応答結果として、ホスト30に送出する(処理<6>)。最大LUN#の応答結果を受け取ったホスト30は、[最大LUN#+1]個のLUN領域、本例では4個のLUN領域(LUN0〜LUN3)のそれぞれを、別々のストレージデバイスとして扱うように設定する(処理<7>)。
【0046】
まず、ホスト30からカードアダプタ40Bに対して、アプリケーション32からのファイル操作要求に応じて、読み出しのアクセスコマンドをUSBの規格に従って発行する(処理<8>)。ここでは、例えば、1つのストレージデバイスとして扱われるLUN0領域に含まれているファイルに対する読み出しのアクセス要求を行なうこととする。このとき、LUN0領域に対するアクセス要求を受け取ったカードアダプタ40Bでは、受け取ったLUN0領域のLUN#(「0」)がカードアダプタコントローラ42Bのレジスタ(不図示)にセットされる。そして、カードアダプタコントローラ42Bは、USBの規格に従って、LUN0領域をアクセスLUN領域に設定することをメモリカード10に対して要求する(処理<9>)。なお、このアクセスLUN領域のセットを要求するためのコマンドは、SDあるいはSDHCの規格には存在していない。そこで、アクセスLUN領域のセットを要求するためのアクセスLUNセットコマンド(例えば、「SET_ACCESS_LUN」)を新たに定義し、新たに定義したコマンドを発行することにより、アクセスLUN領域の設定が実行される。
【0047】
アクセスLUN領域のセット要求を受けたメモリカード10では、カードコントローラ100が、アクセスLUNセットコマンドに含まれているLUN#、ここでは「0」を、アクセスLUN領域のLUN#(以下、「アクセスLUN#」とも呼ぶ)として、カードコントローラ100内にセットする(処理<10>。このアクセスLUN#は、カードコントローラ100内のアクセスLUN#を記憶するためのレジスタ(以下、アクセスLUNレジスタと呼ぶ)にセットされる。その後、カードコントローラ100は、完了を示すセット済み応答をカードアダプタ40Bに送出する(処理<11>)。
【0048】
アクセスLUN領域のセット済み応答を受けたカードアダプタ40Bでは、カードアダプタコントローラ42Bがメモリカード10に対して読み出しアクセスコマンドを発行して、アクセス要求を行なう(処理<12>)。そして、アクセス要求を受けたメモリカード10では、カードコントローラ100が、アクセスLUN領域にセットされているLUN0領域を検索して、対応するファイルを読み出し、カードアダプタ40Bに送出する(処理<13>)。カードアダプタ40Bはメモリカード10から受け取ったファイルを、ホスト30からの読み出しアクセス要求に対する応答結果として、ホスト30に送出する(処理<14>)。
【0049】
図10は、メモリカード制御装置20Bを用いた場合に実行されるメモリカード10におけるアクセス動作の概要について示す説明図である。カードアダプタ40Bのカードアダプタコントローラ42Bおよびメモリカード10のカードコントローラ100は、以下で説明するように、ホスト30からのアクセス要求(処理<8>)に対応する処理(処理<9>〜処理<14>)を実行する。カードアダプタコントローラ42Bは、ホスト30からのアクセス要求を受け取ると、まず、第1に、メモリカード10のカードコントローラ100に対して、アクセスLUN領域のセット要求を行なう。ここでは、LUN0領域をアクセスLUN領域としてセットする。第2に、アクセスLUN領域のセット要求を受け取ったカードコントローラ100は、アクセスLUNレジスタ102に、LUN0領域を示すLUN#をセットする。ここでは、アクセスLUN#として「0」をセットする。第3に、アクセスLUN領域のセット後、カードアダプタコントローラ42Bは、メモリカード10のカードコントローラ100に対して、読み出しのアクセス要求を行なう。第4に、カードアダプタ40からのアクセス要求を受け取ったカードコントローラ100は、アクセスLUNレジスタにセットされているアクセスLUN#と同じ番号のLUN領域(ここでは、LUN0領域)のスタートアドレスおよびエンドアドレスを、LUN管理情報を参照して取得し、カードコントローラ100のレジスタ(不図示)にセットする。第5に、取得したスタートアドレスおよびエンドアドレスに基づいて、アクセスLUN領域として設定されているLUN領域(LUN0領域)中を検索して対応するファイルを読み出す。これにより、メモリカード10のカードコントローラ100は、設定されているアクセスLUN領域へのアクセスを実行することができる。なお、スタートアドレスおよびエンドアドレスの取得は、アクセスLUN#のセットが行なわれた後の最初のアクセス要求時においてのみ実行される。そして、以降のアクセス要求に対しては、レジスタにセットされたスタートアドレス、および、エンドアドレスを利用して、アクセスが実行される。このようにすれば、アクセス効率の面で効果的である。
【0050】
図8の処理<15>以降では、処理<8>の場合と同じLUN0領域に含まれている別のファイルの読み出しのアクセス要求を行なう。ホスト30からカードアダプタ40Bに対して、アプリケーション32からのファイル操作要求に応じて、読み出しのアクセスコマンドをUSBの規格に従って発行する(処理<15>)。このとき、LUN0領域に対するアクセス要求を受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bは、アクセスしようとするLUN領域が前回設定したアクセスLUN領域と同じであるので、アクセスLUN領域をLUN0領域にセットする必要はない。そこで、カードアダプタ40Bでは、カードアダプタコントローラ42Bがメモリカード10に対して読み出しアクセスコマンドを発行して、アクセス要求を行なう(処理<16>)。そして、アクセス要求を受けたメモリカード10では、カードコントローラ100が、アクセスLUN領域にセットされているLUN0領域中から対応するファイルを検索して読み出し、カードアダプタ40Bからの読み出しアクセス要求に対する応答結果として、カードアダプタ40Bに送出する(処理<17>)。カードアダプタ40Bはメモリカード10から受け取ったファイルを、ホスト30からの読み出しアクセス要求に対する応答結果として、ホスト30に送出する(処理<18>)。
【0051】
以上のように、1つのストレージデバイスとして扱われるメモリカード10のLUN0領域に記憶されているファイルを読み出すことができる。
【0052】
次に、ホスト30からカードアダプタ40Bに対して、アプリケーション32からのファイル操作要求に応じて、読み出しのアクセスコマンドをUSBの規格に従って発行する(図9の処理<19>)。ここでは、先にアクセスを行なったLUN0領域ではなく、例えば、LUN2領域に含まれているファイルに対する読み出しのアクセス要求を行なうこととする。
【0053】
この場合、上記処理<8>から処理<14>で示したLUN0領域へのアクセスの場合と同様に、LUN2領域に対するアクセス要求を受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bでは、受け取ったアクセスLUN#(「2」)が、カードアダプタコントローラ42Bのレジスタ(不図示)に、先に設定されていたアクセスLUN#(「0」)とは異なっているので、受け取ったアクセスLUN#(「2」)が新たなアクセスLUN#としてセットされる。そして、カードアダプタ40Bのカードアダプタコントローラ42Bは、USBの規格に従って、LUN2領域をアクセスLUN領域に設定することをメモリカード10に対して要求する(処理<20>)。
【0054】
アクセスLUN領域のセット要求を受けたメモリカード10では、カードコントローラ100が、アクセスLUNセットコマンドに含まれているLUN#、ここでは「2」を、アクセスLUN#として、カードコントローラ100内のアクセスLUNレジスタにセットする(処理<21>)。その後、カードコントローラ100は、完了を示すセット済み応答をカードアダプタ40Bに送出する(処理<22>)。
【0055】
アクセスLUN領域のセット済み応答を受けたカードアダプタ40Bでは、カードアダプタコントローラ42Bがメモリカード10に対して読み出しアクセスコマンドを発行して、読み出しアクセス要求を行なう(処理<23>)。そして、読み出しアクセス要求を受けたメモリカード10では、カードコントローラ100が、アクセスLUN領域にセットされているLUN2領域中を検索して、対応するファイルを読み出し、カードアダプタ40Bに送出する(処理<24>)。カードアダプタ40Bはメモリカード10から受け取ったファイルを、ホスト30からの読み出しアクセス要求に対する応答結果として、ホスト30に送出する(処理<25>)。
【0056】
なお、連続してLUN2領域へのアクセスを実行する場合には、上記処理<15>から処理<18>で示したLUN0領域へのアクセスの場合と同様である。
【0057】
以上のように、1つのストレージデバイスとして扱われるメモリカード10のLUN2領域に記憶されているファイルを読み出すこともできる。
【0058】
なお、上記処理<8>から処理<18>はLUN0領域への読み出しのアクセス動作について示し、処理<19>から処理<25>はLUN2領域への読み出しのアクセス動作について示しているが、LUN1領域およびLUN3領域への読み出しのアクセス動作についても同様である。また、書き込みのアクセス動作についても同様である。
【0059】
以上説明したように、専用のカードアダプタを用いたメモリカード制御装置20Bでは、実施例のメモリカード10のユーザ領域240に構築されている4つのLUN領域のいずれに対しても読み出しあるいは書き込みのアクセスを実行することが可能である。
【0060】
A4.アクティブLUN領域の切り替えに用いられるメモリカード制御装置による切り替え動作:
図11は、メモリカード10のアクティブLUN領域の切り替えに用いられるメモリカード制御装置20Cの構成を示す説明図である。このメモリカード制御装置20Cは、ホスト30Cと、ホスト30Cにメモリカード10を接続するための専用のカードアダプタ40Bとを備えている。
【0061】
ホスト30Cでは、図に示すように、アクティブLUN設定アプリケーション32Cが実行される。ユーザインタフェース38は、アクティブLUN設定アプリケーション32Cが実行されると、アクティブLUN領域設定のためのユーザインタフェース画面を、図示しない表示装置に表示する。なお、このユーザインタフェース画面については、さらに後述する。
【0062】
ユーザがアクティブLUN領域設定のためのユーザインタフェース画面を介して、アクティブLUN領域の設定を変更すると、アクティブLUN設定アプリケーション32Cは、USBインタフェース36を介して、メモリカード10のアクティブLUN領域の切り替えを行なう。このとき、USBインタフェース36は、アクティブLUN設定アプリケーション32Cから入力されるアクティブLUN変更要求に応じて、カードアダプタ40Bのカードアダプタコントローラ42Bがメモリカード10に対して発行するアクティブLUN変更コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このアクティブLUN変更コマンドは、SDおよびSDHCの規格には存在していない。そこで、アクティブLUN変更コマンド(例えば、[CHANGE_ACTIVE_AREA])を新たに定義して用いることとする。
【0063】
カードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったアクティブLUN変更コマンドを、カードバス46を介してメモリカード10に対して発行し、メモリカード10のアクティブLUN領域の変更動作を制御する。
【0064】
メモリカード10は、上記したように、カードコントローラ100を備えている。そして、このカードコントローラ100は、以下で説明するように、上記したアクティブLUN変更コマンドにパラメータとして含まれているLUN#を、LUN管理領域220中のアクティブLUN#の記憶領域に書き込んで、アクティブLUN領域の設定を変更する。
【0065】
図12および図13は、図11に示したメモリカード制御装置20Cによるメモリカード10のアクティブLUN領域の切り替え動作例について示す説明図である。まず、カードスロット44にメモリカードが装着されると、USBデバイスとしてのカードアダプタ40Bは、メモリカード制御装置20Bの場合と同様に、USBデバイスが接続されたことを示すUSB接続信号をホスト30Cに送出する。これにより、ホスト30Cは、USBデバイスが接続されたことを検出し(処理<1>)、カードアダプタ40Bとの間で初期化処理を実行する(処理<2>)。この結果、ホスト30Cは、カードアダプタ40Bに装着されたメモリカード、本実施例ではメモリカード10を、USBクラスがマスストレージデバイスのデバイスであると認識する。
【0066】
そして、ホスト30Cは、初期化処理を終了すると、アクティブLUN設定アプリケーション32Cを開始し(処理<4>)、まず、USBの規格に従って最大LUN#の取得をカードアダプタ40Bに対して要求する(処理<5>)。このとき、カードアダプタ40Bは、装着されているメモリカード、本実施例ではメモリカード10に対して、最大LUN#取得コマンド([GET_MAX_LUN])を発行し、最大LUN#の取得を要求する(処理<6>)。このとき、メモリカードが実施例のメモリカード10のような複数の領域に区分可能なメディア(対応メディア)ではなく、複数の領域に区分できないメディア(非対応メディア)の場合には、最大LUN#の取得を要求するコマンドに対して何ら応答しない。一方、対応メディアの場合には、最大LUN#を応答する。具体的には、例えば、実施例のメモリカード10は、LUN管理領域220に記憶されている最大LUN#(図2の例では、「3」)を読み出して、カードアダプタ40Bに対して応答する(処理<7>)。
【0067】
最大LUN#の取得を要求したカードアダプタ40Bのカードアダプタコントローラ42Bは、メモリカードから妥当な応答が有ったか否かを判断する(処理<8>)。妥当な応答が無い場合には、装着されたメモリカードは非対応メディアであると判定し、ホスト30Cに対して非対応メディアである旨の応答を送出する(処理<9>)。非対応メディア応答を受けたホスト30Cは、アクティブLUN設定アプリケーション32Cの実行を終了する(処理<10>)。一方、本実施例のメモリカード10のような対応メディアの場合には、妥当な応答として最大LUN#を応答が有り、この場合には、受け取った最大LUN#をホスト30に送出する(処理<11>)。
【0068】
最大LUN#を受け取ったホスト30CのアクティブLUN設定アプリケーション32Cは、現在設定されているアクティブLUN#の取得を、カードアダプタ40Bに対して要求する(処理<12>)。このとき、USBインタフェース36は、アクティブLUN設定アプリケーション32CからのアクティブLUN#の取得要求に応じて、カードアダプタ40Bがメモリカード10に対して発行するアクティブLUN取得コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このアクティブLUN取得コマンドは、SDおよびSDHCの規格には存在していない。そこで、アクティブLUN取得コマンド(例えば、「GET_ACTIVE_LUN」)を新たに定義して用いることとする。
【0069】
パッケージ化されたアクティブLUN取得コマンドをホスト30Cから受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったアクティブLUN取得コマンドをメモリカード(メモリカード10)に対して発行し、アクティブLUN#の取得要求を行なう(処理<13>)。
【0070】
そして、アクティブLUN#の取得要求を受けたメモリカード(メモリカード10)では、LUN管理領域220に記憶されているアクティブLUN#を読み出して、カードアダプタ40Bに対して応答する(処理<14>)。具体的には、例えば、実施例のメモリカード10は、LUN管理領域220に記憶されているアクティブLUN#、図2の例では、「1」を読み出して、カードアダプタ40Bに対して応答する。
【0071】
アクティブLUN#を受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったアクティブLUN#を、ホスト30CからのアクティブLUN#の取得要求に対する応答結果として、USBの規格に応じてホスト30Cに送出する(処理<15>)。
【0072】
最大LUN#およびアクティブLUN#を受け取ったホスト30CのアクティブLUN設定アプリケーション32Cは、ユーザインタフェース38を介して、アクティブLUN領域設定画面の表示を実行する(処理<16>)。
【0073】
図14は、アクティブLUN領域設定画面の例を示す説明図である。このアクティブLUN領域設定画面UIFには、アクティブLUN領域入力欄IP、選択タブTU,TD、現在のLUN領域の設定状態を示すLUN領域設定状態表示画面SP、設定ボタンB1、および、終了ボタンB2が表示されている。なお、LUN領域設定状態表示画面SPにおいてドットハッチングで示されているLUN領域がアクティブLUN領域として設定されているLUN領域を示している。
【0074】
アクティブLUN領域の設定は、キーボードやマウス等の図示しない入力手段を用いて、ユーザが、アクティブLUN領域入力欄IPに、アクティブLUN領域として設定したいLUN領域を入力することにより実行される。また、選択タブTU,TDを用いてアクティブLUN領域として設定したいLUN領域を選択することによっても実行される。そして、設定ボタンB1を押すことにより、アクティブLUN領域として設定したLUN領域の番号(アクティブLUN#)がアクティブLUN設定アプリケーション32Cに通知される。なお、LUN領域設定状態表示画面SPにおいてクロスハッチングで示されているLUN領域がアクティブLUN領域として設定するために選択されたLUN領域を示している。なお、後述するようにして、アクティブLUN領域の設定が変更された場合には、LUN領域設定状態表示画面SPにおけるアクティブLUN領域の表示は変更される。
【0075】
ユーザインタフェース38からアクティブLUN領域設定画面UIFを介して入力されたアクティブLUN#の通知を受けたアクティブLUN設定アプリケーション32Cは、USBインタフェース36を介してカードアダプタ40Bに対して、メモリカード10のアクティブLUN領域の変更要求を行なう(処理<17>)。このとき、USBインタフェース36は、アクティブLUN設定アプリケーション32Cから入力されるアクティブLUN変更要求に応じて、カードアダプタ40Bがメモリカード10に対して発行するアクティブLUN変更コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このアクティブLUN変更コマンドは、SDおよびSDHCの規格には存在していない。そこで、上記したアクティブLUN変更コマンド(例えば、[CHANGE_ACTIVE_AREA])を新たに定義して用いることとする。アクティブLUN変更コマンドには、新たに設定するアクティブLUN領域のLUN#(本例では、アクティブLUN#:n,n=0〜3のいずれか)がパラメータとして含まれる。
【0076】
そして、カードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったアクティブLUN変更コマンドをメモリカード(メモリカード10)に対して発行し、アクティブLUN領域の変更要求を行なう(処理<18>)。
【0077】
アクティブLUN領域の変更要求を受けたメモリカード(メモリカード10)では、LUN管理領域220に記憶されているアクティブLUN#を、アクティブLUN変更コマンドにパラメータとして含まれていたLUN#に書き換える(処理<19>)。そして、書き換えが正常に終了した場合には変更完了応答を返し、書き換えが正常に終了しなかった場合には変更不可応答を返す(処理<20>)。
【0078】
アクティブLUN領域の変更要求に対応する応答結果を受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bは、ホスト30CのアクティブLUN設定アプリケーション32Cに対して、受け取った応答結果に応じた応答を返す(処理<21>)。
【0079】
そして、アクティブLUN設定画UIFの終了ボタンB2が押されて、アクティブLUN設定アプリケーションが終了されるまで(処理<22>)、処理<17>から処理<21>までの処理が実行される。
【0080】
以上のようにして、実施例のメモリカード10のアクティブLUN領域を変更することができる。これにより、図3に示したメモリカード制御装置20によりメモリカード10へのアクセスを実行した場合には、変更後のアクティブLUN領域へのアクセスが実行されることになる。
【0081】
A5.LUN領域の設定に用いられるメモリカード制御装置によるLUN領域設定動作:
図15は、メモリカードのLUN領域の設定に用いられるメモリカード制御装置20Dの構成を示す説明図である。このメモリカード制御装置20Dは、ホスト30Dと、ホスト30Dに実施例のメモリカード10を接続するための専用のカードアダプタ40Bとを備えている。
【0082】
ホスト30Dでは、図に示すように、LUN設定アプリケーション32Dが実行される。ユーザインタフェース38は、LUN設定アプリケーション32Dが実行されると、LUN設定のためのユーザインタフェース画面を、図示しない表示装置に表示する。なお、このユーザインタフェース画面については、さらに後述する。
【0083】
ユーザが、LUN設定のためのユーザインタフェース画面を介して、LUN領域の設定を実行すると、LUN設定アプリケーション32Dは、USBインタフェース36を介して、メモリカード10のメモリコア200に含まれるユーザ領域240のLUN領域の設定を行なう。このとき、USBインタフェース36は、アクティブLUN設定アプリケーション32Dから入力されるLUN設定要求に応じて、カードアダプタ40Bがメモリカード10に対して発行するLUN設定コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このLUN設定コマンドは、SDおよびSDHCの規格には存在していない。そこで、LUN設定コマンド(例えば、[SET_LUN])を新たに定義して用いることとする。なお、このLUN設定コマンドには、メモリカード10のLUN管理領域220に記憶されるべきLUN管理情報(図2参照)がパラメータとして含まれる。
【0084】
カードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったLUN設定コマンドを、メモリカード10に対して発行し、LUN領域設定動作を制御する。
【0085】
メモリカード10は、上記したように、カードコントローラ100を備えている。そして、このカードコントローラ100は、LUN設定コマンドに含まれているLUN管理情報をLUN管理領域220に書き込んで、LUN領域の設定を実行する。
【0086】
図16および図17は、図15に示したメモリカード制御装置20Dによるメモリカード10のLUN領域の設定動作例について示す説明図である。図16および図17に示した処理のうち、処理<1>から処理<15>によるLUN領域設定画面が表示されるまでの処理は、図12および図13に示した処理<1>から処理<15>によるアクティブLUN領域設定画面が表示されるまでの処理と基本的に同じである。但し、処理<4>ではアクティブLUN設定アプリケーション32Cではなく、LUN設定アプリケーション32Dが開始され、処理<10>ではアクティブLUN設定アプリケーション32Dが終了される。
【0087】
最大LUN#およびアクティブLUN#を受け取ったホスト30CのアクティブLUN設定アプリケーション32Cは、ユーザインタフェース38を介して、LUN領域設定画面の表示を実行する(処理<16>)。
【0088】
図18は、LUN領域設定画面の例を示す説明図である。このLUN領域設定画面UIF2には、LUN領域数入力欄IP1、LUN領域ごとのサイズを入力するサイズ入力欄IP2、アクティブLUN領域入力欄IP、および、選択タブTU,TDが表示されている。さらに、現在のLUN領域の設定状態を示すLUN領域設定状態表示画面SP、設定ボタンB1、および、終了ボタンB2が表示されている。なお、LUN領域設定状態表示画面SPにおいてドットハッチングで示されているLUN領域がアクティブLUN領域として設定されているLUN領域を示している。なお、LUN領域数入力欄IP1に入力された数に応じて、LUN領域設定状態表示画面SPに表示される領域数およびサイズ入力欄IP2の入力欄数が変更されて表示される。また、LUN領域設定状態表示画面SPにおいてクロスハッチングで示されているLUN領域がアクティブLUN領域として設定するために選択されたLUN領域を示している。なお、後述するようにして、アクティブLUN領域の設定が変更された場合には、LUN領域設定状態表示画面SPにおけるアクティブLUN領域の表示は変更される。
【0089】
各入力欄への入力を行い、設定ボタンB1を押すことにより、設定したLUN管理情報がLUN設定アプリケーション32Dに通知される。ユーザインタフェース38からLUN領域設定画面UIF2を介して入力されたLUN管理情報の通知を受けたLUN設定アプリケーション32Dは、USBインタフェース36を介してカードアダプタ40Bに対して、メモリカード10のLUN領域の設定要求を行なう(処理<17>)。このとき、USBインタフェース36は、LUN設定アプリケーション32Dから入力されるLUN設定要求に応じて、カードアダプタ40Bがメモリカード10に対して発行するLUN設定コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このLUN設定コマンドは、SDおよびSDHCの規格には存在していない。そこで、上記したLUN設定コマンド([SET_LUN])を新たに定義して用いることとする。LUN設定コマンドには、LUN管理情報がパラメータとして含まれる。
【0090】
そして、カードアダプタ40Bのカードアダプタコントローラ42Bは、受け取ったLUN設定コマンドをメモリカード(メモリカード10)に対して発行し、LUN領域の設定要求を行なう(処理<18>)。LUN領域の設定要求を受けたメモリカード(メモリカード10)では、LUN管理領域220に記憶されているLUN管理情報を、LUN設定コマンドにパラメータとして含まれていたLUN管理情報に書き換える(処理<19>)。そして、書き換えが正常に終了した場合には設定完了応答を返し、書き換えが正常に終了しなかった場合には設定不可応答を返す(処理<20>)。
【0091】
LUN領域の設定要求に対応する応答結果を受け取ったカードアダプタ40Bのカードアダプタコントローラ42Bは、ホスト30DのLUN設定アプリケーション32Dに対して、受け取った応答結果に応じた応答をホスト30Dに返す(処理<21>)。
【0092】
そして、LUN設定画UIF2の終了ボタンB2が押されて、LUN設定アプリケーション32Dが終了されるまで(処理<22>)、処理<17>から処理<21>までの処理が実行される。
【0093】
以上のようにして、実施例のメモリカード10のLUN領域を設定することができる。
【0094】
B.第2実施例:
B1.メモリカードの構成:
図19は、第2実施例としてのメモリカード10Aの内部構成を示すブロック図である。このメモリカード10Aは、カードコントローラ100Aと、メモリコア200Aとを備える。メモリコア200Aは、LUN管理領域220Aに記憶されるLUN管理情報が、第1実施例のメモリカード10のメモリコア200のLUN管理領域220に記憶されるLUN管理情報の構成と異なっている。また、LUN管理領域220Aに記憶されるLUN管理情報の違いから、カードコントローラ100Aが、ユーザ領域240A中にLUN領域を構築し管理するために実行する制御動作が、第1実施例のメモリカード10のカードコントローラ100とは異なっている。
【0095】
図20は、メモリコア200AのLUN管理領域220Aに記憶されるLUN管理情報について示す説明図である。LUN管理領域220Aには、最大LUN#と、LUN0領域〜LUN3領域の領域ごとに、LUN#と、スタートアドレスと、エンドアドレスと、がLUN管理情報として記憶されている。すなわち、LUN管理情報220Aには、LUN管理情報220にはLUN管理情報として記憶されていたアクティブLUN#は記憶されない。
【0096】
本実施例のメモリカード10Aは、上記したLUN管理情報の違いに起因して、以下で説明するように、SDメモリカード用のカードアダプタを用いたメモリカード制御装置によるアクセス動作におけるカードコントローラによる制御動作に違いがある。また、アクティブLUN領域の切り替えに用いられるメモリカード制御装置による切り替え動作におけるカードコントローラによる制御動作に違いがある。
【0097】
B2.SDメモリカード用のカードアダプタを用いたメモリカード制御装置によるアクセス動作:
本実施例のメモリカード10Aでは、上記したように、アクティブLUN#がLUN管理情報としてLUN管理領域220Aに記憶されていない。このため、本実施例のメモリカード10Aは、SDメモリカード用のカードアダプタを用いたメモリカード制御装置20によるアクセス動作において、アクティブLUN#により管理されているアクティブLUN領域に対してアクセス動作を実行することはできない。そこで、本実施例のメモリカード10Aのカードコントローラ100Aは、LUN#が「0」のLUN領域、すなわち、LUN0領域をアクティブLUN領域であるとしてアクセス動作を実行する。
【0098】
これにより、SDメモリカード用のカードアダプタを用いたメモリカード制御装置20によるアクセス動作において、常にLUN0領域をアクティブLUN領域としてアクセス動作を実行することができる。
【0099】
B3.アクティブLUN領域の切り替えに用いられるメモリカード制御装置による切り替え動作:
図21は、メモリカード10AのアクティブLUN領域の切り替えを可能とするメモリカード制御装置20Eの構成を示す説明図である。このメモリカード制御装置20Eは、ホスト30Eと、ホスト30Eに実施例のメモリカード10Aを接続するための専用のカードアダプタ40Eとを備えている。
【0100】
ホスト30Eでは、図に示すように、アクティブLUN設定アプリケーション32Eが実行される。ユーザインタフェース38は、アクティブLUN設定アプリケーション32Eが実行されると、アクティブLUN領域設定のためのユーザインタフェース画面を、図示しない表示装置に表示する。なお、このユーザインタフェース画面については、さらに後述する。
【0101】
ユーザがアクティブLUN領域設定のためのユーザインタフェース画面を介して、アクティブLUN領域の設定を変更すると、アクティブLUN設定アプリケーション32Cは、USBインタフェース36を介して、メモリカード10AのアクティブLUN領域の切り替えを行なう。このとき、USBインタフェース36は、アクティブLUN設定アプリケーション32Cから入力されるアクティブLUN変更要求に応じて、カードアダプタ40Eがメモリカード10Aに対して発行するアクティブLUN変更コマンドを、USBの規格に従ってパッケージ化して送信する。ただし、このアクティブLUN変更コマンドは、SDおよびSDHCの規格には存在していない。そこで、第1実施例と同様に、アクティブLUN変更コマンド(例えば、[CHANGE_ACTIVE_AREA])を新たに定義して用いることとする。
【0102】
カードアダプタ40Eのカードアダプタコントローラ42Eは、受け取ったアクティブLUN変更コマンドを、カードバス46を介してメモリカード10Aに対して発行し、メモリカード10AのアクティブLUN領域の変更動作を制御する。
【0103】
メモリカード10Aは、上記したように、カードコントローラ100Aを備えている。そして、このカードコントローラ100Aは、以下で説明するように、上記したアクティブLUN変更コマンドに基づいて、LUN管理領域220中に記憶されている各LUN領域のLUN#を書き換えて、アクティブLUN領域の設定を変更する。
【0104】
図22および図23は、図21に示したメモリカード制御装置20Eによるメモリカード10AのアクティブLUN領域の切り替え動作例について示す説明図である。なお、図22および図23に示した処理動作のうち、処理<1>から処理<10>は、図12に示した処理と同じである。
【0105】
処理<8>の判断において、妥当な応答、すなわち、最大LUN#の応答が有った場合には、受け取った最大LUN#が「0」であるか否かを判断する(処理11a>)。最大LUN#が「0」であった場合には、複数のLUN領域に区分されていないメディア(非区分メディア)であると判定し、ホスト30Eに対して非区分メディアである旨の応答を送出する(処理11b>。非区分メディア応答を受けたホスト30Eは、アクティブLUN設定アプリケーション32Eの実行を終了する(処理<11c>)。一方、最大LUN#が「0」でなかった場合には、複数のLUN領域に区分されているメディア(区分メディア)であると判定し、受け取った最大LUN#をホスト30Eに送出する(処理<11d>)。
【0106】
最大LUN#を受け取ったホスト30EのアクティブLUN設定アプリケーション32Eは、ユーザインタフェース38を介して、アクティブLUN領域設定画面の表示を実行する(処理<16a>)。
【0107】
図24は、アクティブLUN領域設定画面の例を示す説明図である。このアクティブLUN領域設定画面UIF4は、図14に示したアクティブLUN領域設定画面UIFの、アクティブLUN領域入力欄IP、選択タブTU,TD、LUN領域設定状態表示画面SP、および、設定ボタンB1に代えて、アクティブLUN変更ボタンBTが設けられている。
【0108】
上記アクティブLUN変更ボタンBTを押すことにより、ユーザインタフェース38からアクティブLUN設定アプリケーション32Cに対して、アクティブLUN領域の変更の指示が通知される。ユーザインタフェース38からアクティブLUN領域の変更指示の通知を受けたアクティブLUN設定アプリケーション32Eは、USBインタフェース36を介してカードアダプタ40Eに対して、メモリカード10AのアクティブLUN領域の変更要求を行なう(処理<17a>)。この変更要求は、上記したように、USBの規格に従ってパッケージ化されたアクティブLUN変更コマンド([CHANGE_ACTIVE_AREA])を、カードアダプタ40Eに送信することにより実行される。ただし、新たに設定するアクティブLUN領域のLUN#は含まれていない。
【0109】
そして、カードアダプタ40Eのカードアダプタコントローラ42Eは、受け取ったアクティブLUN変更コマンドをメモリカード(メモリカード10A)に対して発行し、アクティブLUN領域の変更要求を行なう(処理<18a>)。
【0110】
アクティブLUN領域の変更要求を受けたメモリカード(メモリカード10A)では、LUN管理領域220Aに記憶されている各LUN領域のLUN#を、それぞれ「1」インクリメントした番号に変更する(処理<19a>)。ただし、最大LUN#に等しいLUN領域のLUN#は、「0」に変更する。例えば、図19および図20に示すようにユーザ領域240Aが4つのLUN領域に区分されている場合には、LUN#の「0」を「1」に、「1」を「2」に、「2」を「3」に、そして、「3」を「0」に変更する。
【0111】
そして、書き換えが正常に終了した場合には変更完了応答を返し、書き換えが正常に終了しなかった場合には変更不可応答を返す(処理<20>)。
【0112】
アクティブLUN領域の変更要求に対応する応答結果を受け取ったカードアダプタ40Eのカードアダプタコントローラ42Eは、ホスト30EのアクティブLUN設定アプリケーション32Eに対して、受け取った応答結果に応じた応答を返す(処理<21>)。
【0113】
以上のようにして、実施例のメモリカード10AのアクティブLUN領域を変更することができる。
【0114】
B4.アクティブLUN領域の切り替えに用いられるメモリカード制御装置の変形例:
図21に示したアクティブLUN領域の切り替えに用いられるメモリカード制御装置20Eは、ホスト30Eと、ホスト30Eに実施例のメモリカード10Aを接続するための専用のカードアダプタ40Eとを備える構成を例に示したが、これに限定されるものではなく、例えば、専用のカードアダプタのみで構成することも可能である。
【0115】
図25は、アクティブLUN領域の切り替えに用いられるメモリカード制御装置としてのカードアダプタ40Fの構成を示す説明図である。このカードアダプタ40Fは、アクティブLUN切り替えボタン48Fと、カードアダプタコントローラ42Fと、を備えている。
【0116】
ユーザがアクティブLUN切り替えボタン48Fを押すと、カードアダプタコントローラ42Fが、図21に示したカードアダプタコントローラ42Eと同様に、アクティブLUN変更コマンドを発行する。これにより、メモリカード制御装置20Eと同様に、実施例のメモリカード10AのアクティブLUN領域を変更することができる。
【0117】
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0118】
(1)上記実施例では、実施例のメモリカード10の各LUN領域へのアクセスを可能とするメモリカード制御装置20Bと、実施例のメモリカードのアクティブLUN領域の切り替えを可能とするメモリカード制御装置20Cと、実施例のメモリカード10のLUN領域の設定を可能とするメモリカード制御装置20Dを、それぞれ、別々の制御装置として説明した。しかしながら、実施例のメモリカード10の各LUN領域へのアクセスを実現する機能、アクティブLUN領域の切り替えを可能とする機能、および、LUN領域の設定を可能とする機能を有するメモリカード制御装置であってもよい。
【0119】
(2)上記実施例では、ホストと、カードアダプタとが独立した構成のメモリカード制御装置を例に説明しているが、これに限定されるものではなく、パーソナルコンピュータや、PDA、携帯電話等の携帯端末、データ処理装置等のホストにカードアダプタが内蔵された構成としてもよい。
【0120】
(3)上記実施例では、第1および第2の規格としてSDおよびSDHCの規格に従ったメモリカードを例に説明しているが、これに限定されるものではなく、種々の規格のメモリカードにおいて適用可能である。
【図面の簡単な説明】
【0121】
【図1】本発明の第1実施例としてのメモリカード10の内部構成を示すブロック図である。
【図2】メモリコア200のLUN管理領域220に記憶されるLUN管理情報について示す説明図である。
【図3】SDメモリカード用のカードアダプタを用いたメモリカード制御装置20の構成を示す説明図である。
【図4】図3に示したメモリカード制御装置20によるメモリカード10へのアクセス動作について示す説明図である。
【図5】メモリカード制御装置20を用いた場合に実行されるメモリカード10におけるアクセス動作の概要について示す説明図である。
【図6】専用のカードアダプタを用いたメモリカード制御装置20Bの構成を示す説明図である。
【図7】図6に示したメモリカード制御装置20Bによるメモリカード10へのアクセス動作について示す説明図である。
【図8】図6に示したメモリカード制御装置20Bによるメモリカード10へのアクセス動作について示す説明図である。
【図9】図6に示したメモリカード制御装置20Bによるメモリカード10へのアクセス動作について示す説明図である。
【図10】メモリカード制御装置20Bを用いた場合に実行されるメモリカード10におけるアクセス動作の概要について示す説明図である。
【図11】メモリカード10のアクティブLUN領域の切り替えに用いられるメモリカード制御装置20Cの構成を示す説明図である。
【図12】図11に示したメモリカード制御装置20Cによるメモリカード10のアクティブLUN領域の切り替え動作例について示す説明図である。
【図13】図11に示したメモリカード制御装置20Cによるメモリカード10のアクティブLUN領域の切り替え動作例について示す説明図である。
【図14】アクティブLUN領域設定画面の例を示す説明図である。
【図15】メモリカードのLUN領域の設定に用いられるメモリカード制御装置20Dの構成を示す説明図である。
【図16】図15に示したメモリカード制御装置20Dによるメモリカード10のLUN領域の設定動作例について示す説明図である。
【図17】図15に示したメモリカード制御装置20Dによるメモリカード10のLUN領域の設定動作例について示す説明図である。
【図18】LUN領域設定画面の例を示す説明図である。
【図19】第2実施例としてのメモリカード10Aの内部構成を示すブロック図である。
【図20】メモリコア200AのLUN管理領域220Aに記憶されるLUN管理情報について示す説明図である。
【図21】モリカード10AのアクティブLUN領域の切り替えを可能とするメモリカード制御装置20Eの構成を示す説明図である。
【図22】図21に示したメモリカード制御装置20Eによるメモリカード10AのアクティブLUN領域の切り替え動作例について示す説明図である。
【図23】図21に示したメモリカード制御装置20Eによるメモリカード10AのアクティブLUN領域の切り替え動作例について示す説明図である。
【図24】アクティブLUN領域設定画面の例を示す説明図である。
【図25】アクティブLUN領域の切り替えに用いられるメモリカード制御装置としてのカードアダプタ40Fの構成を示す説明図である。
【符号の説明】
【0122】
10…メモリカード
10A…メモリカード
20…メモリカード制御装置
20B…メモリカード制御装置
20C…メモリカード制御装置
20D…メモリカード制御装置
20E…メモリカード制御装置
30…ホスト
30C…ホスト
30D…ホスト
30E…ホスト
32…アプリケーション
32C…アクティブLUN設定アプリケーション
32D…LUN設定アプリケーション
32E…アクティブLUN設定アプリケーション
34…ファイルシステム
36…USBインタフェース
38…ユーザインタフェース
40…カードアダプタ
40B…カードアダプタ
40E…カードアダプタ
40F…カードアダプタ
42…カードアダプタコントローラ
42B…カードアダプタコントローラ
42E…カードアダプタコントローラ
42F…カードアダプタコントローラ
44…カードスロット
46…カードバス
48F…アクティブLUN切り替えボタン
100…カードコントローラ
102…アクセスLUNレジスタ
100A…カードコントローラ
200…メモリコア
200A…メモリコア
210…システム領域
220…LUN管理領域
220A…LUN管理領域
230…保護領域
240…ユーザ領域
240A…ユーザ領域
UIF…アクティブLUN領域設定画面
IP…アクティブLUN領域入力欄
UIF2…LUN領域設定画面
UIF4…アクティブLUN領域設定画面
BT…アクティブLUN変更ボタン
B1…設定ボタン
B2…終了ボタン
TU,TD…選択タブ
IP2…サイズ入力欄
SP…LUN領域設定状態表示画面

【特許請求の範囲】
【請求項1】
メモリカードであって、
第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有する不揮発性メモリと、
前記不揮発性メモリへのアクセスを制御する制御部と、を備え、
前記不揮発性メモリは複数のユーザ領域を有しており、
前記制御部は、前記ユーザ領域を論理ユニット番号によって管理しており、前記第1の規格に従ったアクセスコマンドを受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、前記アクセスコマンドに応じたアクセス動作を実行する、
メモリカード。
【請求項2】
請求項1記載のメモリカードであって、
前記制御部は、前記第1の規格に対して上位互換性を有し、前記第1の規格よりも大きな最大メモリ容量が定められた第2の規格に従ったアクセスコマンドを受けた場合において、前記アクティブユーザ領域に対してのみ前記アクセスコマンドに応じたアクセス動作を実行する
ことを特徴とするメモリカード。
【請求項3】
請求項1または請求項2記載のメモリカードであって、
前記制御部は、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
【請求項4】
請求項3記載のメモリカードであって、
前記制御部は、前記各ユーザ領域の論理ユニット番号を変更することによって前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
【請求項5】
請求項3記載のメモリカードであって、
前記特定の論理ユニット番号を記憶するためのアクティブユーザ領域記憶部を有し、
前記制御部は、
前記切り替えコマンドを受けた場合において、前記切り替えコマンドに含まれる論理ユニット番号を、前記あらかじめ選択された論理ユニット番号として前記アクティブユーザ領域記憶部に記憶し、
前記アクティブユーザ領域記憶部に記憶された前記あらかじめ選択された論理ユニット番号と一致する論理ユニット番号が付されているユーザ領域を、前記アクティブユーザ領域とすることにより、前記アクティブユーザ領域を切り換える
ことを特徴とするメモリカード。
【請求項6】
請求項1ないし請求項5のいずれかに記載のメモリカードであって、
前記制御部は、前記ユーザ領域の設定コマンドを受けた場合において、前記設定コマンドに含まれるユーザ領域設定情報に基づいて前記不揮発性メモリに用意されるユーザ領域を設定する
ことを特徴とするメモリカード。
【請求項7】
請求項1ないし請求項6のいずれかに記載のメモリカードであって、
前記制御部は、アクセスを希望するユーザ領域を示すアクセス先論理ユニット番号を保持するアクセス先論理ユニット番号保持部を含み、
前記アクセス先論理ユニット番号の設定コマンドを受けた場合において、前記設定コマンドに含まれる論理ユニット番号を、前記アクセス先論理ユニット番号として前記アクセス先論理ユニット番号保持部に記憶し、
前記アクセスコマンドを受けた場合において、前記アクセス先論理ユニット番号と一致する論理ユニット番号が付されているユーザ領域に対して、前記アクセスコマンドに応じたアクセス動作を実行する
ことを特徴とするメモリカード。
【請求項8】
論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードを制御するメモリカード制御装置であって、
あるユーザ領域へのアクセスを実行する場合には、
第1に、アクセスを希望するユーザ領域を示す論理ユニット番号を、アクセス先論理ユニット番号の設定コマンドに含めて前記メモリカードに送信することによって、前記アクセスを希望するユーザ領域を指定し、
第2に、アクセスコマンドを送信することにより、前記アクセスを希望するユーザ領域へのアクセスを制御する
ことを特徴とするメモリカード制御装置。
【請求項9】
メモリカードを制御するメモリカード制御装置であって、
前記メモリカードは、
第1の規格で定められた最大メモリ容量よりも大きいメモリ容量を有し、複数のユーザ領域を有する不揮発性メモリと、
前記ユーザ領域を論理ユニット番号によって管理しており、前記第1の規格に従ったアクセス要求を受けた場合において、あらかじめ選択された論理ユニット番号が付されているユーザ領域をアクティブユーザ領域として、前記アクセス要求に応じたアクセス動作を実行するとともに、前記アクティブユーザ領域の切り替えコマンドを受けた場合に、前記アクティブユーザ領域を切り換える制御部と、を備えており、
前記メモリカード制御装置は、
前記アクティブユーザ領域の切り替えコマンドを前記メモリカードに対して送出することにより、前記アクティブユーザ領域の切り替えを制御する
ことを特徴とするメモリカード制御装置。
【請求項10】
論理ユニット番号により管理される複数のユーザ領域を有する不揮発性メモリからなるメモリカードを制御するメモリカード制御方法であって、
あるユーザ領域へのアクセスを実行する場合には、
第1に、アクセスを希望するユーザ領域を示す論理ユニット番号を、アクセス先論理ユニット番号の設定コマンドに含めて前記メモリカードに送信することによって、前記アクセスを希望するユーザ領域を指定し、
第2に、アクセスコマンドを送信することにより、前記アクセスを希望するユーザ領域へのアクセスを制御する
ことを特徴とするメモリカード制御方法。
【請求項11】
メモリカードを制御するメモリカード制御方法であって、
前記メモリカードは、
第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

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2010−49530(P2010−49530A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−213899(P2008−213899)
【出願日】平成20年8月22日(2008.8.22)
【出願人】(390040187)株式会社バッファロー (378)
【Fターム(参考)】