以下、図面を参照して、本発明の実施形態について説明する。
(第1の実施形態)
図1に示すように、本発明の第1の実施形態に係るインタフェース制御装置100は、メモリ制御インタフェース101、ホストインタフェース102、無線インタフェース103及びインタフェース制御部110を有する。インタフェース制御装置100は、例えば、図1に示すようにメモリカード200の内部に設けられるコントローラ等の専用回路として構成されてもよいし、メモリカード200とホスト機器300とを接合するアダプタとして構成されてもよいし、アダプタ内部に設けられる専用回路として構成されてもよい。また、本実施形態に係るインタフェース制御装置100は、図16に示すように、ホスト機器300の内部に設けられる構成とすることもできる。ホストコントローラとは、ホスト機器300の内部に設けられ、メモリカード200を制御するためのコントローラである。実際には図1の構成においても、ホストインタフェース102は、ホスト機器300内の図示しないホストコントローラに接続される。図1及び図16は、インタフェース制御装置100の具体的実装態様において異なるものの、本質的な基本構成は同じであるといえる。また、インタフェース制御装置100をホスト機器300の内部に設ける構成であっても、ホスト機器300の基本的なアーキテクチャの変更は必要なく、単に、ホストコントローラとメモリカードを挿入するためのカードスロットとの間に、インタフェース制御装置100を配置して実装しているにすぎない。以下の説明において、インタフェース制御装置100は図1に示すようなメモリカード200の内部に設けられる専用回路として構成されているものとする。
メモリカード200は、例えば、SDカード、mini SDカード、micro SDカード等のいわゆるSD規格に関連するメモリカードであってもよいし、MMC(Multi-Media Card)を含むその他のメモリカードであってもよい。メモリカード200は、データを記憶するためのフラッシュメモリ201と、当該フラッシュメモリ201に対して制御を行ってデータの読み書き(Read/Write)を行うメモリ制御部202(例えば、NANDコントローラ)とを有する。
また、図13に示すように、インタフェース制御装置100には切り替え部105が更に設けられてもよい。切り替え部105は、ホスト機器300がフラッシュメモリ201の記憶容量を問い合せるためのコマンドに対して記憶容量が非零であること(ホスト機器300からメモリ制御部202へのアクセスが可能であること)を示す通常のレスポンスを送信する第1の動作モードと、上記コマンドに対して記憶容量が零であること(ホスト機器300からメモリ制御部202へのアクセスが不可能であること)を示す特殊なレスポンスを送信する第2の動作モードとの間でインタフェース制御部110の動作モードを切り替える。切り替え部105は、例えばSDカードにおけるいわゆるロックスイッチのようなユーザが任意に切り替え可能なディップスイッチとして構成されてもよいし、ソフトウェアを介した切り替え指示を受理する構成でもよい。このような切り替え部105の作用によって、ホスト機器300は、外部機器からメモリ制御部202へのアクセスが行われる以前に限り当該メモリ制御部202へのアクセスが許容されるスレーブ機器として機能したり(第1の動作モード)、メモリ制御部202へのアクセスは拒絶されるものの無線インタフェース103を介した外部の記憶メディアへのアクセスが許容されるマスター機器として機能したり(第2の動作モード)する。また、図16と同様に、インタフェース制御装置100をホスト機器300内に内蔵した場合には、切り替え部105もホスト機器300内に内蔵されることになる。この場合においても、切り替え部105はユーザが任意に切り替え可能なディップスイッチとして構成されても良いし、ソフトウェアを介した切り替え指示を受理する構成でも良い。
ホスト機器300は、例えばデジタルカメラ、携帯電話機、PC等の情報処理装置であって、メモリカード200を差し込むためのカードスロットを備える。
メモリ制御インタフェース101は、インタフェース制御部110と、メモリ制御部202との間でデータの送受信を行うためのインタフェースである。ホストインタフェース102は、インタフェース制御部110と、ホスト機器300との間でデータの送受信を行うためのインタフェースであって複数の信号線を有する。通常のメモリカードは、メモリ制御部の内部にホスト機器との間でデータの送受信を行うためのホストインタフェースを包含しているが、インタフェース制御装置100はメモリ制御部202とホスト機器300との間に配置されるため、ホストインタフェース102が別途必要となる。ホスト機器300からの信号は、後述するインタフェース制御部110によって解析され、必要に応じてメモリ制御インタフェース101を介してメモリ制御部202に送信される。メモリ制御部202の構成を特に変更しない場合であれば、ホスト機器300がホストインタフェース102を介して送信する信号と、メモリ制御インタフェース101を介してメモリ制御部202に送信される信号とは基本的に同一である。また、このとき、メモリ制御部202がメモリ制御インタフェース101に送信する信号と、ホストインタフェース102がホスト機器300に送信する信号も基本的に同一である。
無線インタフェース103は、インタフェース制御部110とホスト機器300とは異なる外部機器に接続される無線インタフェースとの間でデータの送受信を行うためのインタフェースである。無線インタフェース103は、例えばBluetooth(登録商標)、WiFi(登録商標)等によって、外部機器に接続される無線インタフェースとの間で無線通信を行い、無線LAN(Local Area Network)または無線PAN(Personal Area Network)を構築する。尚、無線インタフェース103を有線インタフェースに置き換えたとしても、本実施形態に係るインタフェース制御装置100と同様の効果が得られる。例えば、無線インタフェース103を、外部機器に接続される他の有線インタフェースとの間でUSBによって有線通信を行う有線インタフェースに置き換えてもよい。また、無線インタフェース103を小型化及び高速化する観点から、いわゆるミリ波帯(30GHz〜300GHz)を用いた無線通信を行うことも好ましい。
インタフェース制御部110は、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103を統括制御する。例えば、インタフェース制御部110は、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のいずれかから入力される信号を、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のいずれに送信すべきかを決定する。即ち、インタフェース制御部110は、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103の間で信号を中継する。上記信号は、例えばメモリ制御部202が行う制御を指示するためのコマンドと、当該コマンドに対応するレスポンスとを含む。
例えば、インタフェース制御部110は、ホストインタフェース102を介して受信したコマンドに対するレスポンスをメモリ制御インタフェース101を介して受信した場合には、当該レスポンスをホストインタフェース102に送信する。また、インタフェース制御部110は、無線インタフェース103を介して受信したコマンドに対するレスポンスをメモリ制御インタフェース101を介して受信した場合には、当該レスポンスを無線インタフェース103に送信する。また、インタフェース制御信号110は、無線インタフェース103を介してレスポンスを受信した場合には、当該レスポンスをホストインタフェース102に送信する。また、インタフェース制御部110は、信号を出力先のインタフェースに応じたフォーマットに変換することもある。具体的には、インタフェース制御部110はシリアル信号をパケット化したり、パケット化された信号をシリアル信号に変換する処理を行う場合もある。
インタフェース制御部110は、後述するように、メモリ制御インタフェース101に供給されるクロック周波数を制御してもよい。また、インタフェース制御部110は、入力信号を送信する前に、当該入力信号に格納されるパラメータ(例えば、相対カードアドレス(Relative Card Address;RCA))を別の値に置き換えてもよい。また、インタフェース制御部110は、コマンドに対してレスポンスを自発的に生成し、返信してもよい。
インタフェース制御装置100には、ホストインタフェース102を構成する信号線の一部を介してホスト機器300からクロック信号が供給される。尚、各実施形態において、USBのようにデータ信号からクロック信号を抽出する仕組み、つまり、クロック信号は無いもののクロックが供給されていることと等価と見なせる仕組みについてもクロックが供給されているものとして取り扱う。例えば、USBの場合、データ信号に0または1のいずれかが連続した場合には、クロック信号を抽出できなくなってしまうため、0または1がある回数以上連続する場合は、0と1を反転させて伝送する仕組みを採用している。このようなクロック信号を供給するための仕組みについても、クロック信号が供給されている、または、クロック信号を供給している、として取り扱うこととする。また、インタフェース制御装置100には、ホストインタフェース102を構成する信号線の一部を介して電力が供給される。例えば、インタフェース制御装置100はホストインタフェース102を構成する信号線の1つを電源電圧(例えば、3.3V)として利用し、他の1つをグラウンドとして利用する。ホスト機器300から供給された電力は、インタフェース制御部110及びメモリ制御インタフェース101を介してメモリ制御部202にも供給される。また、ホストインタフェース102は活線挿抜(ホットスワップ)可能である。即ち、ホスト機器300の起動後にメモリカード200が差し込まれたとしても、ホスト機器300は再起動することなく当該メモリカード200を認識できる。
また、ホスト機器300から供給された電力は、インタフェース制御部110を介して無線インタフェース103にも供給される。無線インタフェース103は、電力の供給をトリガとして無線通信可能な外部機器を探すためのサーチ処理を実行してもよい。更に、インタフェース制御部110は、無駄な電力消費を避けるために、無線インタフェース103の動作を適宜制限してもよい。例えば、ホスト機器300との間のデータ送受信の対象からメモリカード200を除外することを示す非選択信号がホストインタフェース102を介してインタフェース制御部110に入力されれば、インタフェース制御部110は無線インタフェース103の動作を制限してもよい。具体的には、インタフェース制御部110は無線インタフェース103を介した通信を切断したり、無線インタフェース103を低消費電力モードに移行させたりしてもよい。また、メモリカード200がいわゆるSDカードであれば、アドレス割り当て等の初期化処理を行うときにホスト機器300から供給される電力量は、データの読み書きが行われるときにホスト機器300から供給される電力量に比べて小さい。従って、インタフェース制御部110は、メモリ制御部202からホスト機器300へ送信される信号を解析して初期化処理の完了を検出してから無線インタフェース103への電力供給を開始したり、初期化処理に通常必要とされる時間を計時するためのタイマを利用して初期化処理の完了を推定してから無線インタフェース103への電力供給を開始したりしてもよい。
図2に示すように、本実施形態に係るインタフェース制御装置100内部のインタフェース制御部110は、入出力部111、信号解析部112、信号生成部113、インタフェース決定部114、管理部115及びクロック供給部120を有する。
入出力部111には、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のいずれかから信号が入力される。入出力部111は、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のいずれかからの信号を信号解析部112に入力する。また、入出力部111は、メモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のうちインタフェース決定部114によって決定される1つのインタフェースを介して信号を出力する。
信号解析部112は、入出力部111からの信号を解析する。具体的には、信号解析部112は、上記信号がメモリ制御インタフェース101、ホストインタフェース102及び無線インタフェース103のいずれから入力されたものであるかを解析する。また、信号解析部112は、ホストインタフェース102を介して入力された信号の種別が、初期化信号、伝送用信号及び状態確認信号のいずれであるかを解析する。例えばメモリカード200がSDカードであれば、信号解析部112は、Card Identification Modeにおいて送信されるコマンドを初期化信号、Data Transfer Modeにおいて送信されるコマンドのうちメモリ制御部202の状態確認のためのコマンドを状態確認信号、Data Transfer Modeにおいて送信されるコマンドのうち上記状態確認信号を除いたデータ伝送用のコマンドを伝送用信号であると解析する。また、信号解析部112は、上記信号にRCA等のアドレス情報を示すパラメータが含まれていれば、当該アドレス情報を取得する。
また、信号解析部112は、入出力部111からの信号に対する応答を信号生成部113が自発的に生成可能であれば、当該信号を信号生成部113に送信する。信号生成部113は、信号解析部112からの信号(例えばコマンド)に対する応答に相当する信号(例えばレスポンス)を生成し、入出力部111に入力する。また、信号生成部113は、上記応答に相当する信号以外にも各種信号を生成してもよい。
インタフェース決定部114は、無線インタフェース103を介した通信が確立していない期間において、ホストインタフェース102を介して入力される信号をメモリ制御インタフェース101を介して出力することを決定する。また、インタフェース決定部114は、無線インタフェース103を介した通信が確立していない期間において、メモリ制御インタフェース101を介して入力される信号をホストインタフェース102を介して出力することを決定する。尚、無線インタフェース103を介した通信が確立していない期間において、インタフェース制御部110の役割はホストインタフェース102とメモリ制御インタフェース101との間の信号を中継することなので、信号解析部112及び信号生成部113は実質的に動作する必要がない。従って、管理部115は信号解析部112及び信号生成部113への電力またはクロック信号の供給を停止したり、低消費電力モードで動作させたりしてもよい。
また、インタフェース決定部114は、無線インタフェース103を介して入力される信号に対しては、信号解析部112による当該信号の解析結果に基づきメモリ制御インタフェース101及びホストインタフェース102のいずれかを介して出力することを決定する。具体的には、インタフェース決定部114は、無線インタフェース103を介して入力される信号がコマンドまたはWriteデータであれば、当該信号をメモリ制御インタフェース102を介して出力することを決定する。一方、インタフェース決定部114は、無線インタフェース103を介して入力される信号がレスポンスまたはReadデータであれば、当該信号をホストインタフェース101を介して出力することを決定する。尚、無線インタフェース103を介して入力される信号がデータである場合には、信号解析部112は当該信号が入力される直前に解析したコマンドの内容に基づいて当該信号がReadデータ及びWriteデータのいずれであるかを判別できる。
管理部115は、インタフェース制御部110の各構成要素を管理する。例えば、管理部115は、入出力部111、信号解析部112、信号生成部113、インタフェース決定部114及びクロック供給部120を管理する。
クロック供給部120は、図示しないクロック生成器(例えば水晶発振器)に接続されており、当該クロック生成器によって生成されたクロック信号を無線インタフェース103に供給する。また、クロック供給部120は、無線インタフェース103を介した無線通信が確立している期間において、上記クロック生成器によって生成されたクロック信号のクロック周波数を適宜変換してメモリ制御インタフェース101に供給する。一方、クロック供給部120は、無線インタフェース103を介した無線通信が確立していない期間において、ホスト機器300から供給されるクロック信号をメモリ制御インタフェース101に供給する。尚、上記クロック生成器は、クロック供給部120に内蔵されてもよいし、無線インタフェース103に内蔵されてもよいし、その他の位置に設けられてもよい。同様に、これまではクロック供給部120はインタフェース制御部110内にあるとして説明したが、実現方法としてはクロック供給部120とインタフェース制御部110を別々の装置(例えばLSI)で実現することもできる。また、クロック供給部120を無線インタフェース103に内蔵して実現することもできるし、無線インタフェース103とインタフェース制御部110を同一の装置内に実装することもできる。各実施形態は、このような実現のための装置構成を限定するものではない。以下では、クロック供給部120が、インタフェース制御部110に内蔵されるケースを例にして説明する。
ところで現在、様々な無線通信規格が既に策定されており、また、新たな無線通信規格の策定が試みられている。例えば、無線LAN規格の1つであるIEEE802.11bの最大伝送速度は11Mbpsである。また、IEEE802.11nの最大伝送速度は600Mbpsである。更に、最大伝送速度1Gbps超の無線LAN規格の策定も試みられている。一方、無線LAN規格ではないが、ミリ波帯を用いて最大1Gbps超の伝送速度でHD(High Definition)映像を送受信する高速無線通信規格としてWireless HD(登録商標)が検討されている。このように無線通信方式の伝送速度は多様であり、無線通信方式に基づく通信を行うために必要なクロック周波数も多様である。従って、無線インタフェース103が複数の無線通信方式をサポートする場合には、上記クロック生成器は各無線通信方式に応じた周波数のクロック信号を生成できるものとする。
以下、図3を用いて本実施形態に係るインタフェース制御装置100を含むシステムの一例を説明する。上記システムは、ホスト機器300−1及び当該ホスト機器300−1に接続されるメモリカード200−1と、ホスト機器300−2及び当該ホスト機器300−2に接続されるメモリカード200−2とを含む。メモリカード200−1はインタフェース制御装置100−1を含み、メモリカード200−2はインタフェース制御装置100−2を含む。尚、図3においてインタフェース制御装置100−1及びインタフェース制御装置100−2はインタフェース制御装置100と同様の構成を有するものとする。また、メモリカード200−1及びメモリカード200−2は、メモリカード200と同様の構成を有するものとする。
図3のシステムにおいて、ホスト機器300−1は、インタフェース制御装置100−1を介してメモリカード200−1内部のメモリ制御部202−1との間でデータを送受信したり、インタフェース制御装置100−1及びインタフェース制御装置100−2を介してメモリカード200−2内部のメモリ制御部202−2との間でデータを送受信したりする。また、ホスト機器300−2は、インタフェース制御装置100−2を介してメモリ制御部202−2との間でデータを送受信したり、インタフェース制御装置100−2及びインタフェース制御装置100−1を介してメモリ制御部202−1との間でデータを送受信したりする。
図3のシステムにおいて、ホスト機器300−2がメモリカード200−1にアクセスする場合、メモリカード200−1の転送速度とインタフェース制御装置100−1とインタフェース制御装置100−2との間の無線通信の伝送速度とのマッチングが重要となる。無線通信の伝送速度が比較的高い場合には、メモリカード200−1の転送速度も高いことが望ましい。一方、無線通信の伝送速度が比較的低い場合には、メモリカード200−1の転送速度を高くすることは必要でなく、低消費電力化の観点からすれば転送速度を低く抑えることが望ましい。上記マッチングは、インタフェース制御装置100−1内部のクロック供給部120−1が行うクロック周波数切り替えによって実現される。
例えば、インタフェース制御装置100−1とインタフェース制御装置100−2との間を接続する無線通信の伝送速度が、ホスト機器300−1が供給しているクロック周波数に対応するメモリカード200−1の転送速度に比べて高速であるとする。このとき、クロック供給部120−1によるクロック周波数の切り替えが行われなければ、メモリカード200−1の転送速度がホスト機器300−1から供給されるクロック周波数によって制限されるため、上記無線通信の高速性能は十分に発揮されない。即ち、ホスト機器300−2からメモリカード200−1へアクセス速度が、ホスト機器300−1が供給しているクロック周波数によって制限されてしまう。
一方、インタフェース制御装置100−1とインタフェース制御装置100−2との間を接続する無線通信の伝送速度が、ホスト機器300−1が供給しているクロック周波数に対応するメモリカード200−1の転送速度に比べて低速であるとする。このとき、クロック供給部120−1によるクロック周波数の切り替えが行われなければ、メモリカード200−1から単位時間当たりに読み出されるデータ量は、無線通信によって単位時間当たりに伝送されるデータ量を超過するため、超過したデータを蓄えるためのバッファメモリが別途必要となってしまう。上記バッファメモリを設けることは、インタフェース制御装置100−1の低コスト化の障害となる。仮にフロー制御によってバッファメモリを削減したとしても不必要に高速なメモリアクセスを実行することは避けられないため、消費電力の低減が困難である。
また、ホスト機器300−1が供給可能なクロック周波数はメモリカード200−1の最大転送速度を実現するのに十分でないおそれがある。例えば、最新式のメモリカード200−1を旧式のホスト機器300−1に接続したとしても、当該メモリカード200−1の高速性能は十分に発揮されないおそれがある。
従って、本実施形態に係るインタフェース制御装置100は、クロック供給部120を設け、メモリ制御インタフェース101に供給するクロック周波数を切り替えている。前述したように、クロック供給部120は無線インタフェース103を介した通信が確立していない期間において、ホスト機器300から供給されるクロック信号をメモリ制御インタフェース101に供給している。一方、無線インタフェース103を介した通信が確立している期間において、クロック供給部120はホスト機器300から供給されるクロック信号でなく無線インタフェース103に供給されるクロック信号に基づき生成したクロック信号をメモリ制御インタフェース101に供給する。故に、クロック供給部120−1の作用によって、ホスト機器300−1の能力に関わらず、ホスト機器300−2からメモリカード200−1へのアクセスが効率化される。なお、メモリ制御インタフェース101に供給するクロックの選択は、インタフェース決定部114が決定することもできる。これは上記説明したクロック供給部120の機能の一部をインタフェース決定部114に実装することにより、インタフェース決定114部が、ホストインタフェース102を介して供給されたクロックとクロック供給部120から供給されたクロックのいずれかを選択して、メモリ制御インタフェース101に供給する実現方法である。各実施形態は、これら実現方法については限定しない。
ところで、一般に、共有のハードウェア資源に対して複数のアクセスが競合する場合に、排他制御が必要となる。例えば、図3のシステムにおいて、メモリカード200−2内部のメモリ制御部202−2に対してホスト機器300−1及びホスト機器300−2のアクセスが競合する。具体的には、ホスト機器300−2からReadコマンドを受信したメモリ制御部202−2がレスポンスを返す前に、ホスト機器300−1から上記Readコマンドの対象データに対するWriteコマンドがメモリ制御部202−2に対して送信される等の事態が起こるおそれがある。故に、インタフェース制御装置100も何らかの排他制御を行うことが望ましい。以下、図3のシステムにおける排他制御の一例を説明する。
インタフェース制御装置100−2は、インタフェース制御装置100−1との無線通信が確立していない期間において、ホスト機器300−2とメモリ制御部202−2との間で信号を中継する。一方、上記無線通信が確立している期間において、インタフェース制御装置100−2はホスト機器300−2でなくホスト機器300−1(より正確にはインタフェース制御装置100−1)とメモリ制御部202−2との間で信号を中継する。換言すれば、上記無線通信が確立している期間において、インタフェース制御装置100−2はホスト機器300−2からメモリ制御部202−2へのアクセスを拒絶する。例えば、上記無線通信が確立している期間において、インタフェース制御部100−2はホスト機器300−2からコマンドを受信するとメモリ制御部202−2のBUSY(使用中)示すレスポンスを返したり、上記コマンドを無視したりする。
また、前述した切り替え部105の機能が排他制御に利用されてもよい。例えば、ホスト機器300−1からメモリカード200−2へのアクセスを排他的に行いたい場合、ユーザはインタフェース制御装置100−1の切り替え部105−1を前述した第2の動作モードに対応する状態に設定し、インタフェース制御装置100−2の切り替え部105−2を前述した第1の動作モードに対応する状態に設定すればよい。切り替え部105−1及び切り替え部105−2がこのように設定されていると、インタフェース制御装置100−1はホスト機器300−1とメモリカード200−1との間で信号を中継せず、無線通信が確立している期間においてホスト機器300−1とインタフェース制御装置100−2との間で信号を中継する。一方、インタフェース制御装置100−2は、無線通信が確立していない期間においてホスト機器300−2とメモリ制御部202−2との間で信号を中継するが、無線通信が確立している期間においてインタフェース制御装置100−1とメモリ制御部202−2との間で信号を中継してホスト機器300−2からメモリ制御部202−2へのアクセスを拒絶する。
以上説明したように本実施形態に係るインタフェース制御装置は、記憶メディアにアクセスしている情報処理装置(ホスト機器または外部機器)に応じてメモリ制御インタフェースに供給するクロック周波数を切り替えるようにしている。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器の能力に関わらず、外部機器から記憶メディアへのアクセスを効率化することができる。
(第2の実施形態)
図4に示すように、本発明の第2の実施形態に係るインタフェース制御装置100は、上記図2に示すインタフェース制御装置100において、クロック供給部120をクロック供給部130に置き換えている。以下の説明では、図4において図2と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
クロック供給部130は、後述するクロック周波数決定部131を有しており、無線インタフェース103を介した無線通信が確立している期間において、当該クロック周波数決定部131が決定したクロック周波数をメモリ制御インタフェース101に供給する。
クロック周波数決定部131は、メモリカード200の転送速度を無線インタフェース103を介した無線通信の伝送速度に適合させるためのクロック周波数を決定する。ここで、無線インタフェース103を介した無線通信の伝送速度は通信相手の能力や通信環境に応じて変化し得る。クロック周波数決定部131を設けることにより、無線インタフェース103を介した無線通信の伝送速度に応じてメモリカード200の転送速度を効率化し、ひいては外部機器からメモリカード200へのアクセス速度を効率化することができる。
また、通信相手の能力としては、無線伝送速度だけでなく、通信相手であるメモリカード(例えば、図3のメモリカード200−2)とそのホスト機器300−2との間の伝送速度にも依存する。つまり、インタフェース制御装置100−1がメモリカード200−1内のメモリ制御部202−1にアクセスする速度と、インタフェース制御装置100−1とインタフェース制御装置100−2との間の無線伝送速度と、インタフェース制御装置100−2とホスト機器300−2との間の転送速度、とのいずれか1つでも低速であると、その速度がボトルネックとなってしまう恐れがある。そのため、無線通信が確立した後に、インタフェース制御装置100−1及びインタフェース制御装置100−2は、マスター側のインタフェース制御装置(この例ではインタフェース制御装置100−2)は、ホスト機器(この例ではホスト機器300−2)との間の転送速度を、スレーブ側のインタフェース制御装置(この例ではインタフェース制御装置100−1)はメモリ制御部202−1にアクセス可能な最大速度と、を互いに通知し合うようにする。通知する情報は、伝送速度そのものでなくクロック周波数など伝送速度を推定できる情報であっても良い。そして、インタフェース制御装置100−1は、ホスト機器300−2とインタフェース制御装置100−2との間の転送速度に基づいて、メモリ制御部202−1に供給するクロック周波数を決定することもできる。また、後述する第12と第13の実施形態で示すように、フラッシュメモリ201を一時バッファとして利用する場合には、インタフェース制御装置100は、ホスト機器300との間の伝送速度の情報とメモリ制御部202にアクセス可能な最大速度の情報とを互いに通知し合うようにしても良い。なお、ここで述べた伝送速度は、無線の変調方式や符号化率によって算出される無線区間の伝送速度であったが、無線区間で実際に伝送された情報量を伝送に費やした時間で割った値(スループットや実効伝送速度などと呼ばれる)を算出し、その結果に基づいてクロック周波数を決定すれば、より精度の高いクロック周波数制御が可能になる。なぜなら、実効伝送速度は、通信相手の現実の処理能力が反映された値となるためである。
以上説明したように、本実施形態に係るインタフェース制御装置は、無線インタフェースを介した無線通信の伝送速度にメモリカードの転送速度が適合するようにクロック周波数を決定している。従って、本実施形態に係るインタフェース制御装置によれば、外部機器から記憶メディアへのアクセスを効率化することができる。
(第3の実施形態)
図5に示すように、本発明の第3の実施形態に係るインタフェース制御装置100は、上記図2に示すインタフェース制御装置100において、供給電力量検出部140及び最大伝送速度決定部141を更に設けている。以下の説明では、図5において図2と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
供給電力量検出部140は、ホストインタフェース102を介してホスト機器300から供給される電力量を検出する。ここで、ホスト機器300からの電力供給について説明する。
ホスト機器300からインタフェース制御装置100に供給される電力量は、メモリカード200が接続されるホスト機器300の能力(より正確には、ホスト機器300に搭載されるホストコントローラの能力)に依存する。ホストコントローラが供給可能な電力は、当該ホスト機器300に接続され得るメモリカードの消費電力を考慮して設計されることが一般的である。例えば、現在のSD規格において、メモリカードが通常伝送モードで動作するときには最大100mAの電流が必要となる。一方、メモリカードが高速伝送モードで動作するときには最大200mAの電流が必要となる。更に、現在標準化が進められている次世代SDカードは、より大量の電流が必要となる見込みである。即ち、ホスト機器300から供給される電力量は、メモリカード200が最大限の能力を発揮するために必要な量を下回るおそれがある。
インタフェース制御装置100に供給される電力量がホスト機器300の能力に依存する以上、無線インタフェース103が消費可能な電力量もまたホスト機器300の能力に依存する。一般に、無線通信をより高速化するためには、より大量の電力が必要となる。従って、無線通信における伝送速度を制御しない場合には、当該無線通信に必要な電力量がホスト機器300から供給される電力量を上回り、インタフェース制御装置100の一部または全体の動作が不安定になったり不能になったりするおそれがある。
そこで、最大伝送速度決定部141は、供給電力量検出部140が検出した供給電力量に基づいて、無線インタフェース103の最大伝送速度を決定する。上記最大伝送速度は、インタフェース制御装置100の正常な動作を確保したときに、無線インタフェース103が使用可能な電力値に基づき無線通信を行う場合に許容される最大の伝送速度である。従って、供給電力量が十分大きければ、無線インタフェース103の伝送速度は実質的に制限されない。しかしながら、供給電力量が十分大きくなければインタフェース制御装置100の正常な動作を確保するために、無線インタフェース103の伝送速度は適切に制限される。なお、インタフェース制御部110は、供給電力量に応じて伝送速度の制御を行った場合であっても、伝送速度に応じてメモリ制御インタフェースに提供するクロック周波数を制御することができる。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器から供給される電力量に応じて無線インタフェースの伝送速度の上限を定めている。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器の能力に関わらず正常な動作が確保され、かつ、無線インタフェースの伝送速度が最適化される。即ち、外部機器から記憶メディアへのアクセスを効率化することができる。
(第4の実施形態)
図6に示すように、本発明の第4の実施形態に係るインタフェース制御装置100は、上記図5に示すインタフェース制御装置100において、最大伝送速度決定部141をクロック周波数決定部151に、クロック供給部120をクロック供給部152に置き換えている。以下の説明では、図6において図5と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
クロック周波数決定部151は、供給電力量検出部140が検出した供給電力量に基づいて、クロック供給部152が無線インタフェース103に供給するクロック周波数を決定する。クロック周波数決定部151は、決定したクロック周波数をクロック供給部152に通知する。クロック供給部152は通知されたクロック周波数に従って無線インタフェース103にクロック信号を供給する。クロック周波数決定部151は、インタフェース制御装置100の正常な動作を確保したときに、無線インタフェース103が使用可能な電力値に基づき無線通信を行う場合に許容される最大のクロック周波数を上回らないように、クロック供給部152に通知するクロック周波数を決定する。従って、供給電力量が十分大きければ、無線インタフェース103のクロック周波数は実質的に制限されない。しかしながら、供給電力量が十分大きくなければインタフェース制御装置100の正常な動作を確保するために、無線インタフェース103のクロック周波数は適切に制限される。なお、インタフェース制御部110は、供給電力量に応じて無線インタフェース103に供給するクロック周波数を制御した結果、伝送速度に変化が生じた場合であっても、伝送速度に応じてメモリ制御インタフェース101に提供するクロック周波数を制御することができる。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器から供給される電力量に応じて無線インタフェースのクロック周波数の上限を定めている。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器の能力に関わらず正常な動作が確保され、かつ、無線インタフェースの処理速度が最適化される。即ち、外部機器から記憶メディアへのアクセスを効率化することができる。
(第5の実施形態)
図7に示すように、本発明の第5の実施形態に係るインタフェース制御装置100は、上記図5に示すインタフェース制御装置100において、最大伝送速度決定部141を最大送信電力決定部160に置き換えている。以下の説明では、図7において図5と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
最大送信電力決定部160は、供給電力量検出部140が検出した供給電力量に基づいて、無線インタフェース103の最大送信電力を決定する。最大送信電力決定部160が決定する最大送信電力は、インタフェース制御装置100の正常な動作を確保したときに、無線インタフェース103が使用可能な電力値に基づき無線通信を行う場合に許容される最大の送信電力である。従って、供給電力量が十分大きければ、無線インタフェース103の送信電力は実質的に制限されない。しかしながら、供給電力量が十分大きくなければインタフェース制御装置100の正常な動作を確保するために、無線インタフェース103の送信電力は適切に制限される。なお、インタフェース制御部110は、最大送信電力を制御した結果、伝送速度に変化が生じた場合であっても、伝送速度に応じてメモリ制御インタフェース101に提供するクロック周波数を制御することができる。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器から供給される電力量に応じて無線インタフェースの送信電力の上限を定めている。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器の能力に関わらず正常な動作が確保され、かつ、無線インタフェースの送信電力が最適化される。即ち、外部機器から記憶メディアへのアクセスを効率化することができる。
(第6の実施形態)
前述した第1乃至第5の実施形態に係るインタフェース制御装置100において、無線インタフェース103に供給されるクロックを生成するために例えば水晶発振器のようなクロック生成器が設けられる。しかしながら、インタフェース制御装置100をメモリカード200内部に設けられる専用回路として構成する場合、上記クロック生成器がメモリカード200の小型化及び低コスト化の障害となる。本発明の第6の実施形態に係るインタフェース制御装置は、上記クロック生成器を取り除いても動作可能である。
図8に示すように、本実施形態に係るインタフェース制御装置は、メモリ制御インタフェース101、ホストインタフェース102、無線インタフェース103及びインタフェース制御部110を有する。また、インタフェース制御部110は、入出力部111、信号解析部112、信号生成部113、インタフェース決定部114、管理部115、クロック供給部120、クロック周波数検出部171及びクロック周波数変換部172を有する。以下の説明では、図8において図2と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
クロック周波数検出部171は、ホストインタフェース102を介してホスト機器300から供給されるクロック周波数を検出する。通常、ホスト機器300から供給されるクロック周波数は、接続されるホスト機器300に応じて異なる。例えば、クロック周波数検出部171は、ホスト機器300から供給されるクロック信号の周期を計測することによりクロック周波数を検出してよい。また、ホスト機器300が何らかの通信プロトコルに従い、ホストインタフェース102を介してクロック周波数をクロック検出部171に通知してもよい。クロック周波数検出部171は、検出したクロック周波数をクロック周波数変換部172に通知する。
クロック周波数変換部172は、ホストインタフェース102を介してホスト機器300から供給されるクロック信号に対して周波数変換(逓倍または分周)を施す。具体的には、クロック周波数変換部172は、ホスト機器300から供給されるクロック周波数と、無線インタフェース103に供給すべきクロック周波数との間の比率を導出する。そして、クロック周波数変換部172は、ホスト機器300から供給されるクロック信号に対して上記比率に従って周波数変換を施して得られるクロック信号をクロック供給部120に供給する。
クロック供給部120は、クロック周波数変換部172から供給されるクロック信号を無線インタフェース103に供給する。また、クロック供給部120は、無線インタフェース103を介した無線通信が確立している期間において、クロック周波数変換部172から供給されるクロック信号のクロック周波数を適宜変換してメモリ制御インタフェース101に供給する。一方、クロック供給部120は、無線インタフェース103を介した無線通信が確立していない期間において、ホスト機器300から供給されるクロック信号をメモリ制御インタフェース101に供給する。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器から供給されるクロック信号に対して周波数変換を施して所望のクロック信号を生成している。従って、本実施形態に係るインタフェース制御装置によれば、前述した第1乃至第5の実施形態に係るインタフェース制御装置からクロック生成器を取り除き、より低コストかつ小型に構成することができる。
(第7の実施形態)
図9に示すように、本発明の第7の実施形態に係るインタフェース制御装置100は、上記図1に示すインタフェース制御装置100において、信号検出部104を更に設けている。以下の説明では、図9において図1と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
前述した第1乃至第6の実施形態においてインタフェース制御部110の動作モードが前述した第1の動作モードである場合、インタフェース制御部110はホスト機器300及びメモリ制御部202との間で信号を中継することもあれば、無線インタフェース103を介して外部機器とメモリ制御部202との間で信号を中継することもある。一方、インタフェース制御部110の動作モードが前述した第2の動作モードである場合、インタフェース制御部110は無線インタフェース103を介して外部機器とメモリ制御部202との間で信号を中継するのみである。即ち、インタフェース制御部110が第1の動作モードである場合、インタフェース制御部110は無線通信がいつ行われるか不明であるにも関わらず無線インタフェース103へ電力を供給し続けなければならなかった。
そこで、本実施形態に係るインタフェース制御装置100において、インタフェース制御部110は、第1の動作モードである場合には、無線インタフェース103への電力供給を予め停止しておく(即ち、第1の動作モードである期間の始点において、インタフェース制御部110は無線インタフェース103を休止状態にさせておく)。そして、インタフェース制御部110はホストインタフェース102とメモリ制御インタフェース101との間での信号の中継のみを行う。一方、インタフェース制御部110は、第2の動作モードである場合には、無線インタフェース103への電力供給を行って、いつでも無線通信可能な状態にしておく。
図9に示す信号検出部104は、無線インタフェース103が受信可能な無線信号の電力を検出する。無線インタフェース103が前述した休止状態であるときに信号検出部104が無線信号の電力を検出すると、インタフェース制御部110は無線インタフェース103への電力供給を開始し、無線インタフェース103を起動させる。即ち、インタフェース制御部110が第1の動作モードである場合には、無線インタフェース103は外部機器からの無線信号をトリガとして起動するまで休止状態であるため、電力を消費しない。
以上説明したように、本実施形態に係るインタフェース制御装置は、外部機器及びホスト機器の記憶メディアへのアクセスが競合し得る場合には、外部機器と通信を行うための無線インタフェースを予め休止させておき、外部機器からの無線信号の電力が検出された段階で無線インタフェースを起動させている。従って、本実施形態に係るインタフェース制御装置によれば、無線通信が現実に行われるまで無線インタフェースへの電力供給が不要となるため消費電力を削減することができる。即ち、外部機器から記憶メディアへのアクセスを許容するために、インタフェース制御装置が必要とする電力を最適化できる。例えば、外部機器がPCのような電力に余裕のある情報処理装置であって、ホスト機器がデジタルカメラや携帯電話機のような電力に余裕のない情報処理装置であるときに特に有効である。
(第8の実施形態)
図10に示すように、本発明の第8の実施形態に係るインタフェース制御装置100内部のインタフェース制御部110は、無線状態管理部180を含む。以下の説明では、図10において図2と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
無線状態管理部180は、無線インタフェース103を介した通信の状態が切断状態から確立状態に遷移したことと、確立状態から切断状態に遷移したこととを検出する。また、無線状態管理部180は、通信品質(例えば、伝送速度)を更に評価してもよく、当該通信品質が所望の通信品質を満たすか否かを判定してもよい。無線状態管理部180は、例えば、無線インタフェース103を介した通信の伝送速度が所望の伝送速度以上であるか否かを判定する。尚、無線状態管理部180は、実際に無線インタフェース103を介して送受信したビット数に基づいて伝送速度を算出してもよいし、受信電力に基づき伝送速度を予測してもよい。無線状態管理部180が無線インタフェース103を介した通信品質が所望の通信品質を満たさないと判定する場合には、インタフェース制御部110は仮に無線インタフェース103を介した通信が確立状態であったとしても、切断状態であるものとしてインタフェース制御を行ってもよい。無線状態管理部180は、無線インタフェース103を介した通信の状態を信号解析部112に通知する。
以下、図3のシステムにおけるメモリカード200−1及び200−2の初期化処理について述べる。尚、メモリカード200−1及びメモリカード200−2は、いずれもSDカードであるとする。
通常、SDカード内部のメモリ制御部は、ホスト機器からのコマンドに応じて、SDカードの初期化処理や、Read/Write等の各種処理を実行する。そして、SDカードは上記コマンドに対する応答としてレスポンスを生成してホスト機器に返信する。例えば、Card Identification Modeにおいて、SDカードはRCAの割り当てを行い、ホスト機器は当該SDカードを選択してメモリ情報を取得する。具体的には、ホスト機器がRCAの送信をSDカードに要求するためのコマンド3を、当該SDカードに接続されるバスを用いて送信する。ここで、SDカードのバスはスター型である。上記コマンド3を受信したSDカードは、レスポンス6フレームを用いてRCAをホスト機器に送信する。上記コマンド3に係る処理が実行されると、SDカードの動作モードはData Transfer Modeに移行する。Data Transfer Modeにおいて、SDカードはホスト機器からのコマンドを複数のバスに送信する。
RCAは、ホスト機器がデータの読み書きを行うSDカードを選択するためのコマンド7、ホスト機器がSDカードを選択していないときにCard Specific Data(CSD)レジスタ及びCard IDentification(CID)レジスタの内容を夫々読み出すためのコマンド9及びコマンド10、ホスト機器がSDカードの選択の有無に関わらずステータスレジスタの内容を読み出すためのコマンド13(状態確認信号)等の各コマンドにおいて、引数(argument)として指定される。上記各コマンドは、例えば図11に示す48ビットで構成される。即ち、ホスト機器は、RCAフィールドに所望のSDカードのRCAを格納して上記各コマンドを生成する。尚、図11に示すフォーマットにおいて、コマンドの種別は、コマンドインデックス(Command Index)フィールドに格納されるコマンドインデックスによって識別される。
Data Transfer Modeに移行すると、SDカードはStand-By状態に遷移する。そして、カード選択が行われるまで(正しいRCAが格納されたコマンド7を受信するまで)、SDカードはStand-By状態のままである。一方、カード選択が行われると、SDカードはTransfer状態に遷移する。SDカードがTransfer状態であれば、受信するコマンドに応じてSending-Data状態またはReceive-Data状態へと更に遷移し、Write処理またはRead処理が夫々実現される。
図3のシステムにおいて、ホスト機器300−2がメモリカード200−1にアクセスする場合、ホスト機器300−2がメモリカード200−1のRCAをどのようにして取得するかが問題となる。何故なら、前述したように、Data Transfer Modeにおいてホスト機器300−2が送信するコマンドには正しい(メモリカード200−1の)RCAを格納させなければならないからである。ホスト機器300−2が汎用の情報処理装置であるとすれば、メモリカード200−1へ初期化処理を行うことによりRCAを取得することが有効であると考えられる。しかしながら、ホスト機器300−2にとって、メモリカード200−1に対して初期化コマンド(例えばコマンド3)を生成すべきタイミングは必ずしも既知でない。寧ろ、ホスト機器300−2が既存のインタフェースを採用しているとすれば、メモリカード200−1へのアクセスは想定されていない可能性が高い。
そこで、本実施形態に係るインタフェース制御装置100は、無線インタフェース103を介した通信が確立すると、外部機器に接続されているメモリカードに対する初期化コマンドをホスト機器300から受け取るための処理を行う。
図3のシステムにおいて、メモリカード200−2がカードスロットに差し込まれると、ホスト機器300−2はメモリカード200−2に対して初期化処理を行う。メモリカード200−2には、初期化処理によってRCAが割り当てられ、Data Transfer Modeに移行する。後に、無線インタフェース103−1及び無線インタフェース103−2の間で無線通信が確立したとする。すると、インタフェース制御部110−2内部の無線状態管理部180−2は、無線通信が確立状態に遷移したことを信号解析部112−2に通知する。
無線通信の確立が通知されると、信号解析部112−2はホスト機器300−2及びメモリ制御部202−2の間での信号送受信が実行中であるか否かを判定する。簡単にいえば、ホスト機器300−2からメモリ制御部202−2へと送信されたコマンドに対するレスポンスをホスト機器300−2に返信していなければ、信号解析部112−2は信号送受信が実行中であると判定する。一方、レスポンスをメモリ制御部202−2より受信してホスト機器300−2に既に送信していれば、信号解析部112−2は信号送受信が実行中でないと判定する。
尚、例えば、ホスト機器300−2から送信されたコマンドがリード要求コマンドであって当該リード要求コマンドに対してOKを示すレスポンスをホスト機器300−2に送信しているとしても、信号解析部112−2は信号送受信が実行中であると判定することがある。何故なら、メモリ制御部202−2は、OKを示すレスポンスの後にRead dataを更に送信するからである。リード要求コマンドがいわゆるシングルリード要求(所定のリード単位の1回分のリード要求)であれば当該リード単位に相当するリードデータがホスト機器300−2に送信されてから、信号解析部112−2は信号送受信が実行中でないと判定する。また、リード要求コマンドがいわゆるマルチリード要求(上記リード単位の複数回分のリード要求)であればホスト機器300−2から送信されるエンド信号がメモリ制御部202−2に送信されてから、信号解析部112−2は信号送受信が実行中でないと判定する。また、信号解析部112−2は、ライト要求コマンドについても同様に判定を行う。
換言すれば、メモリ制御部202−2がSending-Data状態またはReceive-Data状態であれば信号解析部112−2は信号送受信が実行中であると判定し、メモリ制御部202−2がTransfer状態またはStand-By状態であれば信号解析部112−2は信号送受信が実行中でないと判定する。但し、メモリ制御部202−2がTransfer状態のときであってホスト機器300−2からコマンドが送信されていれば、信号解析部112−2は当該コマンドに対するレスポンスを返信するまでは信号送受信が実行中であると判定する。
また、信号解析部112−2は、ホストインタフェース102−2を構成する信号線の一部であるデータ転送用の信号線の使用/不使用状態を示すイネーブル信号を利用して信号送受信が実行中であるか否かを判定してもよい。即ち、イネーブル信号がデータ転送用の信号線の使用状態を示す場合には信号解析部112−2は信号送受信が実行中であると判定し、イネーブル信号がデータ転送用の信号線の不使用状態を示す場合には信号解析部112−2は信号送受信が実行中でないと判定すればよい。
信号解析部112−2は、信号送受信が実行中でないと判定すると、メモリカード200−1に対する初期化コマンドをホスト機器300−2から受け取るために次のように動作する。
信号解析部112−2は、ホスト機器300−2から受信したコマンドの種別を解析する。即ち、信号解析部112−2は、コマンドが初期化信号、状態確認信号及び伝送用信号のいずれであるかを解析する。信号解析部112−2は、コマンドが状態確認信号または伝送用信号であれば、当該コマンドを無視(破棄)する。
通常、ホスト機器300−2は、送信済みのコマンド(伝送用信号)に対するレスポンスが得られなければ、状態確認コマンドを送信する。そして、この状態確認コマンドに対するレスポンスも得られなければ、ホスト機器300−2はメモリカード200−2に何らかの異常が生じていると判断し、初期化コマンドを送信する。信号解析部112−2は、コマンドが初期化信号であれば、無線インタフェース103−2を介してメモリカード200−1に送信する。この初期化コマンドによって、メモリカード200−1の初期化処理が行われる。
メモリカード200−1の初期化処理が行われた後には、インタフェース制御部110−2はホスト機器300−2から受信したコマンドを無線インタフェース103−2を介してメモリカード200−1に送信する。また、インタフェース制御部110−2は、無線インタフェース103−2を介して受信したレスポンスをホスト機器300−2に送信する。
また、本実施形態に係るインタフェース制御装置100は、無線インタフェース103を介した通信が切断すると、メモリカード200に対する初期化コマンドをホスト機器300から再度受け取るための処理を行う。
図3のシステムにおいて、無線インタフェース103−1及び無線インタフェース103−2の間で無線通信が切断したとする。すると、インタフェース制御部110−2内部の無線状態管理部180−2は、無線通信が切断状態に遷移したことを信号解析部112−2に通知する。
無線通信の切断が通知されると、信号解析部112−2はホスト機器300−2及びメモリ制御部202−1の間での信号送受信が実行中であるか否かを判定する。尚、ここでいうホスト機器300−2及びメモリ制御部202−1の間での信号送受信が実行中であるか否かの判定は、前述したホスト機器300−2及びメモリ制御部202−2の間でのものと同様でよい。
信号解析部112−2は、信号送受信が実行中でないと判定すると、メモリカード200−2に対する初期化コマンドをホスト機器300−2から受け取るために次のように動作する。また、無線通信が切断されているため、信号解析部112−2は信号送受信が実行中であるか否かの判定を省略して次のように動作してもよい。
信号解析部112−2は、ホスト機器300−2から受信したコマンドの種別を解析する。即ち、信号解析部112−2は、コマンドが初期化信号、状態確認信号及び伝送用信号のいずれであるかを解析する。信号解析部112−2は、コマンドが状態確認信号または伝送用信号であれば、当該コマンドを無視する。前述したように、コマンドが無視され続けるとホスト機器300−2は初期化コマンドを送信する。信号解析部112−2は、コマンドが初期化信号であれば、メモリ制御インタフェース101−2を介してメモリ制御部202−2に送信する。この初期化コマンドによって、メモリカード200−2の初期化処理が再度行われる。
メモリカード200−2の初期化処理が行われた後には、インタフェース制御部110−2はホスト機器300−2から受信したコマンドをメモリ制御インタフェース101−2を介してメモリ制御部202−2に送信する。また、インタフェース制御部110−2は、メモリ制御インタフェース101−2を介して受信したレスポンスをホスト機器300−2に送信する。
また、信号解析部112−2の動作は次のように変形されてもよい。
前述した動作では、信号解析部112−2はホスト機器300−2からの伝送用コマンド及び状態確認コマンドを無視している。ホスト機器300−2は、伝送用コマンドを送信してから状態確認コマンドを送信するまでに所定時間待機することになる。この待機時間を短縮する観点からすると、信号生成部113−2の作用によってエラー状態を示すレスポンスを生成して返信することが有効となり得る。何故なら、ホスト機器300−2は、エラー状態を示すレスポンスを受信すると、直ちに状態確認コマンドを送信するものと考えられるからである。即ち、インタフェース制御部110−2は、エラー状態を示すレスポンスを返信することにより、状態確認コマンドをより早い段階で得ることができると予想される。尚、エラー状態を示す信号を生成する手法は、無線通信が確立状態に遷移したときと切断状態に遷移したときのいずれにおいても適用可能である。
例えば、図14に示すように、無線通信が切断状態である期間において、インタフェース制御装置100はホスト機器300とメモリ制御部202との間で信号を中継する。無線通信が確立状態に遷移すると、インタフェース制御装置100は、ホスト機器300からのコマンドに対してエラー状態を示すレスポンスを返信する。そして、ホスト機器300は状態確認コマンド13をインタフェース制御装置100に送信する。インタフェース制御装置100はこのコマンド13を無視する。ホスト機器300は、コマンド13に対するレスポンスの待機時間がタイムアウトすると、再初期化処理を行うべく初期化コマンドをインタフェース制御装置100に送信する。インタフェース制御装置100は、この初期化コマンドをメモリ制御部202でなく外部の記憶メディアへと無線通信を介して送信する。そして、外部の記憶メディアの初期化が行われる。以降、インタフェース制御装置100はホスト機器300と外部の記憶メディアとの間で信号を中継する。
また、図15に示すように、無線通信が確立状態である期間において、インタフェース制御装置100はホスト機器300と外部の記憶メディアとの間で信号を中継する。無線通信が切断状態に遷移すると、インタフェース制御装置100はホスト機器300からのコマンドに対してエラー状態を示すレスポンスを返信する。そして、ホスト機器300は状態確認コマンド13をインタフェース制御装置100に送信する。インタフェース制御装置100はこのコマンド13を無視する。ホスト機器300は、コマンド13に対するレスポンスの待機時間がタイムアウトすると、再初期化処理を行うべく初期化コマンドをインタフェース制御装置100に送信する。インタフェース制御装置100は、この初期化コマンドを外部の記憶メディアでなくメモリ制御部202へと送信する。そして、メモリ制御部202の初期化が行われる。以降、インタフェース制御装置100はホスト機器300とメモリ制御部202との間で信号を中継する。
また、メモリカード200がSDカードである場合には、初期化処理モード(Identification Mode)とデータ伝送モード(Data Transfer Mode)とでは、メモリ制御インタフェース101を介してメモリ制御部202に提供されるべきクロック周波数が異なる。具体的には、Identification Modeの時は、Data Transfer Modeの時に比べて低速なクロックが供給される。ところが、ホスト機器300−2がメモリカード200−1の初期化処理を行う時点において、ホスト機器300−1はメモリカード200−1の初期化処理が行われていることを検知していない。即ち、ホスト機器300−1はメモリカード200−1にData Transfer Modeに応じた高速なクロックを供給してしまう。そのため、インタフェース制御部110−1は、既に述べたクロック制御と同様の方法を用いて、メモリ制御インタフェース101−1を介して、初期化用の低速なクロックを供給することが望ましい。
以上説明したように、本実施形態に係るインタフェース制御装置は、無線通信の状態が切り替わると、ホスト機器または外部機器からのコマンドを無視したりエラー状態を示すレスポンスを返信したりしている。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器または外部機器による記憶メディアへの再初期化処理を促すことができるため、ホスト機器または外部機器から記憶メディアへのアクセスを効率化できる。
(第9の実施形態)
図12に示すように、本発明の第9の実施形態に係るインタフェース制御装置100は、上記図10に示すインタフェース制御装置100において、通信状態保持部190を更に設けて構成される。以下の説明では、図12において図10と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
前述したように、インタフェース制御装置100は、ホストインタフェース102を構成する信号線の一部を介して電力が供給される。この電力は、インタフェース制御部110、メモリ制御インタフェース101、メモリ制御部202及び無線インタフェース103にも供給される。ホスト機器300は、例えばカードスロットにメモリカード200が差し込まれたことを検出すると、電力供給を開始する。
SDカードの一機能として、パワーリセットが定義されている。パワーリセットとは、SDカードが異常状態に陥り、通常の再初期化処理によっても回復しない場合に、ホスト機器300が電力供給を一旦停止し、その後電力供給を再開して再初期化処理を行う機能である。パワーリセットをサポートするホスト機器300の一部は、送信済みコマンドに対するレスポンスが得られない場合や、エラー状態を示すレスポンスを受信した場合にパワーリセットを実行するおそれがある。即ち、前述した第8の実施形態に係るインタフェース制御装置100においてインタフェース制御部110が行うコマンドの無視やエラー状態を示すレスポンスの返信が、パワーリセットを引き起こすおそれがある。
パワーリセットが実行されると、無線インタフェース103への電力供給も一旦停止してしまう。即ち、無線通信が確立していたとしても切断されてしまうため、無線インタフェース103は電力供給の再開後に再度サーチ処理を実行したり、サーチされた相手への再接続処理を行ったりしなければならない。このような、一連の無線通信再開のための処理が完了するまで、インタフェース制御部110は、無線通信の確立を検知できない。従って、この無線通信再開のための処理が完了するまでの間に、ホスト機器300が初期化コマンドを送信したとしても、当該初期化コマンドは無線インタフェース103でなくメモリ制御インタフェース101を介して送信され、外部の記憶メディアでなくメモリ制御部202の初期化処理が行われてしまう。そこで、本実施形態に係るインタフェース制御装置100は、以下の通信状態保持部190を設けている。
通信状態保持部190は、不揮発性メモリで構成される。通信状態保持部190は、パワーリセットの実行時点における無線インタフェース103を介した通信の状態を保持する。より正確には、通信状態保持部190には、無線状態管理部180によって無線通信の状態遷移が逐次記録される。そして、パワーリセットを含む何らかの原因でインタフェース制御装置100への電力供給が停止されたとしても、不揮発性メモリで構成される通信状態保持部190には電力供給の停止時点における無線通信の状態が保持されることになる。尚、通信状態保持部190は、インタフェース制御部110に専用の記憶メディアを別途設けることにより構成されてもよいし、フラッシュメモリ201の一部の領域を割り当てることにより構成されてもよい。また、通信状態保持部190における通信状態の保持態様は特に限定されないが、簡単な例として、通信状態の確立/切断を1ビット(状態ビット)で表現してもよい。即ち、無線状態管理部180は無線通信が確立状態に遷移すると通信状態保持部190に保持されている状態ビットを「1」に書き換え、無線通信が切断状態に遷移すると状態ビットを「0」に書き換えればよい。
信号解析部112は、電力供給が開始されると、通信状態保持部190を参照する。前回の電力停止時点において無線通信が切断状態であれば、ホスト機器300から送信される初期化コマンドは、メモリ制御インタフェース101を介してメモリ制御部202に送信される。
前回の電力停止時点において無線通信が確立状態であれば、ホスト機器300から送信される初期化コマンドは、外部の記憶メディアに与えるべきものかもしれない。従って、インタフェース制御部110は初期化コマンドを一定時間保持しておく。そして、一定時間経過するまでに無線インタフェース103を介した通信が確立すれば、インタフェース制御部110は初期化コマンドを無線インタフェース103を介して外部の記憶メディアに送信する。一方、一定時間経過するまでに無線インタフェース103を介した通信が確立しなければ、インタフェース制御部110は初期化コマンドをメモリ制御インタフェース101を介してメモリ制御部202に送信する。更に、無線状態管理部180が通信状態保持部190に保持されている通信状態を切断状態に更新する。
以上説明したように、本実施形態に係るインタフェース制御装置は、電力供給が開始されると前回の電力停止時点における無線通信の状態を参照し、当該無線通信の状態に応じてホスト機器からの初期化コマンドを出力するインタフェースを切り替えている。従って、本実施形態に係るインタフェース制御装置によれば、パワーリセットが意図せず実行された場合にも、適切な記憶メディアに対して初期化処理を迅速に実行することができる。
(第10の実施形態)
本発明の第10の実施形態に係るインタフェース制御装置100は、無線インタフェース103への電力供給の効率化に関する。本実施形態に係るインタフェース制御装置100は、平時において無線インタフェース103への電力供給を停止しておき、ホスト機器300に対するユーザの操作に基づいて無線インタフェース103への電力供給を一時的に再開する。
例えば、ホスト機器300がデジタルカメラである場合、ユーザは写真ファイルを外部へ転送するための転送モードへと人為的に切り替えることができる。転送モードへの切り替えは、デジタルカメラの筐体に備えられるスイッチの操作によって実現されてもよいし、アプリケーションを介した操作によって実現されてもよい。尚、ここでいうホスト機器300は、デジタルカメラに限られず、PC、デジタルTV、携帯電話機のようにカードスロットを備える情報処理装置であればよい。
ホスト機器300は、ユーザの操作によって転送モードに切り替えられると、カードスロットに差し込まれているメモリカード200を選択するための選択コマンドを送信する。例えば、メモリカード200がSDカードであれば、ホスト機器300は当該SDカードのRCAを格納したコマンド7を送信する。
選択コマンドを受信したインタフェース制御部110は、無線インタフェース103への電力供給を開始する。そして、インタフェース制御部110は、無線インタフェース103を介した通信が所定時間内に確立するか否かを監視する。インタフェース制御部110は、無線インタフェース103を介した通信が確立すれば、無線インタフェース103を介して外部の記憶メディアとホスト機器300との間で信号を中継する。一方、インタフェース制御部110は、無線インタフェース103を介した通信が確立しなければ、無線インタフェース103への電力供給を停止する。例えばホスト機器300がデジタルカメラであれば、ユーザが単に写真撮影を行ったときにも上記選択コマンドがメモリカード200に送信されてしまうため、無線通信が現実に行われるか否かを判定する必要がある。尚、無線インタフェース103を介した通信がいわゆる近距離無線通信である場合には、ホスト機器と外部機器とを物理的に近接させるために比較的長い時間を要するおそれがある。従って、無線通信の確立を判定するための時間に余裕を与えることが望ましい。
また、インタフェース制御部110は、選択コマンドに含まれるRCAがメモリ制御部202及び外部の記憶メディアのいずれのものでない場合には、無線インタフェース103への電力供給を停止してもよい。
以上説明したように、本実施形態に係るインタフェース制御装置は、ユーザの操作に応じてホスト機器が生成する選択コマンドを受信するまで無線インタフェースへの電力供給を停止している。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器が供給する電力が削減されるため、ホスト機器を長時間動作させることができる。
(第11の実施形態)
本発明の第11の実施形態に係るインタフェース制御装置100は、信号解析部112の省力化に関する。本実施形態に係るインタフェース制御装置100は、図13に示すように、切り替え部105を備えているものとする。
前述した第8及び第9の実施形態において、インタフェース制御部110内部の信号解析部112は、無線通信が確立すると、ホスト機器300とメモリ制御部202との間での信号送受信が実行中であるか否かを判定していた。しかし、前述した切り替え部105の作用によってインタフェース制御部110を第2の動作モードに設定することにより、このような判定処理が不要となる。
前述した第2の動作モードにおいて、ホスト機器300はメモリ制御部202にアクセスの記憶容量が零であることを示すレスポンスを受信するため、当該メモリ制御部202へのアクセスを行わない。従って、無線通信が確立した時点においてホスト機器300とメモリ制御部202との間での信号送受信は実行されていないことが明らかので、上記判定処理は不要となる。また、同様の効果を得る方法として、インタフェース制御部110が第2の動作モードに設定された場合には、無線インタフェース103を介した外部からのフラッシュメモリ201への書き込みは許可するものの、ホスト機器300からのフラッシュメモリ201への書き込み(Write)を禁止するようにしてもよい。
以上説明したように、本実施形態に係るインタフェース制御装置は、切り替え部を用いてインタフェース制御部を第2の動作モードに設定することにより、メモリ制御インタフェースを介した信号送受信を禁止、もしくは、記憶メディアへの書き込みを無線インタフェースを介した書き込みのみに制約している。従って、本実施形態に係るインタフェース制御装置によれば、信号解析部の処理負担を軽減しつつ再初期化処理をより迅速に実行できる。
(第12の実施形態)
本発明の第12の実施形態に係るインタフェース制御装置100は、無線伝送の効率化に関する。一般に、無線通信の伝送速度が高いほど、パケットにおけるオーバヘッド(例えばプリアンブル)の比率が増大する傾向にあることが知られている。即ち、伝送速度が高いほど伝送効率は低下する。換言すれば、伝送速度の向上に比べて実効速度(例えば、スループット)の向上は小さい。伝送効率を向上するための一手法として、アグリゲーション技術が知られている。アグリゲーション技術は、複数のパケットを1つのパケット(アグリゲーションパケット)に集約して伝送することを可能にする。但し、アグリゲーション技術を適用するためには、アグリケーションパケットを構成する複数のパケットをバッファメモリ等に一時的に保持しておく必要がある。しかしながら、バッファメモリは消費電力及び回路面積のいずれも大きいという問題がある。特に、バッファメモリとして一般的な揮発性メモリの消費電力は大きい。
従って、本実施形態に係るインタフェース制御装置100は、フラッシュメモリ201の一部の領域(空き領域)をバッファメモリとして利用する。即ち、インタフェース制御部110は、ホスト機器300からホストインタフェース102を介して信号(例えばWriteデータ)を受信したときにフラッシュメモリ201に十分な空き容量があれば、当該信号をメモリ制御インタフェース101を介してメモリ制御部202に送信する。そして、一定量あるいは全ての信号がフラッシュメモリ201に保持された段階で、インタフェース制御部110はメモリ制御インタフェース101を介して上記信号を読み出して、無線インタフェース103に送信する。無線インタフェース103は、インタフェース制御部110からの信号に基づきアグリゲーションパケットを生成し、送信する。また、前述した第2の動作モードにおいてホスト機器300からメモリカード200へのアクセスは禁止されるので、フラッシュメモリ201には十分な空き容量があることが期待できる。従って、第2の動作モードにおいて、インタフェース制御部110はフラッシュメモリ201をバッファメモリとして積極的に利用してよい。
また、無線インタフェース103を介した通信の品質が一時的に劣化することがある。具体的には、無線インタフェース103を介した通信の伝送速度が、ホストインタフェース102を介した通信の伝送速度を下回ることがある。このような場合にも、ホストインタフェース102を介して受信する信号(例えばWriteデータ)を確実に外部の記憶メディアに確実に伝送するためにバッファメモリとしてのフラッシュメモリ201の利用が有効である。
特に、前述したとおり、ホスト機器から供給される電力が小さく、その結果、無線インタフェースに供給されるクロック周波数が小さくなり、高速な無線伝送ができない場合に有効である。尚、ホスト機器300とインタフェース制御装置100との間でフロー制御を行うことも有効であると考えられる。しかしながら、フロー制御を行うためには、ホスト機器300に備えられるインタフェースがフロー制御可能な仕様でなければならないという問題がある。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器に接続されている記憶メディアをバッファメモリとして利用している。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器が外部の記憶メディアへより効率よくアクセスできる。
(第13の実施形態)
本発明の第13の実施形態に係るインタフェース制御装置100は、ホスト機器300が受信側として機能して外部の記憶メディアから信号を受信する場合における、信号伝送の効率化に関する。
ホストインタフェース102を介した通信の伝送速度は、ホスト機器300が提供するクロック周波数によって決まる。従って、無線インタフェース103を介した通信の伝送速度が比較的高速である場合に問題が生じる。即ち、無線インタフェース103を介してインタフェース制御部110が受信する信号(例えばReadデータ)量が、ホストインタフェース102を介して送信可能な信号量を上回る。このような場合には、インタフェース制御部110は、ホストインタフェース102を介して送信できない信号を廃棄するか、バッファメモリに保持しておかなければならない。
そこで、本実施形態において、インタフェース制御部110は、フラッシュメモリ201の一部の領域をバッファメモリとして利用する。即ち、無線インタフェース103を介して受信した信号を直ちにホストインタフェース102を介して送信するのでなく、一旦メモリ制御インタフェース101を介して送信する。ここで、例えば前述したクロック供給部120が高速なクロックをメモリ制御インタフェース101へ供給しているものとする。従って、メモリ制御インタフェース101を介した通信の伝送速度は、無線インタフェース103を介した通信の伝送速度に適合している。故に、無線インタフェース103を介して受信した信号は、漏れなくメモリ制御インタフェース101を介して送信され、フラッシュメモリ201に一時的に保持される。
そして、バッファメモリとしてのフラッシュメモリ201に保持されている信号を読み出す場合には、無線インタフェース103を介した通信が確立している場合であっても、インタフェース制御部110はホスト機器300から供給されるクロックをメモリ制御インタフェース101に与える。即ち、ホスト機器300が供給するクロック周波数に応じた伝送速度で、上記信号はメモリ制御インタフェース101及びホストインタフェース102を介してホスト機器300に送信される。なお、ホスト機器300が供給するクロックが低速な場合は、無線インタフェース103に供給するクロックを低速にする方法なども考えられるが、無線区間の伝送時間が長くなると、無線環境の変化による影響を受けやすくなるため、本実施形態のように、無線区間の伝送時間ができるだけ短くなるように、高速無線伝送を行う方が望ましい。
一方、ホスト機器300が供給するクロック周波数が十分高い場合には、フラッシュメモリ201をバッファメモリとして利用する技術的意義は乏しい。従って、インタフェース制御部110は、ホスト機器300から供給されるクロック周波数がクロック供給部120等を用いてメモリ制御インタフェース101に供給可能なクロック周波数以上であれば、無線インタフェース103を介して受信した信号を直ちにホストインタフェース102を介して送信してもよい。
以上説明したように、本実施形態に係るインタフェース制御装置は、ホスト機器が供給可能なクロック周波数が比較的低い場合に、当該ホスト機器に接続されている記憶メディアをバッファメモリとして利用している。従って、本実施形態に係るインタフェース制御装置によれば、ホスト機器の能力によらず外部の記憶メディアからの信号を効率よく受信できる。
尚、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。