(57)【要約】【課題】SDカードへ連続リードアクセスを行う際、セクタアクセス毎のクロック一時停止制御にCPUを介在させないSDカードコントローラ、制御方法、プログラム、及び記憶媒体を提供する。【解決手段】CPUの介在無しでSDカードと連続アクセスを行うSDカードコントローラにおいて、SDカードとの通信を制御する手段と、SDカードへ出力するデータを格納する手段と、データを格納する手段から読み出したデータを一時保存する手段と、CPUの介在無しでSDカードに対して出力するSDクロックのマスクを開始する手段と、CPU介在無しでSDカードに対して出力するSDクロックのマスクを解除する手段と、SDカードに対し、SDカードへ出力するSDクロックに同期させてデータを出力する手段を備えた。【選択図】図２
2011065218.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラにおいて、
前記ＳＤカードとの通信を制御する手段と、
前記ＳＤカードへ出力するデータを格納する手段と、
前記データを格納する手段から読み出したデータを一時保存する手段と、
前記ＣＰＵの介在無しで前記ＳＤカードに対して出力するＳＤクロックのマスクを開始する手段と、
前記ＣＰＵ介在無しで前記ＳＤカードに対して出力するＳＤクロックのマスクを解除する手段と、
前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックに同期させてデータを出力する手段を備えたことを特徴とするＳＤカードコントローラ。
【請求項２】
請求項１記載のＳＤカードコントローラにおいて、前記ＳＤクロックのマスクを解除する手段は、前記ＳＤカードとの通信を制御する手段が、ＳＤ転送データ情報の読み込みが完了したことをトリガとすることを特徴とするＳＤカードコントローラ。
【請求項３】
請求項１記載のＳＤカードコントローラにおいて、前記ＳＤクロックのマスクを解除する手段は、ＳＤ出力データを格納する手段から読み出し、データを一時保存する手段に保存完了したことをトリガとすることを特徴とするＳＤカードコントローラ。
【請求項４】
請求項１記載のＳＤカードコントローラにおいて、前記ＳＤクロックのマスクを開始する手段は、前記ＳＤカードとのインターフェースのバス監視により、コマンドもしくは出力データ通信完了のレスポンスを確認することをトリガとすることを特徴とするＳＤカードコントローラ。
【請求項５】
請求項１記載のＳＤカードコントローラにおいて、ＳＤクロックのマスクを開始する手段が、ハードカウンタにより事前に設定された時間経過によることを特徴とするＳＤカードコントローラ。
【請求項６】
請求項５記載のＳＤカードコントローラにおいて、前記ハードカウンタの開始タイミングは前記ＳＤカードとの通信開始をトリガとすることを特徴とするＳＤカードコントローラ。
【請求項７】
請求項５記載のＳＤカードコントローラにおいて、前記ハードカウンタのカウンタ開始タイミングはＳＤ転送データ情報のリード完了をトリガとすることを特徴とするＳＤカードコントローラ。
【請求項８】
請求項１から５の何れか一項記載のＳＤカードコントローラ、ＳＤ出力データのうち、ＳＤ転送用のコマンド／データに対しそれぞれＳＤ通信の制御をする手段を持ち、それぞれのＳＤ通信の制御をする手段が非同期でＳＤ転送データ情報をロードし、ＳＤ出力データを格納する手段よりＳＤ出力データをリードすることを特徴とするＳＤカードコントローラ。
【請求項９】
請求項１から５の何れか一項記載のＳＤカードコントローラにおいて、ＳＤ出力データのうち、ＳＤ転送用のコマンド／データに対しそれぞれＳＤ通信の制御をする手段を持ち、ＳＤ転送データ情報の内、コマンドの方がリード完了した後に、出力データのＳＤ転送データ情報をロード開始することを特徴とするＳＤカードコントローラ。
【請求項１０】
ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラの制御方法において、
前記ＳＤカードへ出力するデータを一時保存し、
前記ＳＤカードに対して出力するＳＤクロックのマスクの開始及び解除を行い、前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックの必要な部分に同期させて前記データを出力することを特徴とするＳＤカードコントローラの制御方法。
【請求項１１】
ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラを制御するプログラムにおいて、
コンピュータに、
前記ＳＤカードへ出力するデータを一時保存する手順、
前記ＳＤカードに対して出力するＳＤクロックのマスクの開始及び解除を行う手順、
前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックの必要な部分に同期させて前記データを出力する手順、
を実行させることを特徴とするプログラム。
【請求項１２】
請求項１１記載のプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤカードコントローラ、制御方法、プログラム、及び記憶媒体に関する。
【背景技術】
【０００２】
ＡＳＩＣ(application specific integrated circuit：特定用途向け集積回路)内ＳＤメモリカード（以下ＳＤカード）ホストコントローラの消費電力低減を行うため、ＳＤ(secure digital)カードへのクロックが必要でないとき、クロック供給を停止する方法が既に知られている（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載の発明は、「ＳＤメモリカードホストコントローラ」「ＳＤメモリカードを制御するＳＤメモリカードホストコントローラであって、ＳＤメモリカードへ供給するクロック信号を発生する手段と、ＳＤメモリカードへリードコマンドを発行する手段と、前記リードコマンドに対する応答をＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中に、ＳＤメモリカードへのクロック信号の供給を停止させるクロック制御手段とを具備した」ものである。
【０００４】
特許文献１に記載の発明によれば、ＳＤメモリカードへ供給するクロック信号を制御することにより省電力化を実現することができるとしている。
【０００５】
また、特許文献１には、ＳＤカードに対するリードアクセス時の消費電力を下げる目的で、ＣＰＵからのレジスタアクセスにより、ＳＤクロックを制御しクロックが不必要な期間（たとえばＳＤへ連続アクセスする際のセクタ通信間や、ＳＤ未挿入時はＳＤクロック一時停止する方法が開示されている。
また、特許文献１には、消費電力低減のため、ＳＤデータリード時における、コマンドレスポンスとデータ転送開始間のクロックを停止する方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、従来のクロック制御方法では、クロック停止／再開毎にＣＰＵ(central processing unit)アクセスによるトリガが必要であるため、たとえば、ＤＭＡ(direct memory access)の様なＣＰＵを介さずに連続アクセスをする際の制御は考慮されていないため、クロックを一時停止する際に、セクタ毎のアクセスでＣＰＵの介在が必要という問題があった。
【０００７】
しかしながら、特許文献１に記載の発明は、ＳＴＥＰ２に記載したＳＤカードへ連続アクセスする際ＣＰＵ介在が無いとクロックの一時停止ができないという問題は解消できていない。
【０００８】
そこで、本発明の目的は、ＳＤカードへ連続リードアクセスを行う際、セクタアクセス毎のクロック一時停止制御にＣＰＵを介在させないＳＤカードコントローラ、制御方法、プログラム、及び記憶媒体を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１記載の発明は、ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラにおいて、前記ＳＤカードとの通信を制御する手段と、前記ＳＤカードへ出力するデータを格納する手段と、前記データを格納する手段から読み出したデータを一時保存する手段と、前記ＣＰＵの介在無しで前記ＳＤカードに対して出力するＳＤクロックのマスクを開始する手段と、前記ＣＰＵ介在無しで前記ＳＤカードに対して出力するＳＤクロックのマスクを解除する手段と、前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックに同期させてデータを出力する手段を備えたことを特徴とする。
【００１０】
請求項２記載の発明は、請求項１記載の発明において、前記ＳＤクロックのマスクを解除する手段は、前記ＳＤカードとの通信を制御する手段が、ＳＤ転送データ情報の読み込みが完了したことをトリガとすることを特徴とする。
【００１１】
請求項３記載の発明は、請求項１記載の発明において、前記ＳＤクロックのマスクを解除する手段は、ＳＤ出力データを格納する手段から読み出し、データを一時保存する手段に保存完了したことをトリガとすることを特徴とする。
【００１２】
請求項４記載の発明は、請求項１記載の発明において、前記ＳＤクロックのマスクを開始する手段は、前記ＳＤカードとのインターフェースのバス監視により、コマンドもしくは出力データ通信完了のレスポンスを確認することをトリガとすることを特徴とする。
【００１３】
請求項５記載の発明は、請求項１記載の発明において、ＳＤクロックのマスクを開始する手段が、ハードカウンタにより事前に設定された時間経過によることを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の発明において、前記ハードカウンタの開始タイミングは前記ＳＤカードとの通信開始をトリガとすることを特徴とする。
【００１５】
請求項７記載の発明は、請求項５記載の発明において、前記ハードカウンタのカウンタ開始タイミングはＳＤ転送データ情報のリード完了をトリガとすることを特徴とする。
【００１６】
請求項８記載の発明は、請求項１から５の何れか一項記載の発明において、ＳＤ出力データのうち、ＳＤ転送用のコマンド／データに対しそれぞれＳＤ通信の制御をする手段を持ち、それぞれのＳＤ通信の制御をする手段が非同期でＳＤ転送データ情報をロードし、ＳＤ出力データを格納する手段よりＳＤ出力データをリードすることを特徴とする。
【００１７】
請求項９記載の発明は、請求項１から５の何れか一項記載の発明において、ＳＤ出力データのうち、ＳＤ転送用のコマンド／データに対しそれぞれＳＤ通信の制御をする手段を持ち、ＳＤ転送データ情報の内、コマンドの方がリード完了した後に、出力データのＳＤ転送データ情報をロード開始することを特徴とする。
【００１８】
請求項１０記載の発明は、ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラの制御方法において、前記ＳＤカードへ出力するデータを一時保存し、前記ＳＤカードに対して出力するＳＤクロックのマスクの開始及び解除を行い、前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックの必要な部分に同期させて前記データを出力することを特徴とする。
【００１９】
請求項１１記載の発明は、ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラを制御するプログラムにおいて、コンピュータに、前記ＳＤカードへ出力するデータを一時保存する手順、前記ＳＤカードに対して出力するＳＤクロックのマスクの開始及び解除を行う手順、前記ＳＤカードに対し、前記ＳＤカードへ出力するＳＤクロックの必要な部分に同期させて前記データを出力する手順、を実行させることを特徴とする。
【００２０】
請求項１２記載の発明は、請求項１１記載のプログラムを記憶した記憶媒体であることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ＳＤカードに対して、ＣＰＵ介在なしの連続アクセスを行う際に、ＳＤ通信開始するトリガをモニタし、ＳＤクロックをマスクする信号を発生させる機能と、１セクタ通信完了をモニタすることにより、ＳＤクロックをマスクする信号をオフにする機能を有するので、ＳＤカードへ連続リードアクセスを行う際、セクタアクセス毎のクロック一時停止制御にＣＰＵを介在させないＳＤカードコントローラ、制御方法、プログラム、及び記憶媒体の提供を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】ＳＤカードコントローラとしてのＳＤカードＩ／Ｆを搭載したＩＯ系ＡＳＩＣ構成の一例を示すブロック図である。
【図２】本発明に係るＳＤカードコントローラの一例を示すブロック図である。
【図３】ＳＤホストコントローラ内におけるクロックマスタ信号生成部のブロック図の一例である。
【図４】（ａ）、（ｂ）は、従来の構成でのＣＰＵ介在無しで連続アクセスを行う際のタイミングチャートの説明図である。
【図５】本発明に係るＳＤカードコントローラにおけるＳＤカードに対してＣＰＵ介在無しで連続アクセスを行う際のタイミングチャートの説明図である。
【図６】ＤＭＡＣ起動時のＳＤカードアクセスタイミングについての説明図である。
【図７】図５に示したタイミングチャートに対する制御フローの一例を示す図である。
【図８】図６に示したタイミングチャートに対するフローチャートの一例である。
【図９】ＳＤに対するコマンドとデータとに対してそれぞれＤＭＡＣを持つ場合のタイミングを示す図である。
【図１０】本発明に係るＳＤカードコントローラの動作を示すフローチャートの一例である。
【発明を実施するための形態】
【００２３】
本発明の実施の形態を説明する。
本発明は、ＳＤカードに対しＣＰＵ介在なしの連続アクセスを行うに際して、以下の特徴を有する。
要するに、本発明は、ＳＤカードに対して、ＣＰＵ介在なしの連続アクセスを行う際に、ＳＤ通信開始するトリガをモニタし、ＳＤクロックをマスクする信号を発生させる機能と、１セクタ通信完了をモニタすることにより、ＳＤクロックをマスクする信号をオフにする機能を有することが特徴になっている。
上記記載の本発明の特徴について、以下の図面を用いて詳細に解説する。
【００２４】
＜実施形態１＞
［構  成］
図１は、ＳＤカードコントローラとしてのＳＤカードＩ／Ｆを搭載したＩＯ系ＡＳＩＣ構成の一例を示すブロック図である。
ＩＯ系ＡＳＩＣ１２０は、ＳＤホストコントローラ（図ではＳＤｈｏｓｔと表記）１０１、ＤＭＡＣ１０８、ＵＳＢホストコントローラ（図ではＵＳＢｈｏｓｔと表記）１０２、ＤＭＡＣ(direct memory access)１０９、１１０、ＭＡＣ(media access control)１０３、ＧＩＯ１０４、Ｉ２Ｃ１０５、ＳＰＩ１０６、ＷａｔｃｈＤｏｇ１０７、Ｉｒｅｇ１１１、Ａｒｂｉｔｅｒ１１２、ＰＣＩ１１３、及びメモリ１１４で構成され、ＣＰＵ１１５に接続されている。
【００２５】
ＳＤｈｏｓｔ１０１は、ＳＤカードを制御するホストコントローラである。
ＵＳＢｈｏｓｔ１０２は、ＵＳＢを制御するホストコントローラである。
ＭＡＣ１０３は、フレーム（データの送受信単位）の送受信方法やフレームの形式、誤り検出方法などを規定する機能である。
ＤＭＡＣ１０８、１０９は、ある繰り返されるトリガにより、指定データ量をＣＰＵの吹かなく転送する機能である。
ＧＩＯ１０４は、汎用入出力ポートである。
Ｉｒｅｇ１１１は、入力レジスタである。
Ｉ２Ｃ１０５は、ＳＣＬ（シリアルクロック）と双方向のＳＤＩ（シリアルデータ）の２本の信号線（ＧＮＤは含まず）で通信する同期式のシリアル通信部である。
ＳＰＩ１０６は、ＳＣＫ（シリアルクロック）と端方向のＳＤＩ、ＳＤＯの３本の信号線（ＧＮＤは含まず）で通信する同期式のシリアル通信部である。
ＷａｔｃｈＤｏｇ１０７は、稼働中のシステムを監視し、システムで発生するさまざまなイベントを記録して、システムの管理権限を持ったユーザが後から点検できるようにした監視部である。
Ａｒｂｉｔｅｒ１１２は、バスラインに複数のマスターが存在する場合、各マスターに使用権を適切に割り当てる管理部である。
ＰＣＩ１１３は、パソコン内部の各パーツ間を接続するバスの規格の一種である。
【００２６】
図２は、本発明に係るＳＤカードコントローラの一例を示すブロック図である。
ＣＰＵ１１５は、ＳＤホストコントローラ２０８を搭載する機器のメインＣＰＵであり、ＤＭＡＣ２０２に対しては、ＳＤカード２０７への連続アクセスの起動トリガを出力する。ＣＰＵ１１５は、ＲＡＭ２０１に対しては、ＳＤカード２０７へ連続アクセスする際必要な情報（ディスクリプタ情報、例えば開始セクタ／連続通信回数／転送データなど）を格納させる。
【００２７】
ＳＤカード２０７へ出力するデータを格納する手段としてのＲＡＭ２０１は、ディスクリプタ情報を格納し、ＤＭＡＣ２０２からの要求に応じて、ディスクリプタ情報を送信する。
【００２８】
ＤＭＡ２０２は、ＳＤカード２０７との通信を制御する手段としてのブロックであり、ＳＤカード２０７に対して連続アクセスを行う際にＣＰＵ１１５に代わり、アクセス制御を行うコントローラである。ＤＭＡ２０２は、ＣＰＵ１１５からのアクセス起動トリガにより、ＲＡＭ２０１からディスクリプタ情報をリードし、その情報に応じた通信をＳＤカード２０７に対して行う。
【００２９】
クロックマスク信号生成部２０４は、ＳＤカード２０７へ出力するＳＤクロックをマスクする信号を生成する。
マスク信号は、ＳＤホストコントローラ２０８内のセクタ転送開始トリガ（マスク解除手段）で解除され、逆にセクタ転送終了トリガ（マスク開始手段）にてマスクされる。
【００３０】
データを一保存する手段としてのバッファ２０５は、ＤＭＡＣ２０２がＳＤＩ／ＦにＲＡＭ２０１から読取ったデータを渡すとき、データを一時保存しておくためのバッファである。バッファ２０５は、連続転送実施時は、転送開始までに、転送すべきデータやコマンドをＲＡＭ２０１から全てリードしておく必要があるためトグルバッファになっており、交互にデータ出力を行う。
【００３１】
ＳＤ  Ｉ／Ｆ２０６は、ＳＤカード２０７とＳＤホストコントローラ２０８とのＩ／Ｆであり、通信データの作成、ＳＤクロックの生成などを行う。また、ＳＤ  Ｉ／Ｆ２０６は、クロックマスク信号生成部２０４からのマスク信号により、ＳＤクロックをマスクする。
【００３２】
カウンタ２０３は、ＳＤクロックのマスク信号を制御する際、ハードカウンタを用いる場合に使用する（但し必須ではない）。カウンタ２０３は、ＤＭＡＣ２０２、ＳＤ  Ｉ／Ｆ２０６からのトリガでカウントを開始し、データ転送開始前にＣＰＵ１１５により設定された値までカウントされたら、マスク開始トリガ、もしくはマスク解除トリガを発生する。
【００３３】
図３は、ＳＤホストコントローラ内におけるクロックマスタ信号生成部のブロック図の一例である。
同図にＳＤホストコントローラ２０８は、ディスクリプタ情報ロード完了検知部３０１、ＳＤＩ／Ｆ通信完了検知部３０２、クロックマスク信号制御部３０３、データ転送完了検知部３０４、及びカウンタ３０５を有する。
【００３４】
ディスクリプタ情報ロード完了検知部３０１は、ＤＭＡＣ２０２からのディスクリプタ情報ロード完了トリガを検知し、クロックマスク信号制御部３０３に対しマスク解除トリガを発行する機能を有する。
【００３５】
ＳＤＩ／Ｆ通信完了検知部３０２は、ＳＤＩ／Ｆ２０６からのデータ転送完了トリガを検知し、クロックマスク信号制御部３０３に対しマスク開始トリガを発行する機能を有する。
【００３６】
データ転送完了検知部３０４は、ＤＭＡＣ２０２からのデータライト完了トリガを検知しクロックマスク信号制御部３０３に対しマスク解除トリガを発行する機能を有する。
【００３７】
クロックマスク信号制御３０３は、ＳＤＩ／Ｆ２０６がＳＤカード２０７に対して出力するＳＤクロックのマスク信号を制御する機能を有する。クロックマスク信号制御３０３は、マスク解除トリガを受信することでクロックマスク解除、マスク開始トリガを受信した場合、クロックマスクとなるようにクロックマスク信号を制御する機能を有する（例えば、クロックマスク時はクロックマスク信号がＨレベル／マスク解除時はクロックマスク信号がＬレベルなど）。
【００３８】
ディスクリプタロード完了トリガは、ＤＭＡＣ２０２がＲＡＭ２０１からデータをリードするために必要なディスクリプタ情報を完了したことにより発生するパルス信号である。
【００３９】
データライト完了トリガは、ＤＭＡＣ２０２が、ＲＡＭ２０１からリードしてきたデータを、バッファ２０５にライト完了することにより発生するパルス信号である。
【００４０】
データ転送完了トリガは、ＳＤＩ／Ｆ２０６がＳＤカード２０７に対しデータ転送を完了することにより、発生するパルス信号である。転送プロトコルがライト時とリード時とで異なるため、ＳＤカード２０７とのバス監視により発生タイミングを制御する。
【００４１】
［動  作］
図４（ａ）、（ｂ）は、従来の構成でのＣＰＵ介在無しで連続アクセスを行う際のタイミングチャートの説明図である。
ＣＰＵからのコマンドによりＳＤクロックをマスクすることは可能であるが（図４（ａ））、ＳＤアクセスの際、ＣＰＵが介在していないため、ＳＤクロックをマスクするタイミングをＣＰＵが知ることはできない。
したがって、ＣＰＵからのコマンドによりＳＤクロックをマスクした場合、図４（ｂ）の様に、本来ＳＤクロックがマスクされてはいけない期間までマスクされてしまうおそれがある。
【００４２】
図５は、本発明に係るＳＤカードコントローラにおけるＳＤカードに対してＣＰＵ介在無しで連続アクセスを行う際のタイミングチャートの説明図である。
ＳＤホストコントローラ２０８内にマスク開始トリガ／マスク解除トリガを実装し、ＣＰＵ制御なしでセクタ転送間のクロックをマスクすることが可能としている。
【００４３】
ＳＤホストコントローラ２０８がＤＭＡ転送を実施する際、まずＤＭＡＣ２０２はＲＡＭ２０１に格納されているディスクリプタ情報をロードする。このディスクリプタ情報とは、ＳＤカード２０７との通信の際に必要な情報であって、転送種類（リード／ライト）、データ長（セクタ数）、転送アドレス、及び転送データなどの集合である。
【００４４】
ＤＭＡＣ２０２はこのディスクリプタ情報より、転送データをＳＤホストコントローラ２０８内のバッファ（トグルバッファ）２０５に格納する。
ここで、バッファとしてトグルバッファを用いるのは、図の様に、ディスクリプタ情報によりＲＡＭ２０１からリードしてきた通信データをトグルバッファＡに格納している時はトグルバッファＢに格納されている転送データで通信を実施し、逆にトグルバッファＢに格納している時はトグルバッファＡに格納されている転送データで通信を行うためである。これによりＲＡＭ２０１からのディスクリプタ情報のリードスピードとＳＤカード２０７との通信速度の違いにより、通信ができない時間が存在せずセクタ通信間の時間が短くすることができる。
【００４５】
本発明では、このセクタ通信間にＳＤカード２０７に対して出力されているＳＤクロックをＣＰＵ１１５の介在無しで停止／復帰を行うものである。
ＳＤクロックはクロックマスク信号によってマスクされる。このクロックマスク信号は、ＳＤホストコントローラ２０８内のマスク開始トリガ／マスク解除トリガによってアサート／ネゲートを行う。
【００４６】
図５では、マスク解除トリガをＤＭＡＣ２０２のディスクリプタロード完了タイミングでアサートしている。これは、ディスクリプタロード完了をトリガにして、ＳＤカード２０７との転送を開始している例である。ディスクリプタロードに関しては、ＤＭＡＣ２０２内でタイミングを把握しているためＤＭＡＣ２０２内で制御可能な信号である。
【００４７】
ＳＤカード２０７へのクロックマスクはマスク開始トリガのアサートタイミングで実施され、これはＳＤカード２０７とのＩ／Ｆを監視することによって制御される。ＳＤカード２０７からのレスポンス、ライトアクセス時にはビジーレスポンス／リード時にはＣＲＣレスポンスを検出することでセクタ転送完了トリガをアサートする。
また、ＳＤＩ／Ｆ２０６は、ホスト側の転送終了を認識できるため、そこからカウンタ２０３によるカウントを開始し、事前に設定した値になったらマスク開始トリガをアサートしても良い。
【００４８】
図６は、ＤＭＡＣ起動時のＳＤカードアクセスタイミングについての説明図である。
図５の場合と異なりＤＭＡＣ起動時や、シングルバッファしか搭載していない場合、ディスクリプタロードが完了した時に転送すべきデータがＲＡＭ内に存在しないため、ＳＤカードとの通信が開始できず、ＳＤ転送開始までの本来マスク解除しなくても良い期間までＳＤクロックのマスクが解除されてしまう（図６の区間Ａ１部分）。
【００４９】
そこで、ＤＭＡＣ２０２とＲＡＭ２０１との間のバス監視を行い、ＳＤ転送データがＤＭＡＣ１０３、ＳＤ  Ｉ／Ｆ２０６との間のバッファ２０５にライト完了されたことをトリガとしてマスク解除トリガをアサートすれば、ディスクリプタロード完了〜ＳＤ転送開始までの期間でより長くクロックマスクを行うことができる。
【００５０】
図７は、図５に示したタイミングチャートに対する制御フローの一例を示す図である。
まず、ディスクリプタ情報設定が行われ（ステップＳ１０１）、ＤＭＡＣが起動され（ステップＳ１０２）。
ディスクリプタロードが開始され（ステップＳ１０３）、ディスクリプタロードが完了したか否かが判断され（ステップＳ１０４）、完了するまで待機し（ステップＳ１０４／Ｎ）、完了すると（ステップＳ１０４／Ｙ）、ディスクリプタをロードし、完了トリガがアサートされる（ステップＳ１０５）。
【００５１】
次にマスク解除トリガアサートが行われ（ステップＳ１０６）、ＳＤクロックマスクが解除され（ステップＳ１０７）、セクタ転送が開始され（ステップＳ１０８）、セクタ転送が完了したか否かが判断され（ステップＳ１０９）、転送完了するまで待機し（ステップＳ１０９／Ｎ）、転送完了すると（ステップＳ１０９／Ｙ）、セクタ転送完了トリガがアサートされ（ステップＳ１１０）、クロックマスクトリガがアサートされ（ステップＳ１１１）、ＳＤクロックがマスクされ（ステップＳ１１２）、ステップＳ１１９へ進む。
【００５２】
一方、ディスクリプタがロードされ、完了トリガがアサートされると（ステップＳ１０５）、全ディスクリプタのロードが完了したか否かが判断され（ステップＳ１１３）、完了したと判断されると（ステップＳ１１３／Ｙ）、ステップＳ１１９へ進む。
完了していないと判断されると（ステップＳ１１３／Ｎ）、ＲＡＭ２０１のデータがリードされ（ステップＳ１１４）、ＲＡＭ２０１のデータがバッファ２０５にライトされる（ステップＳ１１５）。ＲＡＭデータのライトが完了したか否かが判断され（ステップＳ１１６）、完了するまで待機し（ステップＳ１１６／Ｎ）、完了すると（ステップＳ１１６／Ｙ）、ＲＡＭデータのリードが完了したか否かが判断され（ステップＳ１１７）、完了していない場合（ステップＳ１１７／Ｎ）、ステップＳ１１４に戻り、完了した場合（ステップＳ１１７／Ｙ）、データライト完了トリガがアサートされ（ステップＳ１１８）、ステップＳ１１９へ進む。
尚、ステップＳ１１９への遷移は、ステップＳ１１２及びステップＳ１１８の両方の処理が完了することを条件とする。
【００５３】
ここで、ステップＳ１０６〜Ｓ１１２の処理と、ステップＳ１１３〜Ｓ１１８の処理とは同時に実行される。
【００５４】
ステップＳ１１９では全セクタの転送が完了したか否かが判断され、完了していない場合（ステップＳ１１９／Ｎ）、ステップＳ１０３に戻り、完了した場合（ステップＳ１１９／Ｙ）は終了する。
【００５５】
＜実施形態２＞
図８は、図６に示したタイミングチャートに対するフローチャートの一例である。
まず、ディスクリプタ情報が設定され（ステップＳ２０１）、ＤＭＡＣ２０２が起動され（ステップＳ２０２）、ディスクリプタのロードが開始される（ステップＳ２０３）。
ディスクリプタのロードが完了したか否かが判断され（ステップＳ２０４）、完了するまで待機し（ステップＳ２０４／Ｎ）、完了したと判断されると（ステップＳ２０４／Ｙ）、ディスクリプタがロードされ、完了トリガがアサートされる（ステップＳ２０５）。
【００５６】
ＲＡＭデータがリードされ（ステップＳ２０６）、ＲＡＭデータがバッファ２０５にライトされ（ステップＳ２０７）、ＲＡＭデータのライトが完了したか否かが判断され（ステップＳ２０８）、完了するまで待機し（ステップＳ２０８／Ｎ）、完了したと判断されると（ステップＳ２０８／Ｙ）、ＲＡＭデータのリードが完了したか否かが判断され（ステップＳ２０９）、完了していないと判断されると（ステップＳ２０９／Ｎ）、ステップＳ２０６まで戻り、完了したと判断されると（ステップＳ２０９／Ｙ）、データライト完了トリガがアサートされ（ステップＳ２１０）、マスク解除トリガがアサートされる（ステップＳ２１１）。
【００５７】
マスク解除トリガがアサートされると、ＳＤクロックのマスクが解除され（ステップＳ２１２）、セクタ転送が開始され（ステップＳ２１３）、セクタ転送が完了したか否かが判断され（ステップＳ２１４）、完了するまで待機し（ステップＳ２１４／Ｎ）、完了したと判断されると（ステップＳ２１５）、クロックマスクトリガがアサートされ（ステップＳ２１６）、ＳＤクロックがマスクされて終了する（ステップＳ２１７）。
【００５８】
＜実施形態３＞
図９は、ＳＤに対するコマンドとデータとに対してそれぞれＤＭＡＣを持つ場合のタイミングを示す図である。
同図において、ＳＤに出力するコマンドとデータに対してそれぞれＤＭＡＣを持った場合のタイミングについて記載されている。
ＳＤカード２０７のデータの転送を実施する際は、コマンドデータと転送データ（アドレスデータ＋ライトデータ）とが必要であるため、それぞれディスクリプタ情報を参照してＲＡＭ２０１からデータをリードしてくる必要がある。ＳＤカード２０７との通信は、コマンド発行から行われるため、コマンドＤＭＡＣ、データＤＭＡＣの順で起動する（各ＤＭＡＣ１０８〜１１０（２０２）に対してＲＡＭ２０１が用意されているのであれば、同時にＤＭＡＣ１０８〜１１０（２０２）の起動を行っても良い）。
【００５９】
ここで、コマンドデータリード後にＳＤカード２０７に対してコマンド発行した場合、通常コマンドデータの方が通信データより容量が少ないため、コマンドデータリード後にコマンド発行を行った場合、セクタ転送が開始されるまでの間で、ＳＤクロックが不要の期間が存在する（これは、データを全てＲＡＭ２０１からリードしてから出ないと通信が開始できないためである。）。ただし、コマンドデータの量が通信データ量より多い場合ＳＤクロックのマスクは行わない。
【００６０】
そこで、消費電力低減のために、前述のマスク解除トリガ／マスク開始トリガを用いＳＤクロックのマスクを行う。
マスク解除トリガは、コマンドＤＭＡＣ／データＤＭＡＣのデータリード完了タイミングにてアサートし、マスク開始トリガは、ＳＤデータだけでなく、ＳＤカード２０７のコマンドレスポンスを監視することによりマスク信号を制御する。
【００６１】
＜実施形態４＞
図１０は、本発明に係るＳＤカードコントローラの動作を示すフローチャートの一例である。
まず、動作が開始されると、コマンドディスクリプタ情報が設定されると（ステップＳ３０１）、コマンドＤＭＡＣが起動され（ステップＳ３０２）、コマンドディスクリプタのロードが開始される（ステップＳ３０３）。
【００６２】
ロードが開始されると、コマンドディスクリプタのロードが完了したか否かが判断され（ステップＳ３０４）、完了するまで待機し（ステップＳ３０４／Ｎ）、完了したと判断されると（ステップＳ３０４／Ｙ）、コマンドディスクリプタの完了トリガがアサートされ（ステップＳ３０５）、コマンドによりＲＡＭデータがリードされる（ステップＳ３０６）。
【００６３】
ＲＡＭデータがリードされると、コマンドデータがバッファ２０５にライトされ（ステップＳ３０７）、コマンドデータのライトが完了したか否かが判断され（ステップＳ３０８）、完了するまで待機し（ステップＳ３０８／Ｎ）、完了したと判断されると（ステップＳ３０８／Ｙ）、コマンドデータのリードが完了したか否かが判断される（ステップＳ３０９）。
【００６４】
コマンドデータのリードが完了していない場合（ステップＳ３０９／Ｎ）、ステップＳ３０６に戻り、完了したと判断されると（ステップＳ３０９／Ｙ）、コマンドによりデータライト完了トリガがアサートされ（ステップＳ３１０）、マスク解除トリガがアサートされる（ステップＳ３１１）。
【００６５】
マスク解除トリガがアサートされると、ＳＤクロックマスクが解除され（ステップＳ３１２）、コマンド転送が開始され（ステップＳ３１３）、コマンド転送が完了したか否かが判断され（ステップＳ３１４）、完了するまで待機し（ステップＳ３１４／Ｎ）、完了したと判断されると（ステップＳ３１４／Ｙ）、データライト完了トリガがアサートされたか否かが判断される（ステップＳ３１５）。
【００６６】
データライト完了トリガがアサートされたと判断されると（ステップＳ３１５／Ｙ）ステップＳ３２８へ進み、アサートされていないと判断されると（ステップＳ３１５／Ｎ）、マスク開始トリガがアサートされ（ステップＳ３１６）、ＳＤクロックがマスクされ（ステップＳ３１７）、ステップＳ３２８へ進む。
【００６７】
一方、動作が開始されると、データディスクリプタ情報が設定され（ステップＳ３１８）、データＤＭＡＣが起動され（ステップＳ３１９）、データディスクリプタのロードが開始され（ステップＳ３２０）、データディスクリプタのロードが完了したか否かが判断される（ステップＳ３２１）。
【００６８】
ロードが完了していない場合は待機し（ステップＳ３２１／Ｎ）、ロードが完了したと判断されると（ステップＳ３２１／Ｙ）、データディスクリプタ完了トリガがアサートされ（ステップＳ３２２）、ＲＡＭデータがリードされ通信データとなり（ステップＳ３２３）、通信データがバッファ２０５にライトされる（ステップＳ３２４）。
【００６９】
通信データのライトが完了したか否かが判断され（ステップＳ３２５）、完了するまで待機し（ステップＳ３２５／Ｎ）、完了したと判断されると（ステップＳ３２５／Ｙ）、通信データのリードが完了したか否かが判断され（ステップＳ３２６）、完了していないと判断されると（ステップＳ３２６／Ｎ）、ステップＳ３２３に戻り、完了したと判断されると（ステップＳ３２６／Ｙ）、データライト完了トリガが通信データとしてアサートされ（ステップＳ３２７）、ステップＳ３２８へ進む。
尚、ステップＳ３２８への遷移は、ステップＳ３１７及びステップＳ３２７の両方の処理が完了することを条件とする。
【００７０】
ここで、ステップＳ３０１〜Ｓ３１７の処理と、ステップＳ３１８〜Ｓ３２７の処理とは同時に実行される。
【００７１】
ステップＳ３２８でマスク解除トリガがアサートされ、ＳＤクロックマスクが解除され（ステップＳ３２９）、セクタ転送が開始され（ステップＳ３３０）、セクタ転送が完了したか否かが判断され（ステップＳ３３１）、完了するまで待機し（ステップＳ３３１／Ｎ）、完了したと判断されると（ステップＳ３３１／Ｙ）、セクタ転送完了トリガがアサートされる（ステップＳ３３２）。
セクタ転送完了トリガがアサートされると、クロックマスクトリガがアサートされ（ステップＳ３３４）、全セクタ転送が完了したか否かが判断され（ステップＳ３３５）、完了していないと判断されると（ステップＳ３３５／Ｎ）、スタート地点（ステップＳ３０１、Ｓ３１８）まで戻り、完了したと判断されると（ステップＳ３３５／Ｙ）、終了する。
【００７２】
以上において、本実施形態によれば、ＳＤカードへ連続アクセスする際、セクタ通信間等のクロックが不必要な部分に対してＣＰＵ介在なしにクロックを一時停止することができる。
【００７３】
＜プログラム＞
以上で説明した本発明にかかるＳＤカードコントローラは、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばマイクロプロセッサなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明を実現する場合の説明を以下で行う。
【００７４】
プログラムとしては、例えば、
ＣＰＵの介在無しでＳＤカードと連続アクセスを行うＳＤカードコントローラを制御するプログラムにおいて、
コンピュータに、
(1)ＳＤカードへ出力するデータを一時保存する手順、
(2)ＳＤカードに対して出力するＳＤクロックのマスクの開始及び解除を行う手順、
(3)ＳＤカードに対し、ＳＤカードへ出力するＳＤクロックの必要な部分に同期させてデータを出力する手順、
を実行させるプログラムが挙げられる。
【００７５】
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかるＳＤカードコントローラを実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
【００７６】
＜記憶媒体＞
ここで、記憶媒体としては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＦｅＲＡＭ（強誘電体メモリ）等の半導体メモリやＨＤＤ（Hard Disc Drive）が挙げられる。
【００７７】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【符号の説明】
【００７８】
１０１、２０８    ＳＤｈｏｓｔ（ＳＤホストコントローラ）
１０２    ＵＳＢｈｏｓｔ（ＵＳＢホストコントローラ）
１０３    ＭＡＣ
１０４    ＧＩＯ
１０５    Ｉ２Ｇ
１０６    ＳＰＩ
１０７    ＷａｔｃｈＤｏｇ（ウォッチドッグ監視部）
１０８、１０９、１１０    ＤＭＡＣ
１１１    Ｉｒｅｇ
１１２    Ａｒｂｉｔｅｒ（アービター）
１１３    ＰＣＩ
１１４    メモリ
１１５    ＣＰＵ
１２０    ＩＯ系ＡＳＩＣ
２０１    ＲＡＭ
２０２    ＤＭＡＣ
２０３、３０５    カウンタ
２０４    クロックマスク信号生成部
２０５    バッファ
２０６    ＳＤ  Ｉ／Ｆ
２０７    ＳＤカード
３０１    ディスクリプタ情報ロード完了検知部
３０２    ＳＤＩ／Ｆ通信完了検知部
３０３    クロックマスク信号制御部
３０４    データ転送完了検知部
【先行技術文献】
【特許文献】
【００７９】
【特許文献１】特開２００３−７６９５２号公報
【図１】
2011065218.tif 000003
【図２】
2011065218.tif 000004
【図３】
2011065218.tif 000005
【図４】
2011065218.tif 000006
【図５】
2011065218.tif 000007
【図６】
2011065218.tif 000008
【図７】
2011065218.tif 000009
【図８】
2011065218.tif 000010
【図９】
2011065218.tif 000011
【図１０】
2011065218.tif 000012