(57)【特許請求の範囲】
【請求項１】
リードコマンドを発行してデータ転送を要求するホスト装置と、メモリカードとの間のデータ転送を制御するメモリカードコントローラであって、
前記ホスト装置から、データ転送に関する転送サイズ及び転送開始アドレスを指定したリードコマンドを受け付ける受付部と、
前記メモリカードとの間のデータ転送を、前記メモリカードからの転送許可要求に対する応答によって制御するフロー制御部と、
前記受付部を介して前記ホスト装置から連続して受け付けた２つのリードコマンドに対して、前に受け付けたリードコマンドによるデータ転送の終了アドレスと、次に受け付けたリードコマンドが指定する転送開始アドレスの連続性を判定する連続性照合部と、
前記リードコマンドに応じて前記メモリカードに対して転送コマンドを発行するコマンド制御部と、を備え、
前記コマンド制御部は、
（１）前記受付部が第１リードコマンドを受け付けたときに、
前記第１リードコマンドが指定する転送開始アドレスと、前記第１リードコマンドが指定する転送サイズよりも大きな所定の転送サイズとを指定して前記転送コマンドを前記メモリカードに発行して、前記メモリカードからデータの転送を開始させるとともに、
前記転送コマンドに応答して前記メモリカードから前記ホスト装置に転送されたデータのサイズが、前記第１リードコマンドにより指定された転送サイズに達したときに、前記メモリカードからの転送許可要求に対して転送準備中を示す応答を送信するように前記フロー制御部を制御して、前記メモリカードの転送動作を一時停止させ、
（２）前記メモリカードの転送動作を一時停止させた状態で前記受付部が第２リードコマンドを受け付けたときに、
前記連続性照合部により前記第２リードコマンドが示す転送開始アドレスが前記第１リードコマンドによる終了アドレスと連続性を有すると判定されたときは、前記メモリカードからの転送許可要求に対して転送可能を示す応答を送信するよう前記フロー制御部を制御して、前記メモリカードの転送動作を再開させ、
前記転送可能を示す応答に応答して前記メモリカードから前記ホスト装置に転送されたデータのサイズが、前記第２リードコマンドにより指定された転送サイズに達したときに、前記メモリカードからの転送許可要求に対して転送準備中を示す応答を送信するように前記フロー制御部を制御して、前記メモリカードの転送動作を一時停止させる、
メモリカードコントローラ。
【請求項２】
前記所定の転送サイズは無限長である、
請求項１に記載のメモリカードコントローラ。
【請求項３】
前記所定の転送サイズは、前記メモリカードにおける設定可能なデータ転送サイズの最大値である、
請求項１に記載のメモリカードコントローラ。
【請求項４】
前記コマンド制御部は、
前記（２）を実行して前記メモリカードの転送動作が一時停止状態にある場合において、前記受付部が前記第２リードコマンドを受け付けてから所定時間の間、前記ホスト装置から新たなリードコマンドを受け付けないときは、前記メモリカードからの転送許可要求に対して強制終了を示す応答を送信するように前記フロー制御部を制御する、
請求項１から請求項３の何れかに記載のメモリカードコントローラ。
【請求項５】
前記コマンド制御部は、
前記第１リードコマンドによる前記メモリカードからのデータ読み出しが終了すると、前記メモリカードからの転送許可要求に対して転送準備中を示す応答を送信するように前記フロー制御部を制御し、前記メモリカードからの読み出し動作を一時停止して前記ホスト装置に読み出し終了を通知し、
前記第１リードコマンドの受信後に前記ホスト装置から受信したコマンドが前記メモリカードへのアクセスを生じさせないコマンドであるときは、前記メモリカードからの読み出しを一時停止した状態で維持する、
請求項１から請求項４の何れかに記載のメモリカードコントローラ。
【請求項６】
前記コマンド制御部は、
前記第１リードコマンドによる前記メモリカードからのデータ読み出しが終了すると、前記メモリカードからの転送許可要求に対して転送準備中を示す応答を送信させるように前記フロー制御部を制御し、前記メモリカードからの読み出し動作を一時停止して前記ホスト装置に読み出し終了を通知し、
前記第１リードコマンドの受信後に前記ホスト装置から受信したコマンドがリードコマンドでない場合、または前記第１のリードコマンドの受信後に前記ホスト装置から受信した前記第２リードコマンドの読み出し開始アドレスが前記第１リードコマンドの読み出し終了アドレスと連続していない場合、前記メモリカードからの転送許可要求に対して強制終了を示す応答を送信するように前記フロー制御部を制御し、前記第１リードコマンドによる処理に対する終了処理を行い、前記メモリカードに対して前記第２リードコマンドに対応するアクセスを再開する、
請求項１から請求項５の何れかに記載のメモリカードコントローラ。
【請求項７】
ホスト装置とメモリカードの間のデータ転送を制御するメモリカードアダプタであって、
前記メモリカードを装着可能なカードスロットと、
前記メモリカードからのデータの転送を制御する、請求項１から請求項６の何れかに記載のメモリカードコントローラと、
前記ホスト装置に対するデータ及びコマンドの送受信を行う外部インターフェイス部と、
を備える、
メモリカードアダプタ。
【請求項８】
ホスト装置からの要求にしたがいデータの転送を行うメモリカードドライブであって、
データを格納するメモリカードと、
前記メモリカードからのデータの転送を制御する、請求項１から請求項６の何れかに記載のメモリカードコントローラと、
前記ホスト装置に対するデータ及びコマンドの送受信を行う外部インターフェイス部と、
を備える、
メモリカードドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置とメモリカードとの間のデータ転送を制御するメモリカードコントローラに関する。
【背景技術】
【０００２】
フラッシュメモリの低価格化、高速化に伴い、民生機器の分野のみならず、プロフェッショナル用途の映像機器の分野においても、メモリカードに動画像データを記録するようになりつつある。
【０００３】
メモリカードに記録した動画像データは、編集やアーカーブのために、メモリカードからサーバにアップロードされる。プロフェッショナル用途で使用する動画像データは大容量である。そのため、メモリカードからのデータのリード速度はライト速度よりも例えば数倍高速であることが要望されている。
【０００４】
ここで、書き換え回数に制約があるフラッシュメモリ等を使用したメモリカードでは、書き換え回数を平均化するために、論理アドレスとメモリカード内部の不揮発性メモリの物理アドレスの対応が動的に制御される。そのため、論理アドレスと物理アドレスの対応を記録した論物変換テーブルが不揮発性メモリに記録される。このような構成においては、メモリカードのリード動作は、論物変換テーブルを参照して指定された論理アドレスに対応する物理アドレスを読み出す処理と、読み出された物理アドレスに基づいて実データを読み出す処理との２ステップを含む。
【０００５】
ところで、汎用ＰＣなどのホスト機器がメモリカードに発行するリードコマンドの読み出しサイズ（転送サイズ）は、比較的小さい。そのため、コマンドのオーバーヘッドや、論物変換テーブルにかかるオーバーヘッドが無視できない。
【０００６】
特許文献１においては、メモリカードコントローラは、読み出したデータのデータ量がリードコマンドより指定されたデータ量に到達すると、リード動作を一時停止する。そして、後続するリードコマンドにより指定された先頭アドレスが、先行するコマンドにより指定された転送終了アドレスと連続であった場合に、リード動作を再開する。リード動作の停止および再開は、クロックの停止と供給により制御される。
【０００７】
これにより、連続する領域に対してデータ転送を要求するコマンドが、ホスト装置から続けて発行される場合、コマンドを受け付ける度に転送開始命令を発行する必要がないので、より高速なデータ転送が実現される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４３２３４７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年、フラッシュメモリのインターフェイスの高速化に伴い、メモリカードの外部インターフェイスも高速なシリアルインターフェイスが採用されつつある。例えば、ＳＤカードでは、転送速度が３Ｇｂｐｓの高速インターフェイスＵＨＳ−IIが規格化された。
【００１０】
このような高速インターフェイス規格では、従来のメモリカードのようにクロックとデータが別々に転送されるのではなく、クロックを、転送されるデータから再生して使用する（エンベディッドクロック方式）。
【００１１】
よって、このような高速インターフェイス規格に対しては、特許文献１に開示の従来技術のように転送の一時停止のためにクロックを停止することにより、データ転送を制御する方法は適用できない。
【００１２】
本発明は、エンベディッドクロック方式を採用したメモリカードにおいて、ホスト装置からの読み出し指示がデータ長の短い読み出しコマンドで行われる場合でも、データ読み出しの際の転送速度を向上させることができるメモリカードコントローラ、メモリカードアダプタおよびメモリカードドライブを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の態様において、リードコマンドを発行してデータ転送を要求するホスト装置と、メモリカードとの間のデータ転送を制御するメモリカードコントローラが提供される。このメモリカードコントローラは、ホスト装置から、データ転送に関する転送サイズ及び転送開始アドレスを指定したリードコマンドを受け付ける受付部と、メモリカードとの間のデータ転送を、メモリカードからの転送許可要求に対する応答によって制御するフロー制御部と、受付部を介して前記ホスト装置から連続して受け付けた２つのリードコマンドに対して、前に受け付けたリードコマンドによるデータ転送の終了アドレスと、次に受け付けたリードコマンドが指定する転送開始アドレスの連続性を判定する連続性照合部と、リードコマンドに応じてメモリカードに対して転送コマンドを発行するコマンド制御部と、を備る。コマンド制御部は、受付部が第１リードコマンドを受け付けたときに、第１リードコマンドが指定する転送開始アドレスと、第１リードコマンドが指定する転送サイズよりも大きな所定の転送サイズとを指定して転送コマンドをメモリカードに発行して、データの転送を開始させるとともに、転送コマンドに応答してメモリカードから前記ホスト装置に転送されたデータのサイズが、第１リードコマンドにより指定された転送サイズに達したときに、メモリカードからの転送許可要求に対して準備中を示す応答を送信するようにフロー制御部を制御して、メモリカードの転送動作を一時停止させ、メモリカードの転送動作を一時停止させた状態で受付部が第２リードコマンドを受け付けたときに、連続性照合部により第２リードコマンドが示す転送開始アドレスが第１リードコマンドによる終了アドレスと連続性を有すると判定されたときは、メモリカードからの転送許可要求に対して転送可能を示す応答を送信するようフロー制御部を制御して、メモリカードの転送動作を再開させる。
【００１４】
本発明の第２の態様において、ホスト装置とメモリカードの間のデータ転送を制御するメモリカードアダプタが提供される。このメモリカードアダプタは、メモリカードを装着可能なカードスロットと、メモリカードからのデータの転送を制御する、第１の態様に記載のメモリカードコントローラと、ホスト装置に対するデータ及びコマンドの送受信を行う外部インターフェイス部と、を備える。
【００１５】
本発明の第３の態様において、ホスト装置からの要求にしたがいデータの転送を行うメモリカードドライブが提供される。このメモリカードドライブは、データを格納するメモリカードと、メモリカードからのデータの転送を制御する、第１の態様に記載のメモリカードコントローラと、ホスト装置に対するデータ及びコマンドの送受信を行う外部インターフェイス部と、を備える。
【発明の効果】
【００１６】
本発明の各態様にかかるメモリカードコントローラ、メモリカードアダプタ及びメモリカードドライブによれば、ホスト装置からリードコマンドが連続して発行された場合であっても、これらのリードコマンドが指定するアドレスが連続性を有しているときには、メモリカードへリードコマンドが発行されるのは、ホスト装置から最初のリードコマンドが発行されたときのみとなる。そのため、オーバーヘッド発生による読み出し処理の遅延を防止することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に係るメモリカードアダプタを含む映像信号の記録再生システムの構成を示す図
【図２】実施の形態に係るメモリカードアダプタの構成を示す図
【図３】実施の形態に係るメモリカードコントローラによるフロー制御の説明図
【図４】実施の形態に係るメモリカードコントローラによる処理の流れを示す図
【図５】実施の形態に係るメモリカードコントローラによる処理のタイミングチャート
【図６】実施の形態に係るメモリカードコントローラによる処理のフローチャート
【発明を実施するための形態】
【００１８】
１．構成
以降、本発明に係るメモリカードアダプタの実施形態について説明する。先ず始めに、実施の形態に係るメモリカードアダプタを含む映像信号の記録再生システムの構成を説明する。図１は、実施の形態に係るメモリカードアダプタを含む映像信号の記録再生システムの構成を示すブロック図である。図１に示すように、映像信号の記録再生システムは、ホスト装置１と、メモリカードアダプタ２と、メモリカード５とを含む。メモリカードアダプタ２は、映像信号の記録再生システムにおいて、メモリカードアダプタ２に挿入されたメモリカード５に映像信号を記録し、あるいはメモリカード５に記録された映像信号を再生するという用途に供される。なお、本実施形態では、メモリカード５としてＳＤカードを利用した場合について説明する。
【００１９】
ホスト装置１は、映像信号入出力部１ａと、信号処理部１ｂと、アダプタ制御部１ｃとを有する。信号処理部１ｂは、映像信号入出力部１ａを介して送受信する映像信号の圧縮復元を行う。アダプタ制御部１ｃは、メモリカードアダプタ２を制御する。
【００２０】
メモリカードアダプタ２は、カードスロット２ａと、外部インターフェイス部３と、メモリカードコントローラ４とを有する。カードスロット２ａには、メモリカード５を装着可能である。装着されたメモリカード５は、メモリカードアダプタ２に対して電気的に接続される。
【００２１】
メモリカード５は、エンベディッドクロック方式のインターフェイスを有する高速メモリカードであり、２本のシリアルインターフェイスを有する。エンベディッドクロック方式とは、転送されたデータからクロックを抽出して再生する方式である。ここで、メモリカード５へのデータ入力インターフェイスをＤ０、メモリカード５からのデータ出力インターフェイスをＤ１とする。メモリカード５は内部に、論理アドレスと、メモリカード５に内蔵されている不揮発性メモリの物理アドレスとの対応関係が記録された論物変換テーブルを有している。
【００２２】
２．動作
２−１．記録動作
メモリカード５の記録動作について説明する。データ記録時、ホスト装置１は、メモリカードアダプタ２に対して、メモリカード５における書き込み先頭の論理アドレスと書き込みサイズを指定したライトコマンドを発行する。ホスト装置１からライトコマンドを受けると、メモリカードコントローラ４は、ホスト装置１により指定された書き込み先頭の論理アドレスと書き込みサイズを、メモリカード５のプロトコルに対応した書き込み命令に変換して、メモリカード５に発行する。
【００２３】
メモリカード５は、ホスト装置１から書き込み命令がアサートされると、論物変換テーブルを読み出す。メモリカード５は、論物変換テーブルを読み出すと、論物変換テーブルに従い、転送されてくるデータを不揮発性メモリに書き込んでいく。メモリカードコントローラ４は、指定した書き込みサイズのデータの書き込みが終了すると、論物変換テーブルの更新を行い、書込終了を示す転送終了割り込みをホスト装置１にアサートする。
【００２４】
２−２．再生動作
メモリカード５の再生動作について説明する。再生時、ホスト装置１は、メモリカードアダプタ２に対して、メモリカード５における読み出し先頭論理アドレスと読み出しサイズを指定したリードコマンドを発行する。ホスト装置１からリードコマンドを受けると、メモリカードコントローラ４は、ホスト装置１から指定された読み出し先頭論理アドレスと読み出しサイズ（転送サイズ）を、メモリカード５のデータ読み出しプロトコルに対応した読み出し命令に変換する。読み出し命令を受信したメモリカード５は、読み出し先頭論理アドレスをメモリカード５内部の不揮発性メモリにおける物理アドレスに変換するために、論物変換テーブルを読み出す。論物変換テーブルを読み出すと、メモリカードコントローラ４は、論物変換テーブルに基づき、論理アドレスを物理アドレスに変換し、不揮発性メモリにおけるこの変換した物理アドレスから所望のデータを読み出す。メモリカード５から、指定された転送サイズのデータの読み出しが終了すると、メモリカードコントローラ４（メモリカードアダプタ２）は、読み出し処理を終了し、読み出し処理の終了を示す転送終了割り込みをホスト装置１にアサートする。
【００２５】
ホスト装置１からコマンドを受信してからメモリカードコントローラ４（メモリカードアダプタ２）が転送終了割り込みをアサートするまでの一連の過程をプロセスという。１回のプロセスで論物変換テーブルの読み出しが１回発生する。そのため、プロセスの数が多くなると、オーバーヘッドの悪影響が顕著化する。
【００２６】
ホスト装置１は、メモリカードアダプタ２に対してＡＴＡ規格（Advanced Technology Attachment)に準拠したコマンドを発行することによりメモリカード５に対する読み書きを行う。本実施形態では、ホスト装置１として映像機器を想定しているが、上記のようにＡＴＡコマンドを利用することにより、パソコン等をホスト装置１とする場合にも適用可能である。ホスト装置１は、メモリカードアダプタ２に接続されたメモリカード５を仮想ドライブとして認識し、記録再生先のセクタの論理アドレスと、書き込むべきセクタ数（書き込みサイズ）とを定めてＡＴＡコマンドを発行する。ここでいう”セクタ”は、メモリカード５上の記録ブロックと１対１で対応している。ＡＴＡコマンドは本来ディスク媒体を対象としたコマンドである。そのため、書込先等を”セクタ”を用いて表現している。
【００２７】
２−３．メモリカードアダプタの動作
２−３−１．メモリカードアダプタの構成
メモリカードアダプタの動作説明の前にまずメモリカードアダプタの構成について説明する。メモリカードアダプタ２の構成について、図２を参照しながら、さらに詳細に説明する。図２は、実施の形態に係るメモリカードアダプタの構成を示す図である。
【００２８】
図２に示すように、外部インターフェイス部３は、ＰＣＩターゲット部３ａと、ＰＣＩバスマスター部３ｂとを有する。外部インターフェイス部３は、カードバス規格に則ってホスト装置１とデータを送受信する。ＰＣＩターゲット部３ａは、ホスト装置１とのコマンドの送受信を行う。ＰＣＩバスマスター部３ｂは、ホスト装置１とのデータの送受信を行う。ＰＣＩバスマスター部３ｂは、ホスト装置１とのデータの送受信の際、バスマスターとなって、ホスト装置１とＤＭＡ転送を行う。データの送受信においてＤＭＡ転送を行うのは転送速度を向上させるためである。
【００２９】
メモリカードコントローラ４は、コマンド解析部４ａと、コマンド格納部４ｂと、データメモリ４ｃと、コマンド制御部４ｄと、フロー制御部４ｇと、Ｓ／Ｐ(Serial/Parallel)変換部４ｈとを有する。コマンド解析部４ａは、ＰＣＩターゲット部３ａから伝送されるコマンドを解析する。コマンド格納部４ｂは、今回転送されたコマンドの直前に転送されたコマンドを格納する。データメモリ４ｃは、メモリカード５と、外部インターフェイス部３のＰＣＩバスマスター部３ｂとの間でデータを転送する際にバッファーとして機能するバッファーメモリである。コマンド制御部４ｄは、連続性照合部４ｅとコマンド開始終了制御部４ｆを有する。連続性照合部４ｅは、今回転送されたコマンドが示す論理アドレスと、その直前に転送されたコマンドが示す論理アドレスの連続性を照合（判定）する。コマンド開始終了制御部４ｆは、連続性照合部４ｅの照合結果に基づき、フロー制御部４ｇに対してデータ転送に関する指示を出す。フロー制御部４ｇは、メモリカード５からのデータ転送許可要求パケットに対して、転送可能パケット、転送準備中パケットや強制終了パケットなどの応答を返す。Ｓ／Ｐ変換部４ｈは、フロー制御にかかる制御信号やユーザデータ等をメモリカード５に転送するためパケット化するシリアル化処理を行う。また、Ｓ／Ｐ変換部４ｈは、メモリカード５からメモリカードコントローラ４に転送されたシリアルデータから、フロー制御にかかる制御信号やユーザデータ等を抽出するパラレル化処理を実施する。
【００３０】
２−３−２．フロー制御
フロー制御について、図３を参照しながら説明する。図３はメモリカードコントローラによるフロー制御の説明図である。フロー制御を実施するにあたり、フロー制御の処理単位は、メモリカード５およびメモリカードコントローラ４で使用可能なメモリ容量を参照して決定される。例えば、フロー制御の処理単位が１ＫＢであれば、１ＫＢの転送を実施する毎に、フロー制御関連パケットが送受信され、また、メモリカード５からの転送サイズが１６ＫＢであれば、１６回分のフロー制御が実施される。
【００３１】
まず、メモリカードコントローラ４はメモリカード５にリードコマンドを発行する。
【００３２】
メモリカード５は、リードコマンドを受けると、リードの準備をおこない、転送単位（例えば１ＫＢ）のデータが転送可能となると、転送許可要求パケットをメモリカードコントローラ４に発行する。転送許可要求パケットに対して、メモリカードコントローラ４は以下の３パターンで応答する。
（パターン１）  転送可能パケットで応答（図３（ａ））
（パターン２）  転送準備中パケットで応答（図３（ｂ））
（パターン３）  強制終了パケットで応答（図３（ｃ））
なお、パターン２の転送準備中パケットでの応答は、応答しないことで転送準備中としてもよい。また、パターン３の強制終了パケットで応答された場合は、フロー制御のみならず、現転送にかかるメモリカードコマンドによる処理を強制終了してもよい。
【００３３】
このようにフロー制御を実施し、１ＫＢなどの予め定められた単位で転送を制御することで、メモリカード５及びメモリカードコントローラ４のデータメモリ４ｃ等のメモリの容量の制約や転送速度の揺れに対応することができる。
【００３４】
２−３−３．動作
以上のように構成されたメモリカードアダプタ２の動作について、図４及び図５を参照しながら詳細に説明する。図４はメモリカードコントローラ４の処理フローを示し、図５はメモリカードコントローラ４の主要部のタイミングチャートを示す。
【００３５】
図４及び図５において、Ａ［ｋ］（ｋは自然数）はｋ番目のＡＴＡコマンドを示し、ＤＡＴ［ｋ−ｍ］は、ｋ番目のＡＴＡコマンドにかかるデータ転送において、ｍ番目のデータパケットであることを示す（ｍは０からカウント開始）。Ｓ［ｋ］は、ｋ番目のＡＴＡコマンドに対応するメモリカード５へのコマンドを示す。
【００３６】
また、図５（ａ）は、ホスト装置１から発行されるＡＴＡコマンドのタイミングを示し、同図（ｂ）はＡＴＡコマンドに対応した転送が終了したことを示す転送終了割り込みのタイミングを示す。同図（ｃ）はメモリカードコマンドの発行タイミングを示す。同図（ｄ１）はメモリカード５からの転送許可要求パケットに対するメモリカードコントローラ４の応答のタイミングを示す。同図（ｄ２）はメモリカード５からの転送許可要求のタイミングを示す。同図（ｅ）はメモリカードの内部処理のタイミングを示す。同図（ｆ）はデータ転送のタイミングを示す。同図（ｅ）のメモリカードの内部処理は、論物変換テーブルを用いて読み出し先の論理アドレスから物理アドレスを参照する処理を示す。
【００３７】
図４及び図５において、Ａ［１］は８セクタ分のデータのリード転送を要求するＡＴＡコマンドであり、Ａ［２］およびＡ［３］は４セクタ分のデータのリード転送を要求するＡＴＡコマンドであり、転送にかかるフロー制御は４セクタ単位で実施するものとする。また、Ａ［１］のリード転送コマンドにおける転送終了セクタ番号とＡ［２］のリード転送コマンドにおける転送開始セクタ番号（転送開始アドレス）は連続であるが、Ａ［２］のリード転送コマンドにおける転送終了セクタ番号（転送終了アドレス）とＡ［３］のリード転送コマンドにおける転送開始セクタ番号は不連続であるものとする。
【００３８】
ホスト装置１より発行された、リード命令と先頭論理アドレス及び読み出しセクタ数（転送セクタ数）によって構成されるＡＴＡコマンドＡ［１］を受信すると、コマンド解析部４ａは、Ａ［１］を解析し、リードコマンドであると判断する（Ｓ３１）。コマンド制御部４ｄは、コマンド解析部４ａの解析結果に基づいて、メモリカード５に対して、メモリカードコマンド（Ｓ［１］、転送コマンド）を発行する（Ｓ３２）。メモリカードコマンドＳ［１］は、リード命令と先頭論理アドレスと転送セクタ数によって構成される。コマンド制御部４ｄは、Ｓ［１］を生成する際、Ｓ［１］の転送セクタ数を十分に大きい値、例えば無限長に変更する（Ｓ３２）。Ａ［１］はコマンド格納部４ｂに格納される。Ｓ［１］を受信したメモリカード５は、論物変換テーブルの参照等の内部処理終了後に、インターフェイスＤ１（図２参照）を介して、メモリカードコントローラ４に転送許可要求パケット（Ｃ１）を発行する。
【００３９】
データの読み出し制御（Ｓ３３）は、フロー制御部４ｇで行われる。まず、メモリカード５から転送された転送許可要求パケット（Ｃ１）に対し、メモリカードコントローラ４においてデータの転送が可能であれば、フロー制御部４ｇは、インターフェイスＤ０（図２参照）を介して転送可能パケット（Ｂ１）を発行する（Ｓ３３）。転送可能パケット（Ｂ１）を受信したメモリカード５は、Ａ［１］において指定された８セクタ分のデータのうち、まず、４セクタ分（所定サイズ）のデータＤＡＴ［１−０］を、メモリカードアダプタ２を介してホスト装置１に転送する。メモリカード５は、４セクタ分のデータＤＡＴ［１−０］を転送後、残りの４セクタ分のデータを転送するために、転送許可要求パケット（Ｃ２）を発行する。メモリカードコントローラ４がメモリカード５に対して転送可能パケット（Ｂ２）で応答すれば（Ｓ３４）、メモリカード５から４セクタ分のデータＤＡＴ［１−１］が、メモリカードアダプタ２を介してホスト装置１に転送される。そして、ＤＡＴ［１−１］のデータがホスト装置１に転送されると、メモリカードアダプタ２は割り込み（Ｅ１）をアサートし（Ｓ３５）、Ａ［１］にかかるデータ転送シーケンスを終了する。
【００４０】
この時点で、ホスト装置１から送信されるコマンドＡ［１］における転送サイズは８セクタであるのに対して、メモリカードコントローラ４が発行するコマンドＳ［１］の転送サイズは無限長となっている。したがって、ホスト装置１とメモリカードアダプタ２間におけるＡ［１］にかかる転送シーケンスは終了しているが、メモリカードアダプタ２とメモリカード５間におけるＳ［１］にかかる転送シーケンスは終了していない。このため、メモリカード５は、ＤＡＴ［１−１］の転送後、転送許可要求パケット（Ｃ３）を発行する。メモリカードアダプタ２は、ホスト装置１から指示がないため、転送許可要求パケット（Ｃ３）に対して転送準備中パケット（Ｂｕｓｙ）（Ｂ３）で応答する（Ｓ３６）。本実施例では転送準備中パケット（Ｂ３）で応答しているが、応答しなくても良いし、定義されていればＮＯＰ（Ｎｏ  Ｏｐｅｒａｔｉｏｎ）パケットで応答してもよい。これらの応答手法はプロトコル次第である。
【００４１】
割り込み（Ｅ１）を受信すると、ホスト装置１は、Ａ［２］をメモリカードアダプタ２に発行する。Ａ［２］はコマンド解析部４ａでリードコマンドと判定され（Ｓ３７）、連続性照合部４ｅに入力される。連続性照合部４ｅは、コマンド格納部４ｂに格納されているＡ［１］が指定する論理アドレスと、ホスト装置１から受信したＡ［２］が指定する論理アドレスの連続性を照合（判定）する（Ｓ３７）。具体的には、Ａ［２］が指定する先頭論理アドレスが、Ａ［１］が指定する先頭論理アドレスと転送セクタ数の和に等しいかどうかを照合（判定）する。つまり、Ａ［１］に関する最後のセクタの論理アドレスと、Ａ［２］に関する最初のセクタの論理アドレスが連続性を有しているかを判定する。本実施形態では、前述のように、Ａ［１］に関する最後のセクタの論理アドレスと、Ａ［２］に関する最初のセクタの論理アドレスが連続性を有していることを前提としている。そのため、コマンド開始終了制御部４ｆは、フロー制御部４ｇに転送を継続することを指示する。転送継続を指示されたフロー制御部４ｇは、メモリカード５から発行されていた転送許可要求パケット（Ｃ３）に対して、転送可能パケット（Ｒｅａｄｙ）（Ｂ４）で応答する（Ｓ３８）。これにより、転送が継続される。
【００４２】
この段階で、コマンド格納部４ｂに格納されていたＡ［１］は廃棄され、代わりにＡ［２］が格納される。転送可能パケット（Ｂ４）を受信したメモリカード５は、Ａ［２］に対応した４セクタ分のデータＤＡＴ［２］を読み出して、メモリカードアダプタ２を介してホスト装置１に転送する。４セクタ分のＤＡＴ［２］の転送が終了すると、メモリカードアダプタ２はホスト装置１に割り込み（Ｅ２）をアサートする（Ｓ３９）。
【００４３】
この時点で、ホスト装置１から送信されるコマンドＡ［２］における転送サイズは４セクタであるのに対して、メモリカードコントローラ４が発行するコマンドＳ［１］の転送サイズは無限長となっている。よって、ホスト装置１とメモリカードアダプタ２間におけるＡ［１］にかかる転送シーケンスは終了しているが、メモリカードアダプタ２とメモリカード５間におけるＳ［１］にかかる転送シーケンスは終了していない。このため、メモリカード５は、転送許可要求パケット（Ｃ４）を発行する。メモリカードアダプタ２は、ホスト装置１から指示がないため、転送許可要求パケット（Ｃ４）に対して転送準備中パケット（Ｂｕｓｙ）（Ｂ５）で応答する（Ｓ４０）。
【００４４】
割り込み（Ｅ２）を受信した後、データ転送の必要性が生じると、ホスト装置１は、Ａ［３］をメモリカードアダプタ２に発行する。Ａ［３］はコマンド解析部４ａでリードコマンドと判定され（Ｓ４１）、連続性照合部４ｅに入力される。連続性照合部４ｅは、コマンド格納部４ｂにより参照されるＡ［２］が指定する論理アドレスと、ホスト装置１から受理したＡ［３］が指定する論理アドレスの連続性を照合（判定）する（Ｓ４１）。具体的には、Ａ［３］が指定する先頭論理アドレスが、Ａ［２］が指定する先頭論理アドレスと転送セクタ数の和に等しいかどうかを照合（判定）する。本実施形態では、前述のように、Ａ［２］に関する最後のセクタの論理アドレスと、Ａ［３］に関する最初のセクタの論理アドレスが連続性を有していないことを前提としている。よって、コマンド開始終了制御部４ｆは、メモリカード５から発行済みの転送許可要求パケット（Ｃ４）に対し、強制終了（Ａｂｏｒｔ）パケット（Ｂ６）の発行をフロー制御部４ｇに対して指示する。また、コマンド開始終了制御部４ｆは、Ｓ［１］の無限長転送を強制終了するため、強制終了のメモリカードコマンドＤ［１］を発行する（Ｓ４１）。
【００４５】
強制終了のメモリカードコマンドＤ［１］を発行した後（終了処理を行った後）、メモリカードアダプタ２は、Ａ［３］に対応するメモリカードコマンドＳ［３］をメモリカード５に発行する（Ｓ４２）。Ｓ［３］における転送サイズは、Ｓ［１］同様に、コマンド制御部４ｄにより無限長の転送サイズに変換される（Ｓ４２）。この段階で、コマンド格納部４ｂに格納されていたＡ［２］は廃棄され、代わりにＡ［３］が格納される。Ｓ［３］を受信したメモリカード５は、論物変換テーブルの参照等の内部処理終了後、データＤＡＴ［３］の転送を行うために、転送許可要求パケット（Ｃ５）をメモリカード５に発行する。
【００４６】
転送許可要求パケット（Ｃ５）を受信したメモリカードアダプタ２は、メモリカード５に対して転送可能パケット（Ｂ７）を発行する（Ｓ４３）。転送可能パケット（Ｂ７）を受信したメモリカード５は、データＤＡＴ［３］を読み出して、メモリカードアダプタ２を介してホスト装置１に転送する。転送セクタ数分のデータＤＡＴ［３］の転送が終了すると、メモリカードアダプタ２はホスト装置１に割り込み（Ｅ３）をアサートする（Ｓ４４）。
【００４７】
ここで、ホスト装置１から送信されるコマンドＡ［３］における転送サイズは４セクタであるのに対して、メモリカードコントローラ４が発行するコマンドＳ［３］の転送サイズは無限長となっている。よって、ホスト装置１とメモリカードアダプタ２間におけるＡ［３］にかかる転送シーケンスは終了しているが、メモリカードアダプタ２とメモリカード５間におけるＳ［３］にかかる転送シーケンスは終了していない。このため、メモリカード５は、転送許可要求パケット（Ｃ６）を発行する（Ｓ４５）。メモリカードアダプタ２は、ホスト装置１から指示がないため、転送許可要求パケット（Ｃ６）に対して転送準備中パケット（Ｂｕｓｙ）（Ｂ８）で応答する（Ｓ４５）。
【００４８】
Ａ［３］の後にホスト装置１からコマンドが発行されないで所定時間が経過すると、メモリカードアダプタ２は、タイムアウト処理に入り、メモリカード５からの転送許可要求パケット（Ｃ６）に対して強制終了パケット（Ｂ９）を発行して、メモリカードコマンドに対する終了処理を実施するとともに、フロー制御（Ｓ４５）を終了する。なお、メモリカードコマンドに対応する終了処理はフロー制御の強制終了パケット（Ｂ９）で実施するのではなく、メモリカードコマンドで実施してもよい。
【００４９】
以上説明したように、本実施の形態ではメモリカードコントローラ４において、Ａ［２］に対応する、メモリカード５への指示コマンドの発行が不要となる。また、これに伴って、メモリカード５において、論物変換テーブルの参照処理等の内部処理が不要となる。
【００５０】
メモリカードコントローラ４において、ＡＴＡコマンドに対応して発行するメモリカード５への指示コマンドの生成時間（コマンド変換処理）とメモリカード５における論物変換テーブルの参照処理等の内部処理時間の合計時間をｕ、セクタ当たりのデータ転送時間をｔとすると、Ａ［１］の転送時間は（ｕ＋８＊ｔ）であるのに対して、Ａ［２］の転送時間は４＊ｔとなる。よって、Ａ［１］〜Ａ［２］の転送にかかる時間を以下のように短縮することができる。
【００５１】
例えば、ｕ＝４＊ｔとした場合
総転送時間は、４＊ｔ＋８＊ｔ＋４＊ｔ＝１６＊ｔとなる。
【００５２】
これに対し、Ａ［２］に対応して従来のようにメモリカードコマンドＳ［２］を発行した場合、
総転送時間は、（４＊ｔ＋８＊ｔ）＋（４＊ｔ＋４＊ｔ）＝２０＊ｔとなる。
よって、本実施形態の転送速度と従来の転送速度を比較すると、その比は、２０＊ｔ／１６＊ｔとなり、転送速度が２５％向上する。
【００５３】
さらに、（現コマンドの先頭リードセクタ番号）＝（前コマンドの先頭リードセクタ番号＋前コマンドの転送セクタ数）を満たす状態が連続しているほど転送速度の向上効果が大きくなる。例えば４セクタのリードコマンドが８個連続している場合、本実施形態の転送速度と従来の転送速度の比は、８＊（４＊ｔ＋４＊ｔ）／（４＊ｔ＋８＊４＊ｔ）＝６４／３６となり、転送速度が７８％向上する。
【００５４】
２−３−４．メモリカードコントローラの動作
次に、メモリカードコントローラ４の動作について、図６のフローチャートを参照して説明する。メモリカードコントローラ４は専用ハードウェアで実現できるが、コンピュータ読み取り可能な言語で記述されたプログラムと、マイクロプロセッサとで構成してもよい。
【００５５】
コマンド解析部４ａは、ＡＴＡコマンドがホスト装置１より発行されるのを待っている（ステップＳ１）。コマンド解析部４ａは、ホスト装置１からコマンドを受信すると（ステップＳ１でＹｅｓ）、ＡＴＡコマンドの種類、開始アドレスＸ［Ｉ］及びセクタ数Ｙ［Ｉ］を解読し（ステップＳ２）、次にメモリカード５の状態を検出する（ステップＳ３）。
【００５６】
ステップＳ３で転送終了状態（Ｎｏ：転送準備中でない状態）（ステップＳ３でＮｏ）の場合は、受信したコマンドがリードコマンドか否か判定する（ステップＳ４）。なお、リードコマンドでないコマンドとは、メモリカード５からのデータのリードを生じさせないコマンドであり、例えば、ホスト装置１がメモリカードアダプタ２の属性等を取得するためのコマンドつまりメモリカード５へのアクセスが不要なコマンドや、ライトコマンドである。受信したコマンドがリードコマンドであれば（ステップＳ４でＹｅｓ）、転送サイズを無限長に変換したリードコマンドをメモリカード５に発行し（ステップＳ５）、転送セクタ数がＹ［Ｉ］に到達するまでデータを転送する（ステップＳ９）。転送セクタ数がＹ［Ｉ］に到達すると（ステップＳ９でＹｅｓ）、メモリカード５の転送許可要求に対して、転送準備中として応答することをフロー制御部４ｇに指示するとともに、Ｘ［Ｉ］＋Ｙ［Ｉ］をＸ［Ｊ］に代入し（ステップＳ１４）、ホスト装置１に対して転送終了割り込みを発生する（ステップＳ１５）。他方、受信したコマンドがリードコマンドでない場合は（ステップＳ４でＮｏ）、メモリカード５に対してメモリカード５用のプロトコルでコマンドを発行し（ステップＳ６）、このコマンドに対応する処理が終了すると（ステップＳ７）、ホスト装置１に転送終了割り込みを発生させる（ステップＳ８）。
【００５７】
さらに、ステップＳ３で、フロー制御が転送準備中である場合は（Ｙｅｓ）、受信したコマンドがリードコマンドでかつ（Ｘ［Ｉ］＝Ｘ［Ｊ］）を満たすか判定する（ステップＳ１０）。受理したコマンドがリードコマンドでかつ（Ｘ［Ｉ］＝Ｘ［Ｊ］）の条件を満たす場合は（ステップＳ１０でＹｅｓ）、転送許可のフロー制御を行うことでデータ転送を再開する（ステップＳ１２）。転送セクタ数がＹ［Ｉ］に到達するまでの間はデータ転送を継続し（ステップＳ１３でＮｏ）、転送セクタ数がＹ［Ｉ］に到達すると（ステップＳ１３でＹｅｓ）、転送準備中のフロー制御を実施するとともに、Ｘ［Ｉ］＋Ｙ［Ｉ］をＸ［Ｊ］に代入し（ステップＳ１４）、ホスト装置１に転送終了割り込みを発生させる（ステップＳ１５）。他方、受信したコマンドがリードコマンドでかつ（Ｘ［Ｉ］＝Ｘ［Ｊ］）の条件を満たさない場合は（ステップＳ１０でＮｏ）、転送強制終了のフロー制御を実施した後（ステップＳ１１）、ステップＳ４の判定を実行し、以後、この判定結果に従った処理を行う。
【００５８】
なお、ステップＳ８において割り込みを発生させた場合（転送終了状態（状態Ａ））と、ステップＳ１５において割り込みを発生させた場合（転送準備中状態（状態Ｂ））とでは、異なるフロー制御が行われる。具体的には、ステップＳ１においてコマンドが受信されない場合（Ｎｏ）、現在のフロー制御状態が状態Ａか状態Ｂかが判定される（ステップＳ１８）。そして、判定結果が状態Ａのときは、ステップ１を実行する。一方、判定結果が状態Ｂのときは、ステップＳ１６を実行する。ステップＳ１６では、ホスト装置１に割り込みを発生してから所定時間の間、ホスト装置１から次のコマンドが発行されていないか否かが判定される。次のコマンドが所定時間の間発行されていない場合（ステップＳ１６でＹｅｓ）、メモリカードコントローラ４はタイムアウトと判定し、転送強制終了のフロー制御を実施する（ステップＳ１７）。一方、所定時間が経過していないときは、ステップ１を実行する。
【００５９】
このように、メモリカード５に対するフロー制御の状態が転送準備中で、ホスト装置１から後続するコマンドがない場合は、タイムアウトを検出後、メモリカードアダプタ２から強制終了パケットを発行することにより、フロー制御の転送許可要求パケット並びにメモリカード５における現コマンドに対応する処理を終了させることができる。これにより、メモリカード５の安定した動作が可能となる。
【００６０】
図６のフローの例では、フロー制御における転送準備中状態（ステップＳ３でＹｅｓ）の後、強制終了パケットを発行（ステップＳ１１）、または転送許可パケットを発行（ステップＳ１２）する。しかしながら、コマンドをメモリカード５へのアクセスが発生するコマンドと発生しないコマンドに分類し、メモリカード５へのアクセスが発生しないコマンドの場合は、フロー制御における転送準備中状態のまま遷移してもよい。
【００６１】
これにより、複数の読み出しコマンドが発行される合間に、ホスト装置１からＩＤＥＮＴＩＦＹ−ＤＥＶＩＣＥのようなコマンドが発行された場合も、転送準備中状態を保持できるため、次の読み出しコマンドのオーバーヘッドを除去することが可能である。
【００６２】
なお、ステップＳ１０及びステップＳ１４で示したＸ［Ｊ］とＸ［Ｉ］の比較処理及びＸ［Ｊ］の作成処理は、マイコン処理遅延の影響が発生しないデータ転送中に実施したほうが、転送速度の点で有利である。
【００６３】
３．まとめ
本実施形態のメモリカードコントローラ４（メモリカードアダプタ２）は、リードコマンドを発行してデータ転送を要求するホスト装置１と、メモリカード５との間のデータ転送を制御する。メモリカードコントローラ４（メモリカードアダプタ２）は、ホスト装置１からデータ転送に関する転送サイズ及び転送開始アドレスを指定したリードコマンドを受け付けるコマンド解析部４ａと、メモリカード５との間のデータ転送を、メモリカード５からの転送許可要求に対する応答によって制御するフロー制御部４ｇと、コマンド解析部４ａを介してホスト装置１から連続して受け付けた２つのリードコマンドに対して、前に受け付けた第１リードコマンドによるデータ転送の終了アドレスと、次に受け付けたリードコマンドが指定するテータ転送開始アドレスの連続性を判定する連続性照合部４ｅと、リードコマンドに応じてメモリカード５に対して転送コマンドを発行するコマンド開始終了制御部４ｆと、を備える。コマンド開始終了制御部４ｆは、コマンド解析部４ａが第１リードコマンドを受け付けたときに、第１リードコマンドが指定する転送開始アドレスと、第１リードコマンドが指定する転送サイズよりも大きな所定の転送サイズとを指定して転送コマンドをメモリカード５に発行して、データの転送を開始させるとともに、前記転送コマンドに応答してメモリカード５から転送されたデータのサイズが、第１リードコマンドにより指定された転送サイズに達したときに、メモリカード５からの転送許可要求に対して準備中を示す応答を送信するようにフロー制御部４ｇを制御して、メモリカード５の転送動作を一時停止させ、メモリカード５の転送動作を一時停止させた状態でコマンド解析部４ａが第２リードコマンドを受け付けたときに、連続性照合部４ｅにより第２リードコマンドが示す転送開始アドレスが、第１リードコマンドにおる終了アドレスと連続性を有すると判定されたときは、メモリカード５からの転送許可要求に対して転送可能を示す応答を送信するようフロー制御部４ｇを制御してメモリカード５の転送動作を再開させる。
【００６４】
このような構成によれば、ホスト装置１からのリードコマンドが連続して発行された場合であっても、これらのリードコマンドが指定するアドレスが連続性を有しているときには、メモリカード５へリードコマンドが発行されるのは、ホスト装置１から最初のリードコマンドが発行されたときのみとなる。そのため、オーバーヘッド発生による読み出し処理の遅延を防止することができる。
【００６５】
また、コマンド開始終了制御部４ｆは、メモリカード５の転送動作が一時停止状態にある場合において、コマンド解析部４ａが第２のリードコマンドを受け付けた後、所定時間の間、ホスト装置１から第３のリードコマンドを受け付けないときは、メモリカード５からの転送許可要求に対して強制終了を示す応答を送信するようにフロー制御部４ｇを制御する。
【００６６】
このような構成により、フロー制御の転送許可要求並びにメモリカード５の現コマンドを終了させることができるので、メモリカード５の安定した動作が可能となる。
【００６７】
また、コマンド開始終了制御部４ｆは、第１のリードコマンドによるメモリカード５からのデータ読み出しが終了すると、メモリカード５からの転送許可要求に対して転送準備中を示す応答を送信するようにフロー制御部４ｇを制御し、メモリカード５からの読み出し動作を一時停止してホスト装置１に読み出し終了を通知し、第１のリードコマンドの受信後にホスト装置１から受信したコマンドがメモリカード５へのアクセスを実施しないコマンドであるときは、メモリカード５からの読み出しを一時停止した状態で維持する。
【００６８】
このような構成により、次のリードコマンドが発行されたときに、当該リードコマンドによるコマンドオーバーヘッドの発生を防止することができる。
【００６９】
また、コマンド開始終了制御部４ｆは、第１コマンドによるメモリカード５からのデータ読み出しが終了すると、メモリカード５からの転送許可要求に対して転送準備中を示す応答を送信するようにフロー制御部４ｇを制御し、メモリカード５からの読み出し動作を一時停止してホスト装置１に読み出し終了を通知し、第１のリードコマンドの受信後にホスト装置１から受信したコマンドがリードコマンドでない場合、または第１のリードコマンドの受信後にホスト装置１から受信した第２のリードコマンドの読み出し開始アドレスが第１のリードコマンドの読み出し終了アドレスと連続していない場合、フロー制御部４ｇに対してメモリカード５からの転送許可要求に対して強制終了を示す応答を送信するように前記フロー制御部４ｇを制御し、第１のリードコマンドによる処理に対する終了処理を行い、メモリカード５に対して第２のリードコマンドに対応するアクセスを再開する。
【００７０】
このような構成により、第２のリードコマンドが読み出しコマンドでない場合における当該コマンドによる処理を確実に行うことができる。また、第２のリードコマンドの読み出し開始アドレスが第１のリードコマンドの読み出し終了アドレスと連続していない場合は、論物変換テーブルを参照する必要が生じるので、それに対応した処理を行うことができる。
【００７１】
（その他の実施の形態）
本実施の形態ではメモリカードがＳＤカードである場合について説明したが、本発明は、これに限らず、例えば、リードコマンドによる読み出し時にオーバーヘッドが発生する性質を有する記録媒体に広く適用可能である。例えば、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカードに適用可能である。
【００７２】
また、本実施の形態では、メモリカードアダプタ２に本発明を適用した場合について説明したが、本発明は、データを格納する少なくとも１個のメモリカードを内蔵したメモリカードドライブに対しても適用可能である。
【００７３】
また、本実施の形態のメモリカードアダプタ２では、ホスト装置１から発行されたリードコマンドが指定する転送サイズを、無限長サイズに変換してメモリカード５に発行するが、変換後の転送サイズはこれに限定されない。例えば、メモリカード５において設定可能な最大転送サイズであってもよい。また、所望の効果が得られるならば、変換後の転送サイズは最大転送サイズに限らず、比較的大きなブロックのサイズに設定してもよい。
【００７４】
また、本実施の形態のメモリカードアダプタ２では、メモリカードコントローラ４と、外部インターフェイス部３とが分離した構成としたが、これらを統合した構成としてもよい。
【産業上の利用可能性】
【００７５】
本実施の形態に係るメモリカードコントローラ、メモリカードアダプタ、メモリカードドライブは、メモリカードへの書き込み・読み出し時における転送速度を向上させることができる。したがって、例えば、動画データの記録再生という用途にメモリカードを用いる場合に好適に利用可能である。そのため、本発明に係るメモリカードコントローラ及びメモリカードアダプタ、メモリカードドライブは、映像機器の製造に関連する映像機器産業等において広く利用される可能性がある。
【符号の説明】
【００７６】
１  ホスト装置
２  メモリカードアダプタ
３  外部インターフェイス部
４  メモリカードコントローラ
５  メモリカード
４ａ  コマンド解析部
４ｂ  コマンド格納部
４ｄ  コマンド制御部
４ｅ  連続性照合部
４ｆ  コマンド開始終了制御部
４ｇ  フロー制御部
【図１】
0005887568.tif 000002
【図２】
0005887568.tif 000003
【図３】
0005887568.tif 000004
【図４】
0005887568.tif 000005
【図５】
0005887568.tif 000006
【図６】
0005887568.tif 000007