(57)【要約】【課題】リセット要求を受けてリセット信号を発生させたときの誤動作を防止することのできるマイクロコンピュータシステムを提供する。【解決手段】マイクロコンピュータシステム１０００は、ＷＡＩＴ要求部１が、リセット要求を受けた後にＣＰＵ１００で実行中の命令の終了を検知するとＣＰＵ１００へＷＡＩＴ要求を出力し、リセット信号生成部２が、ＷＡＩＴ要求部１からのＷＡＩＴ要求を受けてＷＡＩＴ状態となったＣＰＵ１００からＷＡＩＴ状態であることを示すＷＡＩＴ信号が出力されたことを検知すると、ＣＰＵ１００および周辺装置２００へリセット信号を出力するとともに、ＷＡＩＴ要求部１へＷＡＩＴ要求の取り下げを指示する。【選択図】図１
2008299451.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行するＣＰＵと、命令の実行に伴って前記ＣＰＵにより動作が制御される周辺装置と、を備えるマイクロコンピュータシステムであって、
リセット要求を受けた後に前記ＣＰＵで実行中の命令の終了を検知すると前記ＣＰＵへＷＡＩＴ要求を出力するＷＡＩＴ要求手段と、
前記ＷＡＩＴ要求を受けて前記ＣＰＵがＷＡＩＴ状態になったことを検知して前記ＣＰＵおよび前記周辺装置へリセット信号を出力するとともに、前記ＷＡＩＴ要求手段へ前記ＷＡＩＴ要求の取り下げを指示するリセット信号生成手段と、
を有することを特徴とするマイクロコンピュータシステム。
【請求項２】
１チップの半導体装置に集積されて１チップマイクロコンピュータを形成することを特徴とする請求項１に記載のマイクロコンピュータシステム。
【請求項３】
命令を実行するＣＰＵと、命令の実行に伴って前記ＣＰＵにより動作が制御される周辺装置と、を備えるマイクロコンピュータシステムであって、
前記ＣＰＵおよび前記周辺装置へクロック信号を供給するクロック生成手段と、
リセット要求を受けた後に前記ＣＰＵで実行中の命令の終了を検知すると前記ＣＰＵへＷＡＩＴ要求を出力するＷＡＩＴ要求手段と、
前記ＷＡＩＴ要求を受けて前記ＣＰＵがＷＡＩＴ状態になったことを検知して前記クロック生成手段へクロック信号の停止を指示するクロック停止信号を出力するクロック制御手段と、
前記クロック停止信号の出力後に前記ＣＰＵおよび前記周辺装置へリセット信号を出力するとともに、前記ＷＡＩＴ要求手段へ前記ＷＡＩＴ要求の取り下げを指示するリセット信号生成手段と、
を有することを特徴とするマイクロコンピュータシステム。
【請求項４】
前記クロック生成手段は、
通常動作時は、複数のクロック信号から１つを選択して前記クロック信号として出力し、
前記リセット信号生成回路から前記リセット信号が出力されたときは、予め定められている初期状態用のクロック信号を前記クロック信号として出力する
ことを特徴とする請求項３に記載のマイクロコンピュータシステム。
【請求項５】
１チップの半導体装置に集積されて１チップマイクロコンピュータを形成することを特徴とする請求項３または４に記載のマイクロコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータシステムに関する。
【背景技術】
【０００２】
命令を実行するＣＰＵと、命令の実行に伴ってＣＰＵにより動作が制御されるメモリやタイマなどの周辺装置と、を有するマイクロコンピュータシステムでは、動作中のシステムを初期状態に戻すためにリセット信号が入力される。
【０００３】
このリセット信号は任意のタイミングで入力されるので、例えば、メモリなどへのデータ書き込み命令実行中にリセット信号が入力されることがある。このような場合に、リセット信号の入力を受けて直ちにデータ書き込み命令の実行を中断すると、メモリなどに正常なデータが書き込まれないことがある。
【０００４】
また、異なる周波数の複数のクロックから１つのクロックを動作クロックとして選択し、リセット信号により動作クロックを初期状態で選択されるクロック信号に戻すマイクロコンピュータシステムでは、リセット信号の入力タイミングによっては動作クロックにスパイク状のパルスが発生することがある。このとき、ＣＰＵがメモリなどへデータの書き込みを行っていた場合、ＣＰＵから出力されるアドレスやデータの値が不定値となり、意図しないメモリなどに書き込みを行う状態となり、その内容を破壊することがある。
【０００５】
従来、このような書き込み誤りを防止するため、リセット信号を遅延回路で遅延させ、ＣＰＵよりもメモリが遅れてリセットされるようにすることが提案されている（例えば、特許文献１参照。）。
【０００６】
しかし、上述の遅延回路は、キャパシタと抵抗による積分回路で構成されているため、その素子の特性バラツキなどにより遅延時間にバラツキが生じ、動作マージンが十分に取れなくなる可能性があるという問題があった。
【特許文献１】特開２００１−１４２７９２号公報  （第４ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の目的は、リセット要求を受けてリセット信号を発生させたときの誤動作を防止することのできるマイクロコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、命令を実行するＣＰＵと、命令の実行に伴って前記ＣＰＵにより動作が制御される周辺装置と、を備えるマイクロコンピュータシステムであって、リセット要求を受けた後に前記ＣＰＵで実行中の命令の終了を検知すると前記ＣＰＵへＷＡＩＴ要求を出力するＷＡＩＴ要求手段と、前記ＷＡＩＴ要求を受けて前記ＣＰＵがＷＡＩＴ状態になったことを検知して前記ＣＰＵおよび前記周辺装置へリセット信号を出力するとともに、前記ＷＡＩＴ要求手段へ前記ＷＡＩＴ要求の取り下げを指示するリセット信号生成手段と、を有することを特徴とするマイクロコンピュータシステムが提供される。
【０００９】
また、本発明の別の一態様によれば、命令を実行するＣＰＵと、命令の実行に伴って前記ＣＰＵにより動作が制御される周辺装置と、を備えるマイクロコンピュータシステムであって、前記ＣＰＵおよび前記周辺装置へクロック信号を供給するクロック生成手段と、リセット要求を受けた後に前記ＣＰＵで実行中の命令の終了を検知すると前記ＣＰＵへＷＡＩＴ要求を出力するＷＡＩＴ要求手段と、前記ＷＡＩＴ要求を受けて前記ＣＰＵがＷＡＩＴ状態になったことを検知して前記クロック生成手段へクロック信号の停止を指示するクロック停止信号を出力するクロック制御手段と、前記クロック停止信号の出力後に前記ＣＰＵおよび前記周辺装置へリセット信号を出力するとともに、前記ＷＡＩＴ要求手段へ前記ＷＡＩＴ要求の取り下げを指示するリセット信号生成手段と、を有することを特徴とするマイクロコンピュータシステムが提供される。
【発明の効果】
【００１０】
本発明によれば、リセット要求を受けてリセット信号を発生させたときの誤動作を防止することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１に係るマイクロコンピュータシステムの構成の例を示すブロック図である。
【００１３】
本実施例のマイクロコンピュータシステム１０００は、命令を実行するＣＰＵ１００と、命令の実行に伴ってＣＰＵ１００により動作が制御される周辺装置２００と、を備えており、リセット要求を受けると、このＣＰＵ１００および周辺装置２００に対するリセット信号を生成する。
【００１４】
このリセット信号を生成するために、マイクロコンピュータシステム１０００は、リセット要求を受けた後にＣＰＵ１００で実行中の命令の終了を検知するとＣＰＵ１００へＷＡＩＴ要求を出力するＷＡＩＴ要求部１と、ＷＡＩＴ要求部１からのＷＡＩＴ要求を受けてＷＡＩＴ状態となったＣＰＵ１００からＷＡＩＴ状態であることを示すＷＡＩＴ信号が出力されたことを検知すると、ＣＰＵ１００および周辺装置２００へリセット信号を出力するとともに、ＷＡＩＴ要求部１へＷＡＩＴ要求の取り下げを指示するリセット信号生成部２と、を有する。
【００１５】
このように、本実施例のマイクロコンピュータシステム１０００では、リセット要求を受けても直ちにリセット信号を発生させることなく、そのときＣＰＵ１００で実行中の命令の終了を待って、ＣＰＵ１００にＷＡＩＴを掛けた上でリセット信号を発生させる。
【００１６】
次に、このリセット信号の発生の動作について、図２〜３の具体的な回路例および図４の波形図を用いて詳しく説明する。
【００１７】
図２は、ＷＡＩＴ要求部１の具体的な回路構成の１つの例である。ここでは、ＣＰＵ１００から出力される命令終了信号は、命令終了時に“０”から“１”に変化するものとしている。
【００１８】
ＷＡＩＴ要求部１は、リセット要求によりセットされるＳＲ型フリップフロップ１１と、ＳＲ型フリップフロップ１１の出力および命令終了信号が入力されて、リセット要求後命令終了検出信号を出力するＡＮＤゲート１２と、ＡＮＤゲート１２から出力されるリセット要求後命令終了検出信号によりセットされて、ＷＡＩＴ要求を出力するＳＲ型フリップフロップ１３と、を有する。
【００１９】
これにより、ＷＡＩＴ要求部１は、リセット要求を受けた後に命令終了信号が入力されると、リセット要求後命令終了検出信号を出力し、続いて、ＣＰＵ１００に対するＷＡＩＴ要求を出力する。
【００２０】
上述のＳＲ型フリップフロップ１１およびＳＲ型フリップフロップ１３は、リセット信号生成部２から出力されるリセット信号によりリセットされる。
【００２１】
図３は、リセット信号生成部２の具体的な回路構成の１つの例である。ここでは、ＣＰＵ１００から出力されるＷＡＩＴ信号は、ＣＰＵ１００がＷＡＩＴ状態になると“１”レベルを出力するものとしている。
【００２２】
リセット信号生成部２は、ＷＡＩＴ要求部１から出力されるリセット要求後命令終了検出信号およびＣＰＵ１００から出力されるＷＡＩＴ信号が入力されて、リセット信号を出力するＮＡＮＤゲート２１を有する。
【００２３】
これにより、ＷＡＩＴ要求部１からリセット要求後命令終了検出信号が出力されているときにＣＰＵ１００からＷＡＩＴ信号が出力されると、リセット信号生成部２はリセット信号を出力する。
【００２４】
図４は、ＷＡＩＴ要求部１およびリセット信号生成部２が図２、図３に示す回路構成であるときの、マイクロコンピュータシステム１０００のリセット要求からリセット信号出力までの動作を示す波形図である。
【００２５】
リセット要求が入力されると、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１１の出力は“１”にセットされる。このとき、ＣＰＵ１００が命令実行中であるとすると、ＣＰＵ１００から出力される命令終了信号が“０”であるため、ＳＲ型フリップフロップ１１の出力が入力されるＡＮＤゲート１２の出力であるリセット要求後命令終了検出信号は“０”のままである。
【００２６】
その後、ＣＰＵ１００の命令実行が終了し、命令終了信号が“１”に変化すると、ＡＮＤゲート１２の両入力が“１”となり、その出力であるリセット要求後命令終了検出信号は“１”に変化する。
【００２７】
このリセット要求後命令終了検出信号の“１”への変化を受けて、ＳＲ型フリップフロップ１３がセットされて、その出力であるＷＡＩＴ要求が“１”に変化する。
【００２８】
ＷＡＩＴ要求が“１”に変化すると、ＣＰＵ１００は、命令実行にＷＡＩＴを掛け、命令実行がＷＡＩＴ状態になると、ＷＡＩＴ信号を“１”に変化させる。
【００２９】
このＷＡＩＴ信号が“１”に変化したときにリセット要求後命令終了検出信号が“１”であるため、リセット信号生成部２のＮＡＮＤゲート２１の出力であるリセット信号は“０”に変化する。リセット信号が“０”に変化すると、ＣＰＵ１００および周辺装置２００ではリセット動作が実行される。
【００３０】
また、リセット信号が“０”に変化すると、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１３はリセットされて、その出力であるＷＡＩＴ要求は“０”に変化する。これにより、ＣＰＵ１００に対するＷＡＩＴ要求は取り下げられる。
【００３１】
このとき、同時に、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１１もリセットされる。
【００３２】
このような本実施例によれば、ＣＰＵの命令の実行中にリセット要求が入力されたときに、マイクロコンピュータシステムは、リセット信号を直ちには出力せず、実行中の命令の実行終了を待ち、さらに、ＣＰＵの命令実行にＷＡＩＴを掛け、ＣＰＵがＷＡＩＴ状態になったときにリセット信号を出力する。そのため、例えば、周辺装置へのデータ書き込み命令の実行途中でリセット要求があっても、そのデータ書き込み命令の終了まではリセット信号が出力されず、データの書き込みがその最後まで正しく実行される。すなわち、命令実行中にリセット要求を受けたときにマイクロコンピュータシステムが誤動作することを防止することができる。
【実施例２】
【００３３】
図５は、本発明の実施例２に係るマイクロコンピュータシステムの構成の例を示すブロック図である。
【００３４】
本実施例のマイクロコンピュータシステム２０００も、実施例１と同様、命令を実行するＣＰＵ１００と、命令の実行に伴ってＣＰＵ１００により動作が制御される周辺装置２００と、を備えている。本実施例も実施例１と同様、リセット要求を受けると、このＣＰＵ１００および周辺装置２００に対するリセット信号を生成する。そのほかに、本実施例のマイクロコンピュータシステム２０００では、ＣＰＵ１００および周辺装置２００へクロック信号を供給するクロック生成部３を有する。
【００３５】
本実施例のマイクロコンピュータシステム２０００は、ＣＰＵ１００および周辺装置２００へクロック信号を供給するクロック生成部３と、リセット要求を受けた後にＣＰＵ１００で実行中の命令の終了を検知するとＣＰＵ１００へＷＡＩＴ要求を出力するＷＡＩＴ要求部１と、ＷＡＩＴ要求部１からのＷＡＩＴ要求を受けてＷＡＩＴ状態となったＣＰＵ１００からＷＡＩＴ状態であることを示すＷＡＩＴ信号が出力されたことを検知すると、クロック生成部３へクロック信号の停止を指示するクロック停止信号を出力するクロック制御部４と、クロック停止信号の出力後にＣＰＵ１００および周辺装置２００へリセット信号を出力するとともに、ＷＡＩＴ要求部１へＷＡＩＴ要求の取り下げを指示するリセット信号生成部２Ａと、を有する。
【００３６】
ＷＡＩＴ要求部１は、実施例１のＷＡＩＴ要求部１と同一であるので、ここではその詳細な説明を省略する。
【００３７】
クロック生成部３は、通常動作時は、例えば、異なる周波数の複数のクロックの中から要求される動作速度に応じて１つのクロックを選択し、ＣＰＵ１００および周辺装置２００に対するクロック信号として供給する。
【００３８】
一方、リセット信号生成部２Ａからリセット信号が出力されたときは、クロック生成部３は、初期状態用に設定されている周波数のクロックを出力する。すなわち、クロック生成部３は、リセット信号の入力を受けて、出力するクロック信号を通常動作時のクロックから初期状態用クロックに切り替える。このクロックの切り替えの際にスパイク状のパルスが発生することを防止するために、本実施例では、クロック制御部４を設ける。
【００３９】
図６に、クロック制御部４およびリセット信号生成部２Ａの具体的な回路例の１つを示す。
【００４０】
クロック制御部４は、ＷＡＩＴ要求部１から出力されるリセット要求後命令終了検出信号およびＣＰＵ１００から出力されるＷＡＩＴ信号が入力されて、クロック停止信号を出力するＮＡＮＤゲート４１を有する。
【００４１】
これにより、ＷＡＩＴ要求部１からリセット要求後命令終了検出信号が出力されているときにＣＰＵ１００からＷＡＩＴ信号が出力されると、クロック制御部４はクロック停止信号を出力する。
【００４２】
リセット信号生成部２Ａは、クロック制御部４から出力されたクロック停止信号を遅延させてリセット信号を出力する遅延回路２３を有する。
【００４３】
これにより、クロック停止信号が出力された後にリセット信号が出力される。
【００４４】
図７は、ＷＡＩＴ要求部１が図２に示す回路構成であり、クロック制御部４およびリセット信号生成部２Ａが図６に示す回路構成であるときの、マイクロコンピュータシステム２０００のリセット要求からリセット信号出力までの動作を示す波形図である。
【００４５】
リセット要求が入力されると、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１１の出力は“１”にセットされる。このとき、ＣＰＵ１００が命令実行中であるとすると、ＣＰＵ１００から出力される命令終了信号が“０”であるため、ＳＲ型フリップフロップ１１の出力が入力されるＡＮＤゲート１２の出力であるリセット要求後命令終了検出信号は“０”のままである。
【００４６】
その後、ＣＰＵ１００の命令実行が終了し、命令終了信号が“１”に変化すると、ＡＮＤゲート１２の両入力が“１”となり、その出力であるリセット要求後命令終了検出信号は“１”に変化する。
【００４７】
このリセット要求後命令終了検出信号の“１”への変化を受けて、ＳＲ型フリップフロップ１３がセットされて、その出力であるＷＡＩＴ要求が“１”に変化する。
【００４８】
ＷＡＩＴ要求が“１”に変化すると、ＣＰＵ１００は、命令実行にＷＡＩＴを掛け、命令実行がＷＡＩＴ状態になると、ＷＡＩＴ信号を“１”に変化させる。
【００４９】
このＷＡＩＴ信号が“１”に変化したときにリセット要求後命令終了検出信号が“１”であるため、クロック制御部４のＮＡＮＤゲート４１の出力であるクロック停止信号が“０”に変化する。
【００５０】
このクロック停止信号の“０”への変化は、リセット信号生成部２Ａの遅延回路２３での遅延を受け、遅延回路２３の遅延時間後に、リセット信号の“０”への変化として現れる。
【００５１】
リセット信号が“０”に変化すると、ＣＰＵ１００および周辺装置２００ではリセット動作が実行される。
【００５２】
また、リセット信号が“０”に変化すると、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１３はリセットされて、その出力であるＷＡＩＴ要求は“０”に変化する。これにより、ＣＰＵ１００に対するＷＡＩＴ要求は取り下げられる。
【００５３】
このとき、同時に、ＷＡＩＴ要求部１のＳＲ型フリップフロップ１１もリセットされる。
【００５４】
図８に、クロック生成部３の具体的な回路例の１つを示す。
【００５５】
クロック生成部３は、２つのクロックＣＫ０、ＣＫ１から１つを選択するセレクタ３１と、セレクタ３１の選択信号を出力するＤ型フリップフロップ３２と、セレクタ３１の出力、およびクロック制御部４から出力されるクロック停止信号が入力されるＡＮＤゲート３３と、を有する。
【００５６】
ここで、セレクタ３１へ入力されるクロックのうち、クロックＣＫ０は初期状態用のクロックであり、選択信号に“０”が入力されたときに、このクロックＣＫ０が選択されるものする。
【００５７】
Ｄ型フリップフロップ３２は、クロック切り替え信号の立ち上りで、クロック選択信号を読み込んで、セレクタ３１の選択信号として出力する。また、Ｄ型フリップフロップ３２には、リセット信号生成部２Ａから出力されるリセット信号が入力されるリセット端子があり、リセット信号が“０”のときにリセットされて、出力が“０”になる。
【００５８】
ＡＮＤゲート３３は、クロック制御部４から出力されるクロック停止信号が“０”のときにセレクタ３１の出力を阻止し、出力のクロック信号を“０”にする。
【００５９】
図９に、クロック停止信号が出力されたときのクロック生成部３の動作の様子を波形図で示す。
【００６０】
いま、Ｄ型フリップフロップ３２がクロック選択信号の“１”を読み込んでセレクタ３１がクロックＣＫ１を選択し、ＡＮＤゲート３３がこのクロックＣＫ１をクロック信号として出力しているときに、クロック制御部４からクロック停止信号が出力されると、ＡＮＤゲート３３の出力が“０”になり、クロック信号は停止状態になる。
【００６１】
その後、クロック停止信号は遅延回路２３により遅延され、リセット信号生成部２Ａからリセット信号として出力される。
【００６２】
このリセット信号の入力によりＤ型フリップフロップ３２がリセット状態になり、セレクタ３１は、初期状態用のクロックであるクロックＣＫ０を出力する。
【００６３】
その後、クロック停止信号が“１”に変化すると、このクロックＣＫ０がクロック信号としてＡＮＤゲート３３から出力されるようになる。
【００６４】
このような本実施例によれば、リセット要求を受けると、リセット信号を発生させる前にクロック停止信号を発生させてクロック信号を停止させるので、クロック信号との位相差を考慮することなくリセット信号を発生させることができる。これにより、リセット要求を受けたときのクロック信号の位相に起因する誤動作を防止することができる。
【００６５】
なお、上述の各実施例のマイクロコンピュータシステムは、回路基板上に個別の部品を実装して組み立ててもよいし、１チップの半導体装置に集積して１チップマイクロコンピュータを形成するようにしてもよい。１チップマイクロコンピュータにすると、回路基板の実装面積を少なくすることができる。
【００６６】
また、上述の各実施例の説明で用いた具体的な回路は、１つの例であり、ここに示した回路に限定されるものではない。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施例１に係るマイクロコンピュータシステムの構成の例を示すブロック図。
【図２】実施例１のＷＡＩＴ要求部の構成の例を示す回路図。
【図３】実施例１のリセット信号生成部の構成の例を示す回路図。
【図４】本発明の実施例１に係るマイクロコンピュータシステムにおけるリセット信号生成動作の様子を示す波形図。
【図５】本発明の実施例２に係るマイクロコンピュータシステムの構成の例を示すブロック図。
【図６】実施例２のクロック制御部およびリセット信号生成部の構成の例を示す回路図。
【図７】本発明の実施例２に係るマイクロコンピュータシステムにおけるリセット信号生成動作の様子を示す波形図。
【図８】実施例２で用いるクロック生成部の構成の例を示す回路図。
【図９】実施例２で用いるクロック生成部の動作の様子を示す波形図。
【符号の説明】
【００６８】
１  ＷＡＩＴ要求部
２、２Ａ  リセット信号生成部
３  クロック生成部
４  クロック制御部
１１、１３  ＳＲ型フリップフロップ
１２、３３  ＡＮＤゲート
２１、４１  ＮＡＮＤゲート
２３  遅延回路
３１  セレクタ
３２  Ｄ型フリップフロップ
１００  ＣＰＵ
２００  周辺装置
１０００、２０００  マイクロコンピュータシステム
【図１】
2008299451.tif 000003
【図２】
2008299451.tif 000004
【図３】
2008299451.tif 000005
【図４】
2008299451.tif 000006
【図５】
2008299451.tif 000007
【図６】
2008299451.tif 000008
【図７】
2008299451.tif 000009
【図８】
2008299451.tif 000010
【図９】
2008299451.tif 000011