(57)【要約】【課題】本発明の課題バス上のクロック周波数が変化しても同期状態が乱れることなく円滑な周波数変更を実現でき、効率的なバス運用を得る。【解決手段】この発明に係る一実施の形態では、動作クロックの周波数が異なる複数のバスマスター１１，２１と、複数のバススレーブ１２，２２と、バス１００と、基本クロックを用いて周波数が異なる複数の前記動作クロックを得るクロック生成回路３０と、前記バスマスターからのバス使用権のリクエスト信号に応答して前記クロック生成回路を制御し、前記バスマスター及び前記バススレーブに対応した動作クロックを設定するバスアービタ４０を有する。【選択図】      図１
2010128793.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１および第２の異なる周波数の動作クロックで動作するバスマスターと、
前記異なる周波数で動作するバスマスターに対応した複数のバススレーブと、
前記バスマスターと前記複数のバススレーブ間を接続する接続要素と、
前記異なる周波数の動作クロックを選択的に得るクロック生成回路と、
前記バスマスターからのバス使用権のリクエストに応答して前記クロック生成回路を制御し、バス使用権を取得した前記バスマスターと前記バススレーブに対して適応した動作クロック周波数を設定するバスアービタを有することを特徴とするバスクロック制御装置。
【請求項２】
前記バスアービタは、前記複数の動作クロックのうち最も高い周波数のクロックを動作クロックとしていることを特徴とする請求項１記載のバスクロック制御装置。
【請求項３】
前記バスアービタは、前記リクエスト信号が無い場合、前記複数の動作クロックを停止または低速周波数状態に切替えることを特徴とする請求項１記載のバスクロック制御装置。
【請求項４】
前記異なる周波数の動作クロックは、低速周波動作クロックと、高速周波動作クロックを含むことを特徴とする請求項１記載のバスクロック制御装置。
【請求項５】
メモリカードの着脱部、パーソナルコンピュータへの接続部を有したメモリカードコントローラにおいて、
複数の周波数の動作クロックで駆動可能なＰＣＩコントローラと、
第１の周波数の動作クロックで駆動され、前記ＰＣＩコントローラをバスマスターとし動作するレジスタと、
第２の周波数の動作クロックで駆動され、前記ＰＣＩコントローラをバススレーブとして動作するダイレクトメモリアクセスユニットと、
クロックツリーの前記第１及び第２の周波数の動作クロックを選択的に得るバスクロック生成回路と、
前記ＰＣＩコントローラまたはダイレクトメモリアクセスユニットからのバス使用権のリクエストに応答して前記クロック生成回路を制御し、前記第１又は第２の周波数の動作クロックをバスクロックとして設定するバスアービタを有することを特徴とするメモリカードコントローラ。
【請求項６】
前記メモリカードは、ＳＤ（セキュア・デジタル）カードであることを特徴とする請求項５記載のメモリカードコントローラ。
【請求項７】
前記バスアービタは、前記複数の動作クロックのうち最も高い周波数のクロックを動作クロックとしていることを特徴とする請求項５記載のメモリカードコントローラ。
【請求項８】
前記バスアービタは、前記リクエスト信号が無い場合、前記複数の動作クロックを停止または低速周波数状態に切替えることを特徴とする請求項５記載のメモリカードコントローラ。
【請求項９】
異なる周波数の動作クロックで動作するバスマスターと、前記異なる周波数で動作するバスマスターに対応した複数のバススレーブと、前記バスマスターと前記複数のバススレーブ間を接続する接続要素と、を有した回路に対して、異なる周波数の前記動作クロックを得るクロック生成回路を設け、バスアービタにより、バスクロックを制御する方法であって、
前記バスマスターからのバス使用権のリクエストに応答して前記クロック生成回路を制御し、
バス使用権を取得した前記バスマスターと前記バススレーブに対して適応した動作クロック周波数を設定することを特徴とするバスクロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はバスクロック制御装置とその制御方法とメモリカードコントローラに関するもので、特にバスアービタを利用して効率的なバス運用を得られるようにしたものである。
【背景技術】
【０００２】
データ処理プロセッサにおいて、複数のバス、複数のコントローラなどを構築した回路にあっては、バスの使用権を調停するアービタが設けられている（例えば特許文献１）。
【０００３】
バスアービタは、高速処理を必要としない期間のクロック周波数を低くしたり、停止したりする。また動作させる必要の無いモジュールブロックへのクロックを停止させるという調停を行っている。
【０００４】
従来の装置では、第１のモジュールからこの第１のモジュールとはクロック周波数の違う第２のモジュールにバス権を移すとき、第１のモジュールの動作を停止させ、誤動作の危険がなくなってから、第２のモジュールへクロックを供給している。
【特許文献１】特開２００３−５８２７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の目的は、バス上のクロック周波数が変化しても同期状態が乱れることなく円滑な周波数変更を実現でき、効率的なバス運用を得ることができるバスクロック制御装置とその制御方法とメモリカードコントローラを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、この発明に係る一実施の形態では、異なる周波数の動作クロックで動作するバスマスターと、前記異なる周波数で動作するバスマスターに対応した複数のバススレーブと、前記バスマスターと前記複数のバススレーブ間を接続する接続要素と、前記異なる周波数の動作クロックを選択的に得るクロック生成回路と、前記バスマスターからのバス使用権のリクエストに応答して前記クロック生成回路を制御し、バス使用権を取得した前記バスマスターと前記バススレーブに対して適応した動作クロック周波数を設定するバスアービタを有する。
【発明の効果】
【０００７】
上記の手段によると、クロック生成部から出力される複数のクロックは周波数が異なっても同期状態であり、いずれに切り替わってもバス上のバスクロックの同期が安定している。またバスマスターとバススレーブも同期して安定して動作する。
【発明を実施するための最良の形態】
【０００８】
以下図面を参照して、この発明の実施の形態を説明する。図１にはこの発明の一実施の形態の基本回路構成を示している。１００はバスであり、このバス１００には第１のバスマスター１１、この第１のバスマスター１１に対応した第１のバススレーブ１２が接続されている。さらにまたこのバス１００には、第２のバスマスター２１、この第２のバスマスター２１に対応した第２のバススレーブ２２が接続されている。なおバス１００にはアドレスバス、データバスが含まれるものとする。
【０００９】
上記の第１のバスマスター１１は例えば中央処理演算ユニット（ＣＰＵ）であり、第１のバススレーブ１２は例えばレジスタである。第２のバスマスター２１は例えばダイレクトメモリアクセスユニット（ＤＭＡユニット）であり、第２のバススレーブ２２は例えばシステムメモリである。
【００１０】
図では２つのバスマスター、２つのバススレーブを示したが、さらに多くにバスマスター及びバススレーブが存在してもよい。また図面ではバス１００のみを示しているが、バスマスター、バススレーブなどを接続する要素としては、バス単体ではなく、途中にバッファ、インターフェースなどが介在してもよい。従って、バス１００は、接続要素或いはバスを含む接続要素と表現してもよい。
【００１１】
３０はクロック生成回路である。このクロック生成回路３０は、基本クロックがバッファ増幅器を介してゲート回路３０１、３０２，３０３，３０４に入力されている。ゲート回路３０１−３０４は、それぞれゲート制御信号により制御され、基本クロックを分周した周波数が異なるクロックを出力することができる。ゲート回路３０１、３０２，３０３，３０４は、バッファを介して出力され、このバッファはクロックツリーを形成しており、それぞれのバスクロック(CLK_Aなど)が同期するように遅延調整を行っている。ゲート回路３０１、３０２，３０３，３０４のそれぞれの出力（動作クロック）の設定は、オア回路ＯＲ１−ＯＲ４を介して入力されるゲート制御信号ＧＡＴＥ＿Ｍ０，ＧＡＴＥ＿Ｓ１，ＧＡＴＥ＿Ｃ，ＧＡＴＥ＿Ｓ０により制御される。ゲート制御信号ＧＡＴＥ＿Ｍ０，ＧＡＴＥ＿Ｓ１，ＧＡＴＥ＿Ｃ，ＧＡＴＥ＿Ｓ０はバスアービタ４０から出力されている。
【００１２】
なおゲート回路３０１、３０２，３０３，３０４のそれぞれの出力（動作クロック）のオンオフは、バスアービタ４０からのゲート制御信号ＧＡＴＥ＿Ｍ０，ＧＡＴＥ＿Ｓ１，ＧＡＴＥ＿Ｃ，ＧＡＴＥ＿Ｓ０だけでなく、必要に応じて他の回路からのゲート制御信号により制御されてもよい。
【００１３】
ゲート回路３０３からのクロックＣＬＫ＿Ｃは、第１のバスマスター１１に供給され、ゲート回路３０４からのクロックＣＬＫ＿Ｓ０は、第１のバススレーブ１２に供給される。ゲート回路３０１からのクロックＣＬＫ＿Ｍ０は、第２のバスマスター２１に供給され、ゲート回路３０２からのクロックＣＬＫ＿Ｓ１は、第２のバススレーブ２２に供給される。
【００１４】
ゲート制御信号ＧＡＴＥ＿Ｍ０，ＧＡＴＥ＿Ｓ１，ＧＡＴＥ＿Ｃ，ＧＡＴＥ＿Ｓ０は、バスアービタ４０から出力される。ここでバスアービタ４０は、バス１００に接続されており、バスマスターとバススレーブの組み合わせ情報であるテーブルを有する。つまりバスマスターとこのバスマスターに対応したバススレーブを認識している。さらにまた、各バスマスター及びバススレーブに対して必要な動作周波数、つまり供給すべき動作クロックも認識している。
【００１５】
バスアービタ４０には、バスマスター１１、バスマスター２１からバス使用権を要求するリクエスト信号ＲＥＱ＿Ｃ、ＲＥＱ＿Ｍ０が供給される。またバスアービタ４０に対しては、クロック生成回路３０から本装置の中で最も周波数の高いクロックＣＬＫ＿Ａが供給されている。バスアービタ４０は、このクロックＣＬＫ＿Ａに基づいて動作する。
【００１６】
バスアービタ４０は、固定プライオリティー方式或いはラウンドロビン方式等のアルゴリズムを用い、複数のバスマスターがバスアクセスの要求を出したとき、一度に１つのバスマスターが選択されバス使用権を得るように調整制御を行う。
【００１７】
ここで例えばバスマスター２１がバス使用権を得られとする。バスマスター２１はバスアクセスを行い、アドレスを発行し例えばバススレーブ２２を選択する。すると、バスアービタ４０は、バスマスター２１とバススレーブ２２の組み合わせから、そのパスが例えば高速クロックが必要であると判断した場合、対応するゲート回路３０１，３０２を制御する。これによりバスマスター２１とバススレーブ２２には、それぞれバスクロックＣＬＫ＿Ｍ０、ＣＬＫ＿Ｓ１の高速クロックの供給が開始される。この機能は、バスマスター２１がＤＭＡ，バススレーブ２２がシステムメモリのような場合に好適し、高速で大量にデータ転送を行う場合に利用される。
【００１８】
また、今バスマスター１１がバス使用権を得たとする。このときバスマスター１１がバスアクセスを行い、アドレスを発行し例えばバススレーブ１２を選択したとする。すると、バスアービタ４０は、バスマスター１１とバススレーブ１２の組み合わせから、そのパスが例えば低速クロックが必要であると判断した場合、対応するゲート回路３０３，３０４を制御する。これによりバスマスター１１とバススレーブ１２には、それぞれバスクロックＣＬＫ＿Ｃ、ＣＬＫ＿Ｓ０の低速クロックの供給が開始される。この機能は、バスマスター１１がＣＰＵ，バススレーブ１２がレジスタのような高速動作を必要としない場合に好適し、ＣＰＵからレジスタデータをレジスタに転送することができる。
【００１９】
バスアービタ４０は、クロックのゲート制御信号を生成しているために、バスにアクセスが無い状態ではシステムに問題が起こらない範囲でバスマスター及びバススレーブのクロックを停止若しくはクロックの周波数を変更することが可能である。
【００２０】
図２には、上記した装置の一動作例を説明するためのタイミングチャートを示している。ＣＬＫ＿Ａはクロックツリー後のクロックであり最も周波数の高いクロックであり、バスアービタ４０に供給される。
【００２１】
ＧＡＴＥ＿Ｃ／Ｓ０は、バスマスター（ＣＰＵ）１１とバススレーブ（レジスタ）１２に供給されるゲート制御信号である。ＣＫＬ＿Ｃ／Ｓ０は、バスマスター（ＣＰＵ）１１とバススレーブ（レジスタ）１２に供給される動作クロックである。
【００２２】
また、ＧＡＴＥ＿Ｍ０／Ｓ１は、バスマスター（ＤＭＡ）２１とバススレーブ（システムメモリ）２２に供給されるゲート制御信号である。ＣＫＬ＿Ｍ０／Ｓ１は、バスマスター（ＤＭＡ）２１とバススレーブ（システムメモリ）２２に供給される動作クロックである。クロックＣＬＫ＿Ａに時点ｔ１−ｔ１７を付して、動作例を説明する。
【００２３】
今、時点ｔ１から時点ｔ５まででバスマスター１１がリクエスト信号ＲＥＱ＿Ｃを出力したとする。バスアービタ４０は、時点ｔ１から例えば２個目のクロックＣＬＫ＿Ａが出力した時点ｔ３からグラント信号ＧＲＡＮＴ＿Ｃを出力する。しかし、時点ｔ５でリクエスト信号がキャンセルされたので、同時にグラント信号ＧＲＡＮＴ＿Ｃもキャンセルする。
【００２４】
また、時点ｔ１から時点ｔ５まででバスマスター２１がリクエスト信号ＲＥＱ＿Ｍ０を出力したとする。バスアービタ４０は、時点ｔ３から例えば２個目のクロックＣＬＫ＿Ａが出力した時点ｔ５で、グラント信号ＧＲＡＮＴ＿Ｃがキャンセされているので、今度はバススレーブ２２に対するグラント信号ＧＲＡＮＴ＿Ｍ０を出力する。リクエスト信号及びグラント信号は、各バスマスターとバスアービタ４０がやり取りする信号である。そしてグラント信号は、上記したように対応するリクエスト信号がキャンセルされると同時にキャンセルされる関係にある。
【００２５】
次に図２のＢ＿ＡＤＤＲとＢ＿ＤＡＴＡは、バス１００（アドレスバスとデータバス）上のアドレスとデータを意味する。グラント信号が出力されると、バス使用権を得たバスマスターは、グラント信号の発生時点から２個目のクロックＣＬＫ＿Ａが出力した時点で、対応するバススレーブのアドレスを出力し、つづいて、対応するバススレーブに対するデータを出力する。
【００２６】
図２の例である時点ｔ５から時点ｔ７の間に、バスマスター１１がバススレーブ（レジスタ）１２に対するアドレスを出力して指定を行い、次に時点ｔ７から時点ｔ９までの間にデータを出力するタイミングとなっている。しかしこの例では、時点ｔ５でバスマスター２１がバス使用権得ているために、時点ｔ７で対応するバススレーブ２２を指定するアドレスをアドレスバスに出力し、つづいて時点ｔ９からバススレーブ２２に対するデータを出力している。またバススレーブ２２に対するアドレスも出力している。バスマスター２１がバス使用権を確保し、データ出力を開始すると、高速動作期間に移行している。バスマスター１１がバス使用権を有する期間は低速動作期間である。またリクエスト信号及びグラント信号が何ら存在しないときは、低速動作モードあるあるいは動作クロックの停止状態に設定してもよい。
【００２７】
図３には、上記の装置の動作をフローチャートで示している。バスマスターからリクエスト信号があると、所定のアルゴリズムに従って、バスマスターを特定し、特定したバスマスターに対してバス使用権を与えるためのグラント信号を発行する（ステップＳＡ１，ＳＡ２）。さらに、クロック生成回路３０を制御して特定したバスマスターと、これに対応するバススレーブに対する動作クロックを設定する（ステップＳＡ３）。
【００２８】
この場合グラント信号を発行後、すぐにクロック制御を行うわけではなく、前にバスを使用しているマスターがいない場合(切り替えタイミングはt5)若しくは前にバスを使用しているマスターのデータフェーズが終わった場合(切り替えタイミングはt9)に、クロックを切り替えることができる。リクエスト信号がキャンセルされた場合は、グラント信号もキャンセルし（ステップＳＡ４）、低速動作期間に移行する（ステップＳＡ５）。この場合グラント信号のキャンセル後、すぐに低速動作に移行するのではなく、バスを使用できるマスターのアドレスフェーズが終わり、次のバスを使用するマスターとスレーブの組み合わせが高速動作に対応していない若しくは次にバスを使用するマスターがいない場合に、低速動作期間に移行する。
【００２９】
上記の回路構成であると、クロック生成部から出力される複数のクロックは周波数が異なっても同期状態であり、いずれに切り替わってもバス上のバスクロックの同期が安定している。またバスマスターとバススレーブも同期して安定して動作する。
【００３０】
図４には、上記した本発明を適用したＳＤカードコントローラ４００を示している。
【００３１】
ＳＤカードコントローラ４００は、ＳＤ（Secure Digital）カードに対してデータを書き込む、コマンドを設定する、またＳＤカードのデータを消去、データを取り出すなどの処理を遂行することができる。
【００３２】
なおＳＤカードコントローラと称しているが、メモリカードコントローラであっても本発明の範疇である。そしてメモリカードコントローラは、メモリカード６００の着脱部、パーソナルコンピュータ５００への接続部を有する。ＳＤカードコントローラ４００は、バス１００を含む。バス１００にはＰＣＩコントローラ４０１が接続されている。
【００３３】
さらにＳＤカードコントローラ４００のバス１００にはバスマスターとしてのＤＭＡユニット２１、バススレーブとしてのレジスタ１２、そしてバスクロック調停を行うアービタ４０が接続されている。
【００３４】
アービタ４０は、クロック生成回路３０を制御し、図１で説明したようにバスマスターとバススレーブに対して適切な周波数の動作クロックを設定することができる。
【００３５】
レジスタ１２及びＤＭＡユニット２１は、バッファ回路４１１、インターフェース４１２を介して、ＳＤカード６００とデータのやり取りを行うことができる。
【００３６】
ＰＣＩコントローラ４０１は、ＳＤカードコントローラ４００とパーソナルコンピュータ５００とを接続するインターフェースとして機能する。このときは、ＰＣＩコントローラ４０１は、ＰＣＩ規格のソフトウエアとしてのデバイスドライバに基づいて動作し、パーソナルコンピュータ５００内のＣＰＵ５０２やシステムメモリ５０３をアクセスし、データやり取りを行うことが可能となる。通常はＣＰＵ５０２やシステムメモリ５０３はＰＣＩバス５０１とは繋がっていないが、デバイスドライバによるアクセスがあったときにＰＣＩバス５０１と関連するようになる。
【００３７】
一方、ＰＣＩコントローラ４０１は、バスマスターとして動作することも可能であり、またバススレーブとして動作することも可能である。
【００３８】
即ち今，ＰＣＩコントローラ４０１がバス使用権をリクエストしグラントによりバス使用権を得ることができる(バスマスターとして機能)。この時レジスタ１２に対してデータ転送を行う場合、アービタ４０は、クロック生成回路３０を制御して、ＰＣＩコントローラ４０１と、レジスタ１２（バススレーブとして機能）に低速クロックを供給する。これによりＰＣＩコントローラ４０１、レジスタ１２間の低速のデータ交信が行われる。
【００３９】
次に、ＤＭＡ２１がバス使用権をリクエストしグラントによりバス使用権を得ることができる(バスマスターとして機能)。この時レジスタ１２に対してデータ転送を行う場合、アービタ４０は、クロック生成回路３０を制御して、ＰＣＩコントローラ４０１（バススレーブとして機能）と、ＤＭＡ２１に高速クロックを供給する。これによりＤＭＡ２１、ＰＣＩコントローラ４０１間で高速のデータ交信が行われる。
【００４０】
バスアービタ４０は、複数の動作クロックのうち最も高い周波数のクロックを動作クロックとしている。そしてバスアービタ４０は、リクエスト信号が無い場合、複数の動作クロックを停止状態若しくは最も低い低周波に設定する。リクエスト信号が無いことを判定する場合は、一定期間を監視し一定期間待ってもリクエスト信号が無い場合に停止を含めた低周波に設定する。
【００４１】
上記のような処理が実行されるときに本発明の方法及び装置であると、バスマスター及びバススレーブの組み合わせに適応して、低速周波数、高速周波数のバスクロックを切替えることができる。このとき、バス上のデータやアドレスが安全に同期して切り替わり、ハングアップなどの障害を生じにくくなっている。
【００４２】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００４３】
【図１】この発明の基本構成を示すブロック構成図である。
【図２】図１の回路の動作例を説明するためのタイミングチャートである。
【図３】この発明の回路の動作例を説明するために示したフローチャートである。
【図４】この発明が適用された装置の構成例を示すブロック構成図である。
【符号の説明】
【００４４】
１１・・・バスマスター（ＣＰＵ，１２・・・バススレーブ（レジスタ）、２１・・・バスマスター（ＤＭＡ），２２・・・バススレーブ（システムメモリ）、３０・・・クロック生成回路、４０・・・バスアービタ、１００・・・バス。
【図１】
2010128793.tif 000003
【図２】
2010128793.tif 000004
【図３】
2010128793.tif 000005
【図４】
2010128793.tif 000006