(57)【要約】【課題】  マイクロコントローラにおいて、バス調停動作を破綻させることなく、スリープモード時の内部クロックの停止による消費電力の低減と、スプリット動作による処理の効率化を両立させる。【解決手段】  内部クロックＣＬＫ２が停止しているときにでも、スレーブブロック３や停止制御ブロック５からのスプリット信号ＳＰＬ３，ＳＰＬ５を保持する保持回路６６１，６６２を備えたバス調停ブロック６Ａを設ける。これにより、バス調停ブロック６Ａがスリープ状態であっても、通常動作を行っているスレーブブロック３等からのスプリット応答を保持される。そして、起動信号ＷＫＵＰによって内部クロックＣＬＫ２の供給が再開され、通常動作モード戻ったときに、スプリット制御回路６３が保持回路６６１，６６２の保持内容に基づいて正常な処理が再開される。【選択図】      図１
2007052685.tif 000002
【特許請求の範囲】
【請求項１】
システムバスを介して接続された複数のスレーブブロックに対してバスアクセスを行う複数のマスタブロックと、前記マスタブロックからのバス使用要求及び前記スレーブブロックからの分割転送応答に応じて前記システムバスの使用割り当てを調停してバス使用許可を出力するバス調停ブロックと、低消費電力モードへの移行要求があったときに前記バス調停ブロックへ内部クロックの停止要求を行って該バス調停ブロックから停止許可を受けたときに該内部クロックの供給を停止し、起動要求があったときには直ちに該内部クロックの供給を再開する停止制御ブロックとを備えたマイクロコントローラにおいて、
前記バス調停ブロックは、
前記分割転送応答があったときには割り当て中のバス使用許可を停止して他のバス使用要求に対するバス使用許可を行い、該分割転送応答を行ったスレーブブロックから分割転送が可能になったことを示す応答信号が与えられたときには前記停止したバス使用許可を復旧させる分割転送制御回路と、
前記内部クロックの供給が停止されているときに、前記スレーブブロックのうちでマスタクロックの供給を受けて動作するスレーブブロックから前記応答信号が与えられた場合に該応答信号を保持し、該内部クロックの供給が再開されたときにその保持していた応答信号を前記分割転送制御回路に出力する応答信号保持回路とを、
有することを特徴とするマイクロコントローラ。
【請求項２】
システムバスを介して接続された複数のスレーブブロックに対してバスアクセスを行う複数のマスタブロックと、前記マスタブロックからのバス使用要求及び前記スレーブブロックからの分割転送応答に応じて前記システムバスの使用割り当てを調停してバス使用許可を出力するバス調停ブロックと、低消費電力モードへの移行要求があったときに前記バス調停ブロックへ内部クロックの停止要求を行って該バス調停ブロックから停止許可を受けたときに該内部クロックの供給を停止し、起動要求があったときには直ちに該内部クロックの供給を再開する停止制御ブロックとを備えたマイクロコントローラにおいて、
前記バス調停ブロックは、
前記分割転送応答があったときには割り当て中のバス使用許可を停止して他のバス使用要求に対するバス使用許可を行い、該分割転送応答を行ったスレーブブロックから分割転送が可能になったことを示す応答信号が与えられたときには前記停止したバス使用許可を復旧させる分割転送制御回路と、
前記分割転送応答に基づいて前記割り当て中のバス使用許可を停止しているときに、前記停止制御ブロックから前記内部クロックの停止要求が行われた場合に直ちに前記停止許可を出力せず、前記分割転送応答を行ったスレーブブロックから分割転送が可能になったことを示す応答信号が与えられて前記停止したバス使用許可を復旧させた後で、該停止許可を出力するクロック停止遅延回路とを、
有することを特徴とするマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラのバス制御に関するものである。
【背景技術】
【０００２】
図２は、従来のマイクロコントローラの一例を示す構成図である。
このマイクロコントローラは、マスタブロック１，２、スレーブブロック３，４、停止制御ブロック５及びバス調停ブロック６を有しており、これらがシステムバス７，８を介して相互に接続された構成となっている。
【０００３】
マスタブロック１，２は、ＣＰＵ(Central Processing Unit）等で構成され、定められたプログラムに従って処理を行うと共に、システムバス７，８を介してスレーブブロック３，４にバスアクセスを発行する機能を有するものである。スレーブブロック３，４は、システムバス７，８を介してマスタブロック１，２からバスアクセスを受け取り、それに応答するものである。停止制御ブロック５は、スレーブブロックの１つであり、特にマスタブロック１，２等に供給するクロック信号を停止させる機能を有するものである。また、バス調停ブロック６は、マスタブロック１，２からのバス使用要求に従って、システムバス７，８を使用しても良いか否かを調停するものである。
【０００４】
システムバス７は、マスタ側からスレーブ側へデータ等を転送するバスで、アドレス等の制御信号が含まれている。システムバス８は、スレーブ側からマスタ側へデータ及び応答を転送するバスである。システムバス８では、スレーブブロックの状態を示す応答信号ＲＥＳＰや、応答完了を示す応答完了信号ＲＥＡＤＹ等がマスタ側へ転送される。応答信号ＲＥＳＰでは、アクセスが正常終了（“ＯＫ”）か、異常終了（“ＥＲＲ”）か、或いは後述する分割転送（“ＳＰＬＩＴ”）かの応答が示される。応答完了信号ＲＥＡＤＹでは、その応答が有効（“Ｈ”）か、無効（“Ｌ”）かが示されるようになっている。
【０００５】
これらのブロック１〜６は、システムバス７，８を介して接続されると共に、ブロック間で制御信号を直接やり取りするための信号線で接続されている。
【０００６】
例えば、停止制御ブロック５とバス調停ブロック６の間では、低消費電力モード時にスリープ状態にさせるブロック（例えば、マスタブロック１，２、スレーブブロック４、及びバス調停ブロック６）へのクロック供給の停止を要求する停止要求信号ＲＥＱと、クロック供給を停止可能な状態になったことを示す停止許可信号ＡＣＫがやり取りされるようになっている。
【０００７】
即ち、停止制御ブロック５は、クロック停止要求の有無を書き込むことができるレジスタ（ＲＥＧ）５１を有し、このレジスタ５１の出力側がフリップフロップ（ＦＦ）５２に接続されている。フリップフロップ５２のクロック端子には外部からマスタクロックＣＬＫ１が与えられ、このフリップフロップ５２から出力される停止要求信号ＲＥＱがバス調停ブロック６に与えられている。更に、停止制御ブロック５は、バス調停ブロック６から与えられる停止許可信号ＡＣＫを、マスタクロックＣＬＫ１に同期して保持するフリップフロップ５３を有している。フリップフロップ５３の出力信号は、ＯＲゲート５４に与えられてマスタクロックＣＬＫ１との論理和がとられ、内部クロックＣＬＫ２としてマスタブロック１，２、スレーブブロック４、及びバス調停ブロック６に供給されるようになっている。なお、低消費電力モード時でもスリープ状態にならずに通常の動作を行うブロック（例えば、スレーブブロック３）には、マスタクロックＣＬＫ１が与えられている。
【０００８】
バス調停ブロック６は、一方の入力側に停止要求信号ＲＥＱが与えられるＯＲゲート６１を有し、この出力側がフリップフロップ６２の入力側に接続されている。フリップフロップ６２のクロック端子には内部クロックＣＬＫ２が与えられ、このフリップフロップ６２から停止許可信号ＡＣＫが出力されている。停止許可信号ＡＣＫは、停止制御ブロック５に与えられると共に、ＯＲゲート６１の他方の入力側に接続されている。また、フリップフロップ６２は、外部またはスリープ状態にならないブロックから与えられる起動信号ＷＫＵＰによって、非同期にクリアされるようになっている。
【０００９】
一方、マスタブロック１とバス調停ブロック６の間では、調停信号ＡＲＢ１がやり取りされるようになっている。調停信号ＡＲＢ１は、マスタブロック１がシステムバスを使用したいときに出力するバス要求信号と、このバス要求信号を受け取ったバス調停ブロック６がマスタブロック１へシステムバスの使用を許可するバス許可信号とで構成されている。この調停により、マスタブロック１はシステムバス７，８を使用をすることが可能になる。同様に、マスタブロック２とバス調停ブロック６の間では、調停信号ＡＲＢ２がやり取りされるようになっている。
【００１０】
このバス調停では、システムバスが使用されていないときには、先にバス要求信号を出したマスタブロックにバス使用許可が与えられ、複数のマスタブロックが同時にバス要求信号を出力した場合には、予め設定されている優先順位に従って、例えばマスタブロック１にバス許可信号が与えられるようになっている。一旦バス許可信号が与えられると、その後、優先順位の高いマスタブロックからのバス要求が生じても、一連のデータ転送が終了するまでそのマスタブロックに継続して与えられるようになっている。
【００１１】
一方、スレーブブロック側では、マスタブロックからのバスアクセスに対して、直ちに応答データを返すことができない場合がある。このような場合に、バス許可信号が継続して与えられていると、システムバスが無駄に割り当てられて他のマスタブロックの処理を妨げることになる。このような弊害を無くすため、バス調停ブロック６では、スプリット（分割）転送制御を行うようにしている。
【００１２】
スプリット転送は、スレーブブロックがマスタブロックからバスアクセスを受け取った際に、その応答に長い待ち時間を必要と判断した場合、マスタブロックに対してスプリット転送をする旨のスプリット応答を返し、このスプリット応答によって割り当て中のバス使用許可を停止させるものである。これにより、他のバス使用要求に対するバス使用許可が可能になる。また、スレーブブロックは、応答が可能になった時に、その旨を通知するためのスプリット信号ＳＰＬをバス調停ブロックに出力して、バス使用許可の再割り当てを要求するようになっている。
【００１３】
スレーブブロック３，４及び停止制御ブロック５からバス調停ブロック６に、スプリット信号ＳＰＬ３，ＳＰＬ４，ＳＰＬ５がそれぞれ与えられるようになっている。なお、各スレーブブロックからバス調停ブロック６に与えられるスプリット信号ＳＰＬは、どのマスタブロックに対する応答であるかを識別するために、マスタブロックと同数の信号線が用いられる。
【００１４】
図３は、図２の動作の一例を示すタイムチャートである。
図３の時刻ｔ１では、バス使用許可がマスタブロック（ＭＢ）１に与えられており、このマスタブロック１からのバスアクセスに対して、スレーブブロック（ＳＢ）３が応答信号ＲＥＳＰとして“ＳＰＬＩＴ”応答を返す。
【００１５】
時刻ｔ２において、“ＳＰＬＩＴ”応答を受信したバス調停ブロック６は、バス使用許可をマスタブロック２に移行する。
【００１６】
時刻ｔ３において、マスタブロック２がバスアクセスを行っている際に、停止制御ブロック５のレジスタ５１に“Ｈ”を書き込み、停止要求信号ＲＥＱが“Ｈ”となる。
【００１７】
時刻ｔ４において、バス調停ブロック６は、停止制御ブロック５からの停止要求信号ＲＥＱを受け取ると、すべてのマスタブロック１，２からバス使用許可を剥奪する。更に、バス調停ブロック６は、システムバス７，８を開放した後、停止許可信号ＡＣＫを“Ｈ”にする。
【００１８】
時刻ｔ５において、マスタクロックＣＬＫ１の立ち上がりで、フリップフロップ５３から出力される信号Ｓ５３が“Ｈ”となり、ＯＲゲート５４から出力される内部クロックＣＬＫ２は“Ｈ”に固定される。これにより、マスタブロック１，２、スレーブブロック４、及びバス調停ブロック６へ供給される内部クロックＣＬＫ２が停止され、これらのブロックはスリープ状態となる。これにより、スリープ状態のブロックの消費電力を低減することができる。
【００１９】
【特許文献１】特開平１１−３９２６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、前記マイクロコントローラでは、次のような課題があった。
図３の時刻ｔ５以降、内部クロックＣＬＫ２は停止するが、マスタクロックＣＬＫ１は供給されており、スレーブブロック３と停止制御ブロック５の動作は継続して行われている。従って、時刻ｔ６において、スレーブブロック３が応答可能になると、このスレーブブロック３からバス調停ブロック６に対してスプリット信号ＳＰＬ３が出力される。しかし、バス調停ブロック６は、内部クロックＣＬＫ２が停止されてスリープ状態となっており、スプリット信号ＳＰＬ３を検出することができない。
【００２１】
時刻ｔ７において、通常動作モードに戻すために、起動信号ＷＫＵＰが“Ｌ”になるとフリップフロップ６２はクリアされ、停止許可信号ＡＣＫは無条件に“Ｌ”となる。起動信号ＷＫＵＰが“Ｈ”に戻った後、時刻ｔ８においてマスタクロックＣＬＫ１が立ち上がると、フリップフロップ５３の出力信号は“Ｌ”となり、内部クロックＣＬＫ２の供給が再開される。内部クロックＣＬＫ２の供給が再開された時刻ｔ９では、本来は応答可能になってスプリット信号ＳＰＬ３を出力したスレーブブロック３に対応するマスタブロック１にバス使用許可を移行しなければならない。しかし、バス調停ブロック６はスプリット信号ＳＰＬ３を検出していないので、スリープモードに移行する直前にバス使用許可を得ていたマスタブロック１にバス使用許可を渡してしまう。このため、正常なバス調停動作が破綻してしまうという課題があった。
【００２２】
本発明は、バス調停動作を破綻させることなく、スリープモード時の内部クロックの停止による消費電力の低減と、スプリット転送動作による処理の効率化が可能なマイクロコントローラを提供することを目的としている。
【課題を解決するための手段】
【００２３】
本発明は、システムバスを介して接続された複数のスレーブブロックに対してバスアクセスを行う複数のマスタブロックと、前記マスタブロックからのバス使用要求及び前記スレーブブロックからの分割転送応答に応じて前記システムバスの使用割り当てを調停してバス使用許可を出力するバス調停ブロックと、低消費電力モードへの移行要求があったときに前記バス調停ブロックへ内部クロックの停止要求を行って該バス調停ブロックから停止許可を受けたときに該内部クロックの供給を停止し、起動要求があったときには直ちに該内部クロックの供給を再開する停止制御ブロックとを備えたマイクロコントローラにおいて、バス調停ブロックを次のように構成している。
【００２４】
即ち、このバス調停ブロックは、前記分割転送応答があったときには割り当て中のバス使用許可を停止して他のバス使用要求に対するバス使用許可を行い、該分割転送応答を行ったスレーブブロックから分割転送が可能になったことを示す応答信号が与えられたときには前記停止したバス使用許可を復旧させる分割転送制御回路と、前記内部クロックの供給が停止されているときに、前記スレーブブロックのうちでマスタクロックの供給を受けて動作するスレーブブロックから前記応答信号が与えられた場合に該応答信号を保持し、該内部クロックの供給が再開されたときにその保持していた応答信号を前記分割転送制御回路に出力する応答信号保持回路とを有することを特徴としている。
【発明の効果】
【００２５】
本発明では、内部クロックの供給が停止されているときに、マスタクロックの供給を受けて動作するスレーブブロックから応答信号が与えられた場合にその応答信号を保持し、内部クロックの供給が再開されたときにその保持していた応答信号を分割転送制御回路に出力する応答信号保持回路を有している。これにより、内部クロックの停止中に与えられた応答信号が検出できなくなるおそれがなくなり、バス調停動作を破綻させることなく、スリープモード時の内部クロックの停止による消費電力の低減と、スプリット転送動作による処理の効率化を両立させることができるという効果がある。
【発明を実施するための最良の形態】
【００２６】
バス調停ブロックに、分割転送応答に基づいて割り当て中のバス使用許可を停止しているときに、停止制御ブロックから内部クロックの停止要求が行われた場合に直ちに停止許可を出力せず、該分割転送応答を行ったスレーブブロックから分割転送が可能になったことを示す応答信号が与えられて停止したバス使用許可を復旧させた後で、この停止許可を出力するクロック停止遅延回路を設けても良い。
【００２７】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００２８】
図１は、本発明の実施例１を示すマイクロコントローラの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
【００２９】
このマイクロコントローラは、マスタブロック１，２、スレーブブロック３，４、停止制御ブロック５及びバス調停ブロック６Ａを有しており、これらがシステムバス７，８を介して相互に接続された構成となっている。これらの構成要素のうち、バス調停ブロック６Ａ以外は図２と同じである。
【００３０】
マスタブロック１，２はＣＰＵ等で構成され、定められたプログラムに従って処理を行うと共に、システムバス７，８を介してスレーブブロック３，４にバスアクセスを発行する機能を有するものである。スレーブブロック３，４は、システムバス７，８を介してマスタブロック１，２からバスアクセスを受け取り、それに応答するものである。停止制御ブロック５は、スレーブブロックの１つであり、特にマスタブロック１，２等に供給するクロック信号を停止させる機能を有するものである。
【００３１】
システムバス７は、マスタ側からスレーブ側へアドレス等の制御信号やデータを転送するバスで、システムバス８は、スレーブ側からマスタ側へデータ及び応答を転送するバスである。システムバス８では、スレーブブロックの状態を示す応答信号ＲＥＳＰや、応答完了を示す応答完了信号ＲＥＡＤＹ等がマスタ側へ転送される。応答信号ＲＥＳＰでは、アクセスが正常終了（“ＯＫ”）か、異常終了（“ＥＲＲ”）か、或いは分割転送（“ＳＰＬＩＴ”）かの応答が示される。また、応答完了信号ＲＥＡＤＹでは、その応答が有効（“Ｈ”）か、無効（“Ｌ”）かが示されるようになっている。
【００３２】
停止制御ブロック５は、スレーブブロックの１つで、特にマスタブロック１，２等に供給するクロック信号を停止させる機能を有するものである。即ち、停止制御ブロック５は、クロック停止要求の有無を書き込むことができるレジスタ５１を有し、このレジスタ５１の出力側がフリップフロップ５２の入力側に接続されている。フリップフロップ５２のクロック端子には外部からマスタクロックＣＬＫ１が与えられ、このフリップフロップ５２の出力側から停止要求信号ＲＥＱが出力されて、バス調停ブロック６Ａに与えられている。更に、停止制御ブロック５は、バス調停ブロック６Ａから与えられる停止許可信号ＡＣＫを、マスタクロックＣＬＫ１に同期して保持するフリップフロップ５３を有している。フリップフロップ５３の出力信号は、ＯＲゲート５４に与えられてマスタクロックＣＬＫ１との論理和がとられ、内部クロックＣＬＫ２としてマスタブロック１，２、スレーブブロック４、及びバス調停ブロック６Ａに供給されるようになっている。なお、この停止制御ブロック５と、低消費電力モード時でもスリープ状態にならずに通常の動作を行うブロック（例えば、スレーブブロック３）には、マスタクロックＣＬＫ１が常時与えられている。
【００３３】
一方、バス調停ブロック６Ａは、一方の入力側に停止要求信号ＲＥＱが与えられるＯＲゲート６１を有し、この出力側がフリップフロップ６２の入力側に接続されている。フリップフロップ６２のクロック端子には内部クロックＣＬＫ２が与えられ、このフリップフロップ６２から停止許可信号ＡＣＫが出力されて、停止制御ブロック５とＯＲゲート６１の他方の入力側に与えられている。なお、フリップフロップ６２は、外部またはスリープ状態にならないブロックから与えられる起動信号ＷＫＵＰによって、非同期にクリアされるようになっている。
【００３４】
更に、このバス調停ブロック６Ａはフリップフロップ６４とＯＲゲート６５を有し、これらの入力側に停止許可信号ＡＣＫが与えられている。フリップフロップ６４のクロック端子には内部クロックＣＬＫ２が与えられ、このフリップフロップ６４の出力側がＯＲゲート６５の他方の入力側に接続されている。ＯＲゲート６５から出力される信号Ｓ６５は、保持回路６６１，６６２へ与えられている。
【００３５】
保持回路６６１，６６２は、内部クロックＣＬＫ２の供給が停止されているときに、マスタクロックＣＬＫ１の供給を受けて動作するスレーブブロック３，５からそれぞれスプリット信号ＳＰＬ３，ＳＰＬ５が与えられた場合にそのスプリット信号を保持し、内部クロックＣＬＫ２の供給が再開されたときにその保持内容をスプリット信号ＳＰＬ３Ｈ，ＳＰＬ５Ｈとしてスプリット制御回路６３に出力するものである。
【００３６】
保持回路６６１，６６２は同一構成で、例えば保持回路６６１に示すように、フリップフロップ６６ａとセレクタ６６ｂで構成されている。フリップフロップ６６ａの入力側は“Ｈ”に固定され、出力側はセレクタ６６ｂの第１の入力端子に接続されている。フリップフロップ６６ａのリセット端子とセレクタ６６ｂの選択端子には、ＯＲゲート６５からの信号Ｓ６５が与えられている。更に、フリップフロップ６６ａのクロック端子とセレクタ６６ｂの第２の入力端子には、スプリット信号ＳＰＬが与えられている。即ち、保持回路６６１には、スレーブブロック３からスプリット信号ＳＰＬ３が与えられ、保持回路６６２には、停止制御ブロック５からスプリット信号ＳＰＬ５が与えられている。そして、各保持回路６６１，６６２のセレクタ６６ｂから出力されるスプリット信号ＳＰＬ３Ｈ，ＳＰＬ５Ｈが、スプリット制御回路６３に与えられている。一方、低消費電力モード時にスリープ状態となるスレーブブロック４のスプリット信号ＳＰＬ４は、保持回路を介さず、スプリット制御回路６３に直接与えられるようになっている。
【００３７】
スプリット制御回路６３は、“ＳＰＬＩＴ”応答があったときには割り当て中のバス使用許可を停止して他のバス使用要求に対するバス使用許可を行い、この“ＳＰＬＩＴ”応答を行ったスレーブブロックから分割転送が可能になったことを示すスプリット信号ＳＰＬが与えられたときには前記停止したバス使用許可を復旧させるものである。
【００３８】
なお、マスタブロック１，２とバス調停ブロック６Ａの間で、それぞれ調停信号ＡＲＢ１，２を用いて、システムバス７，８のバス使用許可の調停制御を行うことは図２と同様である。
【００３９】
図４は、図１の動作の一例を示すタイムチャートである。以下、この図４を参照しつつ、図１の動作を説明する。
【００４０】
図４の時刻Ｔ１では、バス使用許可がマスタブロック（ＭＢ）１に与えられており、このマスタブロック１からのバスアクセスに対して、スレーブブロック（ＳＢ）３が応答信号ＲＥＳＰとして“ＳＰＬＩＴ”応答を返す。
【００４１】
時刻Ｔ２において、“ＳＰＬＩＴ”応答を受信したバス調停ブロック６Ａは、バス使用許可をマスタブロック２に移行する。
【００４２】
時刻Ｔ３において、マスタブロック２がバスアクセスを行っている際に停止制御ブロック５のレジスタ５１に“Ｈ”を書き込み、停止要求信号ＲＥＱが“Ｈ”となる。
【００４３】
時刻Ｔ４において、バス調停ブロック６Ａは、停止制御ブロック５からの停止要求信号ＲＥＱを受け取ると、すべてのマスタブロック１，２からバス使用許可を剥奪する。バス調停ブロック６Ａは、システムバス７，８を開放した後、停止許可信号ＡＣＫを“Ｈ”にする。これにより、ＯＲゲート６５から出力される信号Ｓ６５が“Ｈ”となり、セレクタ６６ｂによってフリップフロップ６６ａから出力される信号Ｓ６６ａが選択される。時刻Ｔ４の直前まで信号Ｓ６５は“Ｌ”であったので、フリップフロップ６６ａはリセットされた状態となっており、信号Ｓ６６ａは“Ｌ”である。従って、保持回路６６１，６６２から出力されるスプリット信号ＳＰＬ３Ｈ，ＳＰＬ５Ｈは、共に“Ｌ”である。
【００４４】
時刻Ｔ５において、マスタクロックＣＬＫ１の立ち上がりで、フリップフロップ５３から出力される信号Ｓ５３が“Ｈ”となり、ＯＲゲート５４から出力される内部クロックＣＬＫ２は“Ｈ”に固定される。これにより、マスタブロック１，２、スレーブブロック４、及びバス調停ブロック６Ａへ供給される内部クロックＣＬＫ２が停止され、これらのブロックはスリープ状態となる。一方、スレーブブロック３と停止制御ブロック５にはマスタクロックＣＬＫ１が与えられているので、これらのブロックの動作は継続される。
【００４５】
時刻Ｔ６において、スレーブブロック３が応答可能になると、このスレーブブロック３からバス調停ブロック６Ａに対してスプリット信号ＳＰＬ３が出力される。これにより、保持回路６６１のフリップフロップ６６ａの信号Ｓ６６ａは“Ｈ”となり、スプリット信号ＳＰＬ３Ｈは“Ｈ”となる。その後、スプリット信号ＳＰＬ３は“Ｌ”に戻るが、フリップフロップ６６ａの状態は変化せず、スプリット信号ＳＰＬ３Ｈは“Ｈ”の状態に保持される。なお、この時点では、バス調停ブロック６Ａは、内部クロックＣＬＫ２が停止されてスリープ状態となっており、スプリット信号ＳＰＬ３Ｈの検出は行われない。
【００４６】
時刻Ｔ７において、通常動作モードに戻すために、起動信号ＷＫＵＰが“Ｌ”になるとフリップフロップ６２はクリアされ、停止許可信号ＡＣＫは無条件に“Ｌ”となる。
【００４７】
起動信号ＷＫＵＰが“Ｈ”に戻った後、時刻Ｔ８においてマスタクロックＣＬＫ１が立ち上がると、フリップフロップ５３から出力される信号Ｓ５３は“Ｌ”となり、内部クロックＣＬＫ２の供給が再開される。
【００４８】
時刻Ｔ９において内部クロックＣＬＫ２が立ち上がると、フリップフロップ６４のから出力される信号は“Ｌ”となり、信号Ｓ６５も“Ｌ”となる。これにより、フリップフロップ６６ａの信号Ｓ６６ａは“Ｌ”となり、スプリット信号ＳＰＬ３Ｈも“Ｌ”となる。従って、スプリット制御回路６３には、クロック１サイクル分のスプリット信号ＳＰＬ３Ｈが与えられたことになる。スプリット信号ＳＰＬ３Ｈは、スプリット制御回路６３によって検出され、時刻Ｔ１０において、このスプリット信号ＳＰＬ３Ｈに従って、マスタブロック１へバス使用許可が与えられる。
【００４９】
以上のように、この実施例１のマイクロコントローラは、内部クロックＣＬＫ２が停止しているときにでも、スレーブブロック３や停止制御ブロック５からのスプリット信号ＳＰＬ３，ＳＰＬ５を保持する保持回路６６１，６６２を備えたバス調停ブロック６Ａを有している。これにより、バス調停ブロック６Ａがスリープ状態であっても、通常動作を行っているスレーブブロック３等からのスプリット信号ＳＰＬを保持し、通常動作モード戻ったときに、正常な処理を行うことができる。
【００５０】
なお、本発明は、上記実施例１に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（１）  マイクロコントローラの構成は、図１の構成例に限定されない。
（２）  保持回路６６の回路構成は、図示したものに限定されない。内部クロックＣＬＫ２に無関係にスプリット信号ＳＰＬを保持することができるものであれば良い。
【実施例２】
【００５１】
図５は、本発明の実施例２を示すバス調停ブロックの構成図である。このバス調停ブロック６Ｂは、図１中のバス調停ブロック６Ａに代えて設けるもので、要素と共通の要素には共通の符号が付されている。
【００５２】
このバス調停ブロック６Ｂは、一方の入力側に停止要求信号ＲＥＱが与えられ、出力側がフリップフロップ６２に接続されたＯＲゲート６１を有している。フリップフロップ６２のクロック端子には内部クロックＣＬＫ２が与えられ、このフリップフロップ６２から出力される信号Ｓ６２が、ＯＲゲート６１の他方の入力側に与えられている。
【００５３】
更に、バス調停ブロック６Ｂは、応答信号ＲＥＳＰの内容を判定するレスポンス判定回路６７を有している。レスポンス判定回路６７は、応答信号ＲＥＳＰが“ＳＰＬＩＴ”応答のときに、“Ｈ”を出力するものである。レスポンス判定回路６７の出力側は、クロック停止遅延回路に接続されている。クロック停止遅延回路は、“ＳＰＬＩＴ”応答に基づいて割り当て中のバス使用許可を停止しているときに、停止制御ブロック５から停止要求信号ＲＥＱが与えられた場合に直ちに停止許可信号ＡＣＫを出力せず、この“ＳＰＬＩＴ”応答を行ったスレーブブロックから分割転送が可能になったことを示すスプリット信号ＳＰＬが与えられて停止したバス使用許可を復旧させた後で、この停止許可信号ＡＣＫを出力するものである。クロック停止遅延回路は、以下に示すＯＲゲート６８からＡＮＤゲート７４の論理素子で構成されている。
【００５４】
即ち、レスポンス判定回路６７の出力側は、ＯＲゲート６８の一方の入力側に接続されると共に、インバータ６９を介してＡＮＤゲート７０の一方の入力側に接続されている。ＯＲゲート６８の出力側はセレクタ７１の一方の入力端子に接続され、このセレクタ７１の他方の入力端子は“Ｌ”に固定されている。また、ＡＮＤゲート７０の他方の入力側には、スプリット信号ＳＰＬが与えられ、このＡＮＤゲート７０の出力側が、セレクタ７１の選択端子に接続されている。なお、スプリット信号ＳＰＬは、スプリット制御回路６３にも与えられている。
【００５５】
セレクタ７１の出力側は、フリップフロップ７２の入力側に接続され、このフリップフロップ７２のクロック端子には内部クロックＣＬＫ２が与えられている。フリップフロップ７２から出力される信号Ｓ７２は、ＯＲゲート６８の他方の入力側に与えられると共に、インバータ７３を介してＡＮＤゲート７４の一方の入力側に与えられている。ＡＮＤゲート７４の他方の入力側にはフリップフロップ６２の信号Ｓ６２が与えられ、このＡＮＤゲート７４から停止許可信号ＡＣＫが出力されるようになっている。
【００５６】
図６は、図５の動作の一例を示すタイムチャートである。以下、この図６を参照しつつ、図５の動作を説明する。
【００５７】
図６の時刻Ｔ１１では、バス使用許可がマスタブロック（ＭＢ）１に与えられており、このマスタブロック１からのバスアクセスに対して、スレーブブロック（ＳＢ）３が応答信号ＲＥＳＰとして“ＳＰＬＩＴ”応答を返す。
【００５８】
時刻Ｔ１２において、“ＳＰＬＩＴ”応答を受信したバス調停ブロック６Ｂは、バス使用許可をマスタブロック２に移行する。また、レスポンス判定回路６７では“ＳＰＬＩＴ”を検出し、その出力信号は“Ｈ”になる。これにより、セレクタ７１によってＯＲゲート６８の出力側が選択され、このセレクタ７１の出力信号は“Ｈ”となる。
【００５９】
時刻Ｔ１３における内部クロックＣＬＫ２の立ち上がりによって、フリップフロップ７２の信号Ｓ７２は“Ｈ”となる。時刻Ｔ１４において、停止制御ブロック５から与えられる停止要求信号ＲＥＱが“Ｈ”となる。そして、時刻Ｔ１５における内部クロックＣＬＫ２の立ち上がりによって、フリップフロップ６２の信号Ｓ６２は“Ｈ”となる。
【００６０】
時刻Ｔ１６において、スレーブブロック３からスプリット信号ＳＰＬ３が出力されるとＡＮＤゲート７０の出力信号が“Ｈ”となり、セレクタ７１では“Ｌ”が選択されてフリップフフロップ７２に与えられる。
【００６１】
時刻Ｔ１７における内部クロックＣＬＫ２の立ち上がりにより、フリップフフロップ７２の信号Ｓ７２は“Ｌ”となる。これにより、ＡＮＤゲート７４から出力される停止許可信号ＡＣＫは“Ｈ”となる。更に、スプリット信号ＳＰＬ３に従って、マスタブロック１に対してバス使用許可が与えられる。
【００６２】
時刻Ｔ１８では、“Ｈ”の停止許可信号ＡＣＫに従って、停止制御ブロック５からの内部クロックＣＬＫ２が停止する。また、マスタブロック１からのバスアクセスに対して“ＯＫ”の応答を返し、バス使用許可を開放する。
【００６３】
時刻Ｔ１９では起動信号ＷＫＵＰが“Ｌ”となり、信号Ｓ６２が“Ｌ”にクリアされるので、停止許可信号ＡＣＫも“Ｌ”となる。これにより、時刻Ｔ２０において、停止制御ブロック５からの内部クロックＣＬＫ２の供給が再開される。
【００６４】
以上のように、このバス調停ブロック６Ｂは、“ＳＰＬＩＴ”応答を受け付けた後、スプリット信号ＳＰＬが“Ｈ”になるまでの間、内部クロックＣＬＫ２を停止させずに通常動作を継続させ、スレーブブロックからのスプリット信号ＳＰＬが“Ｈ”になった後で、この内部クロックＣＬＫ２を停止させるクロック停止遅延回路を有している。これにより、バス調停動作を破綻させることなく、スリープモード時の内部クロックの停止による消費電力の低減と、スプリット動作による処理の効率化を両立することができるマイクロコントローラが得られる。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施例１を示すマイクロコントローラの構成図である。
【図２】従来のマイクロコントローラの一例を示す構成図である。
【図３】図２の動作の一例を示すタイムチャートである。
【図４】図１の動作の一例を示すタイムチャートである。
【図５】本発明の実施例２を示すバス調停ブロックの構成図である。
【図６】図５の動作の一例を示すタイムチャートである。
【符号の説明】
【００６６】
１，２    マスタブロック
３，４    スレーブブロック
５    停止制御ブロック
６Ａ，６Ｂ    バス調停ブロック
７，８    システムバス
５１    レジスタ
５２，５３，６２，６４，６６ａ    フリップフロップ
５４，６１，６５，６８    ＯＲゲート
６３    スプリット制御回路
６６    保持回路
６６ｂ，７１    セレクタ
６７    レスポンス判定回路
６９，７３    インバータ
７０，７４    ＡＮＤゲート
【図１】
2007052685.tif 000003
【図２】
2007052685.tif 000004
【図３】
2007052685.tif 000005
【図４】
2007052685.tif 000006
【図５】
2007052685.tif 000007
【図６】
2007052685.tif 000008