(57)【要約】【課題】メモリに対するクロック信号を動的に変更して正常なタイミングを維持する。【解決手段】クロック信号ＣＬＫの周波数を下げるような分周要求信号ＧＲＥＱが与えられると、ＧＲＥＱ＞ＧＥＡＲとなって比較結果信号ＣＰ１，ＣＰ２は共に“Ｌ”となり、セレクタ３４では、分周設定信号ＧＥＡＲが引き続いて選択される。クロック供給部５０でクロック信号ＣＬＫの切り替えが完了して分周設定信号ＧＥＡＲ＝ＧＲＥＱとなると、テーブル３５から読み出されるアクセスサイクル数ＡＣＣが減少する。これにより、アクセス制御部３７からアクセスサイクル数ＡＣＣのクロック信号ＣＬＫに応じたチップイネーブル信号ＣＥが出力される。クロック信号ＣＬＫの周波数を上げるような分周要求信号ＧＲＥＱが与えられたときには、セレクタ３４では直ちに分周要求信号ＧＲＥＱが選択され、テーブル３５から読み出されるアクセスサイクル数ＡＣＣが直ちに増加する。【選択図】図１
2007233525.tif 000002
【特許請求の範囲】
【請求項１】
メモリに格納されたプログラムに基づいて全体の処理制御を行う中央制御部と、前記中央制御部から与えられる分周要求信号で指定される分周値に従って基準クロック信号を分周して内部クロックを生成すると共に、該生成された内部クロックの分周値に応じた分周設定信号を出力するクロック供給部と、前記中央制御部から前記メモリに対するアクセス要求に応じて該メモリの読み出し及び書き込みを制御するメモリ制御部とを有するマイクロコントローラにおいて、
前記メモリ制御部は、
前記分周要求信号で指定される分周値と前記クロック供給部から出力されている前記分周設定信号の分周値を比較し、その比較結果に応じて該分周要求信号または該分周設定信号を指定分周値として選択的に出力する分周値選択手段と、
前記指定分周値に基づいて前記メモリに対するアクセスサイクル数を出力するアクセスサイクル設定手段と、
前記中央制御部から前記メモリに対するアクセス要求が与えられたときに、前記内部クロックをカウントして前記アクセスサイクル数に応じたパルス幅の動作許可信号を生成して該メモリに与えるアクセス制御手段とを、
備えたことを特徴とするマイクロコントローラ。
【請求項２】
前記メモリはその記憶内容を維持するために周期的にリフレッシュ動作を必要とするものであり、前記メモリ制御部は、更に、
前記指定分周値に基づいて前記メモリに対するリフレッシュサイクル数を出力するリフレッシュサイクル設定手段と、
前記内部クロックをカウントし、前記リフレッシュサイクル数に達する度にリフレッシュコマンドを生成して前記メモリに与えるリフレッシュ制御手段とを、
有することを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記メモリ制御部は、
アクセスサイクルの初期値が設定される初期値設定レジスタと、
前記初期値設定レジスタの値をシフト信号に従ってシフトするシフタと、
前記シフタの値を保持してアクセスサイクル設定値として出力するアクセスサイクルレジスタと、
前記分周要求信号で指定される分周値と前記クロック供給部から出力されている前記分周設定信号の分周値を比較し、その比較結果に応じて該分周要求信号または該分周設定信号を前記シフト信号として選択的に出力するシフト値選択手段とを、
有することを特徴とする請求項１記載のマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラ、特にクロック分周を動的に変更できるマイクロコントローラのメモリ制御に関するものである。
【背景技術】
【０００２】
【特許文献１】特開２００２−２６９０２６号公報
【０００３】
図２は、上記特許文献１に記載された従来のマイクロコンピュータの構成図である。
このマイクロコンピュータは、複数の周辺入出力回路からの割り込み処理を調停し、割り込み処理の内容に応じたクロック変更と、このクロックに合わせて周辺入出力回路及び周辺メモリに対するアクセスサイクル数の変更を行うことを目的としたものである。
【０００４】
このマイクロコンピュータは、中央処理部（以下、「ＣＰＵ」という）１と、このＣＰＵ１への割り込み処理を制御する割込コントローラ２と、この割込コントローラ２へ割込要求ＩＲＱ１〜ＩＲＱ３を出力可能な周辺入出力回路３１〜３３と、ＣＰＵ１へクロック信号ＣＬＫを供給するクロック供給回路４と、ＣＰＵ１と外部バスＥＸＢＵＳとの間に設けられたバス制御回路５と、周辺メモリ６を備えている。割込コントローラ２には、割込要求決定回路７と割込インタフェース８が設けられている。
【０００５】
各周辺入出力回路３ｉ（ｉ＝１〜３）は、割込要因が発生したときに、割込要求ＩＲＱｉと共に割込優先度信号ＰＲＩｉを、割込要求決定回路７に出力する機能を有している。一方、割込要求決定回路７は、周辺入出力回路３１〜３３から与えられる割込要求ＩＲＱｉと割込優先度信号ＰＲＩｉに基づいて、どの周辺入出力回路からの割り込みを受け付けるかの調停を行い、割込インタフェース８へ割込ベクタ番号ＳＶＥＣを出力するものである。また、割込要求決定回路７は、クロック供給回路４とバス制御回路５に対して、調停によって決定された優先度決定信号ＳＩＧを出力するようになっている。なお、割込要求が発生していないときは、優先度決定信号ＳＩＧによって通常状態が表示されるようになっている。
【０００６】
クロック供給回路４は、優先度決定信号ＳＩＧによって通常状態が表示されているときには、ＣＰＵ１から指定された速度のクロックを選択し、優先度決定信号ＳＩＧによって割込状態が表示されているときには、この優先度決定信号ＳＩＧで指定される速度のクロックを選択して、クロック信号ＣＬＫとして出力するものである。通常、優先度が高くなるに従って、速いクロックが選択されるようになっている。
【０００７】
バス制御回路５は、優先度決定信号ＳＩＧの値に対応したアクセスサイクル数を設定する複数のバスサイクルレジスタと、この優先度決定信号ＳＩＧに従ってバスサイクルレジスタを選択するセレクタを有し、その選択されたアクセスサイクル数に従って外部バスＥＸＢＵＳを制御するものである。
【０００８】
このマイクロコンピュータでは、プログラムの初期化段階で、ＣＰＵ１は、割込コントローラ２、周辺入出力回路３１〜３３、クロック供給回路４及びバス制御回路５内の所定のレジスタに初期設定を行う。その後、マイクロコンピュータは、通常の動作状態に移行する。
【０００９】
次に、周辺入出力回路３ｉに割込要因が発生すると、この周辺入出力回路３ｉから割込要求ＩＲＱｉと割込優先度信号ＰＲＩｉが出力される。割込要求決定回路７は、周辺入出力回路３ｉから与えられた割込要求ＩＲＱｉと割込優先度信号ＰＲＩｉに基づいて、どの周辺入出力回路からの割り込みを受け付けるかの調停を行い、割込インタフェース８へ割込ベクタ番号ＳＶＥＣを出力すると共に、クロック供給回路４とバス制御回路５に対して優先度決定信号ＳＩＧを出力する。
【００１０】
割込インタフェース８は、割込通知信号ＩＮＴによって割込ベクタ番号ＳＶＥＣをＣＰＵ１に通知する。一方、クロック供給回路４は、優先度決定信号ＳＩＧに基づいてクロックを切り替えて、クロック信号ＣＬＫとして出力する。また、バス制御回路５は、優先度決定信号ＳＩＧに基づいてアクセスサイクル数を切り替えて、外部バスＥＸＢＵＳを制御する。これにより、ＣＰＵ１は、割込要求を行った周辺入出力回路３ｉとの間で、優先度決定信号ＳＩＧに基づいて設定されたクロック信号とアクセスサイクル数に従って割込処理を行う。
【００１１】
周辺入出力回路３ｉとの間で割込処理が終了した段階で、ＣＰＵ１は、割込状態信号ＩＮＴＡを介して割込コントローラ２に割込処理が終わったことを通知する。割込コントローラ２は、他の割込要求が存在していれば、その割込要求に対して上記と同様の処理を行う。そして、すべての割込要求が処理された時点で、通常の動作状態に戻る。
【００１２】
このように、図２のマイクロコンピュータは、割込コントローラ２で割り込みの優先順位をハードウエアで判定して優先度決定信号ＳＩＧを出力し、クロック供給回路４とバス制御回路５は、この優先度決定信号ＳＩＧに従ってクロックとアクセスサイクル数を選択するようにしている。これにより、ソフトウエアで処理するものに比べて、割り込み応答性が向上するとされている。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、前記マイクロコンピュータは、周辺入出力回路に対するクロック信号の制御を目的としたもので、メモリに対するクロック信号の制御に関する対応はなされていなかった。即ち、メモリのアクセス速度がクロックの速度に応じて変化し、異常に速くなったり遅くなったりして、正常な読み書きができなくなるおそれがあった。本発明は、メモリに対してクロック信号を動的に変更することが可能なマイクロコントローラを提供すること目的としている。
【課題を解決するための手段】
【００１４】
本発明は、メモリに格納されたプログラムに基づいて全体の処理制御を行うＣＰＵと、前記ＣＰＵから与えられる分周要求信号で指定される分周値に従って基準クロック信号を分周して内部クロックを生成すると共に、該生成された内部クロックの分周値に応じた分周設定信号を出力するクロック供給部と、前記ＣＰＵから前記メモリに対するアクセス要求に応じて該メモリの読み出し及び書き込みを制御するメモリ制御部とを有するマイクロコントローラにおいて、メモリ制御部を次のように構成したことを特徴としている。
【００１５】
即ち、このメモリ制御部は、分周要求信号で指定される分周値とクロック供給部から出力されている分周設定信号の分周値を比較し、その比較結果に応じて該分周要求信号または該分周設定信号を指定分周値として選択的に出力する分周値選択手段と、指定分周値に基づいてメモリに対するアクセスサイクル数を出力するアクセスサイクル設定手段と、ＣＰＵからメモリに対するアクセス要求が与えられたときに、内部クロックをカウントしてアクセスサイクル数に応じたパルス幅の動作許可信号を生成して該メモリに与えるアクセス制御手段とを備えている。
【発明の効果】
【００１６】
本発明では、ＣＰＵから与えられる分周要求信号で指定される分周値が、現在のクロック供給部から出力されている分周設定信号の分周値よりも小さくなった場合、即ち、クロック信号の周波数を高くするように切り替えられた場合、その分周要求信号が直ちに分周値選択手段から指定分周値として出力される。これにより、指定分周値に応じてアクセスサイクル設定手段から出力されるアクセスサイクル数が増加される。この時点でＣＰＵからメモリに対するアクセス要求が発生すると、アクセス制御手段によって十分なパルス幅の動作許可信号が生成されてメモリの読み書きが行われる。従って、メモリに対してクロック信号を動的に変更することができるという効果がある。
【発明を実施するための最良の形態】
【００１７】
メモリがダイナミック・ランダムアクセス・メモリ（ＤＲＡＭ）のように周期的にリフレッシュ動作を必要とする場合に、メモリ制御部として、前記分周値選択手段、アクセスサイクル設定手段、及びアクセス制御手段に加えて、指定分周値に基づいてメモリに対するリフレッシュサイクル数を出力するリフレッシュサイクル設定手段と、内部クロックをカウントしてリフレッシュサイクル数に達する度にリフレッシュコマンドを生成してメモリに与えるリフレッシュ制御手段を設ける。
【実施例１】
【００１８】
図１は、本発明の実施例１を示すマイクロプロセッサの構成図である。
このマイクロプロセッサは、プログラムに従って全体の処理制御を行うＣＰＵ１０、プログラムやデータの記憶に使用されるメモリ（例えば、ＤＲＡＭ）２０、このメモリ２０に対する読み書きの制御を行うメモリ制御部３０、ＣＰＵ１０からの指示に基づいて入出力処理を行う周辺入出力部（Ｉ／Ｏ）４０１，４０２、及び内部処理用のクロック信号ＣＬＫを各部に供給するクロック供給部５０を備え、これらのメモリ制御部３０と周辺入出力部４０１，４０２が、内部バス６０を介してＣＰＵ１０に接続された構成となっている。このマイクロプロセッサでは、クロック信号ＣＬＫを低くして低消費電力モードにしたり、或いは動作させる周辺入出力部４０１，４０２の動作速度に応じてクロック信号ＣＬＫの周波数を変更することができるようになっている。
【００１９】
クロック供給部５０は、内部で生成されるか或いは外部から与えられる基準クロック信号を、ＣＰＵ１０から与えられる分周要求信号ＧＲＥＱの指定値に応じて分周し、クロック信号ＣＬＫとして出力するものである。
【００２０】
例えば、基準クロック信号が３３ＭＨｚ（周期３０ｎｓ）の場合、分周要求信号ＧＲＥＱの値が０であれば、分周は行われずクロック信号ＣＬＫの周波数は３３ＭＨｚとなる。分周要求信号ＧＲＥＱの値が１であれば、１／２に分周されてクロック信号ＣＬＫは３３／２ＭＨｚとなる。また、分周要求信号ＧＲＥＱの値が２，３であれば、それぞれ１／４，１／８に分周されてクロック信号ＣＬＫは、それぞれ３３／４ＭＨｚ，３３／８ＭＨｚとなる。
【００２１】
クロック供給部５０では、ＣＰＵ１０から分周要求信号ＧＲＥＱが与えられ、更にこの分周要求信号ＧＲＥＱが変更されたことを示す１サイクル分の変更許可信号ＣＧＥＮが与えられた後、ハザードを生じさせないように、現在出力しているクロック信号ＣＬＫのタイミングに合わせて分周比を変更するように構成されている。そして、クロック供給部５０は、分周比を分周要求信号ＧＲＥＱの指定値に応じて変更した後、この分周要求信号ＧＲＥＱと同じ値の分周設定信号ＧＥＡＲを出力するようになっている。
【００２２】
メモリ制御部３０は、クロック供給部５０から供給されるクロック信号ＣＬＫの周波数が切り替えられた場合にも、所定のアクセスタイミングでメモリ２０に対する読み書きの制御を行うと共に、所定の周期でメモリ２０に対するリフレッシュコマンドを与えるものである。
【００２３】
メモリ制御部３０は、ＣＰＵ１０から出力される分周要求信号ＧＲＥＱとクロック供給部５０から出力される分周設定信号ＧＥＡＲを比較する比較器（ＣＭＰ）３１を有している。比較器３１は、ＧＥＡＲ，ＧＲＥＱの大小関係に従って比較結果信号ＣＰ１，ＣＰ２を出力するもので、ＧＥＡＲ＝ＧＲＥＱのときに比較結果信号ＣＰ１が“Ｈ”となり、ＧＥＡＲ＞ＧＲＥＱのときに比較結果信号ＣＰ２が“Ｈ”となるように構成されている。
【００２４】
比較結果信号ＣＰ１は、ＳＲ型のフリップフロップ（以下、「ＦＦ」という）３２のリセット端子Ｒに与えられ、このＦＦ３２のセット端子ＳにはＣＰＵ１０から出力される変更許可信号ＣＧＥＮが与えられるようになっている。ＦＦ３２の出力端子Ｑは、２入力の論理積ゲート（以下、「ＡＮＤ」という）３３の一方の入力側に接続され、このＡＮＤ３３の他方の入力側には、比較器３１から比較結果信号ＣＰ２が与えられている。ＡＮＤ３３の出力側は、セレクタ３４の制御端子に接続されている。
【００２５】
セレクタ３４は、ＡＮＤ３３から出力される信号Ｓ３３に応じて、分周要求信号ＧＲＥＱまたは分周設定信号ＧＥＡＲを選択して出力するもので、この信号Ｓ３３が“Ｈ”のときに分周要求信号ＧＲＥＱを選択し、“Ｌ”のときに分周設定信号ＧＥＡＲを選択するようになっている。
【００２６】
このように、比較器３１、ＦＦ３２、ＡＮＤ３３及びセレクタ３４は分周値選択手段を構成し、分周要求信号ＧＲＥＱで指定される分周値が、分周設定信号ＧＥＡＲの分周値よりも小さいときには分周要求信号ＧＲＥＱを選択し、この分周要求信号ＧＲＥＱで指定される分周値が、分周設定信号ＧＥＡＲの分周値と同じか大きいときには分周設定信号ＧＥＡＲを選択して指定分周値（Ｓ３３）として出力するようになっている。セレクタ３４の出力側は、例えば小規模なメモリで構成されるテーブル（ＴＢＬ）３５，３６のアドレス端子に接続されている。
【００２７】
テーブル３５は、分周要求信号ＧＲＥＱや分周設定信号ＧＥＡＲとして与えられる分周の指定値に対応して、メモリ２０のアクセス用のサイクル数を予め設定したものである。例えば、メモリ２０の最小アクセスタイムが１２０ｎｓの場合、クロック信号ＣＬＫの周波数が３３ＭＨｚ（即ち、分周指定値＝０）のときには、４クロック毎、即ち３０ｎｓ×４＝１２０ｎｓ毎にアクセスを行うために、テーブル３５からアクセスサイクル数ＡＣＣ＝４が読み出されるようになっている。また、クロック信号ＣＬＫの周波数が３３／２ＭＨｚ，３３／４ＭＨｚ（即ち、分周指定値＝１，２）のときには、アクセスサイクル数ＡＣＣとしてそれぞれ２，１が読み出され、２クロックまたは１クロック毎にアクセスが行われて、クロック信号ＣＬＫの周波数に関わらず、所定のアクセスタイム（１２０ｎｓ）が確保されるようになっている。なお本例では、クロック信号ＣＬＫの周波数が３３／８ＭＨｚ（即ち、分周指定値＝３）のときには、アクセスサイクル数ＡＣＣとして１が読み出されるように設定されている。テーブル３５から読み出されるアクセスサイクル数ＡＣＣは、アクセス制御部３７に与えられている。
【００２８】
アクセス制御部３７は、ＣＰＵ１０から内部バス６０を介してメモリアクセス要求ＭＲＥＱが与えられたときに、テーブル３５から与えられるアクセスサイクル数ＡＣＣに基づいてクロック信号ＣＬＫをカウントし、そのサイクル数に応じたパルス幅のチップイネーブル信号ＣＥを生成してメモリ２０に与えるものである。
【００２９】
一方、テーブル３６は、分周要求信号ＧＲＥＱや分周設定信号ＧＥＡＲとして与えられる分周の指定値に対応して、メモリ２０のリフレッシュ用のサイクル数を予め設定したものである。即ち、メモリ２０の最大リフレッシュ間隔と、クロック信号ＣＬＫの周波数（即ち、分周指定値）に応じて、所定の間隔でリフレッシュ動作を行うためのサイクル数を設定したものである。テーブル３６から読み出されるリフレッシュサイクル数ＲＦＣは、リフレッシュ制御部３８に与えられている。
【００３０】
リフレッシュ制御部３８は、クロック信号ＣＬＫをカウントして、このカウント値がテーブル３６から与えられるリフレッシュサイクル数ＲＦＣに達する度に、メモリ２０に対してリフレッシュコマンドＲＥＦを与えるものである。
【００３１】
図３（ａ），（ｂ）は、図１におけるクロック周波数切り替え時の動作を示す信号波形図で、同図（ａ）は分周数を１から４に切り替えた場合、及び同図（ｂ）は分周数を４から１に切り替えた場合を示している。以下、これらの図３（ａ），（ｂ）を参照しつつ、図１の動作を説明する。
【００３２】
（１）  分周数を１から４に切り替えた場合の動作
図３（ａ）に示すように、切り替え前は分周要求信号ＧＲＥＱと分周設定信号ＧＥＡＲの値は０で等しく、比較結果信号ＣＰ１は“Ｈ”、比較結果信号ＣＰ２は“Ｌ”である。従って、セレクタ３４では分周設定信号ＧＥＡＲが選択され、テーブル３５からアクセスサイクル数ＡＣＣとして４が読み出されてアクセス制御部３７に与えられている。これにより、アクセス制御部３７では、メモリアクセス要求ＭＲＥＱが与えられると、クロック供給部５０から供給される３３ＭＨｚのクロック信号ＣＬＫの４サイクル分（即ち１２０ｎｓ）、チップイネーブル信号ＣＥを出力してメモリ２０に対するアクセスを行う。
【００３３】
時刻ｔ１において、分周要求信号ＧＲＥＱが０から２に変更されると、比較結果信号ＣＰ１は“Ｌ”となるが、比較結果信号ＣＰ２は“Ｌ”のままで、セレクタ３４では、引き続き分周設定信号ＧＥＡＲが選択される。
【００３４】
時刻ｔ２のクロック信号ＣＬＫの立ち上がりに同期して、１サイクルだけ変更許可信号ＣＧＥＮが“Ｈ”となる。これにより、ＦＦ３２がセットされて信号Ｓ３２は“Ｈ”となるが、比較結果信号ＣＰ２は“Ｌ”となっているので、セレクタ３４では、引き続き分周設定信号ＧＥＡＲが選択される。
【００３５】
一方、クロック供給部５０では変更許可信号ＣＧＥＮによってクロック信号ＣＬＫの切り替え動作が開始され、ハザードを生じさせないように、現在出力しているクロック信号ＣＬＫのタイミングに合わせて切り替えの準備が進められる。
【００３６】
時刻ｔ３におけるクロック信号ＣＬＫの立ち上がりに同期して、クロック信号ＣＬＫは４分周されて３３／４ＭＨｚに切り替えられ、これと同時に、分周設定信号ＧＥＡＲの値が０から２に変更される。これにより、比較結果信号ＣＰ１は“Ｈ”となり、信号Ｓ３２は“Ｌ”となるが、信号Ｓ３３は“Ｌ”のままで変化しない。一方、テーブル３５から読み出されるアクセスサイクル数ＡＣＣは１となり、アクセス制御部３７に与えられる。従って、アクセス制御部３７では、メモリアクセス要求ＭＲＥＱが与えられると、クロック供給部５０から供給される３３／４ＭＨｚのクロック信号ＣＬＫの１サイクル分（即ち１２０ｎｓ）、チップイネーブル信号ＣＥを出力してメモリ２０に対するアクセスを行うことになる。
【００３７】
（２）  分周数を４から１に切り替えた場合の動作
図３（ｂ）に示すように、切り替え前は分周要求信号ＧＲＥＱと分周設定信号ＧＥＡＲの値は２で等しく、比較結果信号ＣＰ１は“Ｈ”、比較結果信号ＣＰ２は“Ｌ”である。従って、セレクタ３４では分周設定信号ＧＥＡＲが選択され、テーブル３５からアクセスサイクル数ＡＣＣとして１が読み出されてアクセス制御部３７に与えられている。これにより、アクセス制御部３７では、メモリアクセス要求ＭＲＥＱが与えられると、クロック供給部５０から供給される３３／４ＭＨｚのクロック信号ＣＬＫの１サイクル分（即ち１２０ｎｓ）、チップイネーブル信号ＣＥを出力してメモリ２０に対するアクセスを行う。
【００３８】
時刻Ｔ１において、分周要求信号ＧＲＥＱが２から０に変更されると、比較結果信号ＣＰ１は“Ｌ”となり、比較結果信号ＣＰ２は“Ｈ”となる。この時点では、信号Ｓ３２は“Ｌ”であるので、セレクタ３４では、引き続き分周設定信号ＧＥＡＲが選択される。
【００３９】
時刻Ｔ２のクロック信号ＣＬＫの立ち上がりに同期して、１サイクルだけ変更許可信号ＣＧＥＮが“Ｈ”となる。これにより、ＦＦ３２がセットされて信号Ｓ３２は“Ｈ”となり、ＡＮＤ３３から出力される信号Ｓ３３は“Ｈ”となって、セレクタ３４では、分周要求信号ＧＲＥＱが選択される。従って、信号Ｓ３４の値は分周要求信号ＧＲＥＱで指定される０となる。信号Ｓ３４はテーブル３５に与えられ、このテーブル３５から読み出されるアクセスサイクル数ＡＣＣは４となり、アクセス制御部３７に与えられる。従って、アクセス制御部３７では、もしもこの時にメモリアクセス要求ＭＲＥＱが与えられると、クロック供給部５０から供給される３３／４ＭＨｚのクロック信号ＣＬＫの４サイクル分（即ち４８０ｎｓ）、チップイネーブル信号ＣＥを出力してメモリ２０に対するアクセスを行うことになる。
【００４０】
一方、クロック供給部５０では変更許可信号ＣＧＥＮによってクロック信号ＣＬＫの切り替え動作が開始され、ハザードを生じさせないように、現在出力しているクロック信号ＣＬＫのタイミングに合わせて切り替えの準備が進められる。
【００４１】
時刻Ｔ３におけるクロック信号ＣＬＫの立ち上がりに同期して、クロック信号ＣＬＫは１分周（分周されていない）の３３ＭＨｚに切り替えられ、これと同時に、分周設定信号ＧＥＡＲの値が２から０に変更される。これにより、比較結果信号ＣＰ１，ＣＰ２はそれぞれ“Ｈ”，“Ｌ”となって信号Ｓ３２，Ｓ３３は“Ｌ”となり、セレクタ３４は分周設定信号ＧＥＡＲ側に切り替えられる。但し、この時点では、設定信号ＧＥＡＲと分周要求信号ＧＲＥＱの値は同じであるので、アクセスサイクル数ＡＣＣの値は変化しない。従って、アクセス制御部３７では、メモリアクセス要求ＭＲＥＱが与えられると、クロック供給部５０から供給される３３ＭＨｚのクロック信号ＣＬＫの４サイクル分（即ち１２０ｎｓ）、チップイネーブル信号ＣＥを出力してメモリ２０に対するアクセスを行うことになる。
【００４２】
なお、上記（１），（２）では、テーブル３５から読み出されるアクセスサイクル数ＡＣＣについて説明したが、同様に、テーブル３６から読み出されるリフレッシュサイクル数ＲＦＣに応じた周期で、リフレッシュ制御部３８からリフレッシュコマンドＲＥＦが生成され、メモリ２０に与えられる。
【００４３】
以上のように、この実施例１のマイクロプロセッサは、クロック信号ＣＬＫの周波数が低くなるように切り替えられる時には、切り替えが完了した時点でアクセスサイクル数ＡＣＣとリフレッシュサイクル数ＲＦＣを切り替え後の周波数に対応した値に変更し、クロック信号ＣＬＫの周波数が高くなるように切り替えられる時には、切り替えが行われる前にこれらのアクセスサイクル数ＡＣＣとリフレッシュサイクル数ＲＦＣを切り替え後の周波数に対応した値に変更するメモリ制御部３０を有している。これにより、分周要求信号ＧＲＥＱによってクロック信号ＣＬＫの周波数が変化しても、メモリ２０は常に適切なタイミングでアクセスされ、かつ、ソフトウエアによってアクセスサイクル数ＡＣＣやリフレッシュサイクル数ＲＦＣの値を変更する場合に比べて切り替え速度が速くなるという利点がある。
【実施例２】
【００４４】
図４は、本発明の実施例２を示すアクセスサイクル自動変更回路の構成図である。
このアクセスサイクル自動変更回路７０は、メモリ制御部３０に代えて用いられるもので、図４（ａ）に示すように、イネーブル生成回路７１、判定回路７２、２入力のセレクタ７３、アクセスサイクル初期設定レジスタ７４、シフタ７５、アクセスサイクルレジスタ７６で構成されている。
【００４５】
イネーブル生成回路７１は、変更許可信号ＣＧＥＮが“１”になってから分周設定信号ＧＥＡＲの変更が完了するまでの間、出力信号ＥＮを“１”にする回路である。判定回路７２は、図４（ｂ）に示す真理値表に従い、出力信号ＥＮが“１”になったときに、分周設定信号ＧＥＡＲと分周要求信号ＧＲＥＱの値を比較し、分周変更が遅いクロックから速いクロックへの切り替えと判定した場合に“１”を出力し、速いクロックから遅いクロックへの切り替えと判定した場合は、“０”を出力する回路である。
【００４６】
セレクタ７３は、分周設定信号ＧＥＡＲ及び分周要求信号ＧＲＥＱが接続され、選択信号ＳＥＬが“１”のときに分周要求信号ＧＲＥＱを選択し、選択信号ＳＥＬが“０”の時は、分周設定信号ＧＥＡＲを選択してシフト信号ＳＦＴとして出力する。シフタ７５は、図４（ｃ）に示す真理値表に従い、セレクタ７３から出力されるシフト信号ＳＦＴの値により、アクセスサイクル初期設定レジスタ７４の値を右シフトして、アクセスサイクルレジスタ７６の値を更新するものである。なお、アクセスサイクル初期設定レジスタ７４は、１分周時のアクセスサイクルを事前に設定しておくレジスタで、アクセスサイクルレジスタ７６は、メモリアクセス時のアクセスサイクルを決めるものである。
【００４７】
次に動作の一例を説明する。
事前にアクセスサイクル初期設定レジスタ７４には１分周時の値“４”が設定されている。分周設定信号ＧＥＡＲ、分周要求信号ＧＲＥＱ共に１分周になっており、アクセスサイクルレジスタ７６には、アクセスサイクル初期設定レジスタ７４と同じ“４”が設定されている。
【００４８】
ＣＰＵ１０から分周変更（１分周から４分周への変更）の要求が与えられると、このＣＰＵ１０から分周要求信号ＧＲＥＱが変更されたこと示す変更許可信号ＣＧＥＮが１サイクル間“１”になる。これにより、イネーブル生成回路７１の出力信号ＥＮが“１”になり、判定回路７２の分周設定信号ＧＥＡＲと分周要求信号ＧＲＥＱの値より選択信号ＳＥＬが“０”になる。選択信号ＳＥＬが“０”であるので、シフト信号ＳＦＴの値は分周設定信号ＧＥＡＲである。
【００４９】
クロック供給部５０が分周を変更し、分周設定信号ＧＥＡＲの値が“２”を示すと、シフト信号ＳＦＴの値も“２”になり、シフタ７５により、アクセスサイクルレジスタ７６の値は、アクセスサイクル初期設定レジスタ７４の値から２ビット右シフトされた値“１”に変更される。ＧＥＡＲが変更されたことにより、イネーブル生成回路７１は、出力信号ＥＮを“０”にする。
【００５０】
以上のように、この実施例２のアクセスサイクル自動変更回路７０は、分周要求に応じて自動的にメモリアクセスを調整するので、実施例１と同様の利点がある。
【００５１】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
【００５２】
メモリ２０としてＤＲＡＭを使用した場合について説明したが、ＳＲＡＭ等のリフレッシュ動作を必要としないメモリの場合は、テーブル３６とリフレッシュ制御部３８は不要である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例を示すマイクロプロセッサの構成図である。
【図２】従来のマイクロコンピュータの構成図である。
【図３】図１におけるクロック周波数切り替え時の動作を示す信号波形図である。
【図４】本発明の実施例２を示すアクセスサイクル自動変更回路の構成図である。
【符号の説明】
【００５４】
１０    ＣＰＵ（中央処理部）
２０    メモリ
３０    メモリ制御部
３１    比較器
３２    ＦＦ（フリップフロップ）
３３    ＡＮＤ（論理積ゲート）
３４    セレクタ
３５，３６    テーブル
３７    アクセス制御部
３８    リフレッシュ制御部
４０    周辺入出力部
５０    クロック供給部
６０    内部バス
７０    アクセスサイクル自動変更回路
【図１】
2007233525.tif 000003
【図２】
2007233525.tif 000004
【図３】
2007233525.tif 000005
【図４】
2007233525.tif 000006