(57)【特許請求の範囲】
【請求項１】
ＳＤ（Secure Digital）メモリカードを制御するＳＤメモリカードホストコントローラであって、
前記ＳＤメモリカードへ供給するクロック信号を発生する手段と、
前記ＳＤメモリカードへリードコマンドを発行する手段と、
前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからの経過時間を計時する計時手段と、
前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中は前記ＳＤメモリカードへのクロック信号の供給が停止されるように、前記計時手段による計時結果に基づいて、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてから所定時間の経過が計時されるまでの期間中は前記ＳＤメモリカードへのクロック信号の供給を停止し、前記所定の時間の経過が計時された時点で前記ＳＤメモリカードへのクロック信号の供給を再開するクロック制御手段とを具備したことを特徴とするＳＤメモリカードホストコントローラ。
【請求項２】
前記ＳＤメモリカードと接続されるＳＤバスの状態を監視するバス状態監視手段を更に具備し、
前記計時手段は、前記バス状態監視手段により前記リードコマンドに対する応答が検出された場合に前記計時を開始することを特徴とする請求項１記載のＳＤメモリカードホストコントローラ。
【請求項３】
ＳＤ（Secure Digital）メモリカードを制御するＳＤメモリカードホストコントローラに適用されるクロック制御方法であって、
前記ＳＤメモリカードへクロック信号を供給し、
前記ＳＤメモリカードへリードコマンドを発行し、
前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからの経過時間を計時する計時し、
前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中は前記ＳＤメモリカードへのクロック信号の供給が停止されるように、前記計時結果に基づいて、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてから所定時間の経過が計時されるまでの期間中は前記ＳＤメモリカードへのクロック信号の供給を停止し、前記所定の時間の経過が計時された時点で前記ＳＤメモリカードへのクロック信号の供給を再開することを特徴とするクロック制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードを制御するＳＤメモリカードホストコントローラ及びクロック制御方法に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ、ＰＤＡ、携帯電話、デジタルカメラ等の電子機器においては、リムーバブルな記憶デバイスがよく使用される。リムーバブルな記憶デバイスとしては、近年、メモリカードの一つであるＳＤメモリカードが頻繁に使用されるようになってきている。このＳＤメモリカードはフラッシュメモリを内蔵し、小型化、処理の高速化、記憶容量の最適化などの要求に見合うように特に設計されている。
【０００３】
上記ＳＤメモリカードが装着される電子機器側には、当該ＳＤメモリカードを制御するためのＳＤメモリカードホストコントローラ（以下、ホストコントローラと称す）が設けられる。このホストコントローラは、ＳＤメモリカードと通信するため、ＳＤバスを通じてＳＤメモリカードにクロック信号を供給する。
【０００４】
また、ホストコントローラは、通常、通常消費電力を抑えるという目的でＳＤメモリカードへのアクセスがない場合やＳＤメモリカードが挿入されていない場合はクロック供給を停止し、ＳＤメモリカードへのアクセスが必要な場合にクロックを供給させるという制御を行っている。この場合の制御は、ホストコントローラ内部に設けたレジスタを用いて実現している。
【０００５】
ここで、ホストコントローラがＳＤメモリカードからデータの読み出しを行う場合の処理を図１０を参照して説明する。
【０００６】
ホストコントローラは、内蔵レジスタにクロック・オンを示す書き込みを行ってＳＤメモリカードへクロック信号（ＳＤＣＬＫ）を供給し、リードコマンドを発行すると、その後、ＳＤメモリカードからリードコマンドに対する応答（コマンドレスポンス）が返されてくる。この応答を受理した時点から実際にデータの転送（データサイクル）が開始される時点までには、リードデータの待ち時間（およそ数１０μ秒）が発生する。データサイクルが終了すると、ホストコントローラは、内蔵レジスタにクロック・オフを示す書き込みを行ってＳＤメモリカードへのクロック信号（ＳＤＣＬＫ）の供給を停止する。
【０００７】
【発明が解決しようとする課題】
ところで、ＳＤメモリカードはその内部にＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路を有しており、上記リードデータ待ち時間中にＳＤバスからクロック信号が供給されない場合であってもリード動作を支障なく行えるようになっている。したがって、上記リードデータ待ち時間においてＳＤメモリカードへクロック信号を供給することは消費電力の無駄となってしまう。
【０００８】
なお、特開平９−２０４７６９号公報には、メモリカードの消費電力を低減する方法が開示されているが、ホストコントローラ側における消費電力を低減するものではない。
【０００９】
また、特開２０００−２５１４６４号公報には、異なるクロックを複数用意しておき、使用するクロックを選択的に切り替える方法が開示されているが、上記リードデータ待ち時間においてクロック信号の供給を停止させるものではない。
【００１０】
本発明は上記実状に鑑みてなされたものであり、ＳＤメモリカードへ供給するクロック信号を制御することにより省電力化を実現するＳＤメモリカードホストコントローラ及びクロック制御方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明に係るＳＤメモリカードホストコントローラは、ＳＤ（Secure Digital）メモリカードを制御するＳＤメモリカードホストコントローラであって、前記ＳＤメモリカードへ供給するクロック信号を発生する手段と、前記ＳＤメモリカードへリードコマンドを発行する手段と、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからの経過時間を計時する計時手段と、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中は前記ＳＤメモリカードへのクロック信号の供給が停止されるように、前記計時手段による計時結果に基づいて、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてから所定時間の経過が計時されるまでの期間中は前記ＳＤメモリカードへのクロック信号の供給を停止し、前記所定の時間の経過が計時された時点で前記ＳＤメモリカードへのクロック信号の供給を再開するクロック制御手段とを具備したことを特徴とする。
【００１２】
また、本発明に係るクロック制御方法は、ＳＤ（Secure Digital）メモリカードを制御するＳＤメモリカードホストコントローラに適用されるクロック制御方法であって、前記ＳＤメモリカードへクロック信号を供給し、前記ＳＤメモリカードへリードコマンドを発行し、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからの経過時間を計時する計時し、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中は前記ＳＤメモリカードへのクロック信号の供給が停止されるように、前記計時結果に基づいて、前記リードコマンドに対する応答を前記ＳＤメモリカードより受けてから所定時間の経過が計時されるまでの期間中は前記ＳＤメモリカードへのクロック信号の供給を停止し、前記所定の時間の経過が計時された時点で前記ＳＤメモリカードへのクロック信号の供給を再開することを特徴とする。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１４】
図１は、本発明の一実施形態に係るＳＤメモリカードホストコントローラを含むシステムの構成を示すブロック図である。
【００１５】
電子機器１１は、例えばカードリーダであり、その内部にはローカルバス１２と、これにそれぞれ接続されるＳＤメモリカードホストコントローラ（以下、ホストコントローラと称す）１３と、ＣＰＵ１４と、メインメモリ１５と、ＲＯＭ１６とを備えている。また、電子機器１１には、上記ホストコントローラ１３に接続されるＳＤソケット１７が備えられる。このＳＤソケット１７に対しては、ＳＤメモリ１９が着脱可能であり、ＳＤバス１８を通じて電気的に接続できるようになっている。
【００１６】
ローカルバス１２は、ホストコントローラ１３と、ＣＰＵ１４と、メインメモリ１５と、ＲＯＭ１６との間におけるデータなどの伝送を行う。
【００１７】
ホストコントローラ１３は、ＳＤメモリカードホストコントローラの規格に適合するものであり、ＳＤメモリカード１９のホストとして動作し、当該ＳＤメモリカード１９をＳＤバス１８を通じて制御する。
【００１８】
ＣＰＵ１４は、電子機器１１の全体の動作を司るものであり、例えば、制御プログラムをＲＯＭ１６からメインメモリ１５上にロードして実行したり、コマンドを発行することによりホストコントローラ１３に対してＳＤメモリカードのクロック制御に関わる実行処理の設定を行ったりする。
【００１９】
メインメモリ１５は、ＣＰＵ１４に作業領域を提供するものであり、例えばＣＰＵ１４により実行されるべきコマンドを記憶したり、ＳＤメモリカード１９のデータを一時的に保存するバッファとして使用される。
【００２０】
ＲＯＭ１６は、各種のプログラムやデータを格納するものであり、例えばＣＰＵ１４により実行されるべきコマンドを保管する。
【００２１】
ＳＤソケット１７は、ＳＤメモリカード１９とホストコントローラ１３とを接続するための専用のソケットであり、電子機器１１の側面などに設けられる。
【００２２】
ＳＤメモリカード１９は、ＳＤメモリカードの規格に適合するものであり、その内部にフラッシュメモリを有し、ホストコントローラ１３に制御されてデータの読み出し／書き込みを行う。
【００２３】
図２は、ホストコントローラ１３とＳＤメモリカード１９との接続関係を詳細に示すブロック図である。
【００２４】
ホストコントローラ１３とＳＤメモリカード１９とを接続するＳＤバス１８は、１本のクロック信号（ＳＤＣＬＫ）、１本のコマンド線（ＳＤＣＭＤ）、４本のデータ線（ＳＤＤＡＴＡ）から構成される。
【００２５】
クロック信号線（ＳＤＣＬＫ）は、ホストコントローラ１３からＳＤメモリカード１９へクロックを供給するための信号線である。コマンド線（ＳＤＣＭＤ）は、ホストコントローラ１３からＳＤメモリカード１９へリード／ライトコマンドを送ったりその応答を返したりするための信号線である。データ線（ＳＤＤＡＴＡ）は、ホストコントローラ１３とＳＤメモリカード１９との間でリード／ライトコマンドに対応するデータを転送するための信号線である。
【００２６】
上記ホストコントローラ１３には、バス状態監視部（監視回路）２０、レジスタ２１、及びクロック制御部２２が備えられる。
バス状態監視部２０は、ＳＤバス１８の状態を監視するものであり、例えばＳＤバス１８上のリードコマンドに対する応答などを検出することが可能である。
【００２７】
レジスタ２１は、各種の状態を示す複数のビットを有しており、特にリードコマンドに対する応答があったか否かを示すビット（リードコマンド応答状態ビット）を含んでいる。このレジスタ２１の各ビットの内容は、例えばソフトウェア書き込みによって更新される。
【００２８】
クロック制御部２２は、リードコマンドに対する応答をＳＤメモリカード１９より受けてからデータが読み出されるまでのリードデータ待ち時間中に、ＳＤメモリカード１９へのクロック信号の供給を停止させる。なお、クロック信号の供給を停止させる代わりに、そのクロック信号を部分的に間引いて供給したり、クロック信号の周波数（周期）を変えて供給するように構築してもよい。
【００２９】
一方、ＳＤメモリカード１９には、制御部２３及びメモリ２４が備えられる。
制御部２３は、ホストコントローラ１３から供給されるクロック信号に基づき、ホストコントローラ１３から発行されるコマンドに応じてデータの読み出し／書き込みや転送処理を実行する。メモリ２４は、例えばフラッシュＥＥＰＲＯＭで構成されており、制御部２３により制御されてデータの読み出し／書き込みがなされる。
【００３０】
上記制御部２３には、入出力インタフェース２５、メモリインタフェース２６、ＭＰＵ２７、及びＰＬＬ回路２８が備えられる。
【００３１】
入出力インタフェース２５は、ホストコントローラ１３とのインタフェースを行うものであり、ホストコントローラ１３から供給されるクロック信号に同期して動作する。メモリインタフェース２６は、メモリ２４とのインタフェースを行うものであり、メモリ２４に対するデータの読み出し／書き込み／消去などの処理を行う。
【００３２】
ＭＰＵ２７は、制御部２７の全体の動作を司るプロセッサであり、入出力インタフェース２５、メモリインタフェース２６、及びＰＬＬ回路２８を制御する。また、ＰＬＬ回路２８は、内部発振器からのクロックをＰＬＬによって逓倍し、それを内部クロック信号として生成するものである。上記リードデータ待ち時間中においては、この内部クロック信号に基づいてデータの読み出し動作が継続される。
【００３３】
図３は、データリード処理におけるクロック制御動作を示すタイミングチャートである。
【００３４】
ホストコントローラ１３は、レジスタ２１にクロック・オンを示す書き込みを行ってＳＤメモリカード１９へクロック信号（ＳＤＣＬＫ）を供給し、リードコマンドを発行すると、その後、ＳＤメモリカード１９からリードコマンドに対する応答（コマンドレスポンス）が返されてくる。
【００３５】
この応答を受理した時点から実際にデータの転送（データサイクル）が開始される時点までには、リードデータの待ち時間（およそ数１０μ秒）が発生する。この時間は、ＳＤメモリカード１９はクロック（ＳＤＣＬＫ）を必要としない。このため、本実施形態では、リードコマンドに対する応答を受理した直後にクロック（ＳＤＣＬＫ）の供給を停止し、実際にデータの転送（データサイクル）が開始される直前にクロック（ＳＤＣＬＫ）の供給を再開する。
【００３６】
データサイクルが終了すると、ホストコントローラ１３は、レジスタ２１にクロック・オフを示す書き込みを行ってＳＤメモリカード１９へのクロック信号（ＳＤＣＬＫ）の供給を停止する。
【００３７】
なお、ＳＤメモリカード１９がクロック（ＳＤＣＬＫ）を必要としない状態は、上記リードデータの待ち時間だけに限られず、データのマルチブロック転送中のデータ待ち時間においても発生する。このため、図４に示すようにデータのマルチブロック転送が行われている場合において、あるブロック転送から次のブロック転送の間のデータ待ち時間中に、クロック制御部２２がクロック信号の供給を停止させるように構成してもよい。
【００３８】
図５は、ホストコントローラ１３に備えられるクロック制御部２２の構成を中心に示すブロック図である。
【００３９】
クロック発生回路３１は、ＳＤバスに供給すべきクロック信号を発生する回路である。
【００４０】
クロック停止制御回路３２は、ソフトウェアクロック停止信号を入力すると共に、タイマビジー信号を入力し、クロック停止信号をゲート回路３３へ出力する回路である。なお、ソフトウェアクロック停止信号は、レジスタ２１ａにソフトウェア書き込み１が行われたときに供給される。また、ソフトウェアクロック停止信号が発生されたときにはソフトウェアタイマ４０により計時が開始され、所定の時間が経過すると、レジスタ２１ａに対してクロック停止を解除するためのソフトウェア書き込みが行われる。
【００４１】
ゲート回路３３は、入力されるクロック停止信号がイネーブルの状態のときにクロック発生回路３１からのクロック信号のＳＤメモリカード１９への供給を停止する回路である。
【００４２】
ハードウェアタイマ３４は、タイマスタート信号に応答して初期値からのデクリメントを行い、この際にビジー信号をクロック停止制御回路３２に対してアサートする。なお、タイマスタート信号は、バス状態監視部２０がＳＤバス１８上でリードコマンドに対する応答を検出したときに供給される。また、バス状態監視部２０は、レジスタ２１ｂにソフトウェア書き込み２が行われたときに、ハードウェアタイマイネーブル信号により動作状態となる。
【００４３】
初期値レジスタ３５は、タイマ３４の初期値を記憶し、ソフトウェア書き込み３が行われたときにタイマ３４に対する初期値の設定を行う。
【００４４】
なお、図５の構成によりクロック停止を行うにあたり、次のような２通りの方法が挙げられる。
第１のクロック停止方法は、リードコマンドに対する応答があった場合にレジスタ２１ａにソフトウェア書き込み１を行い、レジスタ２１ａへの書き込みに応じてクロック信号の停止時間の計時をソフトウェアタイマ４０を用いて行うものである。この場合、図５に示される構成要素のうち、使用される要素は、レジスタ２１ａ、ソフトウェアタイマ４０、クロック停止制御回路３２、クロック発生回路３１、及びゲート回路３３である。
【００４５】
第２のクロック停止方法は、ＳＤバス１８の状態をバス状態監視部２０により監視し、その監視においてリードコマンドに対する応答が検出された場合に、クロック信号の停止時間の計時をハードウェアタイマ３４を用いて行うものである。この場合、図５に示される構成要素のうち、使用される要素は、レジスタ２１ｂ、ハードウェアタイマ３４、初期値レジスタ３５、クロック停止制御回路３２、クロック発生回路３１、及びゲート回路３３である。
【００４６】
図６は、第１のクロック停止方法による動作を示すタイミングチャートである。
【００４７】
いま、クロック発生回路３１から発生されるクロック信号（ＳＤＣＬＫ）はゲート回路３３をそのまま通過し、ＳＤメモリカード１９へ供給されている。
【００４８】
レジスタ２１のリードコマンド応答状態ビットを参照することにより、リードコマンドに対する応答があったか否かがソフトウェアによってチェックされる。リードコマンドに対する応答があった場合には、レジスタ２１ａに対してクロック停止のためのソフトウェア書き込み１が行われ、これに応じてソフトウェアクロック停止信号がイネーブルとなり、クロック停止制御回路を通じてクロック供給が停止される。また、これと同時に、ソフトウェアタイマ４０によってクロック信号の停止時間の計時が行われる。
【００４９】
ソフトウェアタイマ４０による計時が終了すると、レジスタ２１ａに対してクリック停止を解除するためのソフトウェア書き込みが行われ、これに応じてソフトウェアクロック停止信号がディセーブルとなり、クロック停止制御回路を通じてクロック供給が再開される。
【００５０】
図７は、第２のクロック停止方法による動作を示すタイミングチャートである。
【００５１】
いま、クロック発生回路３１から発生されるクロック信号（ＳＤＣＬＫ）はゲート回路３３をそのまま通過し、ＳＤメモリカード１９へ供給されている。
【００５２】
ハードウェアタイマ３４の初期値は、あらかじめソフトウェアによるソフトウェア書き込み３によって初期値レジスタ３５に設定される。
【００５３】
ソフトウェアによるソフトウェア書き込み２によってイネーブル信号を出力し、バス状態監視部２０を動作状態にする。バス状態監視部２０によってＳＤバス１８が監視され、リードコマンドに対する応答がＳＤバス１８上で検出されると、タイマスタート信号が発生する。
【００５４】
タイマスタート信号を受理したタイマ３４はデクリメントを開始し、その期間中はタイマビジーをクロック停止制御回路３２に対してアサートする。これにより、クロック供給が停止される。
【００５５】
タイマ３４による計時が終了すると、タイマ３４はタイマビジーをデアサートする。これに応じてクロック停止信号がディセーブルとなり、クロック供給が再開される。
【００５６】
次に、図９のフローチャートを参照して、データリード処理におけるクロック制御動作を説明する。なお、ここでは、前述した第１のクロック停止方法を適用した場合を想定している。
【００５７】
ホストコントローラ１３がＳＤメモリカード１９へクロック信号を供給し、リードコマンドを発行する（ステップＡ１）。その後、割り込みがあったかどうかを調べ（ステップＡ２）、割り込みがあった場合にはＳＤメモリカード１９からリードコマンドに対する応答（コマンドレスポンス）があったか否かをリードコマンド応答状態ビットを参照して調べる（ステップＡ３）。
【００５８】
リードコマンドに対する応答でなかった場合には、他の割り込み処理を行い（ステップＡ４）、ステップＡ２からの処理を繰り返す。
【００５９】
リードコマンドに対する応答であった場合には、そのリードコマンド応答状態ビットをクリアし、クロック供給の停止を行う（ステップＡ５）。
【００６０】
タイマの計時を開始し、その計時が終了したら（ステップＡ６）、クロック供給の再開を行う（ステップＡ７）。
【００６１】
なお、データサイクルの終了後は、ホストコントローラ１３は、ＳＤメモリカード１９へのクロック信号の供給を停止する。
【００６２】
このように本実施形態によれば、リードコマンドに対する応答をＳＤメモリカードより受けてからデータが読み出されるまでのリードデータ待ち時間中に、ＳＤメモリカードへのクロック信号の供給を停止させることにより、省電力化を実現することが可能となる。
【００６３】
上記実施形態ではクロック信号の供給を停止する場合の例を説明したが、代わりに、クロック信号の供給を完全に停止するのではなく、図８に示すようにクロック停止信号を時々デアサートして周波数を極端に低下させることにより、消費電力を低減させるようにしてもよい。すなわち、基本クロック周波数は変えずに、リードデータ待ち時間中はクロック制御部２２から発生するクロックを部分的に間引くようにする。
【００６４】
また、クロック信号の周期やデューティ比を変更することによっても消費電力を低減することが可能である。例えば、クロック発生器３１に対して制御信号を送ることによりクロック発生器３１から発生するクロックの周期を変更させる方法や、カウンタを用いて分周したクロックを切り替えて出力する方法などが挙げられる。
【００６５】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。
【００６６】
【発明の効果】
以上詳記したように本発明によれば、ＳＤメモリカードへ供給するクロック信号を制御することにより省電力化を実現するＳＤメモリカードホストコントローラ及びクロック制御方法が提供される。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＳＤメモリカードホストコントローラを含むシステムの構成を示すブロック図。
【図２】ホストコントローラとＳＤメモリカードとの接続関係を詳細に示すブロック図。
【図３】データリード処理におけるクロック制御動作を示すタイミングチャート。
【図４】データのマルチブロック転送時におけるクロック制御動作を示すタイミングチャート。
【図５】ホストコントローラに備えられるクロック制御部の構成を中心に示すブロック図。
【図６】第１のクロック停止方法による動作を示すタイミングチャート。
【図７】第２のクロック停止方法による動作を示すタイミングチャート。
【図８】クロック停止信号を時々デアサートさせる動作を示すタイミングチャート。
【図９】データリード処理におけるクロック制御動作を説明するためのフローチャート。
【図１０】従来技術のデータリード処理におけるクロック制御動作を示すタイミングチャート。
【符号の説明】
１１…電子機器
１２…ローカルバス
１３…ＳＤメモリカードホストコントローラ
１４…ＣＰＵ
１５…メインメモリ
１６…ＲＯＭ
１７…ＳＤソケット
１８…ＳＤバス
１９…ＳＤメモリカード
２０…バス状態監視部
２１…レジスタ
２２…クロック制御部
２３…制御部
２４…メモリ
２５…入出力インタフェース
２６…メモリインタフェース
２７…ＭＰＵ
２８…ＰＬＬ回路
３１…クロック発生回路３１
３２…クロック停止制御回路
３３…ゲート回路
３４…タイマ
３５…初期値レジスタ
４０…ソフトウェアタイマ
【図１】
0003552213.tif 000002
【図２】
0003552213.tif 000003
【図３】
0003552213.tif 000004
【図４】
0003552213.tif 000005
【図５】
0003552213.tif 000006
【図６】
0003552213.tif 000007
【図７】
0003552213.tif 000008
【図８】
0003552213.tif 000009
【図９】
0003552213.tif 000010
【図１０】
0003552213.tif 000011