Nothing Special   »   [go: up one dir, main page]

JP2004094930A - Semiconductor integrated circuit - Google Patents

Semiconductor integrated circuit Download PDF

Info

Publication number
JP2004094930A
JP2004094930A JP2003205675A JP2003205675A JP2004094930A JP 2004094930 A JP2004094930 A JP 2004094930A JP 2003205675 A JP2003205675 A JP 2003205675A JP 2003205675 A JP2003205675 A JP 2003205675A JP 2004094930 A JP2004094930 A JP 2004094930A
Authority
JP
Japan
Prior art keywords
clock signal
signal
clock
circuit
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003205675A
Other languages
Japanese (ja)
Inventor
Naomiki Mitsuishi
三ッ石 直幹
Kenichi Ishibashi
石橋 謙一
Koichi Hashimura
橋村 浩一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003205675A priority Critical patent/JP2004094930A/en
Publication of JP2004094930A publication Critical patent/JP2004094930A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Logic Circuits (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a semiconductor integrated circuit capable of reducing time until an intended process is executed when a predetermined event occurs. <P>SOLUTION: This semiconductor integrated circuit has: first function blocks (1, 2); an event detection circuit (4) for detecting occurrence of an event for which an exceptional process should be requested to the first function blocks and for requesting the exceptional process to the corresponding first function blocks; second function blocks (7, 8, 9, 10) for generating an event for which the exceptional process should be requested to the first function blocks; and selection control means (131, 132) for making the frequency of a first system clock signal (ϕB) fed to the first function blocks and the event detection circuit variable and selectable and for forcibly bringing the selection state of the frequency into a predetermined state based on the detection of a predetermined event by the detection circuit (4). Each selection control means has a clock control circuit (13). <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、クロック信号に同期動作される複数個の機能ブロックを備えた半導体集積回路に係り、低消費電力を必要とするシングルチップマイクロコンピュータに利用して、特に有効な技術に関するものである。
【0002】
【従来の技術】
平成6年3月に株式会社日立製作所から発行された『H8/3048シリーズハードウェアマニュアル』のP607乃至P632に記載されているように、シングルチップマイクロコンピュータの各機能ブロックは、システムクロック信号φを基準として動作する。かかるシステムクロック信号φは、シングルチップマイクロコンピュータに設けられたところの外部クロック入力端子(EXTAL)に入力される外部クロック、又は、マイクロコンピュータに設けられたところの発振端子(EXTAL、XTAL)に接続される水晶又はセラミックなどの振動子によって生成される原発振から生成される。また、マイクロコンピュータ内の各機能ブロックに固有のクロック信号を供給する例が特開平3−286213号に記載されている。また、特開平5−81447号公報には、CPU(中央処理装置)とその周辺回路を含むマイクロコンピュータにおいて夫々の周辺回路に、クロック信号の分周器とクロック選択手段を配置した技術が開示されている。特開平3−58207には発振回路の出力を分周回路で分周し、分周されたクロック信号から一つを選択してシステムクロック信号とする技術が開示されている。
【0003】
【発明が解決しようとする課題】
本発明者はシングルチップマイクロコンピュータのような半導体集積回路のシステムクロック信号について以下の検討を行った。
【0004】
システムクロック信号φとしては、原発振と同等の周波数とするか、或いは所謂ギア機能すなわち原発振を分周して得た周波数とするかを選択することができる。そのようなシステムクロック信号はCPU(中央処理装置)やその周辺回路などに共通に供給される。上記ギア機能においては、シングルチップマイクロコンピュータの低消費電力化の観点から、CPUの処理すべき内容に応じて、システムクロック信号の周波数を切り換えることが望ましい。また、システムクロック信号として、原発振を定常的に2分周したものを選択すると考えた場合と、原発振の発振周波数を予め1/2とし、それをシステムクロック信号とした(当該原発振と同一の周波数)場合とを比べると、原発振器の動作周波数は、前者が後者に対して2倍になり、原発振器での消費電流は前者が後者の2倍になる。
【0005】
一方、CPUの処理すべき内容に応じて、動作中にシステムクロック信号の周波数を切り換える場合には、次の問題点が生じてしまう。例えばシステムクロックφがシリアルコミュニケーションインタフェース(SCI)の基準クロックとして使用されていると、システムクロック信号の分周比が1/2にされた場合、SCIの送受信のビットレート若しくはボーレートが1/2になってしまい、特に、調歩同期式通信の場合などには通信できなくなってしまう。このため、システムクロック信号の周波数を切り換える際には、切り換え後のシステムクロック信号に対応するように、SCIのビットレート若しくはボーレートの設定を変更しなければならない。したがってそのようなシステムクロック信号周波数の切換えはSCIの動作停止中に行わなければならない。
【0006】
同様に、一般のタイマなどでも、システムクロック信号がクロックソースとして使用されている場合、システムクロック信号の周波数を半分にすると、その周期が2倍になってしまうので、タイマに対しても設定を変更してやらなければ絶対的な計時時間が相違されることになってしまう。SCIやタイマ以外の殆どの周辺回路若しくは周辺機能に対しても同様の再設定処理を行わなければならず、それに要するソフトウェアの負担は無視し得るほど少なくはない。
【0007】
更に、システムクロック信号の分周比を1/2から1/1に変更してシステムクロック信号の周波数を高くする場合も事情は同じである。特に、高速への変更は、CPUに対しての処理として高速処理が発生した場合であるが、かかる場合に、周辺機能のほとんどに、上記設定変更を行うのでは、時間的な無駄が大きく、高速処理が必要な状況に対応できなくなってしまう。
【0008】
一方、マイクロコンピュータの各機能ブロックに、固有のクロック信号を供給する上述の特開平3−286213号では、各機能ブロックに供給されるクロック信号の分周比を独立に設定できるようになっている。したがって、一つの機能ブロックに対するクロック信号の分周比の変更が、他の機能ブロックに影響を与えることはなくなり、ソフトウェアの負担も少なくなる。
【0009】
しかしながら、各機能ブロックに独立したクロック信号を供給する場合、必然的に、クロック配線の長さの合計、言い換えるならば、容量が大きくなってしまう。消費電流は、信号線の容量(C),電圧(V),周波数(f)の積の総和、即ち、ΣC・V・fと表現されるから、かかるクロック配線で消費される消費電流もこれに比例して大きくなってしまう。クロック信号は、マイクロコンピュータ内部で最も周波数(f)の高い信号であり、斯る消費電流は無視できない。少なくとも、低消費電力化を図るためには得策ではない。
【0010】
また、各機能ブロックが任意の分周比で動作している場合、相互間のインタフェースで、一方のクロック信号の立ち上がり変化点が、他方のクロック信号のどの相になっているか不明であり、信号のセットアップ時間やホールド時間の確保が困難になってしまい、必然的に非同期的なインタフェースとならざるを得ない。かかる非同期的なインタフェースでは、論理設計が複雑であり、また、斯るインタフェースに必要な論理規模も大きくなってしまう。
【0011】
更に、クロック信号の切り換えを専らソフトウェアによって行うと、所定のイベント例えばリセットや所定の割り込み要求などが発生して、CPUの高速処理を必要とする場合に、斯るイベントを割込として認識し、割込例外処理を実施し、割込処理ルーチンの中で、システムクロック信号の分周比を切り換えた後に、所望の処理をすることになってしまう。これでは、前記イベントが発生してから、所望の処理をするまでの時間が長くなってしまい、都合が悪い。
【0012】
本発明の目的はシステムクロック信号に関し低消費電力化を実現できる半導体集積回路を提供することにある。
【0013】
本発明の別の目的はソフトウェアの負担を小さくしてCPU等の内蔵機能ブロックの動作速度を可変にできる半導体集積回路を提供することにある。
【0014】
本発明の更に別の目的は、所定のイベントが発生したときに所望の処理をするまでの時間を短縮できる半導体集積回路を提供することにある。
【0015】
本発明のその他の目的は、供給されるシステムクロック信号の周波数が相違される機能ブロック間でのインタフェースを容易化できる半導体集積回路を提供することにある。
【0016】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0017】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0018】
〔1〕半導体集積回路は、発振器(12)からの出力に基づいて形成された周波数一定の第2のシステムクロック信号(φS)を複数個の機能ブロックに共通に供給するための第2のクロック信号配線(L2)と、上記発振器(12)からの出力に対して分周比が選択可能にされ、周波数が上記第2のシステムクロック信号以下とされた第1のシステムクロック信号(φB)を形成するクロック制御回路(13)と、上記クロック制御回路(13)で形成される第1のシステムクロック信号を所定の機能ブロックに供給するための第1のクロック信号配線(L1)と、を備える。
【0019】
〔2〕上記第1のクロック信号配線を介して第1のシステムクロック信号が供給される機能ブロックは、バスマスタ(1,2)とされる。マイクロコンピュータ等のデータプロセッサにおいて、バスマスタとして動作するCPUは一般的に命令及びデータフェッチのためのバスサイクルを頻繁に起動する。半導体集積回路を低消費電力化するにはそれらバスマスタには分周比が可変のシステムクロック信号を供給することが得策だからである。
【0020】
〔3〕上記第2のクロック信号配線を介して第2のシステムクロック信号が供給される機能ブロックは、バススレーブ(7,8,9,10)とされる。バスマスタのシステムクロック信号の周波数を変更しても、シリアルコミュニケーションインタフェースのビットレート若しくはボーレート、そしてタイマの計時周期などを一定に保つようにして、それら周辺機能ブロックの設定変更を要しないようにするためである。
【0021】
上記した手段によれば、周辺回路若しくはバススレーブのような機能ブロックへ供給される第2のシステムクロック信号(周辺クロック信号とも記す)とは独立に、バスマスタのような機能ブロックへ供給される第1のシステムクロック信号(バスマスタクロック信号とも記す)の分周比を可変にすることにより、CPUなどの動作状態に応じて、上記バスマスタクロック信号の分周比を大きくして、低消費電力化を実現することができる。
【0022】
また、上記周辺クロック信号は固定にできるので、上記バスマスタクロック信号を変更しても、シリアルコミュニケーションインタフェースのビットレート乃至ボーレートや、タイマの周期などは一定に保たれるため、CPUなどへのシステムクロック信号の周波数変更によってそれらの周辺機能ブロックの設定を変更したりすることを要しない。
【0023】
そして、上記周辺クロック信号などのクロック信号を複数の機能ブロックに共通なクロック信号とすることは、各機能ブロックに独立のクロック信号を供給するよりも、クロック配線の配線容量を小さくし、消費電力を小さくさせる。
【0024】
〔4〕上記クロック制御回路(13)には、第1のクロック信号(φB)の分周比を選択するための情報が上記バスマスタによって設定可能にされたレジスタ手段(132)を備えることができる。CPUなどのバスマスタによって分周比の選択が任意に行えるようにするためである。
【0025】
〔5〕上記第1のクロック信号配線を介して第1のシステムクロック信号(φB)が供給されバスマスタとして動作する機能ブロックが接続される第1の内部データバス(IDB)と、上記第2のクロック信号配線を介して第2のシステムクロック信号(φS)が供給され、バススレーブとして動作する機能ブロックが接続される第2の内部データバス(PDB)とに、データバスは分離される。第1の内部データバスに接続されたバスマスタによって第2の内部データバスに接続されたところのバススレーブがアクセスされる場合、そのアクセスに応じて上記第1の内部データバスを第2の内部データバスに接続するバスコントローラ(3)が備えられる。第2の内部データバスには、接続された機能ブロックの出力が全て高インピーダンス状態のときに当該バスの状態を保持し、上記接続された機能ブロックがリードまたはライトされるときには、それに従ってバスの状態が変わるのを許容するホールド回路(HD1,HD2)が設けられる。CPU等のバスマスタのように頻繁にバスサイクルを起動する機能ブロックを、バススレーブとは別のデータバスに接続することにより、頻繁にアクセスされるデータバスの負荷が小さくされる。アクセスに利用される頻度が相対的に低いデータバスについては、そこにおけるデータをホールド回路によって保持することにより、当該データバス上での充放電回数を減らして低消費電力を図る。このように、周辺機能ブロックはバスマスタに比較して動作頻度が低いので、所定の信号が入力された時のみ動作させるようにし、また、必要に応じてその動作が禁止可能にされることにより、半導体集積回路は一層低消費電力化される。このとき、動作禁止状態の周辺機能ブロックにおいて内部状態を保持することにより、動作許可後に直ちに動作を再開できる。
【0026】
〔6〕上記第1のシステムクロック信号(φB)が供給される機能ブロックは当該第1のシステムクロック信号から第1のノーオーバラップの2相クロック信号(φ1B,φ2B)を形成するノーオーバラップ生成回路を供え、第2のシステムクロック信号(φS)が供給される機能ブロックは当該第2のシステムクロック信号から第2のノーオーバラップの2相クロック信号(φ1S,φ2S)を形成するノーオーバラップ生成回路(700)を供え、第1のノーオーバラップ2相クロック信号(φ1B,φ2B)は第2のノーオーバラップ2相クロック信号(φ1S,φ2S)と部分的に位相が一致され(例えば図23におけるφ1Sとφ2Bの立ち上がりタイミング)、第2のシステムクロック信号が供給される機能ブロック(例えば図19のバススレーブ)は第2のノーオーバラップ2相クロック信号において上記位相が一致するタイミング(例えば図23のステート3におけるφ1Sの立ち上がり)に同期して、第1のシステムクロック信号が供給される機能ブロック(例えば図19のバスマスタ)へ供給すべき信号を変化させる。このインタフェース仕様に従えば、システムクロック信号が相違される機能ブロック間で、データが出力されてからそれを入力し、ラッチするまでに第2のシステムクロック信号(φS)の1周期以上の期間を確保できる。これにより、システムクロック信号の周波数が相違される機能ブロック間でのインタフェースを容易化する、換言すればインタフェースのためのタイミング設計を容易化する。このように、バスマスタクロック信号を、周辺クロック信号より、常に、同等か遅くし、バスマスタと周辺機能ブロック間のインタフェース信号を、バスマスタクロック信号と周辺クロック信号の例えば共通の変化点に同期させることにより、バスマスタと周辺機能ブロック間のインタフェースを、容易な同期インタフェースとすることを可能にする。ひいては、半導体集積回路の論理規模を縮小し、製造費用の低減及び低消費電力化に貢献する。
【0027】
〔7〕上記第1のシステムクロック信号(φB)が供給される機能ブロックは当該第1のシステムクロック信号から第1のノーオーバラップの2相のクロック信号(φ1B,φ2B)を形成するノーオーバラップ生成回路を供え、第2のシステムクロック信号(φS)が供給される機能ブロックは当該第2のシステムクロック信号から第2のノーオーバラップの2相のクロック信号(φ1S,φ2S)を形成するノーオーバラップ生成回路(700)を供える。上記第1のノーオーバラップの2相のクロック信号の第1相目のクロック信号(例えば図20のφ1B)のローレベル期間は第2のノーオーバラップの2相のクロック信号の第1相目のクロック信号(例えば図20のφ1S)のローレベル期間と一致され、第1のノーオーバラップ2相クロック信号の第2相目のクロック信号(例えば図20のφ2B)のハイレベル期間は第2のノーオーバラップの2相のクロック信号の第2相目のクロック信号(例えば図20のφ2S)のハイレベル期間と一致される。各機能ブロックの出力と入力とは第1相目又は第2相目の何れのクロック信号に同期させても、システムクロック信号が相違される機能ブロック間で、データが出力されてからそれを入力し、ラッチするまでは第2のシステムクロック信号(φS)の1周期以上の期間を確保できる。これが、システムクロック信号の周波数の相違される機能ブロック間でのインタフェースを容易化する、換言すればインタフェースのためのタイミング設計を容易化する。
【0028】
〔8〕上記第1のシステムクロック信号(φB)と第2のシステムクロック信号(φS)とを選択的に外部に出力する出力回路(例えば図26、図27のIOP60,IOP61)と、上記出力回路からの出力が非選択状態にされているとき、当該出力回路のクロック入力配線(1310,1311)を所定レベルに強制する論理回路(1300,1301,1307)とが設けられている。システムクロック信号の外部出力を要しない場合には上記クロック入力配線における充放電が抑止されて低消費電力に寄与する。
【0029】
〔9〕機能ブロック毎に個別的に内部クロック信号等の生成を抑止するという別の観点による本発明に係る半導体集積回路は、発振器(12)からの出力に基づいて形成されるシステムクロック信号(φS)を受け該システムクロック信号に同期する複数相の内部クロック信号(φ1S,φ2S)を形成し、形成された内部クロック信号に従って動作する複数個の機能ブロック(7,8,9,10)と、上記機能ブロック単位で内部クロック信号の形成を禁止させる情報を書き換え可能に保持するためのレジスタ手段(133)とを供え、上記機能ブロックは、上記レジスタ手段からの対応情報によって内部クロック信号の形成が禁止されるときに当該内部クロック信号の変化を一定の状態に停止させて内部状態を保持させる第1の内部クロック制御手段(700)を備える。利用しない内蔵の機能ブロック内では内部クロック信号の変化が停止され、クロック信号の無駄な変化による充放電電流による電力消費を抑える。内部クロック信号停止状態において内部状態を保持させることは、動作再開が選択されたときに内部回路を改めて設定する手間を省く。
【0030】
〔10〕上記機能ブロックは更に、自分自身の動作が選択されることによって上記複数相の内部クロック信号(φ1S,φ2S)から内部タイミング信号(φ1−PWM,φ2−PWM)を形成し、自分自身の動作が非選択とされることによって内部タイミング信号の変化を一定の状態に停止させて内部状態を保持させる第2の内部クロック制御手段(710)を備える。動作の非選択状態において内部タイミング信号(φ1−PWM,φ2−PWM)を受ける回路での電力消費が抑止される。動作非選択状態において内部タイミング信号の変化が停止されたときに内部状態を保持させることは、動作再開のときに内部回路を改めて設定し直す手間を省く。
【0031】
〔11〕上記内部タイミング信号はノーオーバラップの2相のタイミング信号(φ1−PWM,φ2−PWM)であり、当該タイミング信号を受けて動作される回路は、その第1相目のタイミング信号を受けてダイナミックに動作されるダイナミック回路(23)と、該ダイナミック回路に直列的に接続され第2相目のタイミング信号を受けてスタティックに動作されるスタティック回路(21)とを含んで構成される。前記ノーオーバラップの2相のタイミング信号(φ1−PWM,φ2−PWM)のうちデューティ比の大きな相のタイミング信号はダイナミック回路に、デューティ比の小さい相のタイミング信号はスタティック回路に供給することにより、ダイナミック回路の出力負荷容量による情報保持時間が有限であっても当該ダイナミック回路によって情報を保持すべき期間を短くして、システムクロック信号の周波数を低減可能な範囲を広げることができる。さらに双方をスタティックラッチ回路で構成する場合に比べて回路の物理的規模を縮小できる。
【0032】
〔12〕イベント検出に基づいてシステムクロック信号の周波数を強制的に変更するという別の観点による本発明に係る半導体集積回路は、単数又は複数個の第1の機能ブロック(1,2)と、第1の機能ブロックに対して例外的処理を要求すべき内外の事象(イベント)の発生を検出して対応する第1の機能ブロックに例外的処理を要求する信号を出力するイベント検出回路(4)と、第1の機能ブロックに対して例外的処理を要求すべき事象を発生させる単数又は複数の第2の機能ブロック(7,8,9,10)と、上記第1の機能ブロック及びイベント検出回路に供給される第1のシステムクロック信号(φB)の周波数を可変に選択可能にすると共に、上記イベント検出回路(4)による所定のイベントの検出に基づいて周波数の選択状態を所定の状態に強制させる選択制御手段(131,132)と、を有する。所定のイベントが発生したとき、設定されているシステムクロック信号周波数が低くても、選択制御手段がシステムクロック信号周波数の選択状態を所定の状態例えば最高周波数選択状態に強制することができ、これによって、所定のイベントが発生したときに所望の処理をするまでの時間が短縮される。
【0033】
〔13〕上記選択手段は、周波数選択のための制御情報を書き換え可能に保持する第1のレジスタ手段(132)と、この第1のレジスタ手段が保持する制御情報に従って第1のシステムクロック信号の周波数を選択するセレクタ(131)とを有し、第1のレジスタ手段は、第1の状態(=”0”)において特定周波数(φOSC)の選択を指示すると共に上記イベント検出回路による所定のイベントの検出に基づいて上記第1の状態に強制される第1の記憶領域(MSME)と、当該第1の記憶領域における第2の状態(MSME=”1”)において有意とされる周波数選択のための情報を格納する第2の記憶領域(CKS1,CKS0)とを備えて成る。所定のイベントが発生したとき、第1の記憶領域(MSME)を第1の状態(=”0”)に強制すればよいから、システムクロック信号を特定周波数に強制する処理が簡単になる。
【0034】
〔14〕上記第1の機能ブロックは中央処理装置(1)であり、上記イベント検出回路から上記例外的処理を要求する信号が与えられた中央処理装置は、当該例外的処理からの復帰に際して第1の記憶領域を第2の状態(MSME=”1”)に設定することができる。したがって、中央処理装置は要求された例外的処理を行った後、その要求があったときの処理又はその次の処理に復帰すべき場合であっても、第2の記憶領域(CKS1,CKS2)の値それ自体を退避及び復帰させることを要しない。
【0035】
〔15〕上記第1の機能ブロックはデータトランスファコントローラ(2)であり、上記イベント検出回路から上記例外的処理を要求する信号が与えられたデータトランスファコントローラは、当該例外的処理の終了を指示する信号(1325)を出力し、上記論理手段は当該終了を指示する信号の活性状態によって第1の記憶領域を第2の状態(MSME=”1”)に設定することができる。これにより、システムクロック信号を元に戻すのに中央処理装置若しくはソフトウェアに負担をかけない。
【0036】
〔16〕上記第2の機能ブロック(7,8,9,10)は、それに供給される周波数が一定の第2のシステムクロック信号(φS)から内部クロック信号(φ1S,φ2S)を形成し、それによって動作され、第2の機能ブロック単位に上記内部クロック信号の形成を禁止させるための情報を書き換え可能に保持する第2のレジスタ手段(133)を設け、上記イベント検出回路による所定のイベントの検出(例えばリセット)に基づいて、上記第2のレジスタ手段は、内部クロック信号の形成を禁止する状態に初期化されるものである。リセット等の所定イベントの発生時における初期的な状態での電力消費を低減させるためである。
【0037】
〔17〕システムクロック信号の周波数を強制的に変更するために割り込みベクタなどのベクタと対の制御情報を利用するという更に別の観点による発明は、中央処理装置(1)と、中央処理装置に対して例外的処理を要求するための信号を出力するイベント検出回路(4)と、中央処理装置の周辺回路(7,8,9,10)と、上記中央処理装置及びイベント検出回路に供給される第1のシステムクロック信号(φB)の周波数を選択可能に指示する第1のレジスタ手段(132)と、第2のシステムクロック信号(φS)を受けて動作される上記周辺回路単位にその内部クロック信号の形成を禁止させるための情報を書き換え可能に保持する第2のレジスタ手段(133)とを供え、上記中央処理装置はイベント検出回路から例外的処理が要求されたとき、第1及び第2のレジスタ手段に設定すべき制御情報を、当該要求に応ずるベクタと対を成す領域(図30のアドレス0,4,8,12)から取得するものである。イベントの種類に応じて低消費電力設定を細かく行えるようにするためである。
【0038】
〔18〕上記中央処理装置(1)は、イベント検出回路(4)から例外的処理の要求があったとき、第1及び第2のレジスタ手段に、当該要求に応ずるベクタと対を成す領域から取得した制御情報を設定する前に、当該例外的処理からの復帰のために第1及び第2のレジスタ手段の値を退避させる。要求された例外的処理の終了後に、イベント発生直前の状態に復帰しなければならない場合に対処するためである。
【0039】
〔19〕プリスケーラで生成可能な低分周比のプリスケーラクロック信号はプリスケーラから供給せずに、機能ブロック内の分周器で個別的に生成させるというその他の観点による発明は、発振器(12)からの出力に基づいてシステムクロック信号を形成するクロック制御回路(13)と、クロック制御回路からのシステムクロック信号を受けて動作される複数個の機能ブロックとを備えて成る半導体集積回路において、システムクロック信号(φS)とは別に相対的に分周比の小さなクロック信号(図6のφS/2)を必要とする機能ブロックには機能ブロック毎にシステムクロック信号を分周する分周器(720)を設け、相対的に分周比の大きなクロック信号(φ/8,φ/16)を必要とする複数個の機能ブロックに対しては共通に当該クロック信号を生成して供給するプリスケーラ(14)を設けて構成される。低分周比のクロック信号も直接複数の機能ブロックに供給する場合には、低分周比故に当該クロック信号伝達系における電力消費が大きくなってしまうからである。
【0040】
【発明の実施の形態】
《シングルチップマイクロコンピュータの機能ブロック》 図1には本発明に係る半導体集積回路の一実施例であるシングルチップマイクロコンピュータのブロック図が示される。このシングルチップマイクロコンピュータは、中央処理装置(CPU)1、データトランスファコントローラ(DTC)2、バスコントローラ(BSC)3、割り込みコントローラ4、リード・オンリ・メモリ(ROM)5、ランダム・アクセス・メモリ(RAM)6、タイマ7、ウオッチドッグタイマ(WDT)8、シリアルコミュニケーションインタフェース(SCI)9、アナログ/ディジタル(A/D)変換器10、第1乃至第11入出力ポートIOP1〜IOP11、クロック発振器(CPG)12、クロック制御回路13、及びプリスケーラ14の機能ブロック(回路モジュールとも称する)を供え、これらの機能ブロックは、特に制限されないが、公知のCMOS半導体集積回路の製造技術により単結晶シリコンのような1個の半導体基板上に形成される。上記タイマは一例としてPWM(Pulse Width Modulation)タイマを含み、タイマ7において特にPWMタイマを指すときは便宜上PWMタイマ7と記す。
【0041】
上記シングルチップマイクロコンピュータには、複数の外部端子が設けられている。外部端子のうち、電源端子には、グランドレベル(Vss)、電源電圧レベル(Vcc)、アナログ用グランドレベル(AVss)、アナログ用電源電圧レベル(AVcc)が供給されている。外部端子には、上記電源端子以外に、専用制御端子が設けられており、これらの端子として、リセット(RES)、スタンバイ(STBY)、モード制御(MD0〜MD2)、クロック入力(EXTAL、XTAL)、マスク不可能な割り込み(NMI)の各端子がある。
【0042】
《シングルチップマイクロコンピュータの内部バス構成》 図1に示される上記各機能ブロックは、内部バスによって相互に接続される。内部バスはアドレスバス及びデータバスの他にリード信号、ライト信号、さらにはバスサイズ信号などを含むコントロールバスから成る。内部のアドレスバスにはIABとPABが存在する。内部のデータバスとしてはIDBとPDBが存在する。これらのIAB、PAB及びIDB、PDBのバスは、バスコントローラ3によって、互いにインタフェースされている。
【0043】
内部データバスIDB,内部アドレスバスIABは、バスマスタとして動作することができるCPU1またはDTC2の何れかが選択的にバス権を有して、使用される。何れにバス権を与えるかは、バスコントローラ3の制御によって決まる。バスコントローラ3は、内部アドレスバスIABに出力された情報を解読して、何れの機能ブロックが選択されたかを判定する機能ブロック選択回路MSを含む。機能ブロック選択回路MSは、アドレス信号によって選択されるべき機能ブロックを識別し、識別された機能ブロックに対応するモジュール選択信号(図示せず)を活性化する。この機能ブロック選択回路MSにて解読された情報に従って、IABとPABとの間及びIDBとPDBとの間が接続されるか、接続されないかが決定(選択)される。すなわち、そのときのアクセス対象が内部バスIAB,IDBに結合された回路モジュールである場合にはバスコントローラ3は内部バスPAB,PDBをIAB,IDBに接続しない。一方、アクセス対象が内部バスPAB,PDBに結合された回路モジュールである場合にはバスコントローラ3は内部バスPAB,PDBをIAB,IDBに接続する。本明細書において、バスマスタとは、バスへのアドレスの出力(形成)が可能であり、データの入出力も可能であるモジュールを意味し、バススレーブとは、バスへのアドレスの出力(形成)が不可能であり、アドレスの入力と、データの入出力又はデータの出力が可能なモジュールを意味する。
【0044】
内部バスIAB、IDBはCPU1、DTC2、ROM5、RAM6、バスコントローラ3に接続される。更に、内部アドレスバスIABは図示しない外部アドレスバスと接続可能にするために、入出力ポートIOP1〜IOP3に接続され、内部データバスIDBは図示しない外部データバスと接続可能にするために、入出力ポートIOP4、IOP5に接続される。内部バスPAB、PDBはバスコントローラ3、タイマ7、ウオッチドッグタイマ8、SCI9、A/D変換器10、割込コントローラ4、及び入出力ポートIOP1〜IOP11に接続される。内部バスPAB、PDBが入出力ポートIOP1〜IOP11を介して外部アクセスに利用されるときのバスインタフェース制御はバスコントローラ3が行う。
【0045】
上記内部バスをIAB,IDBとPAB,PDBとの2系統化するに当たっては、バスアクセスを伴った利用頻度の多い回路モジュールには相対的に負荷の小さなバスを共有させることを考慮してある。また、CPU1によるバスアクセスの内では、命令フェッチの回数がデータアクセスの回数に比較して多くされる。また、CPU1の処理性能を向上させるためには、処理する内容に応じて命令をフェッチしていかなければならず、単位時間当たりの命令フェッチの頻度が高くされる。この点を考慮して本実施例ではバスマスタモジュールとして動作されるCPU1,DTC2と、CPU1の作業領域とされるRAM6やプログラムなどを格納したROM5などとをその他の回路モジュールと切り放して相対的に負荷の小さな内部バスIAB,IDBに接続してある。
【0046】
CPU1によるバスアクセスの内では、命令フェッチの回数がデータアクセスの回数に比較して多くされる。また、CPU1の処理性能を向上させるためには、処理する内容に応じて命令をフェッチしていかなければならず、単位時間当たりの命令フェッチの頻度が高くされる。CPU1の命令は内蔵ROM5または図示しない外部メモリに置く場合が大部分である。したがってプログラムメモリが外部メモリである場合にも入出力ポートIOP1〜IOP5を介して内部バスIAB,IDBを利用すればよく、命令フェッチと無関係な回路モジュールが多数接続されていて負荷が比較的大きくされた内部バスPAB、PDBを使用しないで済む。
【0047】
内部バスPAB,PDBは、それが使用されていないとき、そのバスにおける以前の値を保持するようにされている。例えば、内部バスPDBの各信号線にはスタティックラッチ回路が結合され、内部バスPDBが使用されてない場合にはこれに出力端子が接続される回路モジュールの当該出力端子は高出力インピーダンス状態とされ、上記スタティックラッチ回路によって前の値が保持される。CMOS回路を用いれば、この場合、信号状態が変化しないため、これらPDBの消費電流をほぼ0とすることができる。PAB、PDBは、図1に示されるように、接続される対象が多く、配線容量が大きいため、これらに発生する信号変化の頻度を減少させることによって、換言すれば相対的に利用頻度の低い回路モジュールが接続されていることによって、低消費電力化に貢献することができる。即ち、バスアクセスを伴った利用頻度の多い回路モジュールには相対的に負荷の小さなバスIAB,IDBが共有される。
【0048】
《シングルチップマイクロコンピュータのクロック供給系統》 本実施例のシングルチップマイクロコンピュータはクロック発振器12及びクロック制御回路13によって生成されるシステムクロック信号に同期して動作される。各機能ブロックはそのようなシステムクロック信号に基づいて形成された、互いにノーオーバラップの2相クロック信号にて動作される。本実施例に従えば、システムクロック信号はφBとφSに大別される。便宜上システムクロック信号φSとφBを総称して単にシステムクロック信号φとも記す。同様にφSに基づいて形成されるノーオーバラップ2相のクロック信号φ1S,φ2S、そしてφBに基づいて形成されるノーオーバラップの2相クロック信号φ1B,φ2Bに対してもそれらを総称して単にφ1,φ2と記すことがある。また、クロック発振器12から出力されるクロック信号はφOSCとして図示される。
【0049】
上記システムクロック信号φBは、バスマスタクロックとして、例えばCPU1、DTC2、バスコントローラ3、割込コントローラ4、更に、外部バスのインタフェース用に、入出力ポートIOP1〜IOP5に供給される。システムクロック信号φBを各回路モジュールへ供給するためのクロック信号配線は、L1として図示されている。クロック信号φBはクロック制御回路13において、クロック信号φOSCを分周することにより形成される。本実施例においては、この分周比が選択可能にされている。クロック信号φBの分周比が大きくされれば、これに比例して、システムクロック信号φBを受ける回路モジュールの部分の動作周波数は低くなり、消費電流も低減される。かかる部分は、原則的には常に動作状態である。例えば、割込コントローラ4は常に割込要求の発生を監視しなければならず、割込要求が発生すれば、所定の状態遷移を発生したり、CPU1やDTC2に処理を要求したりしなければならないためである。したがってそのような回路部分において、その動作周波数をクロック信号φBで制御できることはシングルチップマイクロコンピュータ全体における消費電力を必要に応じて低減することを実現する。
【0050】
他方のシステムクロック信号φSは、周辺クロックとして、例えばタイマ7、ウオッチドッグタイマ8、SCI9、A/D変換器10、入出力ポートIOP1〜IOP11に供給される。システムクロック信号φSを各回路モジュールへ供給するためのクロック信号配線はL2として図示されている。
【0051】
図1からも明らかなようにクロック信号は、ROM5,RAM6を除く各機能ブロックに供給され、全体としてのクロック信号配線長は相当長くされる。図1に示されるように、クロック信号φBが供給される機能ブロックと、クロック信号φSが供給される機能ブロックとは、それぞれある程度局在化されている。これによって、クロック信号のための総配線長を抑制することができる。少なくとも、全ての機能ブロックに夫々独立のクロック信号を供給する場合よりも全体の配線長を短くすることができる。クロック信号の総配線長を抑制することにより、当該配線に寄生する容量成分を抑制できる。クロック信号は信号変化の周波数が大きいために、クロック信号配線の容量を抑制することにより(配線長を短くすることにより)、消費電力を抑制することが可能になる。
【0052】
システムクロック信号φBの周波数は例えば後述するようにソフトウェアによる分周比の設定次第で変更することができる。これに対して、システムクロック信号φSの周波数は固定とされる。また、クロック制御回路13は、DTC2、タイマ7、ウオッチドッグタイマ8、SCI9、A/D変換器10に対して、クロック制御信号を供給する。かかるクロック制御信号は、上記機能ブロック内におけるクロック信号の動作(クロック信号の変化)を許可/停止するものである。かかるクロック制御については、例えば、特開昭60ー195631号公報などに記載されている。しかしながら、かかる例にはクロックの動作が停止された期間中の、機能ブロックの動作については考えられていない。本発明者らの検討によれば、機能ブロックのクロックが停止された期間中は、内部状態を保持すべきである。そのような機能ブロックはシステムクロック信号φSに基づいて形成されたノーオーバラップの2相クロック信号φ1,φ2に同期動作されるようになっており、その詳細は図3の(A)〜(C)に基づいて後述するが、φ1に同期した順序回路をダイナミック回路で構成し、φ2に同期した順序回路をスタティック回路で構成する。
【0053】
《シングルチップマイクロコンピュータにおけるモジュールストップ》 シングルチップマイクロコンピュータにおけるモジュールストップの内容についてその詳細は後述するが、概略的には以下の通りである。クロック制御回路13から、DTC2、タイマ7、ウオッチドッグタイマ8、SCI9、A/D変換器10に対して、クロック停止信号すなわちモジュールストップ信号(図1においては夫々に与えられるモジュールストップ信号をMSTPと総称して図示してある)が与えられる。かかるモジュールストップ信号MSTPは、クロック制御回路13から、各機能ブロックに対してそれ固有の信号として与えられる。複数チャネルから成るSCIのような場合にはチャネル毎にモジュールストップ信号MSTPを割り当てることも可能である。かかる機能ブロック単位のクロック停止については、平成6年3月(株)日立製作所発行『H8/3048シリーズ ハードウェアマニュアル』P607乃至P632、及び特開昭60−195631号公報などに記載されている。なお、ウオッチドッグタイマ8は、ウオッチドッグタイマとして機能しているとき、モジュールストップ信号は無効とされる。これは、ウオッチドッグタイマ8は、システムを監視する機能上、誤って、停止されてしまうのを防止するためである。その詳細については後述する。前記平成6年3月(株)日立製作所発行『H8/3048シリーズ ハードウェアマニュアル』P607乃至P632では、クロック停止時には、機能ブロックがリセット状態になってしまい、内部レジスタの再設定などが必要である、とされる。例えば、調歩同期式SCIでは、動作再開時に、1フレーム分のプリアンブルを出力したりして、直ちに動作を行うことができない。PWMタイマ7では、クロック選択やデューティの設定などが必要になってしまう。これに対して、本実施例では、クロック停止時に、機能ブロックが内部状態を保持するようにされる。
【0054】
《クロック同期型内蔵メモリの採用》 図2は図1のシングルチップマイクロコンピュータの変形例を示すブロック図である。図2に示されるシングルチップマイクロコンピュータは、図1に対してROM5及びRAM6がクロック信号に同期動作される回路形式とされ、例えばそれらにはCPU1に供給されるのと同様のクロック信号φBが供給される。このように内蔵メモリROM5,RAM6をバスマスタCPU1,DTC2のクロックに同期させて動作させることにより、高速な動作を行うことができる。クロックに同期動作されるRAM6としてはクロックド・スタティックRAMなどを挙げることができる。クロックに同期動作されるROM5としてはマスクROM、EEPROM、及びフラッシュメモリなどを挙げることができる。
【0055】
《各機能ブロックの内部回路》 図3の(A)には各機能ブロックを構成する論理回路の代表的なブロック例が示されている。夫々の論理回路は基本的には、組合回路20と、その出力を入力としてクロック信号φ2に同期して動作する順序回路21と、順序回路21の出力を入力とする組合回路22と、組み合わせ回路22の出力を入力としてクロック信号φ1に同期して動作される順序回路23とを代表とした回路を基本単位として含む。また、必要に応じて、順序回路23から組み合わせ回路20へ信号が循環的に伝達されるように構成してもよい。図示されていないが、外部からの入力信号はいずれかの回路に入力され、外部への出力信号はいずれかの回路から出力される。
【0056】
図3の(B)には代表的に示された上記順序回路21,23をCMOSダイナミック回路で構成する例が示される。例えば順序回路21はCMOSクロックドインバータ210とCMOSインバータ211との直列回路で構成され、順序回路23はCMOSクロックドインバータ230とCMOSインバータ231との直列回路で構成される。順序回路21においてクロックドインバータ210はクロック信号φ2のハイレベルによって出力動作可能にされ、順序回路23においてクロックドインバータ230はクロック信号φ1のハイレベルによって出力動作可能にされる。Pチャンネル型MOSトランジスタ212は動作待機時にローレベルにされる信号SIGによってオン状態とされ、インバータ211の入力を電源電圧に強制して内部を、前の値の保持状態にする。この信号SIGとしては、図9で述べる発振器停止信号135に類似した信号を使うことができる。
【0057】
図3の(B)に示される回路形式において情報伝達はクロックドインバータ210,230の出力負荷容量に対する充電及び放電によってダイナミックに行われる。このように2相のノーオーバラップクロック信号(ノーオーバラップクロック信号は、ノンオーバラップクロック信号とも称する)φ1,φ2とダイナミック回路を用いることによって、トランジスタ数を縮小でき、半導体集積回路の物理的規模を縮小できる。しかしながら、これは負荷容量に蓄えた電荷でデータの保持を行っているので、負荷容量からの漏洩電流が存在するために、データの保持は有限の時間しか行うことができない。例えば、漏洩電流を一定とすれば、ハイレベルを保持した状態では、データはV−it/Cと表現できる。Cは容量、Vは電源電圧、iは漏洩電流、tは経過時間である。時間経過に従って、出力端子の電圧は低下する。このような電圧を入力しているCMOS回路のしきい値電圧をVthとすれば、C(V−Vth)/i以下の時間しかデータを保持することができない。したがってこの時間内にデータを更新する必要がある。換言すればクロックドインバータ210,230のようなスイッチ素子のスイッチング周波数をi/C(V−Vth)以下にすることはできない。これにより、クロック停止時などのように内部動作の停止時には、スイッチング周波数を十分高くできず、データを保持することができなくなる。
【0058】
そのようなクロック停止状態でも、データを保持しようとすれば、夫々の順序回路21,23にダイナミック回路を用いず、スタティック回路を用いることが考えられる。スタティック回路はダイナミック回路に比べて、トランジスタ数が増加し、半導体集積回路の物理的規模を増加させる。トランジスタ数が増加すれば、配線も増加し、配線数及びトランジスタ数に比例して、消費電流も増加する。
【0059】
図3の(C)には本実施例のシングルチップマイクロコンピュータに用いられているCMOSダイナミック回路の一例が示される。同図においてクロック信号φ1に同期した順序回路23はダイナミック回路、クロック信号φ2に同期した順序回路21はスタティック回路で構成されている。当該スタティック回路はインバータ211にクロックドインバータ213が逆並列接続で追加され、クロックドインバータ210とは逆相で出力動作可能にされる。なお、順序回路23における出力段のインバータ231は論理極性を合わせるために付加されており必要に応じて削除してもよい。図3の(C)の例に従えば、クロック停止時、及び動作待機時には、クロック信号φ1がハイレベル、φ2がロウレベルとされ、順序回路21はその直前の入力データをラッチして後段の組み合わせ回路22へ供給し、順序回路23の状態を前の値の保持状態へ制御する。なお、動作待機時とは、クロックは停止されていないが、所定のイベントが発生していない場合に、以前の状態を保持して動作を停止している状態を意味する。前記所定のイベントとしては、例えば、PWMタイマ7の場合、CPU1などのバスマスタによるリード/ライトや、後述するカウントアップクロックの発生などがある。
【0060】
図3の(C)において順序回路23を構成するダイナミック回路は6個のMOSトランジスタにより、同じく図3の(C)において順序回路21を構成するスタティック回路は10個のMOSトランジスタにより構成される。図3の(B)においては順序回路23を構成するダイナミック回路は6個のMOSトランジスタにより、同じく図3の(B)において順序回路21を構成するダイナミック回路は7個のMOSトランジスタにより構成される。また、全部をスタティック回路にすれば、何れの順序回路21,23も10個のMOSトランジスタにて構成される。したがって、この部分を比較すれば、図3の(C)の構成における16トランジスタに対し、全部をダイナミック回路とすれば13トランジスタ、全部をスタティック回路にすれば20トランジスタであり、図3の(C)の構成は、双方をダイナミック回路とする場合に比べて約1.23倍、双方をスタティック回路とする場合に比べて約0.8倍のトランジスタ数で済む。
【0061】
また、図3の(C)に示されるように、順序回路としてスタティック回路とダイナミック回路を交互に配置し、ノーオーバラップの2相クロック信号φ1,φ2のデューティ比(本明細書では、デューティ比=ハイレベルの期間/1周期である)を50%からずらし、デューティ比の大きい方をダイナミック回路のクロック信号とする。換言すれば、ダイナミック回路に含まれる上記クロックドインバータ230の高出力インピーダンス期間を、スタティック回路に含まれる上記クロックドインバータ210の高出力インピーダンス期間よりも短くする。これにより、例えばシステムクロック信号φBの周波数を低減可能な範囲を広げることができるようになる。例えば図20に示される50%よりも大きなデューティ比のクロック信号φ1Bをダイナミック回路のクロックφ1に、50%よりも小さなデューティ比のクロック信号φ2Bをスタティック回路のクロックφ2に採用する。
【0062】
《プリスケーラクロック》 システムクロック信号の他に、いわゆるプリスケーラクロック信号を所定の機能ブロックに供給することがある。すなわち、システムクロック信号を必要に応じて分周する場合に当該分周器を個々の機能ブロックに配置する場合に比べ、プリスケーラを用いる場合には各種分周比のクロック信号を集中的に形成して必要な分周比のクロックを必要な機能ブロックに振り分けるので、各機能ブロックの分周器を共通化でき、チップ全体における論理規模の縮小を図ることができる。
【0063】
しかしながら、本発明者らの検討によれば、プリスケーラクロック信号は、各機能ブロックが共通に利用する性質上、クロック配線長が長く、配線容量が大きくなる。更に、低分周比のプリスケーラクロックは信号変化頻度が高い。このため、消費電流も大きくなる。これを考慮した本実施例においては、低分周比のプリスケーラクロック信号に応じた比較的周波数の高いクロック信号は、機能ブロックに対して共通のプリスケーラが担わず各機能ブロックが、個々の分周回路を用いて個別に生成するようにされる。
【0064】
図4にはプリスケーラ14の一例がブロック図で示されている。同図には代表的に下位4桁分の構成が示され、各桁を構成するラッチ回路は140〜143として例示され、その回路構成は代表的に詳細が示されたラッチ回路140の構成と同じである。ラッチ回路140は、2入力ノアゲート1401,1402にて成るスタティックラッチを主体に構成され、その出力段には端子CSにて出力制御されるクロックドインバータ1403が配置され、当該スタティックラッチの入力段には端子CMの論理値によって開閉機能を行う2入力アンドゲート1404,1405が配置される。入力端子Tは2入力型の排他的論理和ゲート1406の一方の入力端子に結合され、他方の入力端子にはクロックドインバータ1403の出力が帰還される。上記アンドゲート1404には排他的論理和ゲート1406の出力が、上記アンドゲート1405には排他的論理和ゲート1406の出力がインバータ1407にて反転されて夫々供給される。最下位のラッチ回路140の入力端子Tには論理値”1”が供給され、下位側のカウントアップクロックφ/4UP,φ/8UP,φ/16UP,…が上位の入力端子Tに与えられて縦列形態に接続されている。
【0065】
各桁のラッチ回路140,141,142,143,…は、端子CMが論理値”1”(特に制限されないが本実施例ではハイレベル)のときに保持したデータを更新する。端子Tが論理値”0”(特に制限されないが本実施例ではローレベル)であればデータ保持、端子Tが論理値”1”であればデータ反転とされる。即ち、端子CMと端子CSは同時に論理値1にされない。換言すればφ1,φ2はノーオーバラップ2相のクロック信号とされる。端子CSのハイレベルにおいてクロックドインバータ1403は出力動作可能にされ、端子CSのローレベルにおいて高出力インピーダンス状態にされる。端子CMの論理値”1”においてアンドゲート1404,1405の他方の入力が、当該アンドゲート1404,1405の出力に反映されてラッチデータの更新が行われる。このとき、端子Tがローレベルならばそれまでラッチされていたデータがそのまま保持され、端子Tがハイレベルならばそれまでラッチされていたデータは反転される。端子CMのローレベルにおいて1404,1405の出力は双方ともにローレベルに強制されて2個のノアゲート1401,1402から成るスタティックラッチはそれまでの状態をスタティックに保持する。
【0066】
上記ノーオーバラップ2相のクロック信号φ1,φ2は上記クロック信号φOSCから生成される。その生成回路144は図4に示されるように相互に一方の出力が他方の入力に遅延回路1441,1442を介して帰還される一対のアンドゲート1443,1444を主体とし、クロック信号φ1,φ2の停止時にφ1をハイレベルに強制する出力制御用のオアゲート1445、φ2をローレベルに強制する出力制御用のアンドゲート1446を備えて成る。アンドゲート1444はφOSC及び遅延回路1441を介する帰還信号の夫々の反転信号に対して論理積を採る。アンドゲート1443は遅延回路1442を介する帰還信号の反転信号とφOSCとの論理積を採る。アンドゲート1446はプリスケーラモジュールストップ信号MSTPPSCの反転信号とアンドゲート1444の出力とに対して論理積を採る。プリスケーラモジュールストップ信号MSTPPSCについてはその詳細を後述するが、その論理値”0”によってクロック信号φ1,φ2の出力を許容し、論理値”1”によって当該クロック信号φ1,φ2の出力を禁止する。クロック信号φ1,φ2の出力禁止状態においてφ1はハイレベル、φ2はローレベルに固定される。したがって、このとき各種プリスケーラクロック信号の変化も抑止される。
【0067】
図4に示されるプリスケーラ14は前記クロック信号φOSCをカウントアップする。例えば、平成5年3月(株)日立製作所発行『H8/3003 ハードウェアマニュアル』p555に記載されるようなプリスケーラは、分周クロックφ/2、φ/4、φ/8…などを順次生成している。本実施例のプリスケーラ14は更に、それぞれの桁のカウントアップクロックφ/2UP、φ/4UP、φ/8UP…も生成する。当該桁におけるカウントアップ信号(桁上げ信号)は、当該桁よりも下位側の全ての桁上げ信号と当該桁におけるラッチ回路の出力とに対する論理積信号として得られる。
【0068】
本実施例においてプリスケーラ14にて生成されるクロック信号(プリスケーラクロック信号)は所定の機能ブロック、例えばタイマ7、SCI9、A/D変換器10などに供給される。この場合に、そのような機能ブロックに供給されるプリスケーラクロック信号はφ/8以上の分周比のプリスケーラクロック信号とされる。φ/2、φ/4及びφ/2UP、φ/4UPなどのような相対的に分周比の小さな(周波数の高い)クロック信号はプリスケーラ14から外部の機能ブロックには出力されない。分周比の低いクロック信号もプリスケーラ14から一括して各機能ブロックに供給する場合には相当に長いクロック配線上で高い周波数に同期して充放電が高速に行われるため消費電力が大きくなり、しかも各機能ブロックがそのような高い周波数のクロック信号をシステムクロック信号φSとは別に利用するとは限らず、そのような電力消費が無駄になることも大いに予想される。したがって、φ/2のように比較的周波数の高いクロック信号はシステムクロック信号φSを機能ブロック内部で分周して利用する。これによって電力消費を低減することができる。
【0069】
図5の(A)〜(I)にはプリスケーラ14の動作タイミングチャートが示されている。プリスケーラクロック信号はクロック信号φ1に同期したタイミングで変化される。夫々の桁のカウントアップクロックは自分よりも下位の桁のラッチ回路出力が全ビット論理値”1”になると論理値”1”にされ、その後のφ1に同期して、その桁が変化される。即ち、各桁の出力Qの1周期に1回上位桁へのカウントアップクロックが発生する。例えば、φ/8とφ/16UPは同一の周期を持つ信号であり、φ/16UPのハイレベル期間はクロック信号φ/2のハイレベル期間に一致される。
【0070】
《モジュールストップ》 図6にはPWMタイマ7のブロック図が示される。PWMタイマ7は、ノーオーバラップ生成回路700、クロック制御回路710、分周器720、リードライト制御回路730、カウンタクロック制御回路740、出力制御750、バスインタフェース760、制御レジスタ(TCR)771、カウンタ(TCNT)772、デューティレジスタ(DTR)773、比較器(CMP)774から構成される。
【0071】
ノーオーバラップ生成回路700は、クロック信号φSを入力し、互いにノーオーバラップの関係にあり、φSと同相のクロック信号φ1Sと、クロック信号φ1Sに対して逆相のクロック信号φ2Sとを夫々生成する。このノーオーバラップ生成回路700の一例は図7の(A)に示されるように相互に一方の出力が他方の入力に遅延回路701,702を介して帰還される一対のアンドゲート703,704を主体とし、クロック信号φ1S,φ2Sを停止すべきときに当該クロック信号φ1Sをハイレベルに強制する出力制御用のオアゲート705、クロック信号φ2Sをローレベルに強制する出力制御用のアンドゲート706を備えて成る。アンドゲート704はクロック信号φS及び遅延回路701を介する帰還信号の夫々の反転信号に対して論理積を採る。アンドゲート703はクロック信号φSと遅延回路702を介する帰還信号の反転信号との論理積を採る。アンドゲート706は一方の入力に供給されるタイマモジュールストップ信号MSTPPWMの反転信号とアンドゲート704の出力とに対して論理積を採る。タイマモジュールストップ信号MSTPPWMについてはその詳細を後述するが、その論理値”0”によってクロック信号φ1S,φ2Sの出力を許容し、論理値”1”によって当該クロック信号φ1S,φ2Sの出力を禁止する。即ちタイマモジュールストップ信号MSTPPWMが論理値”1”のとき、φ1Sがハイレベル、φ2Sがローレベルの状態に固定される。このようにタイマモジュールストップ信号MSTPPWMはPWMタイマ7を動作させる必要のないときにクロック信号φ1S,φ2Sを所定の論理値を以て停止させるための制御信号とされる。
【0072】
ノーオーバラップ生成回路700で生成されたクロック信号φ1S,φ2Sは分周器720、クロック制御回路710、及びカウンタクロック制御回路740に限って供給される。
【0073】
分周器720は、クロック信号φ1S及びφ2Sを入力して、クロック信号φS/2を生成する。この論理構成は、図4で説明したプリスケーラ14における最下位の論理構成を以て実現することができる。クロック信号φSに対して分周比の比較的小さなクロック信号φS/2については機能ブロック内の分周器で生成する。これはプリスケーラの項目で説明した通り低消費電力化を図るための考慮である。
【0074】
カウンタクロック制御回路740はプリスケーラクロックとしてφ/16UP、φ/64UP、及びφ/256UPを入力し、併せて前記分周器720で生成したクロック信号φS/2を入力する。これらの入力クロック信号から所望の入力クロック信号が選択され、選択された入力クロック信号がカウントアップに使われる。すなわち、制御レジスタ(TCR)771のCK1、CK0ビットによって、選択されるべき入力クロック信号を指定し、この指定により、カウンタクロック制御回路740で、入力クロック信号の選択が行われ、選択されたクロック信号の周期に同期してカウントアップクロック信号741が生成される。このカウントアップクロック信号741の生成は、上記制御レジスタ(TCR)内のOE(アウトプット・イネーブル)ビットが”1”のときに許可され、”0”のときに禁止される。カウンタ(TCNT)772は当該カウントアップクロック信号741に同期してカウントアップ動作を行う。
【0075】
クロック制御回路710は、クロック信号φ1S及びφ2S、CPU1の出力するアドレス信号によって生成されたPWMタイマ選択信号MSPWM#(記号#はそれが付された信号がローイネーブル、即ち負論理の信号であることを意味する)、及びカウンタクロック制御回路740から出力されるカウントアップクロック信号741を入力して、クロック信号φ1−PWM、φ2−PWMをTCR771,TCNT772,CMP774,DTR773,バスインタフェース760,出力制御回路750に供給する。クロック信号φ1−PWM,φ2−PWMは、CPU1がPWMタイマ7をリード/ライトしたとき、または、カウントアップクロック信号が発生したときに有効になる。そのほかの場合は、φ1−PWMがハイレベル、φ2−PWMがロウレベルの状態に固定される。
【0076】
リードライト制御回路730は、バスコントローラ3を介して、CPU1の出力する内部アドレス、リード信号RD、ライト信号WR、そしてPWMタイマ選択信号MSPWM#を入力して、各レジスタとバスインタフェースを制御して、各レジスタと例えばCPU1との間のデータの入出力を制御する。
【0077】
出力制御回路750は、CMP774の出力するコンペアマッチ信号780と、TCNT772の出力するオーバフロー信号781、及びTCR771からのOEビットを入力して、PWM信号を出力する。OEビットが論理値”1”にセットされると、PWM信号は所定の、入出力ポートと兼用の端子から外部に出力される。PWM信号は、コンペアマッチ時(コンペアマッチ信号780が論理値”1”)には論理値”1”を出力し、オーバフロー時(オーバフロー信号781が論理値”1”)には論理値”0”を出力する。
【0078】
バスインタフェース760は、リードライト制御回路730の制御によって、内部データバスPDBとPWMタイマ7の内部のモジュールデータバスとの間での情報の入出力を行う。
【0079】
TCR771は、OEビットとCK1〜CK0を有し、リードライト制御回路730の制御に従ってデータが入出力される。OEビットが”1”にセットされると、PWMタイマ7は動作する。CK1〜CK0ビットは前述の通り、カウントクロック周期を選択するためのビットとされる。TCNT772は、リードライト制御回路730の制御に従ってデータを入出力する。また、カウンタクロック制御回路740の出力するカウントクロック信号741によってカウントアップ動作を行う。カウントアップ動作によって、オーバフローが発生した場合、TCNT772は、オーバフロー信号781を活性状態とする。DTR773は、リードライト制御回路730の制御に従ってデータを入出力する。CMP774は、TCNT772及びDTR773の出力を入力して比較し、その結果が一致したときにコンペアマッチ信号780を活性状態とする。
【0080】
図7の(B)にはクロック制御回路710の一例が示されている。クロック制御回路710は、2個の論理和回路711,712、1個の論理積回路713で構成される。タイマ選択信号MSPWM#の反転信号とカウントアップクロック信号741とが論理和回路711に入力される。論理和回路711の出力の反転信号とクロック信号φ1Sとが論理和回路712に入力され、この出力がクロック信号φ1−PWMとされる。また、論理和回路711の出力とクロック信号φ2Sが論理積回路713に入力され、この出力がクロック信号φ2−PWMとされる。クロック信号φ1−PWM,φ2−PWMは、CPU1がPWMタイマ7をリード/ライトするためにタイマ選択信号MSPWM#を活性状態にしたとき、または、カウントアップクロック信号741が発生したときに有効になる。そのほかの場合は、クロック信号φ1−PWMがハイレベル、クロック信号φ2−PWMがロウレベルの状態に固定される。つまり、所定のイベント(CPU1のリード/ライト、及び、カウントアップクロック信号の発生)が生じたときのみ、各部に供給されるべきクロックφ1−PWM、φ2−PWMがクロック変化を行う。従ってクロック信号φ1−PWM、φ2−PWMを受けて、それに同期して動作される回路、即ちノーオーバラップ生成回路700,クロック制御回路710,分周器720,カウンタクロック制御回路740以外の機能ブロックは、上記所定のイベントが発生したときのみ動作される。そのほかの状態では信号の変化が抑止され、消費電流が抑止される。
【0081】
ノーオーバラップ生成回路700は、上述のように図7の(A)のような構成にされ、モジュールストップ信号MSTPPWMのハイレベルによってφ1Sがハイレベル、φ2Sがローレベルに固定される。図7の(B)からも明らかなようにノーオーバラップ生成回路700における上記モジュールストップ状態においてはクロック信号φ1−PWM,φ2−PWMも夫々所定のレベルに固定される。このようにPWMタイマ7を全く利用しない場合にはモジュールストップ信号MSTPPWMにて内部のクロック信号φ1S,φ2S,φ1−PWM,φ2−PWMの変化を抑止し、PWMタイマ7を利用する場合にも上記所定のイベントが発生するまで内部のクロック信号φ1−PWM,φ2−PWMの変化を抑止することによって、低消費電力を図ることができる。
【0082】
上述のノーオーバラップ生成回路700及びクロック制御回路710による内部クロック信号の変化を選択的に抑止する構成はその他の回路モジュール例えばWDT8,SCI9,A/D10にも同様に適用されている。高分周比のプリスケーラクロック信号の供給と内部分周器による低分周比のクロック生成に関しても同様である。
【0083】
図7の(C)にはWDT8に採用されるノーオーバラップ生成回路の例が示される。図7の(A)に示したノーオーバラップ生成回路700に対して論理積回路707が追加されている。論理積回路707の一方の入力にはWDT8に割り当てられたモジュールストップ信号MSTPWDTが供給され、他方の入力にはウオッチドッグタイマモードを指定するWDTMビットの反転信号供給される。WDT8はインターバルタイマとしても利用可能にされ、それをウオッチドッグタイマとして利用する場合にはWDTMビットが論理値”1”にされる。所定のレジスタにWDTMビットが設けられ、このビットを例えばCPU1によって論理値”1”にして、ウオッチドッグタイマモードを指定すれば、換言すれば、一旦、ウオッチドッグタイマモードが指定されると、モジュールストップ信号MSTPWDTによるモジュールストップの指示は無視される。これにより、WDT8を利用したシステム監視の機能が誤って解除される事態を防止でき、システムの信頼性向上に寄与する。
【0084】
図8には図6のPWMタイマの動作タイミングチャートが示されている。CPU1はステートS3からPWMタイマ7のTCR771をライトする。かかるライト動作は3ステートを要し、先ずステートS3においてモジュール選択信号MSPWM#がロウレベルとされる。モジュール選択信号MSPWM#がロウレベルにされると、図7の(B)に示される論理和回路711の出力がハイレベルとなって、クロック信号φ1−PWM、φ2−PWMがφ1S、φ2Sに同期して変化を開始する。なお、MSPWM#はφ1Sに同期している。ライト動作の3ステート目(ステートS5の開始タイミング)でOEビットが”1”にセットされる。また、CK1〜CK0が設定され、この設定されたCK1〜CK0により、例えばクロック信号φS/2が選択される。
【0085】
OEビットが”1”にセットされた状態で、分周器720の生成するクロック信号φS/2がカウントアップクロック信号741とされ、このカウントアップクロック信号がハイレベルの期間において、クロック信号φ1−PWM、φ2−PWMがクロック信号φ1S、φ2Sに従って変化され、PWMタイマ7はカウントアップ動作を行う。ステートS6〜ステートS12の期間は、φ1−PWM,φ2−PWMの周期は、クロック信号φ1S,φ2Sをそのまま使用する場合に比較して、1/2にされる。これに従って、ノーオーバラップ生成回路700,クロック制御回路710,分周器720,カウンタクロック制御回路740以外の回路ブロックの動作頻度も1/2になり、かかる部分の消費電流も1/2にすることができる。例えば、かかる部分の論理規模と、ノーオーバラップ生成回路700,クロック制御回路710,分周器720,カウンタクロック制御回路740の論理規模との比が、8:2であるとすれば、PWMタイマ7全体の消費電流も6/10にすることができる。カウントアップクロックにφ/16UPを選択すると、これはφS/8の周波数に等しいから、前記部分の消費電流は1/8とされ、PWMタイマ7全体の消費電流を3/10にすることができる。
【0086】
また、ステートS13〜ステートS15におけるCPU1のライト動作によって、OEビットが”0”にクリアされると、論理和回路711の出力がロウレベルにされ、これによってφ1−PWMはハイレベル、φ2−PWMはロウレベルに固定される。PWMタイマ7のタイマ動作中(ステートS3〜ステートS5、ステートS7、ステートS9、ステートS11、ステートS13〜ステートS15)は、φ1−PWM、φ2−PWMのパルス幅が同等であり、動作の中断中は、直流的に、φ1−PWMがハイレベル、φ2−PWMがロウレベルとされている。この動作の中断状態において内部状態は保持されている。すなわち、PWMタイマ7のノーオーバラップ生成回路700,クロック制御回路710,分周器720,カウンタクロック制御回路740以外の回路ブロックにおける順序回路は、図3の(C)で示したような順序回路が使われ、クロック信号φ2がクロック信号φ2−PWMとされ、クロック信号φ1がクロック信号φ1−PWMとされるからである。
【0087】
同様に、モジュールストップモードでは、モジュールストップ信号MSTPPWMが活性状態になり、φ1Sがハイレベル、φ2Sがロウレベルの状態で停止し、更に、φ1−PWMがハイレベル、φ2−PWMがロウレベルの状態で停止する。この状態においてPWMタイマ7自体の状態は、前記同様に、保持される。例えば、TCR771の内容や、DTR773,TCNT772の内容は保持される。モジュールストップ解除後に、TCR771の再設定などを行う必要はない。モジュールストップ状態では、CPU1によるリード/ライトも行えない。φ1S及びφ2Sが停止するので、PWMタイマ7全体の信号変化が抑止され、その間における消費電流は実質的に0とされる。なお、図7の(A)に示されるタイマモジュールストップ信号MSTPPWMの供給ラインに、論理積回路の出力を接続し、当該論理積回路にタイマモジュールストップ信号MSTPPWMとタイマモジュール選択信号MSPWM#を供給するようにしてやれば、モジュールストップ状態を設定していても、PWMタイマ7はCPU1からリード/ライト可能にされる。
【0088】
《クロック制御回路》 図9には図1に示されるシングルチップマイクロコンピュータのクロック発振器12及びクロック制御回路13のブロック図が示されている。クロック制御回路13は、分周器130、セレクタ131、クロック制御レジスタ132、モジュールストップ制御レジスタ133、スタンバイ制御回路134で構成される。モジュールストップ制御レジスタ133は選択可能な機能ブロックに対応して、所定のビット数分設けられている。すなわち、選択可能な機能ブロックに、それぞれ対応したビットが、モジュールストップ制御レジスタ133に設けられている。発振器12には、EXTAL、XTAL端子を介して水晶振動子が接続され、又はEXTAL端子から外部クロックが供給される。水晶振動子を利用する場合、この水晶振動子と回路12とによって、発振回路が構成されるとみなすことができる。発振回路12は、特に制限されないが、水晶振動子の固有振動数、又は外部クロックの周波数と同一の周波数のクロック信号φOSCを生成する。発振器12はスタンバイ制御回路134から発振器停止信号135が与えられ、スタンバイ状態において発振器停止信号135が活性状態にされることによって発振器12は停止され、クロック信号φOSCは例えばハイレベルに固定されてその変化が停止される。なお、発振器12はデューティ補正回路を内蔵してもよい。また、発振器12は分周器を内蔵して、水晶振動子又は外部クロックを2分周したクロック信号をφOSCとして出力してもよい。これらについては、例えば、平成5年3月(株)日立製作所発行『H8/3003
ハードウェアマニュアル』P553乃至P560に記載されている。
【0089】
分周器130は、クロック信号φOSCを入力して、例えば順次2分周を行い、クロック信号φOSC/2、φOSC/4、φOSC/8を生成する。セレクタ131は、クロック信号φOSC、φOSC/2、φOSC/4、φOSC/8を入力して、クロック制御レジスタ132のMSMEビット,CKS1,CKS0ビットで選択されたクロック信号を、システムクロック信号φBとして出力し、シングルチップマイクロコンピュータにおける上記CPU1などに供給する。或はφOSC/2、φOSC/4、φOSC/8の代りにカウントアップクロックφOSC/4UP、φOSC/8UP、φOSC/16UPを入力するようにしてもよい。セレクタ131によって選択内容を変更する場合、特に、変更前と変更後でクロック信号の位相を合わせるようなことは行わない。例えばクロック信号φS(セレクタ131内部で生成できる場合にはφ1S)の立ち上がりに同期して変更することによって、遷移時の最小パルス幅が、クロック信号φS(φOSC)のパルス幅以上になる。低消費電力状態として、クロック信号を停止する場合にはφOSCがハイレベルとされ、クロック信号φB及びφSもハイレベルとされる。図10の(A)にはMSMEビット、CKS1ビット、CKS0ビットの論理値によるクロック信号の選択態様の一例が示される。CKS1,CKS0はMSME=”1”のとき有意とされ、MSME=”0”のときはCKS1,CKS0に拘わらずφS=φOSCとされる。
【0090】
図10の(B)には、上記MSMEビット、CKS1ビット、CKS0ビットによって制御されるセレクタの一実施例が示される。同図において、AG101は、CKS1ビット、CKS0ビット及びMSMEビットを受け、これらのビットが”1”のとき、”1”を出力するアンドゲート(論理積回路)であり、AG102は、CKS0ビットの反転信号、CKS1ビット及びMSMEビットを受け、CKS0=”0”、CKS1=”1”、MSME=”1”のとき、”1”を出力するアンドゲートであり、AG103は、CKS1ビットの反転信号、CKS0ビット及びMSMEビットを受け、CKS1=”0”、CKS0=”1”、MSME=”1”のとき、”1”を出力するアンドゲートである。AG104は、CKS0ビットの反転信号、CKS1の反転信号を受け、CKS0=”0”、CKS1=”0”のとき、”1”を出力するアンドゲートであり、NG101は、上記AG104の出力とMSMEビットの反転信号を受け、AG104の出力が”1”又はMSME=”0”のとき、”1”を出力するオアゲート(論理和回路)である。そのため、オアゲートNG101は、MSMEビットが”0”のとき、又はCKS0ビットとCKS1ビットが共に”0”のときに、”1”を出力する。
【0091】
AG105は、上記オアゲートNG101の出力とクロック信号φOSCを受けるアンドゲートであり、AG106は、上記アンドゲートAG103の出力と分周されたクロック信号φOSC/2とを受けるアンドゲートであり、AG107は、上記アンドゲートAG102の出力と分周されたクロック信号φOSC/4を受けるアンドゲートであり、AG108は、上記アンドゲートAG101の出力と分周されたクロック信号φOSC/8を受けるアンドゲートである。これらのアンドゲートAG105〜AG108の出力は、オアゲートNG102に供給され、該オアゲートNG102から上記システムクロック信号φBが出力される。このように、セレクタを構成することにより、オアゲートNG102からは、図10の(A)に示されている各ビットの組み合わせに従った周波数を有するシステムクロック信号φBが出力される。
【0092】
クロック制御レジスタ132及びモジュールストップ制御レジスタ133は、内部データバスPDBに接続され、CPU1からリード/ライト可能とされる。クロック制御レジスタ132は、MSMEビット、CKS1、CKS0ビットを、セレクタ131に出力すると共に、SSBYビットをスタンバイ制御回路134に出力する。モジュールストップ制御レジスタ133は、モジュールストップ信号MSTPを各機能ブロックに供給する。スタンバイ制御回路134は、例えば、フリップフロップで構成され、制御レジスタ132のSSBYビットが論理値”1”の状態で、CPU1がスリープ命令を実行する(スリープ命令実行信号が活性状態)と、かかるフリップフロップがセット状態にされる。このフリップフロップのセット状態により、発振器停止信号135が活性状態になり、発振器12の発振動作が停止されてシングルチップマイクロコンピュータはスタンバイ状態となる。また、スタンバイ状態で外部割り込み要求やリセットが発生すると、例えば、割り込みコントローラ4の制御によって、スタンバイ解除信号136が活性状態になり、前記フリップフロップはリセット状態にされる。このリセット状態によって、発振器停止信号135が非活性状態になり、発振器12の発振動作が再開されてスタンバイ状態が解除される。スタンバイ状態解除時に、発振安定時間を設けるようにするとよいが、解除の詳細な手順や構成は本発明に直接の関係がないので、その詳細な説明は省略する。尚、CPU1がスリープ命令を実行するとCPU1内部の動作クロックは停止される。SSBYビットが論理値”0”にされているときにCPU1がスリープ命令を実行したときはクロック発振器12の発振動作は停止されない。CPU1がスリープ命令を実行して当該CPU1にセットされた状態(CPU1のスリープ状態)は割り込みやリセットによって解除可能にされる。
【0093】
図11の(A),(B)にはモジュールストップモードを制御するモジュールストップ制御レジスタ133のレジスタ構成と中速モードを制御するクロック制御レジスタ132のレジスタ構成例が示されている。図12の(A)〜(C)、図13の(A)〜(B)、及び図14の(A)〜(C)にはそれらレジスタの各ビットの詳細が示されている。
【0094】
モジュールストップ制御レジスタ133は、CPU1によってリード/ライト可能な8ビットのレジスタで、ビットMSTP7〜MSTP3を有し、MSTP7はデータトランスファコントローラ(DTC)2、MSTP6はタイマ7、MSTP5はウオッチドッグタイマ(WDT)8、MSTP4はシリアルコミュニケーションインタフェース(SCI)9、MSTP3はA/D変換器10に対応する。図12の(A)〜(C)及び図13の(A)〜(B)に示されているように、これらにより、機能ブロック単位で、別々にモジュールストップ状態を指定することができる。PWMタイマ7のための上記モジュールストップ信号MSTPPWMは、ビットMSTP6が論理値”1”にセットされることによって活性状態にされる。ビットMSTP5に設定された論理値”1”は図7の(C)に基づいて説明した通り、実質的にウオッチドッグタイマモードでないときに有効とされる。電源投入後或いはリセット後におけるこれらのビットの初期値は、特に制限されないが、論理値”1”であり、リセット後は、モジュールストップ状態とされる。動作開始直後の消費電流を低減するようにしている。例えば、モジュールストップ状態の機能ブロックと、動作状態の機能ブロックの論理規模の比に応じて、消費電流が低減される。例えば、斯る比率を4:6とすると、消費電流は6/10に低減できる。
【0095】
プリスケーラ14は、プリスケーラクロック信号の供給対象であるタイマ7、WDT8、SCI9、A/D変換器10が全てモジュールストップ状態とされた時、即ち、MSTP6〜MSTP3ビットが全て”1”にセットされ、且つWDT8がウオッチドッグタイマモードでないときに、プリスケーラモジュールストップ信号MSTPPSCが活性状態になって、停止状態とされる。図9に従えばプリスケーラ14のためのモジュールストップ信号MSTPPSCはビットMSTP6〜MSTP3に対応するモジュールストップ信号とウオッチドッグタイマモード信号WDTMの反転信号との論理積を採る論理積回路137によって形成される。なお、モジュールストップ制御レジスタ133のビット2〜ビット0はリザーブビットであり、リードすると”0”が読み出され、ライトは無効とされる。
【0096】
クロック制御レジスタ132は、図11の(A)に示されるようにSSBY、MSME、CKS1、CKS0の4ビットを有する。図14の(A)に示されるように、SSBYビットはスタンバイ状態への遷移を制御する。SSBYビットが論理値”1”にセットされた状態で、CPU1がスリープ命令を実行すると、クロック発振器12の発振動作が停止されて、シングルチップマイクロコンピュータはスタンバイ状態に遷移し、SSBYビットが論理値”0”にクリアされた状態で、CPU1がスリープ命令を実行すると、CPU1内部のクロック信号が停止されてCPU1は所謂スリープ状態に遷移する。このようなスタンバイ状態では、シングルチップマイクロコンピュータ全体が停止するが、スリープ状態では、CPU1のみが停止する。
【0097】
図14の(B)及び図14の(C)に示されているように、ビットMSMEは中速モードの許可ビットであり、このビットが論理値”1”にセットされているときにのみ、ビットCKS1、CKS0によるクロック信号の指定が有効になる。斯るビットMSME、CKS1、CKS0がセレクタに供給されることにより、φOSC、φOSC/2、φOSC/4、φOSC/8から、マイクロコンピュータのシステムクロック信号φBが選択される。なお、システムクロック信号φBの1周期の時間を1ステートと呼ぶ。クロック信号φBとしてクロック信号φOSC以外のクロックが選択された状態を中速モードと呼ぶ。なお、ビット6乃至ビット3はリザーブビットであり、リードすると”0”が読み出され、ライトは無効である。
【0098】
図15には本実施例のシングルチップマイクロコンピュータにおけるシステムクロック信号に着目した概略的な動作フローチャートが示されている。リセット直後、シングルチップマイクロコンピュータは、モジュールストップ状態とされ、CPU1などのバスマスタは高速モード(φB=φOSC)で動作を開始する。そして中速モードかの判定が行われ(ST1)、高速動作が必要でなければクロック制御レジスタに所望の値をライトして、中速モードに遷移する(ST2)。動作を必要とする機能ブロックに対応しては、モジュールストップ制御レジスタに所望の値をライトして、所要の機能ブロックに対するモジュールストップ状態を解除をする(ST3)。その後、各機能ブロックの設定を行う(ST4)。例えば、各機能ブロックの制御レジスタなどに所望の値を初期的にライトすることによって行う。そしてCPU1により所望の処理が行われるが(ST5)、その際に高速処理が必要でなければ中速モードに遷移可能にするために、クロック信号φBを変化させるべきかを判定して(ST6)、その結果に従ってクロック制御レジスタが設定される(ST7)。特定の機能ブロックを動作させる必要がなくなったり、特定の機能ブロックの動作が新たに必要になったときに対処するために動作させるべき回路モジュール(機能ブロック)に変更が有るかの判定が行われ(ST8)、変更すべきときにはモジュールストップ制御レジスタに所望の値をライトして、モジュールストップ状態を変更する(ST9)。そしてスタンバイ状態にすべきか否かを判定し(ST10)、マイクロコンピュータ全体の動作を中断する必要があれば、SSBYビットを”1”にセットして、スリープ命令を実行し(ST11)、スタンバイ状態に遷移する(ST12)。外部割り込みが発生すると、スタンバイ状態から復帰して動作を再開する(ST13)。上述のようにスタンバイ状態においてモジュールの内部状態は保持されているので、スタンバイ状態の解除後は各機能ブロックの設定例えば各機能ブロックの制御レジスタなどへのライトを行う必要はない。上記の各ステップにおけるレジスタの設定はプログラムによって行う。例えば、レジスタを指定し、それにデータをライトする命令を、CPU1によって実行することにより、レジスタへの設定が行われる。
【0099】
《割込み要求等に伴うφBの切換え》 本発明者らの検討によれば、低消費電力化のためのクロックの切り換えをソフトウェアで行うと、所定のイベント例えばCPU1への割り込みが発生してCPU1を高速処理させる必要がある場合、かかるイベントを割込として認識し、割込例外処理を実施し、その割込処理ルーチンの中で、システムクロックの分周比を切り換えた後に、所望の処理をすることになってしまう。これでは、前記イベントが発生してから、所望の処理をするまでの動作速度を速めることができず、割り込みに対する応答時間が長くなってしまい、都合が悪い。本実施例では、割込要求や転送要求などの所定のイベントが発生すると、制御ビットMSMEが自動的に論理値”0”にクリアされ、CPU1やDTC2をクロック信号φBの最高周波数であるφOSCに同期動作させる高速モードに遷移できるようになっている。割込み例外処理からのリターン時に、ビットMSMEは論理値”1”にセットされる。ソフトウェアでビットMSMEを論理値”1”にセットすると、設定済の制御ビットCKS0,CKS1に従った動作モードになる。DTC起動要求(DTC転送要求)が発生すると、同様に制御ビットMSMEビットが、自動的に論理値”0”にクリアされ、CPU1及びDTC2は高速モードに遷移する。DTCデータ転送が終了すると、MSMEビットが、自動的に論理値”1”にセットされ、設定済の制御ビットCKS0,CKS1に従った動作モードになる。DTC2に外部からの転送リクエスト端子があれば、外部からの転送要求があった場合も同様にすることができる。
【0100】
図16にはMSMEビットの概略ブロック図が示される。MSMEビットは、例えばセット・リセット型のフリップフロップ1320を主体として構成される。フリップフロップ1320のデータ入力端子Dは内部データバスPDBの所定の信号線に接続され、クロック入力端子Cは、論理積回路1321の出力、即ちCPU1のバス権を示す信号とライト信号とアドレスデコード信号との論理積信号とされる。なお、上記アドレスデコード信号は、アドレスバスIABの内容を解読して得られる信号であり、クロック制御レジスタ132のアドレスが与えられたことを示す信号である。出力端子Qは、クロック制御回路13のセレクタ131に与えられると共に、クロックドバッファ1322を介してデータバスに出力される。クロックドバッファ1322は上記デコード信号とリード信号を入力とする2入力の論理積回路1323のハイレベル出力によって出力動作可能にされ、それ以外の状態においては高出力インピーダンス状態にされる。リセット入力端子Rには、リセット信号とDTC転送要求信号とCPU割り込み信号との論理和信号が論理和回路1324から与えられる。セット入力端子Sには、DTC転送終了信号1325が与えられる。DTC転送終了信号1325は、DTC2から出力され、例えばデータ転送終了時にDTC2が活性化する。上記リセット信号としては、外部からのリセット信号RES又はウオッチドッグタイマWDT8の出力信号が使われる。また、上記DTC転送要求信号は、割込みコントローラ4から供給され、上記CPU割込み信号も、割込みコントローラ4から供給される。
【0101】
上記CPU割り込み信号及びDTC転送要求信号はイベント発生信号とされる。DTC2が割り込みコントローラ4からのDTC転送要求以外に外部からの転送要求の入力端子を持つ場合には、当該外部からの転送要求信号と割り込みコントローラからの転送要求信号との論理和信号がDTC転送要求信号として上記論理和回路1324に供給される。なお、CPU1のマスク情報を参照して、CPU1のマスクレベル以下の割り込み要求が発生しても、イベントとして認識されない。割り込みマスクについては、例えば、平成5年3月(株)日立製作所発行『H8/3003 ハードウェアマニュアル』P89乃至P115に記載されている。
【0102】
図17には割り込み要求発生時における動作タイミングの一例が示される。ビットCKS1が”0”にクリアされ、ビットCKS0が”1”にセットされ、ビットMSMEが”1”にセットされた状態で、φB=φOSC/2で動作している状態(中速モードの状態)において、ステートS5で、割り込み要求信号が発生すると、MSMEビットが”0”にクリアされ、φB=φOSCとなり、CPU1及びDTC2などは高速モードにされる。CPU1が、割り込み例外処理を行い、高速モードで処理すべき処理を終了すると、CPU1はその動作プログラムに従ってMSMEビットをソフトウェアで”1”にセットする。例えばステートS15でMSMEビットが”1”にセットされ、φB=φOSC/2とされ、その後CPU1はリターン命令を実行して、元の処理に遷移される。
【0103】
図18にはDTC起動要求発生時における動作タイミングの一例が示される。図17と同様に、まず、CPU1は、中速モード(ビットCKS1が”0”にクリアされ、ビットCKS0が”1”にセットされ、ビットMSMEが”1”にセットされた状態で、φB=φOSC/2とされている)で動作している。このときDTCの起動要因となっているDTC転送要求が発生すると、ビットMSMEが”0”にクリアされ、φB=φOSCとされてCPU1及びDTC2などが動作される。DTCが起動されると、例えば起動要因となった割り込み要因がクリアされ、データ転送が行われる。必要なデータ転送が終了すると、DTC2からのDTC転送終了信号1325が活性状態になり、これによってMSMEビットが”1”にセットされ、CPU1などの機能ブロックの動作速度は元の速度に戻される。
【0104】
《インタフェース信号》 図19にはバスマスタとバススレーブとのインタフェースの一例が概略的に示されてい。同図にはインタフェース信号I/F1とI/F2が代表的に示されている。図20にはバスマスタクロックとバススレーブクロックの一例のタイミングが示されている。本実施例に従えばバスマスタは、クロック信号φBに同期動作されるCPU1及びDTC2であり、バススレーブはクロック信号φSに同期動作されるWDT8やSCI9などの機能ブロックを意味する。
【0105】
クロック信号φBは、上記セレクタ131による選択状態に応じてクロック信号φSよりも常に周期が長いか同等にされ、クロック信号φBの立ち下がりエッジはφSの立ち上がりエッジに同期している。φ1S,φ2SはφSから生成されたノーオーバラップの2相クロック信号であり、φ1B,φ2BはφBから生成されたノーオーバラップの2相クロック信号である。図20においてクロック信号φBのデューティは50%以上にされている。クロック信号φBは、例えばクロック信号φSに相当するクロック信号φOSCをデューティ50%で2分周した信号と4分周した信号との論理和によって形成することができる。或はカウントアップ信号φOSC/8UPの反転としてもよい。特に図20の例では、クロック信号φ1Bのローレベル期間はクロック信号φ1Sのローレベル期間に一致され、クロック信号φ2Bのハイレベル期間はクロック信号φ2Sのハイレベル期間に一致されている。換言すれば、クロック信号φ1Bのローレベルのパルス幅はクロック信号φ1Sのそれと等しく、クロック信号φ2Bのハイレベルのパルス幅はφ2Sのそれと等しくされている。
【0106】
図19の例ではバスマスタの出力信号はクロック信号φ1Bのハイレベルへの変化に同期して、出力され、バスマスタへの入力信号は、クロック信号2Bのハイレベルからローレベルへの変化に同期してラッチされる。バススレーブへの入力信号は、クロック信号φ2Sのハイレベルからローレベルへの変化に同期してラッチされ、バススレーブの出力信号はクロック信号φ1Sのハイレベルへの変化に同期して、出力される。図20を参照すると、バスマスタは、クロック信号φB及びφ1Bのハイレベル期間に同期して出力し、バススレーブは、φS及びφ1Sのハイレベル期間に同期して、出力する。また、バスマスタは、クロック信号φBがローレベルでφ2Bがハイレベルの期間に、入力する(ラッチは、クロック信号φ2Bのハイレベルからローレベルへの変化に同期して行われる)。バススレーブは、φSがローレベルでφ2Sがハイレベルの期間に、入力する(ラッチはクロック信号φ2Sのハイレベルからローレベルへの変化に同期して行われる)。例えば、図20において、インタフェース信号I/F1はバスマスタからバススレーブへのインタフェース信号とされる。インタフェース信号I/F1は、ステートS9のφ1Bのハイレベルへの変化に同期してバスマスタから出力され、ステートS9のφ2Sのハイレベルからローレベルへの変化に同期してバススレーブにラッチされる。また、インタフェース信号I/F2はバススレーブから、バスマスタへのインタフェース信号とされる。インタフェース信号I/F2は、ステートS3のφ1Sのハイレベルへの変化に同期してバススレーブから出力され、ステートS4のφ2Bのハイレベルからローレベルへの変化に同期してバスマスタにラッチされる。したがって、信号の出力開始から取り込みまで、必ず、クロック信号φSの1ステート以上の期間を確保できる。これにより、タイミング設計は、中速モードを考慮しない場合、即ちφB=φOSCとした場合と同様にすることができる。
【0107】
図21及び図22には入出力制御のための同期クロック信号を図19及び図20と逆にした場合が示される。図21の例ではバスマスタの出力はクロック信号φ2Bのハイレベルへの変化に同期され、バスマスタへの入力はクロック信号1Bのハイレベルからローレベルへの変化に同期してラッチされる。バススレーブへの入力はクロック信号φ1Sのハイレベルからローレベルへの変化に同期してラッチされ、バススレーブの出力はクロック信号φ2Sのハイレベルへの変化に同期される。図22を参照すると、バスマスタの出力はクロック信号φBのローレベル及びφ2Bのハイレベル期間に、バススレーブの出力はφSのローレベル及びφ2Sのハイレベル期間に同期して行われる。バスマスタの入力はクロック信号φB及びφ1Bがハイレベルの期間に行われる(ラッチはクロック信号φ1Bのハイレベルからローレベルへの変化に同期して行われる)、バススレーブの入力はφS及びφ1Sがハイレベルの期間に行われる(ラッチはクロック信号φ1Sのハイレベルからローレベルへの変化に同期して行われる)。例えば、図22において、インタフェース信号I/F1はバスマスタからバススレーブへのインタフェース信号とされる。インタフェース信号I/F1は、ステートS4のφ2Bのハイレベルへの変化に同期してバスマスタから出力され、ステートS5のφ1Sのハイレベルからローレベルへの変化に同期してバススレーブにラッチされる。また、インタフェース信号I/F2はバススレーブから、バスマスタへのインタフェース信号とされる。インタフェース信号I/F2は、ステートS7のφ2Sのハイレベルへの変化に同期してバススレーブから出力され、ステートS12のφ1Bのハイレベルからローレベルへの変化に同期してバスマスタにラッチされる。したがって、信号の出力開始から取り込みまで、必ず、クロック信号φSの1ステート以上の期間を確保できる。これにより、タイミング設計は、中速モードを考慮しない場合、即ちφB=φOSCとした場合と同様にすることができる。
【0108】
図20及び図22に示されるように、バスマスタの動作クロック(φ1B,φ2B)は、バススレーブの動作クロック(φ1S,φ2S)に比べ周波数が低いため、バスマスタからバススレーブへのインタフェース信号は、必ず、当該バスマスタの出力ステートと同じステートでバススレーブが認識できる。そのため、バスマスタのステート単位で、インタフェース信号は任意のパルス幅とすることができる。かかるインタフェース信号には、リード信号・ライト信号などのバスアクセス信号、或いは割込要因クリア信号などを割り当てることができる。
【0109】
図20及び図22に示されるように、バススレーブの動作クロックはバスマスタの動作クロックに比べ周波数が高いため、バススレーブからバスマスタへのインタフェース信号は、バススレーブの出力後、バスマスタに認識されるタイミング(当該バススレーブのステート)を一定にすることはできない。したがって、これらのインタフェース信号は、所謂ハンドシェーク信号とするのが良い。かかるインタフェース信号には、割込要求信号信号、或いはDTC起動要求信号などを割り当てることができる。例えば、割込要求信号は、一旦、要因フラグが”1”にセットされ、活性状態になると、これを保持する。CPUが割込要求信号を認識して、割込要因フラグを”0”にクリアすると、割込要求信号が非活性状態になるようにされる。また、これらのインタフェース信号は1ステートで認識されるようにはしない。1ステート期間のみで使用する場合には、入力側でエッジ検出を行うようにする。尚、そのときの出力期間を、選択可能なシステムクロック信号φBの最長の周期即ちクロック信号φOSC/8の周期以上の期間とすれば、ハンドシェークは一切要しない。
【0110】
バスマスタ間、或いはバススレーブ間の要求信号は任意のタイミングとすることができる。
【0111】
図23にはバスマスタクロックとバススレーブクロックの別の動作タイミングが示される。図20及び図22とは相違して、クロック信号φBは中速モードでもデューティ50%とされる。クロック信号φBはφSよりも常に周期が同等か長く、クロック信号φBの立ち上がりエッジはφSの立ち上がりエッジに同期している。各機能ブロック間のインタフェース信号の入出力タイミングは図19と同様であり、詳しくは次の通りである。すなわち、バスマスタ(バススレーブ)は、φBとφ1Bのハイレベル期間(φSとφ1Sのハイレベル期間)に同期して出力が許容される(出力信号変化が許容される)。信号入力に関してバスマスタ(バススレーブ)は、φBがローレベルでφ2Bがハイレベルの期間(φSがローレベルでφ2Sがハイレベルの期間)に入力が許容される。バスマスタの入力ラッチタイミングはクロック信号φ2Bのハイレベルからローレベルへの変化に同期され、バススレーブの入力ラッチタイミングはクロック信号φ2Sのハイレベルからローレベルへの変化に同期される。例えば、図において、インタフェース信号I/F1はバスマスタから、バススレーブへのインタフェース信号とされる。インタフェース信号I/F1は、ステートS9のφ1Bに同期してバスマスタから出力され、ステートS9のφ2Sのハイレベルからローレベルへの変化に同期してバススレーブにラッチされる。また、インタフェース信号I/F2はバススレーブから、バスマスタへのインタフェース信号とされる。インタフェース信号I/F2は、ステートS3のφ1Sに同期してバススレーブから出力され、ステートS4のφ2Bのハイレベルからローレベルへの変化に同期してバスマスタにラッチされる。従って、信号の出力開始から取り込みまで、必ず、クロック信号φSの1ステート以上の期間を確保できる。これにより、タイミング設計は、中速モードを考慮しない場合、即ちφB=φOSCとした場合と同様にすることができる。
【0112】
図23のタイミングにおいて着目すべき点は、クロック信号φ2Bの立ち上がりがクロック信号φ1Sの立ち上がりタイミングに一致され、この点においてクロック信号φ2Bとφ1Sとは部分的に位相が一致されている。この位相が一致したタイミングにおいて、バススレーブからバスマスタへの信号出力が行われるようになっている。
【0113】
このとき、図23のクロック信号を用いたインタフェース制御タイミングを図21のように逆にした場合には、φBとφSとの位相によって、信号の出力開始から取り込みまでの時間が確保できない場合があり、信号が正しく伝達できない場合がある。例えば、バススレーブが図23のステートS6におけるφ2Sの立ち上がりに同期して信号を出力したとき、バスマスタはステートS7におけるφ1Bの立ち下がりに同期して入力データをラッチすることが許容され、信号出力からその信号の入力ラッチまでの間にクロック信号φSの1/2周期しか確保することができない。これは、信号が1本だけの場合には問題にならなくても、信号が複数存在するバスのような場合、複数の信号の内、旧い信号が伝達されるものと、新しい信号が伝達されるものが混在することが発生し、これらの組み合わせによって意味をなす場合に無意味なデータとなってしまったり、誤動作の原因となったりする場合がある。
【0114】
図19のようなインタフェース仕様で図23のようなクロック信号波形を利用する場合には、図23に示されるように、バスマスタの動作クロックがバススレーブの動作クロックに比べて周波数が低いため、バスマスタから、バススレーブへのインタフェース信号は、必ず、バスマスタの出力と同じステートでバススレーブに認識される。そのため、ステート単位で、インタフェース信号は、任意のパルス幅とすることができる。かかるインタフェース信号には、リード信号・ライト信号などのバスアクセス信号、或いは割込要因クリア信号などを割り当てることができる。
【0115】
バススレーブの動作クロックがバスマスタの動作クロックに比べ周波数が高いため、図23においてバススレーブから、バスマスタへのインタフェース信号は、バススレーブの出力後、バスマスタに認識されるタイミング(当該バススレーブのステート)を一定にすることはできない。したがってそれらのインタフェース信号は、所謂ハンドシェーク信号とすることが良い。かかるインタフェース信号には、割込要求信号信号、或いはDTC起動要求信号などを割り当てることができる。尚、そのときの出力期間を、選択可能なシステムクロック信号φBの最長の周期即ちクロック信号φOSC/8の周期以上の期間とすれば、ハンドシェークは一切要しない。
【0116】
ここで図20及び図22のクロック信号波形について更に説明を加える。図20、図22より明らかなようにφ2Bのハイレベル期間はφ1Sのローレベル期間に含まれる。従ってφ1Sの立ち上がりに同期するバススレーブの出力からφ2Bの立ち下がりに同期するバスマスタの入力信号ラッチ動作までには実質的にφSの1ステート分の余裕時間を少なくとも確保することができる。またφ2Sのハイレベル期間はφ1Bのローレベル期間に含まれる。従ってφ1Bの立ち上がりに同期するバスマスタの出力からφ2Sの立ち下がりに同期するバススレーブの入力信号ラッチ動作までには実質的にφSの1ステート分の余裕時間を少なくとも確保することができる。これらのことは、図19,図21の双方のインタフェース仕様に対して成立する。これに対し、図23のようにクロック信号φ2Bのハイレベルへの立ち上がり変化とφ1Sのハイレベルへの立ち上がり変化との位相が一致している関係のクロック信号φ1S,φ2S,φ1B,φ2Bなどを用いる場合には、当該位相一致のタイミングをバススレーブからバスマスタへの信号出力タイミングとして利用するバスインタフェース仕様(例えば図19のインタフェース仕様)においてのみ、信号の出力から当該信号の入力ラッチまでにφSの1ステート分の余裕時間を確保することができる。
【0117】
《実際のバスインタフェースタイミング例》 図24及び図25には実際のバスインタフェースタイミングの一例が示される。各図のタイミングは、図20及び図22に示されるクロック信号を利用した場合のもので、上述のようにそのインタフェース仕様は図19、図21の何れも全く同様に利用できるため、信号の種類に応じて最適な何れか一方のインタフェース仕様が採用されている例である。各図において、バスマスタからは、アドレス(PAB経由)、機能ブロック信号(MS#)、リード信号RD#、ライト信号WR#が与えられる。図24においてステートS5から、バスマスタのリード動作が行われる。すなわち、ステートS5からステートS16まで、アドレスバス及び機能ブロック選択信号(MS#)が有効になる。バスマスタの第1ステート(ステートS5からS8)のφ2Bに同期して、リード信号RD#が活性状態(ローレベル)になる。バススレーブはこのリード信号RD#の活性状態への遷移を検出して、レジスタリード信号及びバスインタフェースラッチ信号を当該バススレーブ内部で活性状態にする。例えば図6において、レジスタ771またはタイマカウンタ772などが、レジスタリード信号により指定され、指定されたレジスタ,カウンタからモジュールデータバスを介して、バスインタフェース760に、データが転送され、ラッチされる。レジスタリード信号などのバススレーブ内の制御信号は例えば図6のリードライト制御回路730の出力制御信号に含まれる。そしてステートS9における次のφ2Sに同期して、前記ラッチされたデータがデータバスに出力される。リード信号RD#が非活性状態とされた後、ステートS16の次のステートにおけるφ1Sの変化に同期して、データバスがハイインピーダンス状態にされる。リード信号RD#はバスマスタの第3ステート(ステートS13からS16)のφ2Bの立ち上がりに同期して非活性状態にされる。バスマスタはこのクロック信号φ2Bの立ち下がりに同期してデータバスの内容をラッチする。
【0118】
図25においてはステートS5から、バスマスタのライト動作が行われる。ステートS5からステートS16まで、アドレスバス及び機能ブロック選択信号(MS#)が有効になる。バスマスタの第1ステート(ステートS5からS8)におけるφ2Bの立ち上がりに同期して、ライトデータがデータバスに出力される。バスマスタの第2ステート(ステートS9からS12)のφ1Bの立ち上がりに同期して、ライト信号WR#が活性状態(ローレベル)になる。バススレーブはこのライト信号WR#の活性状態への遷移を検出して、バスインタフェースラッチ信号及びレジスタライト信号を活性状態にする。ライトデータがバスインタフェースにラッチされ、バスインタフェースから、モジュールデータバスを介して、指定されたレジスタまたはタイマカウンタなどに、データが転送され、ライトされる。かかる信号は例えば図6のリードライト制御回路730の出力する制御信号に含まれる。バスマスタの第3ステート(ステートS13からS16)におけるφ2Bの立ち上がりに同期して、ライト信号が非活性状態になる。
【0119】
《クロック信号φの外部出力》 図26に示されるようにシングルチップマイクロコンピュータは、外部にシステムクロック信号φS,φBを出力することができる。すなわち、システムクロック信号φSを、他の半導体集積回路装置などの基準クロックにする場合と、システムクロック信号φBをもとにして外部バスに同期した制御信号を生成する場合とがある。本発明においては、他の半導体集積回路装置などの基準クロックにするためにシステムクロック信号φSを、また、外部バスに同期した制御信号を生成するためにシステムクロック信号φBを出力可能にする。そのための出力端子TφS,TφBは所定の入出力ポートIOPにそれぞれ独立に設けられる。例えば、クロック信号φSの出力は入出力ポートIOP60に、クロック信号φBの出力は入出力ポートIOP61に割り当てられている。入出力ポートIOP60,IOP61はその他の入出力機能に兼用され、図1に示される入出力ポートIOP6に含まれる。
【0120】
このとき、クロック信号φS及びφBはクロック制御回路13で生成され、外部には上述の入出力ポートIOP60,IOP61を介して出力される。クロック信号φS及びφBは、半導体集積回路内では実質的に最高速の部類の信号である。また、クロック制御回路13と入出力ポートIOP60,IOP61との間の配線1310,1311は機能ブロック間に延在され、比較的大きな容量成分を持つ。したがってそのようなクロック信号の外部出力に際してはその比較的大きな容量成分と高いクロック周波数により消費電流も大きくなる。
【0121】
これらφS又はφBの外部出力は、必要な動作であるので、電流を消費するのは止むを得ない。しかしながら、シングルチップマイクロコンピュータなどでは、外部にクロックを出力する必要がない場合も多い。クロック出力を停止することは、例えば、特願昭60−184207号に記載されているように、低消費電力化のほか、カップリングノイズの低減、不要輻射の低減に効果がある。これに対応するため、本実施例では、クロック信号φSまたはφBを外部に出力しない場合には、クロック制御回路13と入出力ポートIOP60,IOP61と間の信号を例えば論理値”0”のレベルに固定し、クロック配線1310,1311上で信号変化が発生しないようにして、消費電流を低減するようになっている。例えば図26に概略的に示されるように、クロック制御回路13にて生成されたクロック信号φSの外部出力用に論理積回路1300とクロックドライバ1302の直列回路が設けられ、クロックドライバ1302の出力がクロック配線を介して入出力ポートIOP60に接続される。同様にクロック制御回路13にて生成されたクロック信号φBの外部出力用に論理積回路1301とクロックドライバ1303の直列回路が設けられ、クロックドライバ1303の出力がクロック配線を介して入出力ポートIOP61に接続される。入出力ポートIOP60,IOP61に対する出力の許可は対応する入出力ポートIOP6の図示しないデータディレクションレジスタの対応するビットDDR60,DDR61を用いることができる。ビットDDR60,DDR61を論理値”1”にセットすればIOP60,IOP61は出力許可状態とされる。これはφSとφBに対して独立に制御可能である。このとき、上記論理積回路1300の他方の入力には出力許可ビットDDR60の反転信号が供給され、論理積回路1301の他方の入力には出力許可ビットDDR61の反転信号が供給される。したがって、IOP60,IOP61にクロック信号φS,φBの出力が許可されていない状態においては論理積回路1300,1301の出力がローレベルに固定される。これによって、外部にクロック信号φS,φBを出力しないときにはクロックドライバ1302,1303以降のクロック配線での消費電力を低減でき、その上、カップリングノイズや不要輻射(不所望な電波の発生)を低減することができる。
【0122】
図27にはクロック信号φS又はφBの何れか一方を選択的に外部出力可能にした場合の変形例が示される。このときクロック制御レジスタ132には図28の(A)及び(B)に示されるPHISビットが備えられる。図28の(B)に示されるように、PHISビットが論理値”1”のときはクロック信号φSを、論理値”0”のときはクロック信号φBを外部に出力することを指示するものとされる。出力すべきクロック信号の選択は論理積回路1304,1305と論理和回路1306から成るセレクタによって行われる。このセレクタで選択されたクロック信号の外部出力の許可は上記入出力ポートIOP60に対する出力許可ビットDDR60にて行われ、当該出力許可ビットは図26の場合と同様に反転されて論理積回路1307に供給され、出力許可ビットDDR60によってクロック信号が出力許可される場合にだけセレクタの出力クロック信号が論理積回路1307及びクロックドライバ1308からクロック配線を介して入出ポートIOP61に与えられるようになっている。クロック信号の外部端子Tφへの出力が禁止されているときは、上記同様論理積回路1307の出力が論理値”0”に固定され、その結果クロックドライバ1308以降のクロック配線での消費電力の低減などを実現することができる。
【0123】
《内部バスの多分割》 図29にはシングルチップマイクロコンピュータの内部バスのその他の分割例が示されている。図29は特にシングルチップマイクロコンピュータの内部バスに着目したブロック図である。バッファBUFは入出力ポートIOP1〜IOP5に含まれ、外部アドレスバス及び外部データバスとインタフェースされるバッファ回路である。
【0124】
図1に示される内部アドレスバスPAB及び内部データバスPDBは、図29においてそれぞれ、内部アドレスバスPAB1及び内部データバスPDB1と、内部アドレスバスPAB2及び内部データバスPDB2に分割されており、内部バスPAB1及びPDB1には入出力ポートIOP1〜IOP6、WDT8、スタティックラッチ回路HD1が結合され、内部バスPAB2及びPDB2にはIOP7〜11、タイマ7、SCI9、A/D変換器10、及びスタティックラッチ回路HD2が接続される。
【0125】
内部バスPAB1とPAB2、そして内部バスPDB1とPDB2は、夫々配線長即ち配線容量が同等になるようにされ、且つ、それら全体の配線容量が図1の場合における内部バスPABとPDBの配線容量よりも大きくならないように、回路ブロックの実際のレイアウトに即して、分割された内部バスと回路モジュールとの割り当てが決定されている。論理的には、入出力ポートIOP、タイマ7、WDT8、SCI9、A/D変換器10は、分割された何れのバスに接続すべきかの制約はない。
【0126】
前記バスコントローラ3に含まれるモジュールセレクトの判定によって、PAB1とPDB1、PAB2とPDB2の何れかが活性状態になるようにされる。また、ROM5又はRAM6がアクセスされる場合には、PAB1とPDB1、PAB2とPDB2の何れもが、非活性状態にされる。非活性状態の場合、内部アドレスバスPAB1とPAB2は直前の値を保持するようにされる。また、バスコントローラ3及びWDT8などの機能ブロックの出力がハイインピーダンスとされたとき、内部データバスPDB1とPDB2の前の値は、スタティックラッチ回路HD1及びHD2によって保持される。スタティックラッチ回路HD1及びHD2は、例えば各信号線毎に逆並列接続された2個のインバータ回路が設けられて構成され、PDB1,PDB2の状態を保持するようにされ、他の機能ブロックがデータを出力した場合には、斯る出力データによるバスの駆動を優先されることができるような比較的小さな駆動能力を有するようにされる。即ち、スタティックラッチ回路HD1,HD2を構成するインバータ回路の出力電流は、PDB1,PDB2の漏洩電流より大きく、機能ブロックの出力電流より、十分に小さくされている。尚、図1の内部バスPDBやPABの分割数は3以上とすること可能である。内部アドレスバスPABの本数が少なければ、内部アドレスバスPABは共通にして、内部データバスPDBのみ分割するようにしてもよい。
【0127】
《低消費電力情報のベクタ化》 割り込み要求などに対する処理の高速化のためにクロック信号φBの周波数を強制的に高くする手段として、図9及び図10の(A)などで説明したクロック制御レジスタ132のMSMEビットを利用するほかに、割り込み処理(リセットのような例外処理も含む)の開始時に、ベクタとして低消費電力情報を取り込むようにしてもよい。CPU1のアドレス空間の一部には、各々割込みに対応した複数のベクタが予め書き込まれている。割込みの要求が発生すると、CPU1は、その割込みに対応したベクタを取り込み、取り込んだベクタに保持されている割込みに関する情報に従った処理を行う。すなわち、割込みの要求が発生すると、CPU1は、その割込みに対応したベクタを指すアドレスを出力し、そのアドレスによって示されているベクタ領域から上記割込みに関する情報を取り込む。本実施例においては、この情報として、当該割込みによって実行されるべきプログラム(ハンドラプログラム)のスタートアドレスと低消費電力情報とがある。割込みの要求に応答して、上記スタートアドレスは、ハンドラプログラムの実行のために、CPU1内のプログラムカウンタ(図示せず)にセットされ、上記低消費電力情報は、後で述べるように、モジュールストップ制御レジスタ133及びクロック制御レジスタ132にセットされる。また、割込み要求に対する処理が終了した後、元のプログラムに復帰するために、後で述べるように、ステータスレジスタの内容と、復帰するアドレスとが、割込み要求に応答する際、CPU1内のスタックポインタ(図示せず)で指定されるCPU1のアドレス空間内のアドレス領域(スタック領域)へ書き込まれる。後の説明から理解されるように、本実施例においては、上記ステータスレジスタの内容、復帰アドレスの他に、上記モジュールストップ制御レジスタ133及びクロック制御レジスタ132の内容も、上記スタックポインタで指定されるスタック領域へ書き込まれる(スタックされる)。例えば割り込みベクタは割り込みによって実行すべきハンドラのスタートアドレスと共に低消費電力情報として中速モードの設定やモジュールストップの設定を行うための制御情報を保有する。この場合、クロック制御レジスタ132の初期値はリセットベクタの低消費電力情報によって決定することができ、これを中速モードにするようにしておくとよい。そのようにすれば、リセット後の低消費電力状態を、直ちに設定できるので、ソフトウェアの負担を軽減し、また、中速モードからのスタートが可能になるなど、消費電流を低減することができる。
【0128】
図30の(A)〜(C)には低消費電力状態を指定するベクタ配列とその場合のスタックの例が示される。この例に従えば低消費電力情報は、図30の(B)に示されるように8ビットとされる。すなわち、低消費電力情報は、モジュールストップ制御レジスタ133のビット7〜2(MSTP7〜MSTP2)に対応する6ビット(低消費電力情報のビット7〜2)と、クロック制御レジスタ132のビット0及びビット1(CKS0,CKS1)に対応する2ビット(低消費電力情報のビット1、0)とを含む。図30の(A)に示されるベクタにおいて、スタートアドレスはアドレス空間が16MBであるならば24ビットとされる。図30の(C)に示されるように、スタック領域には、復帰アドレスと復帰先において利用される低消費電力情報の他に、CPU1の内部状態を保持するステータスレジスタに対する16ビット分の記憶領域が含まれる。上記ステータスレジスタには、演算の結果を示すコンディションコードや、割り込みマスクビットなどが含まれる。尚、以下の説明において、モジュールストップ制御レジスタ133のビット7〜2(MSTP7〜MSTP2)と、クロック制御レジスタ132のビット0及びビット1(CKS0,CKS1)とを併せて低消費電力状態制御レジスタと称する。
【0129】
図31には、例外処理時及びリターン時の動作タイミングが示されている。特に制限はされないものの、ROM5及びRAM6は1ステートでリード/ライト可能とされる。命令及びベクタはROM5に、スタック領域はRAM6に配置されるものとする。例外処理時には、その時点のプログラムカウンタ(PC)の値及び低消費電力状態制御レジスタ(クロック制御レジスタ132のCK0,CK1とモジュールストップ制御レジスタ133のMSTP2〜MSTP7)の情報、及び図示しない上記ステータスレジスタの内容がスタック領域に待避される(ステートS1〜S5)。すなわち、上記低消費電力状態制御レジスタの内容を読み出すために専用のリード信号RD−LPCR#が活性状態にされる(ステートS2〜S4)と共に、ライト信号WR#も活性状態にされ、上記制御レジスタの内容がスタック領域に書き込まれる。スタックの動作に続いて、ROM5からベクタとして、低消費電力状態制御レジスタ及びPCの内容がリードされる(S6〜S9)。ROM5からリードされた低消費電力状態制御レジスタはCPUに取り込まれず、低消費電力状態制御レジスタに書き込まれる(S6〜S8)。このための専用のライト信号WR−LPCR#が活性状態にされる。これによってステートS7から、低消費電力制御レジスタの内容が変更され、中速モードの設定や、モジュールストップの設定が変更になる。ベクタとしてのスタートアドレスはCPU内部の図示しないプログラムカウンタに取り込まれ、斯るスタートアドレスからCPU1は命令の実行を開始する(S11〜S13)。
【0130】
リターン時には、RAM6内のスタック領域から、ステータスレジスタ、低消費電力状態制御レジスタ、PCの内容がリードされる(S14〜S18)。スタック領域からリードされた低消費電力状態制御レジスタの内容は、CPU1に取り込まれず、低消費電力状態制御レジスタに書き込まれる。復帰アドレスは、CPU1の内部に取り込まれ、かかるアドレスからCPU1は命令の実行を開始する。ステータスレジスタはCPU1の内部に格納される。S16から、低消費電力制御レジスタの内容が復帰される。中速モードの設定や、モジュールストップの設定が復帰され、S6以前の状態と同様になる。S6以前、S16以後を中速モード、S7〜S15を高速モードに設定しておけば、図17と同様の動作を、ソフトウェアの負荷なく、実現できる。割込毎に、低消費電力状態を設定できるので、高速処理が必要でない割込要求に対しては、適当な動作速度にして、消費電力を無駄にすることがない。また、モジュールストップによって、機能ブロックの内部状態を保持しつつ、停止できるので、例えば、DTC2をモジュールストップとすれば、DTC2がバスを使用することによってCPU1の動作を中断したりすることを防ぐことができ、高速な割込処理ルーチンの実行が必要な場合などに有効である。
【0131】
図32には低消費電力制御レジスタの1ビットの構成が代表的に示される。上述のようにクロック制御レジスタ132のビット1,0及びモジュールストップ制御レジスタ133のビット7〜2が低消費電力制御レジスタを構成する。図32の構成は図16に対して、2個の論理和回路1325,1326が追加され、クロック入力端子Cには、論理和回路1325を介して、前記専用ライト信号WR−LPCRが与えられ、アドレスに拘わらずデータバスの内容が入力される。また、クロックドバッファ1322のリード信号にも、論理和回路1326を介して、前記専用リード信号RD−LPCRが与えられ、アドレスに関わらずレジスタの内容がデータバスに出力する。これらの、専用ライト信号WR−LPCR及び専用リード信号RD−LPCRは、例えばCPU1によって形成され、クロック制御レジスタ132のビット1,0、及びモジュールストップ制御レジスタ133のビット7〜2に共通の信号とされる。尚、図32においてRD,WR,RD−LPCR,WR−LPCRの各信号は、理解を容易化するために正論理の信号として図示されている。
【0132】
《サブクロック発振器の例》 図33にはクロック発振器及びクロック制御回路の別の例が示される。この例は図9に対して、第2の発振器12A、分周器130A、セレクタ131A、及びノーオーバラップ生成回路138が追加されている。第2の発振器12AのEXTALL、XTALLには、例えば、32.768kHzのような水晶発振子を接続する。2組の発振器を持つシングルチップマイクロコンピュータとして、例えば、前記平成4年9月(株)日立製作所発行『H8/3834 HD6473834 HD6433834 ハードウェアマニュアル』に記載のものがある。第2の分周器130Aは前記同様に8分周を行い、分周されたクロック信号φOSC/2,φOSC/4,φOSC/8はクロック制御レジスタ132からの制御ビットにてセレクタ131Aが選択する。これによって選択されたクロック信号に基づいてノーオーバラップ生成回路138はノーオーバラップの2相のクロッククロック信号φ1L、φ2Lを生成し、所要の機能ブロック、例えば、CPU1及びタイマ7に供給する。かかるノーオーバラップ生成回路138は、低い動作周波数かつ低電圧動作に適合するように、前記各機能ブロックに内蔵されるものと相違される。低周波数のため、2相クロック信号φL1,φL2をCPU1,タイマ7などに供給しても、消費電力のための不利益は生じない。
【0133】
特に制限されないが、ノーオーバラップの2相のクロッククロック信号φ1L、φ2Lはシングルチップマイクロコンピュータを時計処理に利用する場合に用いるものとされる。クロック制御レジスタ132はウオッチモードビットWMを有し、これが論理値”1”にされることによってシングルチップマイクロコンピュータは時計処理に必要な最低の動作周波数で動作される。時計処理は例えばシングルチップマイクロコンピュータの制御対象に時計が含まれているような場合に1秒毎のような一定時間毎に時計表示を更新するような処理であり、ノーオーバラップ2相のクロッククロック信号φ1L、φ2Lによって計時動作されるタイマによる一定時間毎のタイマ割り込みによってCPU1に時計処理を実行させる。
【0134】
図34には図33のクロック制御回路13からのその他の機能ブロックへの上記クロック信号φ1L、φ2Lの供給態様を専ら示すシングルチップマイクロコンピュータの概略ブロック図が示される。このブロック図は例えば上記時計処理を考慮するものである。図34のシングルチップマイクロコンピュータにおいては、図33のクロック制御回路13の他、CPU1、バスコントローラ3、割り込みコントローラ4、入出力ポートIOP1〜IOP11、及びタイマ7が代表的に示される。各回路ブロックに示されるNOVは、入力クロック信号からノーオーバラップの2相のクロック信号を形成するノーオーバラップ生成回路である。図1で説明した内部バスIAB,IDBに結合されるCPU1、バスコントローラ3及び割り込みコントローラ4のノーオーバラップ生成回路NOVには上記クロック信号φBが供給され、図1で説明した内部バスPAB,PDBに結合されるタイマ7及びIOP1〜IOP11のノーオーバラップ生成回路NOVには上記クロック信号φSが供給される。更に、各機能ブロック1,3,4,7,IOP1〜IOP11には上記ノーオーバラップの2相のクロック信号φL1,φL2が供給され、夫々の機能ブロックにおいてノーオーバラップ生成回路NOVから出力される2相クロック信号又は2相クロック信号φL1,φL2の何れを内部同期クロック信号として利用するかを選択するためのセレクタSELが設けられている。タイマ7は、CPU1などによって設定される内部制御レジスタの制御ビットなどに従ってセレクタの選択が行われる。タイマ7が複数のチャネルから構成されるような場合、チャネル毎にかかる制御レジスタとセレクタSELを有するようにすればよい。CPU1、バスコントローラ3、割り込みコントローラ4、及び入出力ポートIOP1〜IOP11のセレクタSELは、クロック制御回路13から出力されるウオッチモードビットWMにて選択状態が決定される。
【0135】
ウオッチモードビットが論理値”1”にされると、タイマ7において所定のチャネル以外はモジュールストップ状態とされる。タイマ7における当該所定のチャネルは制御ビットにてセレクタSELでクロック信号φL1,φL2を選択し、クロック信号φL1,φL2を利用して例えば時計処理を間欠的に行うための計時動作を行って一定時間毎にタイマ割り込み信号を出力する。CPU1、バスコントローラ3、割込コントローラ4及びIOP1〜IOP11においては論理値”1”のウオッチモードビットWMにてセレクタでクロック信号φL1,φL2が選択され、これによってそれら機能ブロックは時計用の低周波数のクロック信号φL1,φL2に同期動作される。タイマ7は一定時間毎に時計用処理のための割り込み信号を発生し、CPU1はそれに応答して間欠的に時計処理を行う。ウオッチモードビットWMが活性状態にされているとき、第1の発振器12は発振動作が停止される。ウオッチモードはCPU1がウオッチモードビットWMを論理値”0”にすることによって解除される。
【0136】
上記実施例によれば以下の効果を得るものである。〔1〕システムクロック信号をφSとφBとし、クロック信号配線の総配線容量をさほど大きくせずに、システムクロック信号φBの分周比を可変にして、機能ブロックの絶対的な基準クロックを確保しつつ、システムクロック信号φBを可変にしてバスマスタの消費電力を低減し、ひいては半導体集積回路全体の消費電力を低減することができる。消費電力を低減することにより、不要輻射(不所望な電波の発生)を低減することができる。
【0137】
〔2〕SCIやタイマなどの周辺回路には周波数一定のシステムクロック信号φSが供給されるので、CPU等へのシステムクロック信号φBの周波数が変更されても、SCIのビットレート若しくはボーレート、そしてタイマの計時周期などを一定に保つことができ、CPUなどの動作周波数を変更してもそれら周辺機能ブロックの設定変更を要しない。
【0138】
〔3〕上記クロック制御回路13には、システムクロック信号クφBの分周比を選択するための情報が上記バスマスタによって設定可能にされたレジスタ手段132を備えるから、CPUなどのバスマスタによって分周比の選択を任意に行うことができる。
【0139】
〔4〕データバスは、システムクロック信号φBが供給されCPUなどの機能ブロックが接続される内部データバスIDBと、システムクロック信号φSが供給されバススレーブとして動作される機能ブロックが接続される内部データバスPDBとに分離される。CPU等のバスマスタのように頻繁にバスサイクルを起動する機能ブロックを、バススレーブとは別のデータバスに接続することにより、頻繁にアクセスされるデータバスの負荷が小さくされ、低消費電力に寄与する。また、高速化にも寄与することができる。アクセスに利用される頻度が相対的に低いデータバスの前の値をホールド回路HD1,HD2によって保持することにより、当該データバス上での充放電回数を減らして低消費電力に寄与することができる。
【0140】
〔5〕1相クロック信号としてのシステムクロック信号φS,φBを機能ブロックに供給し、各機能ブロック内部で、2相クロック信号を生成することにより、クロック信号配線の総配線容量を低減して、消費電力を低減することができる。
【0141】
〔6〕プリスケーラクロック信号を用いる場合、低分周比のプリスケーラクロック信号は各機能ブロック毎に内部で生成し、分周比の大きなプリスケーラクロック信号は共通に生成することによって、論理規模をさほど増大させず、信号変化周波数の大きな信号を機能ブロック間信号としないことによって、消費電力を低減することができる。
【0142】
〔7〕バススレーブからバスマスタへの機能ブロック間信号を例えば図20及び図23で説明したようにφ1Sに同期して行うことにより、インタフェースを容易にすることができる。
【0143】
〔8〕機能ブロックの内部状態を保持可能にすることにし、かつ、常時クロックを供給する部分を限定することによって、動作中であっても、信号変化を局限し、消費電力を低減できる。また、クロックを停止しても、内部状態を保持することによって、ソフトウェアによる再設定の負担を省くことができる。
【0144】
〔9〕データバスをはじめとする、内部バスを分割して、容量を分割し、非活性状態のバスに対しては信号変化を抑止することによって、1回の動作で変化する信号が充放電すべき容量を低減して、消費電力を低減できる。
【0145】
〔10〕割込や、外部端子の信号変化の情報を検出する、割込コントローラのようなイベント検出回路を設け、イベントが発生したときに、自動的にφBの分周比を変更したり、モジュールストップの状態を変更したりすることにより、イベントが発生してから、所望の処理を行うまでの時間を短縮でき、これによって、処理性能を向上できる。変更にあたって、変更前の情報を、例えばスタック領域などに待避し、新しい情報を例えば、ベクタとともにロードすることによって、任意の設定を行うことができるようになる。
【0146】
〔11〕クロック信号φSとφBに相当するクロック信号を外部に出力可能とし、かつ、ソフトウェアでその出力を禁止可能とすることによって、クロック信号φSを外部半導体集積回路の基準クロックとしたり、クロック信号φBをバス制御回路の制御信号としたり、することができる。また、必要なければ出力を禁止して、消費電力の低減、カップリングノイズの低減、不要輻射の低減を図ることができる。
【0147】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0148】
例えば、クロック信号を非対称にする場合は、上記実施例に限定されない。動作が不必要な任意の場合に一方がハイレベル、他方をロウレベルとして停止することができる。例えばCPUがウェイト状態とされるような場合に適用することができる。全てのタイミング回路をスタティック型にすれば、クロック信号を非対称にすることはなく、中速モードの場合のφBも、デューティ比50%のクロック信号とすることもできる。
【0149】
クロック制御レジスタは、CPUからリード/ライト可能なほか、外部端子の設定によって変更可能としてもよい。例えば、所定の端子の入力によって、クロック制御レジスタの初期設定値を変更可能としてもよい。所定の端子がロウレベルの状態でリセットすると高速クロックで動作し、その後CPUの設定で低速動作可能とする、また、所定の端子がハイレベルの状態でリセットすると低速クロックで動作し、その後CPUの設定で高速動作可能とする、ようにすることができる。
【0150】
バスタイミングの詳細については、種々変更可能である。IAB・IDBとPAB・PDBのタイミングを同一としたが、これがずれていてもよい。イベントには、例えば、外部バス解放などを含めることができる。外部にバスを解放した場合、自動的にバスマスタが中速モードになったり、或いはDTCをモジュールストップ状態にすることもできる。ベクタとして与えられる低消費電力情報も8ビットに限定されない。任意のビット数とすることができる。専用のリード信号、専用のライト信号を複数組持ってもよい。
【0151】
低消費電力制御レジスタの構成についても種々変更可能である。ダイナミック回路、スタティック回路の具体的な回路構成も種々変更が可能である。例えば、スタティック回路はフリップフロップで構成することができる。また、クロックは2相のノーオーバラップに限定されない。3相以上、或いはオーバーラップクロックとすることができる。一部の相のクロックを長く、その他の相のクロックを短くすればよい。
【0152】
データ転送装置として、DTCを内蔵した場合について説明したが、これは、DMAコントローラ(DMAC)であってもよい。実施例中のDTCは、DMACと読み変えてもよい。これらがCPUと独立した機能ブロックである必要はなく、CPUの一部として実現されてもよい。この場合、マイクロDMA、或いはマクロサービス、或いはインテリジェントI/Oサービスなどの呼称が用いられる場合がある。シングルチップマイクロコンピュータのその他の機能ブロックについても何等制約されない。機能ブロックの数や、モジュールストップの指定方法なども任意にすることができる。
【0153】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路にも適用可能であり、本発明は少なくとも、クロックに同期して動作するシステムを構成する半導体集積回路に適用することができる。
【0154】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0155】
〔1〕周波数一定の第2のシステムクロック信号(φS)を複数個の機能ブロックに共通に供給し、分周比が選択可能にされ周波数が上記第2のシステムクロック信号以下とされた第1のシステムクロック信号(φB)を所定の機能ブロックに供給することにより、第1のシステムクロック信号(φB)が供給される機能ブロックの状態に応じてその動作周波数を変えて低消費電力を図ることができる。このとき、当該第1のシステムクロック信号の周波数を変更しても第2のシステムクロック信号(φS)を受けて動作される複数個の機能ブロックの動作速度は変化されないので、そのような第1のシステムクロック信号の周波数変更による電力消費の制御に際して第2のシステムクロック信号(φS)を受けて動作される複数個の機能ブロックに対しては動作条件を再設定したりするための処理を一切要しない。
【0156】
〔2〕上記第1のクロック信号配線を介して第1のシステムクロック信号が供給される機能ブロックをバスマスタとすることにより、当該バスマスタには分周比可変のシステムクロック信号が供給されることになる。マイクロコンピュータ等のデータプロセッサにおいてバスマスタとしてのCPUは一般的に命令及びデータフェッチのためのバスサイクルを頻繁に起動するから、低消費電力化に効果的である。
【0157】
〔3〕上記第2のクロック信号配線を介して第2のシステムクロック信号が供給される機能ブロックをバススレーブとすることにより、バスマスタのシステムクロック信号の周波数を変更しても、シリアルコミュニケーションインタフェースのビットレート若しくはボーレート、そしてタイマの計時周期などを一定に保つようにでき、それら周辺機能ブロックの設定変更を要しないようにすることができる。
【0158】
〔4〕第1のクロック信号(φB)の分周比を選択するための情報が上記バスマスタによって設定可能にされたレジスタ手段(132)を採用することにより、CPUなどのバスマスタによって分周比の選択を任意に行うことができる。
【0159】
〔5〕CPU等のバスマスタのように頻繁にバスサイクルを起動する機能ブロックを、バススレーブとは別のデータバスに接続することにより、頻繁にアクセスされるデータバスの負荷が小さくされるから、この点においても低消費電力を達成する。アクセスに利用される頻度が相対的に低いデータバスの前の値をホールド回路によって保持(前値保持)することによっても、当該データバス上での充放電回数を減らして低消費電力に寄与する。
【0160】
〔6〕第1及び第2の夫々のシステムクロック信号に基づいて生成されたノーオーバラップの2相クロック信号を部分的に位相が一致するようにし、当該位相が一致するタイミングに同期して、第2のシステムクロック信号に同期動作される機能ブロックから、第1のシステムクロック信号に同期動作される機能ブロック(相対的に動作速度が遅くされ得る機能ブロック)へ供給すべき信号を変化させることにより、システムクロック信号周波数の相違される機能ブロック間でのインタフェースを容易化、換言すればインタフェースのためのタイミング設計を容易化することができる。
【0161】
〔7〕第1及び第2の夫々のシステムクロック信号に基づいて生成された夫々のノーオーバラップの2相クロック信号の第1相目クロック信号同士はローレベル期間が一致される位相を有し、第2相目クロック信号同士はハイレベル期間が一致される位相を有することにより、各機能ブロックの出力と入力とは第1相目又は第2相目の何れのクロック信号に同期させても、システムクロック信号が相違される機能ブロック間で、データ出力からそれを入力してラッチするまでは第2のシステムクロック信号(φS)の1周期以上の期間を確保でき、これによってシステムクロック信号周波数の相違される機能ブロック間でのインタフェースを容易化、換言すればインタフェースのためのタイミング設計を容易化することができる。
【0162】
〔8〕第1のシステムクロック信号(φB)と第2のシステムクロック信号(φS)とを選択的に外部に出力する出力回路からの出力が非選択状態にされるとき、当該出力回路のクロック入力配線を所定レベルに強制することにより、システムクロック信号の外部出力を要しない場合には上記クロック入力配線における充放電を抑止して、低消費電力に寄与することができる。
【0163】
〔9〕機能ブロック毎に個別的に内部クロック信号等の生成を抑止することにより、利用しない内蔵機能ブロック内では内部クロック信号の変化が停止され、クロック信号の無駄な変化による充放電電流による電力消費を抑えることができる。このとき、内部クロック信号停止状態において内部状態を保持させることにより、動作再開が選択されたときに内部回路を改めて設定する手間を省くことができる。
【0164】
〔10〕自分自身の動作が非選択とされることによって内部タイミング信号の発生を抑止することによって低消費電力を実現できる。内部タイミング信号の変化が停止されたときに内部状態を保持させることにより、動作再開のときに内部回路を改めて設定し直す手間を省くことができる。
【0165】
〔11〕ノーオーバラップの2相の内部タイミング信号を受けて動作される回路を、その第1相目のタイミング信号を受けてダイナミックに動作されるダイナミック回路と、該ダイナミック回路に直列的に接続され第2相目のタイミング信号を受けてスタティックに動作されるスタティック回路とを含んで構成することにより、ノーオーバラップの2相のタイミング信号うちデューティの大きな相のタイミング信号をダイナミック回路に、デューティの小さい相のタイミング信号をスタティック回路に供給すれば、ダイナミック回路の出力負荷容量による情報保持時間が有限であっても当該ダイナミック回路が情報を保持すべき期間を短くして、第1のシステムクロック信号の周波数を低減可能な範囲を広げることができる。さらに双方をスタティックラッチ回路で構成する場合に比べて回路の物理的規模を縮小できる。
【0166】
〔12〕イベント検出に基づいて第1のシステムクロック信号の周波数を強制することにより、所定のイベントが発生したとき、設定されているシステムクロック信号周波数が低くても、システムクロック信号周波数の選択状態を所定の状態例えば最高周波数選択状態に強制することができ、これによって、所定のイベントが発生したときそれに応答する所望の処理をするまでの時間を短縮することができる。
【0167】
〔13〕イベント発生によって所定の記憶領域(MSME)が所定の値に書き換えられることによってシステムクロック信号周波数を強制することにより、システムクロック信号を特定周波数に強制する処理を簡単化できる。
【0168】
〔14〕イベント発生によって中央処理装置に要求された例外的処理から復帰するときに中央処理装置が上記記憶領域(MSME)を所定の値に戻すことにより、周波数を選択的に指定する情報の記憶領域(CKS1,CKS2)の値それ自体を退避及び復帰させることをも要しない。
【0169】
〔15〕周波数が強制されたシステムクロック信号を受ける機能ブロックが中央処理装置以外のデータトランスファコントローラであるときに、イベントの発生によって例外的処理が要求されたデータトランスファコントローラは当該例外的処理の終了を指示する信号を出力し、それによって上記記憶領域(MSME)を所定の値に戻すことにより、中央処理装置若しくはソフトウェアに負担をかけずにシステムクロック信号を元に戻すことができる。
【0170】
〔16〕機能ブロック単位に内部クロック信号の形成を禁止させるための情報を書き換え可能に保持するレジスタ手段(133)を設け、リセットなどの所定のイベント発生に基づいて、そのレジスタ手段を内部クロック信号の形成を禁止する状態に初期化することにより、リセット等の所定イベント発生時における初期的な状態における電力消費を低減させることができる。
【0171】
〔17〕システムクロック信号の周波数強制に割り込みベクタなどのベクタと対の制御情報を利用することにより、イベントの種類に応じて低消費電力設定を細かく行うことができる。
【0172】
〔18〕上記割り込みベクタなどのベクタと対の制御情報を利用する場合に、イベント発生時には当該ベクタと対の制御情報によって現在の低消費電力制御のための情報が消失されないように退避させることにより、イベント発生によって要求された例外的処理の終了後に、電力制御状態もイベント発生直前の状態に復帰させることができる。
【0173】
〔19〕プリスケーラで生成可能な低分周比のプリスケーラクロック信号はプリスケーラから供給せずに、機能ブロック内の分周器で個別的に生成させることにより、低分周比のクロック信号もプリスケーラから直接複数の機能ブロックに供給する場合に比べて低消費電力化を図ることができる。
【図面の簡単な説明】
【図1】本発明に係る半導体集積回路の一実施例であるシングルチップマイクロコンピュータのブロック図である。
【図2】図1のシングルチップマイクロコンピュータの変形例を示すブロック図である。
【図3】各機能ブロックの代表的な論理回路の構成例を(A)によって示し、順序回路をCMOSダイナミック回路で構成する例を(B)によって示し、本実施例のシングルチップマイクロコンピュータに用いられているCMOSダイナミック回路の一例を(C)によって示す説明図である。
【図4】プリスケーラの一例を示すブロック図である。
【図5】プリスケーラの一例の動作タイミングを(A)〜(I)によって示す説明図である。
【図6】PWMタイマの一例を示すブロック図である。
【図7】ノーオーバラップ生成回路の一例を(A)によって示し、クロック制御回路の一例を(B)によって示し、WDTに採用されるノーオーバラップ生成回路の一例を(C)によって示す論理回路図である。
【図8】図6のPWMタイマの一例の動作タイミングチャートである。
【図9】図1に示されるシングルチップマイクロコンピュータのクロック発振器及びクロック制御回路の一例を示すブロック図である。
【図10】MSMEビット、CKS1ビット、CKS0ビットの論理値によるクロック信号の選択態様の一例を(A)によって示し、セレクタの論理を(B)によって示す説明図である。
【図11】モジュールストップモードを制御するモジュールストップ制御レジスタのレジスタ構成と中速モードを制御するクロック制御レジスタのレジスタ構成例を(A)及び(B)によって示す説明図である。
【図12】モジュールストップ制御レジスタにおけるMSTP7〜MSTP5を(A)〜(C)によって示す説明図である。
【図13】モジュールストップ制御レジスタにおけるMSTP4〜MSTP3を(A)及び(B)によって示す説明図である。
【図14】クロック制御レジスタを(A)〜(C)によって示す説明図である。
【図15】本実施例のシングルチップマイクロコンピュータにおけるシステムクロック信号に着目した概略的な動作フローチャートである。
【図16】MSMEビットの概略的な一例を示すブロック図である。
【図17】割り込み要求発生時における一例の動作タイミングチャートである。
【図18】DTC起動要求発生時における一例の動作タイミングチャートである。
【図19】バスマスタとバススレーブとの間における第1のインタフェース仕様の概略説明図である。
【図20】図19に従ったバスマスタクロックとバススレーブクロックの一例のタイミングチャートである。
【図21】バスマスタとバススレーブとの間における第2のインタフェース仕様の概略説明図である。
【図22】図21に従ったバスマスタクロックとバススレーブクロックの一例のタイミングチャートである。
【図23】バスマスタクロックとバススレーブクロックの別の動作タイミングチャートである。
【図24】バススレーブに対するリード動作におけるバスインタフェースの一例のタイミングチャートである。
【図25】バススレーブに対するライト動作におけるバスインタフェースの一例のタイミングチャートである。
【図26】クロック信号φS及びφBを選択的に外部出力可能にする構成の一例説明図である。
【図27】クロック信号φS又はφBの何れか一方を選択的に外部出力可能にする構成の一例説明図である。
【図28】図27の構成に必要とされるPHISビットを(A)及び(B)によって示す説明図である。
【図29】シングルチップマイクロコンピュータの内部バスのその他の分割例を示す概略ブロック図である。
【図30】低消費電力状態を指定するベクタ配列とその場合のスタックの一例説明図である。
【図31】低消費電力情報をベクタに配置する実施例における例外処理時及びリターン時の一例の動作タイミングチャートである。
【図32】低消費電力制御レジスタの1ビット分の構成を代表的に示す一例ブロック図である。
【図33】クロック発振器及びクロック制御回路の別の例を示すブロック図である。
【図34】図33のクロック制御回路からのその他の機能ブロックへのクロック信号φ1L、φ2Lの供給態様を専ら示すシングルチップマイクロコンピュータの概略ブロック図である。
【符号の説明】
1 中央処理装置(CPU)
2 データトランスファコントローラ(DTC)
3 バスコントローラ
4 割り込みコントローラ
5 ROM
6 RAM
7 タイマ(PWMタイマ)
700 ノーオーバラップ生成回路
710 クロック制御回路
720 分周器
8 ウオッチドッグタイマ(WDT)
9 シリアルコミュニケーションインタフェース(SCI))
10 アナログ/ディジタル(A/D)変換器
12 クロック発振器
13 クロック制御回路
130 分周器
131 セレクタ
132 クロック制御レジスタ
1325 DTC転送終了信号
133 モジュールストップ制御レジスタ
1300,1301,1307 アンドゲート
1310,1311 システムクロック信号の外部出力用配線
14 プリスケーラ
IOP60,IOP61 入出力ポート
IDB,IAB 内部バス
PDB,PAB 内部バス
φOSC クロック信号
φS,φB システムクロック信号
L1,L2 クロック信号配線
φ1S,φ2S ノーオーバラップ2相のクロック信号
φ1B,φ2B ノーオーバラップ2相のクロック信号
φ1−PWM,φ2−PWM ノーオーバラップ2相のタイミング信号
MSTP モジュールストップ信号
MSTPPSC プリスケーラモジュールストップ信号
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a semiconductor integrated circuit having a plurality of functional blocks operated in synchronization with a clock signal, and particularly to a technique which is particularly effective when used in a single-chip microcomputer requiring low power consumption.
[0002]
[Prior art]
As described in P607 to P632 of the “H8 / 3048 Series Hardware Manual” issued by Hitachi, Ltd. in March 1994, each functional block of the single-chip microcomputer transmits the system clock signal φ. Act as a reference. The system clock signal φ is connected to an external clock input to an external clock input terminal (EXTAL) provided in a single-chip microcomputer or to an oscillation terminal (EXTAL, XTAL) provided in a microcomputer. It is generated from the original oscillation generated by a vibrator such as a quartz or ceramic. An example in which a unique clock signal is supplied to each functional block in a microcomputer is described in JP-A-3-286213. Japanese Patent Application Laid-Open No. Hei 5-81447 discloses a technique in which a microcomputer including a CPU (central processing unit) and its peripheral circuits is provided with a clock signal frequency divider and clock selection means in each peripheral circuit. ing. Japanese Patent Application Laid-Open No. 3-58207 discloses a technique in which the output of an oscillation circuit is divided by a divider circuit, and one of the divided clock signals is selected to be used as a system clock signal.
[0003]
[Problems to be solved by the invention]
The inventor has made the following study on the system clock signal of a semiconductor integrated circuit such as a single-chip microcomputer.
[0004]
The system clock signal φ can be selected to have the same frequency as the original oscillation or a so-called gear function, that is, a frequency obtained by dividing the original oscillation. Such a system clock signal is commonly supplied to a CPU (Central Processing Unit) and its peripheral circuits. In the gear function, it is desirable to switch the frequency of the system clock signal in accordance with the content to be processed by the CPU from the viewpoint of reducing the power consumption of the single-chip microcomputer. Further, when it is considered that a signal obtained by steadily dividing the original oscillation by two is selected as the system clock signal, the oscillation frequency of the original oscillation is set to 予 め in advance, and the system clock signal is used as the system clock signal. Compared with the case of the same frequency, the operating frequency of the original oscillator is twice that of the former oscillator, and the current consumption of the original oscillator is twice that of the latter.
[0005]
On the other hand, if the frequency of the system clock signal is switched during operation in accordance with the content to be processed by the CPU, the following problem occurs. For example, when the system clock φ is used as a reference clock of the serial communication interface (SCI), if the frequency division ratio of the system clock signal is reduced to が, the transmission / reception bit rate or baud rate of the SCI is reduced to 2. In particular, communication becomes impossible in the case of start-stop synchronous communication. Therefore, when switching the frequency of the system clock signal, the setting of the bit rate or baud rate of the SCI must be changed to correspond to the system clock signal after the switching. Therefore, such switching of the system clock signal frequency must be performed while the operation of the SCI is stopped.
[0006]
Similarly, if a system clock signal is used as a clock source in a general timer, if the frequency of the system clock signal is halved, the cycle is doubled. Otherwise, the absolute timekeeping time will be different. Similar resetting processing must be performed for most peripheral circuits or peripheral functions other than the SCI and the timer, and the software load required for such resetting is not negligible.
[0007]
Further, the situation is the same when the frequency of the system clock signal is increased by changing the frequency division ratio of the system clock signal from 1/2 to 1/1. In particular, the change to high speed is when high-speed processing occurs as processing for the CPU. In such a case, if the setting change is performed for most of the peripheral functions, there is a large waste of time, It becomes impossible to cope with situations that require high-speed processing.
[0008]
On the other hand, in the above-mentioned Japanese Patent Application Laid-Open No. 3-286213, in which a specific clock signal is supplied to each functional block of the microcomputer, the frequency division ratio of the clock signal supplied to each functional block can be set independently. . Therefore, a change in the frequency division ratio of the clock signal for one functional block does not affect the other functional blocks, and the burden on software is reduced.
[0009]
However, when an independent clock signal is supplied to each functional block, the total length of the clock wiring, in other words, the capacity is inevitably increased. The current consumption is expressed as the sum of the product of the capacitance (C), voltage (V), and frequency (f) of the signal line, that is, ΣC · V · f. Will increase in proportion to. The clock signal is a signal having the highest frequency (f) inside the microcomputer, and such current consumption cannot be ignored. At least, it is not a good idea to reduce power consumption.
[0010]
Also, when each functional block is operating at an arbitrary frequency division ratio, it is not clear at which interface the rising transition point of one clock signal is in which phase of the other clock signal. This makes it difficult to secure the setup time and hold time of the device, and inevitably results in an asynchronous interface. In such an asynchronous interface, the logical design is complicated, and the logical scale required for such an interface is also increased.
[0011]
Further, if the clock signal is switched exclusively by software, a predetermined event such as a reset or a predetermined interrupt request is generated, and when high-speed processing of the CPU is required, such an event is recognized as an interrupt. After executing interrupt exception processing and switching the frequency division ratio of the system clock signal in the interrupt processing routine, desired processing is performed. In this case, the time from when the event occurs to when the desired processing is performed becomes long, which is not convenient.
[0012]
An object of the present invention is to provide a semiconductor integrated circuit that can achieve low power consumption for a system clock signal.
[0013]
Another object of the present invention is to provide a semiconductor integrated circuit capable of changing the operation speed of a built-in functional block such as a CPU while reducing the load on software.
[0014]
Still another object of the present invention is to provide a semiconductor integrated circuit that can reduce the time required for performing a desired process when a predetermined event occurs.
[0015]
Another object of the present invention is to provide a semiconductor integrated circuit capable of facilitating an interface between functional blocks having different frequencies of supplied system clock signals.
[0016]
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0017]
[Means for Solving the Problems]
The outline of a representative invention among the inventions disclosed in the present application will be briefly described as follows.
[0018]
[1] A second clock for commonly supplying a second system clock signal (φS) having a constant frequency formed based on an output from an oscillator (12) to a plurality of functional blocks in a semiconductor integrated circuit A division ratio can be selected for the signal line (L2) and the output from the oscillator (12), and a first system clock signal (φB) whose frequency is equal to or lower than the second system clock signal is used. A clock control circuit (13) to be formed, and a first clock signal line (L1) for supplying a first system clock signal formed by the clock control circuit (13) to a predetermined functional block. .
[0019]
[2] The functional block to which the first system clock signal is supplied via the first clock signal wiring is a bus master (1, 2). In a data processor such as a microcomputer, a CPU operating as a bus master frequently starts a bus cycle for fetching instructions and data. This is because in order to reduce the power consumption of the semiconductor integrated circuit, it is advisable to supply a system clock signal having a variable division ratio to the bus masters.
[0020]
[3] The functional block to which the second system clock signal is supplied via the second clock signal wiring is a bus slave (7, 8, 9, 10). Even if the frequency of the system clock signal of the bus master is changed, the bit rate or baud rate of the serial communication interface and the clock cycle of the timer are kept constant, so that setting of these peripheral function blocks does not need to be changed. It is.
[0021]
According to the above-described means, the second system clock signal (also referred to as a peripheral clock signal) supplied to a functional block such as a peripheral circuit or a bus slave is supplied to a functional block such as a bus master independently of the second system clock signal. By making the frequency division ratio of the system clock signal (also referred to as a bus master clock signal) variable, the frequency division ratio of the bus master clock signal is increased in accordance with the operation state of the CPU or the like, thereby reducing power consumption. Can be realized.
[0022]
Also, since the peripheral clock signal can be fixed, even if the bus master clock signal is changed, the bit rate or baud rate of the serial communication interface, the cycle of the timer, and the like are kept constant. It is not necessary to change the settings of those peripheral function blocks by changing the frequency of the signal.
[0023]
Using a clock signal such as the peripheral clock signal as a clock signal common to a plurality of functional blocks reduces the wiring capacity of the clock wiring and reduces power consumption compared to supplying an independent clock signal to each functional block. Is made smaller.
[0024]
[4] The clock control circuit (13) can include a register means (132) in which information for selecting the frequency division ratio of the first clock signal (φB) can be set by the bus master. . This is because the division ratio can be arbitrarily selected by a bus master such as a CPU.
[0025]
[5] a first internal data bus (IDB) to which a functional block which is supplied with a first system clock signal (φB) via the first clock signal wiring and operates as a bus master is connected; A second system clock signal (φS) is supplied via the clock signal wiring, and the data bus is separated from a second internal data bus (PDB) to which a functional block operating as a bus slave is connected. When the bus slave connected to the second internal data bus is accessed by the bus master connected to the first internal data bus, the first internal data bus is connected to the second internal data bus in response to the access. A bus controller (3) connected to the bus is provided. The second internal data bus holds the state of the connected functional block when all outputs of the connected functional block are in a high impedance state, and when the connected functional block is read or written, the bus is accordingly connected. Hold circuits (HD1, HD2) that allow the state to change are provided. By connecting a function block that frequently starts a bus cycle, such as a bus master such as a CPU, to a data bus different from a bus slave, the load on a frequently accessed data bus is reduced. For a data bus that is relatively infrequently used for access, the data in the data bus is held by a hold circuit, thereby reducing the number of times of charging and discharging on the data bus to achieve low power consumption. As described above, since the peripheral function block operates less frequently than the bus master, the peripheral function block operates only when a predetermined signal is input, and the operation can be prohibited if necessary. The power consumption of the semiconductor integrated circuit is further reduced. At this time, the operation can be resumed immediately after the operation is permitted by holding the internal state in the peripheral function block in the operation prohibited state.
[0026]
[6] The functional block to which the first system clock signal (φB) is supplied is a no-overlap which forms a first no-overlap two-phase clock signal (φ1B, φ2B) from the first system clock signal. A functional block that includes a generating circuit and to which a second system clock signal (φS) is supplied includes a no-over (NO) signal that forms a second no-overlap two-phase clock signal (φ1S, φ2S) from the second system clock signal. The first no-overlap two-phase clock signal (φ1B, φ2B) is partially matched in phase with the second no-overlap two-phase clock signal (φ1S, φ2S) (for example, Functional blocks to which the second system clock signal is supplied (for example, the rising timing of φ1S and φ2B in FIG. 23) (for example, FIG. A functional block (a slave) is supplied with a first system clock signal in synchronization with the timing (for example, the rise of φ1S in state 3 in FIG. 23) of the second no-overlap two-phase clock signal. For example, the signal to be supplied to the bus master in FIG. 19) is changed. According to this interface specification, a period of one cycle or more of the second system clock signal (φS) between the output of data and the input and latch of the data between functional blocks having different system clock signals. Can be secured. This facilitates the interface between the functional blocks having different frequencies of the system clock signal, in other words, the timing design for the interface is facilitated. As described above, the bus master clock signal is always equal to or later than the peripheral clock signal, and the interface signal between the bus master and the peripheral function block is synchronized with, for example, a common transition point between the bus master clock signal and the peripheral clock signal. , The interface between the bus master and the peripheral function block can be made an easy synchronous interface. As a result, the logic scale of the semiconductor integrated circuit is reduced, which contributes to a reduction in manufacturing cost and a reduction in power consumption.
[0027]
[7] The functional block to which the first system clock signal (φB) is supplied is a no-over that forms a first no-overlap two-phase clock signal (φ1B, φ2B) from the first system clock signal. A functional block provided with a lap generation circuit and supplied with a second system clock signal (φS) forms a second non-overlapping two-phase clock signal (φ1S, φ2S) from the second system clock signal. A no overlap generation circuit (700) is provided. The low-level period of the first phase clock signal (eg, φ1B in FIG. 20) of the first no-overlapping two-phase clock signal is the first phase of the second no-overlapping two-phase clock signal. The low-level period of the clock signal (eg, φ1S in FIG. 20) is the same as the low-level period of the clock signal (eg, φ2B in FIG. 20) of the second phase of the first no overlap two-phase clock signal. The high-level period of the second-phase clock signal (eg, φ2S in FIG. 20) of the two-phase no-overlap two-phase clock signal. Regardless of whether the output and the input of each functional block are synchronized with either the first phase or the second phase clock signal, data is output between functional blocks having different system clock signals and then input. Until latching, a period of one cycle or more of the second system clock signal (φS) can be secured. This facilitates the interface between the functional blocks having different frequencies of the system clock signal, in other words, the timing design for the interface is facilitated.
[0028]
[8] An output circuit (for example, IOP60, IOP61 in FIGS. 26 and 27) for selectively outputting the first system clock signal (φB) and the second system clock signal (φS) to the outside, and the output circuit A logic circuit (1300, 1301, 1307) for forcing the clock input wiring (1310, 1311) of the output circuit to a predetermined level when an output from the circuit is in a non-selected state is provided. When external output of the system clock signal is not required, charging and discharging of the clock input wiring is suppressed, which contributes to low power consumption.
[0029]
[9] A semiconductor integrated circuit according to another aspect of the present invention, in which generation of an internal clock signal or the like is individually suppressed for each functional block, according to the present invention, is performed based on a system clock signal formed based on an output from an oscillator (12). φS) to form a plurality of phases of internal clock signals (φ1S, φ2S) synchronized with the system clock signal, and a plurality of functional blocks (7, 8, 9, 10) operating according to the formed internal clock signals. And register means (133) for rewritably holding information for inhibiting the formation of an internal clock signal in units of the functional block, wherein the functional block forms the internal clock signal based on correspondence information from the register means. Internal clock signal is stopped at a constant state when the internal clock signal is Comprises control means (700). The change of the internal clock signal is stopped in the unused built-in functional block, and the power consumption due to the charge / discharge current due to the useless change of the clock signal is suppressed. Holding the internal state while the internal clock signal is stopped saves the trouble of setting the internal circuit again when the operation restart is selected.
[0030]
[10] The functional block further forms internal timing signals (φ1-PWM, φ2-PWM) from the multi-phase internal clock signals (φ1S, φ2S) by selecting its own operation, A second internal clock control means (710) for stopping the change of the internal timing signal to a constant state by maintaining the internal state by deselecting the operation of (1). In a non-selected state of operation, power consumption in a circuit receiving internal timing signals (φ1-PWM, φ2-PWM) is suppressed. Holding the internal state when the change of the internal timing signal is stopped in the operation non-selection state saves the trouble of resetting the internal circuit when the operation is restarted.
[0031]
[11] The internal timing signal is a no-overlapping two-phase timing signal (φ1-PWM, φ2-PWM), and a circuit operated in response to the timing signal transmits the first-phase timing signal. A dynamic circuit (23) that receives and dynamically operates, and a static circuit (21) that is serially connected to the dynamic circuit and that operates statically by receiving a second-phase timing signal. . By supplying the timing signal of the phase with the large duty ratio to the dynamic circuit and the timing signal of the phase with the small duty ratio to the static circuit, the two-phase timing signals (φ1-PWM, φ2-PWM) having no overlap are provided. Even if the information holding time due to the output load capacitance of the dynamic circuit is finite, the period during which the information is to be held by the dynamic circuit can be shortened, and the range in which the frequency of the system clock signal can be reduced can be widened. Further, the physical scale of the circuit can be reduced as compared with the case where both are configured by static latch circuits.
[0032]
[12] A semiconductor integrated circuit according to another aspect of the present invention, in which the frequency of a system clock signal is forcibly changed based on event detection, includes one or more first functional blocks (1, 2). An event detection circuit (4) that detects the occurrence of an internal or external event that requires exceptional processing to the first functional block and outputs a signal requesting exceptional processing to the corresponding first functional block (4) ), One or more second function blocks (7, 8, 9, 10) for generating an event that requires exceptional processing for the first function block, and the first function block and the event The frequency of the first system clock signal (φB) supplied to the detection circuit can be variably selected, and the frequency can be selected based on the detection of a predetermined event by the event detection circuit (4). Having a selection control means for forcing the state to a predetermined state (131, 132), the. When a predetermined event occurs, even if the set system clock signal frequency is low, the selection control means can force the selection state of the system clock signal frequency to a predetermined state, for example, the highest frequency selection state. The time required for performing a desired process when a predetermined event occurs is shortened.
[0033]
[13] The selecting means includes a first register means (132) for rewritably holding control information for frequency selection, and a first system clock signal in accordance with the control information held by the first register means. A selector (131) for selecting a frequency, wherein the first register means instructs the selection of the specific frequency (φOSC) in the first state (= "0") and sets a predetermined event by the event detection circuit. The first storage area (MSME) forced to the first state based on the detection of the first state and the frequency selection made significant in the second state (MSME = "1") in the first storage area And a second storage area (CKS1, CKS0) for storing information for storing the information. When a predetermined event occurs, the first storage area (MSME) may be forced to the first state (= "0"), so that the process of forcing the system clock signal to a specific frequency is simplified.
[0034]
[14] The first functional block is a central processing unit (1), and the central processing unit, to which the signal for requesting the exceptional processing is given from the event detection circuit, executes the first processing when returning from the exceptional processing. One storage area can be set to the second state (MSME = "1"). Accordingly, after performing the requested exceptional processing, the central processing unit may return to the second storage area (CKS1, CKS2) even if the processing should be returned to the processing at the time of the request or the next processing. Does not need to be saved and restored.
[0035]
[15] The first functional block is a data transfer controller (2), and the data transfer controller to which the signal for requesting the exceptional processing is given from the event detection circuit instructs termination of the exceptional processing. A signal (1325) is output, and the logic means can set the first storage area to the second state (MSME = "1") according to the active state of the signal indicating the end. This does not impose a burden on the central processing unit or software to restore the system clock signal.
[0036]
[16] The second functional block (7, 8, 9, 10) forms an internal clock signal (φ1S, φ2S) from a second system clock signal (φS) supplied to the second function block, and A second register means (133), which is operated thereby and rewritably holds information for inhibiting the formation of the internal clock signal in units of second functional blocks, is provided. On the basis of the detection (for example, reset), the second register means is initialized to a state in which the formation of the internal clock signal is prohibited. This is to reduce power consumption in an initial state when a predetermined event such as a reset occurs.
[0037]
[17] The invention according to another aspect of using control information paired with a vector such as an interrupt vector in order to forcibly change the frequency of a system clock signal provides a central processing unit (1) and a central processing unit. An event detection circuit (4) for outputting a signal for requesting exceptional processing, a peripheral circuit (7, 8, 9, 10) of the central processing unit, and the central processing unit and the event detection circuit. First register means (132) for instructing the frequency of the first system clock signal (φB) to be selectable, and the internal circuit unit for each of the above-mentioned peripheral circuits operated in response to the second system clock signal (φS). A second register means (133) for rewritably holding information for inhibiting the formation of a clock signal, wherein the central processing unit performs an exceptional process from the event detection circuit; When requested, control information to be set in the first and second register means is obtained from an area (addresses 0, 4, 8, and 12 in FIG. 30) paired with a vector corresponding to the request. . This is because the low power consumption setting can be finely performed according to the type of the event.
[0038]
[18] When the central processing unit (1) receives a request for exceptional processing from the event detection circuit (4), the central processing unit (1) stores, in the first and second register means, an area paired with a vector corresponding to the request. Before setting the acquired control information, the values of the first and second register means are saved to return from the exceptional processing. This is to deal with the case where it is necessary to return to the state immediately before the occurrence of the event after the end of the requested exceptional processing.
[0039]
[19] Another aspect of the invention in which a prescaler clock signal of a low frequency division ratio that can be generated by a prescaler is not supplied from the prescaler but is generated individually by a frequency divider in a functional block is an oscillator (12). A semiconductor integrated circuit comprising: a clock control circuit (13) for forming a system clock signal based on the output of the clock control circuit; and a plurality of functional blocks operated in response to the system clock signal from the clock control circuit. A frequency divider (720) that divides a system clock signal for each functional block for a functional block requiring a clock signal (φS / 2 in FIG. 6) having a relatively small frequency division ratio separately from the signal (φS). Is provided in common for a plurality of functional blocks that require clock signals (φ / 8, φ / 16) having a relatively large frequency division ratio. It constituted by providing a prescaler (14) for generating and supplying said clock signal. This is because, when a clock signal with a low frequency division ratio is also supplied directly to a plurality of functional blocks, power consumption in the clock signal transmission system increases due to the low frequency division ratio.
[0040]
BEST MODE FOR CARRYING OUT THE INVENTION
<< Functional Blocks of Single-Chip Microcomputer >> FIG. 1 is a block diagram of a single-chip microcomputer as one embodiment of a semiconductor integrated circuit according to the present invention. This single-chip microcomputer includes a central processing unit (CPU) 1, a data transfer controller (DTC) 2, a bus controller (BSC) 3, an interrupt controller 4, a read only memory (ROM) 5, a random access memory ( RAM) 6, timer 7, watchdog timer (WDT) 8, serial communication interface (SCI) 9, analog / digital (A / D) converter 10, first to eleventh input / output ports IOP1 to IOP11, clock oscillator ( CPG) 12, a clock control circuit 13, and a prescaler 14 are provided with functional blocks (also referred to as circuit modules). These functional blocks are not particularly limited, but may be made of single crystal silicon by a known CMOS semiconductor integrated circuit manufacturing technique. One It is formed on a semiconductor substrate. The timer includes, for example, a PWM (Pulse Width Modulation) timer, and when the timer 7 particularly indicates a PWM timer, it is referred to as a PWM timer 7 for convenience.
[0041]
The single-chip microcomputer has a plurality of external terminals. Of the external terminals, a power supply terminal is supplied with a ground level (Vss), a power supply voltage level (Vcc), an analog ground level (AVss), and an analog power supply voltage level (AVcc). The external terminals are provided with dedicated control terminals in addition to the power supply terminals. These terminals include a reset (RES), a standby (STBY), a mode control (MD0 to MD2), and a clock input (EXTAL, XTAL). And non-maskable interrupt (NMI) terminals.
[0042]
<< Internal Bus Configuration of Single-Chip Microcomputer >> The above-described functional blocks shown in FIG. 1 are interconnected by an internal bus. The internal bus includes a control bus including a read signal, a write signal, and a bus size signal in addition to the address bus and the data bus. IAB and PAB exist on the internal address bus. IDB and PDB exist as internal data buses. These IAB, PAB, IDB, and PDB buses are interfaced with each other by a bus controller 3.
[0043]
The internal data bus IDB and the internal address bus IAB are used when either the CPU 1 or the DTC 2 that can operate as a bus master selectively has a bus right. Which bus right is given depends on the control of the bus controller 3. The bus controller 3 includes a function block selection circuit MS that decodes information output to the internal address bus IAB to determine which function block has been selected. The function block selection circuit MS identifies a function block to be selected by the address signal, and activates a module selection signal (not shown) corresponding to the identified function block. According to the information decoded by the function block selection circuit MS, it is determined (selected) whether the connection between the IAB and the PAB and the connection between the IDB and the PDB are performed or not. That is, if the access target at that time is a circuit module coupled to the internal buses IAB and IDB, the bus controller 3 does not connect the internal buses PAB and PDB to IAB and IDB. On the other hand, when the access target is a circuit module connected to the internal buses PAB and PDB, the bus controller 3 connects the internal buses PAB and PDB to IAB and IDB. In this specification, a bus master means a module that can output (form) an address to a bus and can also input and output data. A bus slave is an output (form) of an address to a bus. Is impossible, and means a module capable of inputting an address, inputting / outputting data, or outputting data.
[0044]
The internal buses IAB and IDB are connected to the CPU 1, the DTC 2, the ROM 5, the RAM 6, and the bus controller 3. Further, the internal address bus IAB is connected to input / output ports IOP1 to IOP3 to enable connection to an external address bus (not shown), and the internal data bus IDB is connected to input / output ports to enable connection to an external data bus (not shown). Connected to ports IOP4 and IOP5. The internal buses PAB and PDB are connected to the bus controller 3, timer 7, watchdog timer 8, SCI 9, A / D converter 10, interrupt controller 4, and input / output ports IOP1 to IOP11. The bus controller 3 controls the bus interface when the internal buses PAB and PDB are used for external access via the input / output ports IOP1 to IOP11.
[0045]
In making the internal bus into two systems of IAB and IDB and PAB and PDB, it is considered that a circuit module with a high frequency of use with bus access shares a bus with a relatively small load. In the bus access by the CPU 1, the number of instruction fetches is increased as compared with the number of data accesses. In order to improve the processing performance of the CPU 1, instructions must be fetched in accordance with the contents to be processed, and the frequency of instruction fetches per unit time is increased. In consideration of this point, in the present embodiment, the CPU 1 and DTC 2 operated as the bus master module and the RAM 6 and the ROM 5 storing programs and the like, which are working areas of the CPU 1, are cut off from other circuit modules to relatively load. Are connected to small internal buses IAB and IDB.
[0046]
In the bus access by the CPU 1, the number of instruction fetches is increased compared to the number of data accesses. In order to improve the processing performance of the CPU 1, instructions must be fetched in accordance with the contents to be processed, and the frequency of instruction fetches per unit time is increased. Most of the instructions of the CPU 1 are stored in the built-in ROM 5 or an external memory (not shown). Therefore, even when the program memory is an external memory, the internal buses IAB and IDB may be used via the input / output ports IOP1 to IOP5, and a large number of circuit modules unrelated to instruction fetch are connected, so that the load is relatively increased. It is not necessary to use the internal buses PAB and PDB.
[0047]
The internal buses PAB, PDB are adapted to retain the previous value on that bus when it is not in use. For example, a static latch circuit is connected to each signal line of the internal bus PDB, and when the internal bus PDB is not used, the output terminal of the circuit module to which the output terminal is connected is set to a high output impedance state. , The previous value is held by the static latch circuit. If a CMOS circuit is used, the current consumption of these PDBs can be reduced to almost zero because the signal state does not change in this case. As shown in FIG. 1, PABs and PDBs have many objects to be connected and have large wiring capacitances. Therefore, by reducing the frequency of signal changes occurring in these, in other words, the PABs and PDBs are relatively infrequently used. The connection of the circuit module can contribute to lower power consumption. That is, the bus modules IAB and IDB having relatively small loads are shared by the circuit modules frequently used with the bus access.
[0048]
<< Clock Supply System of Single-Chip Microcomputer >> The single-chip microcomputer of this embodiment is operated in synchronization with a system clock signal generated by the clock oscillator 12 and the clock control circuit 13. Each functional block is operated by a two-phase clock signal that is formed based on such a system clock signal and has no overlap with each other. According to this embodiment, the system clock signal is roughly classified into φB and φS. For convenience, the system clock signals φS and φB are also simply referred to as the system clock signal φ. Similarly, no-overlapping two-phase clock signals φ1S and φ2S formed based on φS and no-overlapping two-phase clock signals φ1B and φ2B formed based on φB are collectively referred to simply. They may be written as φ1 and φ2. The clock signal output from the clock oscillator 12 is shown as φOSC.
[0049]
The system clock signal φB is supplied as a bus master clock to, for example, the CPU 1, the DTC 2, the bus controller 3, the interrupt controller 4, and the input / output ports IOP1 to IOP5 for an external bus interface. A clock signal line for supplying the system clock signal φB to each circuit module is illustrated as L1. The clock signal φB is formed by dividing the frequency of the clock signal φOSC in the clock control circuit 13. In the present embodiment, this frequency division ratio can be selected. If the frequency division ratio of clock signal φB is increased, the operating frequency of the portion of the circuit module receiving system clock signal φB is reduced in proportion to this, and the current consumption is reduced. Such parts are in principle always active. For example, the interrupt controller 4 must constantly monitor the occurrence of an interrupt request. If an interrupt request occurs, the interrupt controller 4 must generate a predetermined state transition or request the CPU 1 or DTC 2 to perform processing. That is because Therefore, in such a circuit portion, the fact that the operating frequency can be controlled by the clock signal φB realizes a reduction in power consumption in the entire single-chip microcomputer as required.
[0050]
The other system clock signal φS is supplied as a peripheral clock to, for example, the timer 7, the watchdog timer 8, the SCI 9, the A / D converter 10, and the input / output ports IOP1 to IOP11. A clock signal line for supplying the system clock signal φS to each circuit module is illustrated as L2.
[0051]
As is clear from FIG. 1, the clock signal is supplied to each functional block except the ROM 5 and the RAM 6, and the overall clock signal wiring length is considerably lengthened. As shown in FIG. 1, the functional block to which the clock signal φB is supplied and the functional block to which the clock signal φS is supplied are each partially localized. This makes it possible to reduce the total wiring length for the clock signal. At least, the entire wiring length can be reduced as compared with a case where independent clock signals are supplied to all the functional blocks. By suppressing the total wiring length of the clock signal, a parasitic capacitance component on the wiring can be suppressed. Since the clock signal has a high frequency of signal change, power consumption can be suppressed by suppressing the capacitance of the clock signal wiring (by shortening the wiring length).
[0052]
The frequency of the system clock signal φB can be changed depending on the setting of the dividing ratio by software, for example, as described later. On the other hand, the frequency of the system clock signal φS is fixed. Further, the clock control circuit 13 supplies a clock control signal to the DTC 2, the timer 7, the watchdog timer 8, the SCI 9, and the A / D converter 10. The clock control signal permits / stops the operation of the clock signal (change of the clock signal) in the functional block. Such clock control is described in, for example, Japanese Patent Application Laid-Open No. Sho 60-195631. However, in this example, the operation of the functional block during the period in which the operation of the clock is stopped is not considered. According to the study of the present inventors, the internal state should be maintained while the clock of the functional block is stopped. Such a functional block operates in synchronization with a no-overlapping two-phase clock signal φ1, φ2 formed based on a system clock signal φS, and details thereof are shown in FIGS. ), A sequential circuit synchronized with φ1 is constituted by a dynamic circuit, and a sequential circuit synchronized with φ2 is constituted by a static circuit.
[0053]
<< Module Stop in Single-Chip Microcomputer >> The details of the contents of the module stop in the single-chip microcomputer will be described later, but are roughly as follows. The clock control circuit 13 sends a DTC 2, a timer 7, a watchdog timer 8, an SCI 9, and an A / D converter 10 to a clock stop signal, that is, a module stop signal (in FIG. 1, a module stop signal is given by MSTP, respectively). (Shown generically). Such a module stop signal MSTP is provided from the clock control circuit 13 to each functional block as a unique signal. In the case of an SCI including a plurality of channels, a module stop signal MSTP can be assigned to each channel. Such a clock stop in units of functional blocks is described in "H8 / 3048 Series Hardware Manual", P607 to P632, published by Hitachi, Ltd. in March 1994, and Japanese Patent Application Laid-Open No. 60-195631. When the watchdog timer 8 functions as a watchdog timer, the module stop signal is invalidated. This is to prevent the watchdog timer 8 from being stopped by mistake due to the function of monitoring the system. The details will be described later. According to the "H8 / 3048 Series Hardware Manual" P607 to P632 issued by Hitachi, Ltd. in March 1994, when the clock is stopped, the functional blocks are reset and the internal registers need to be reset. , And is. For example, in the start-stop synchronous SCI, the operation cannot be performed immediately by outputting a preamble for one frame when the operation is resumed. In the PWM timer 7, clock selection, duty setting, and the like are required. On the other hand, in the present embodiment, when the clock is stopped, the function block holds the internal state.
[0054]
<< Adoption of Clock Synchronous Internal Memory >> FIG. 2 is a block diagram showing a modification of the single-chip microcomputer of FIG. The single-chip microcomputer shown in FIG. 2 has a circuit type in which the ROM 5 and the RAM 6 are operated in synchronization with a clock signal with respect to FIG. 1, and for example, a clock signal φB similar to that supplied to the CPU 1 is supplied to them. Is done. By operating the built-in memories ROM5 and RAM6 in synchronization with the clocks of the bus masters CPU1 and DTC2, a high-speed operation can be performed. As the RAM 6 operated in synchronization with the clock, a clocked static RAM or the like can be given. Examples of the ROM 5 operated in synchronization with the clock include a mask ROM, an EEPROM, and a flash memory.
[0055]
<< Internal Circuit of Each Functional Block >> FIG. 3A shows a typical block example of a logic circuit constituting each functional block. Each of the logic circuits is basically composed of a combinational circuit 20, a sequential circuit 21 having its output as an input and operating in synchronization with the clock signal φ2, a combinational circuit 22 having an output of the sequential circuit 21 as an input, and a combinational circuit. A circuit represented by a sequential circuit 23 operated in synchronization with the clock signal φ1 with the output of the input 22 as an input is included as a basic unit. Further, if necessary, a signal may be transmitted from the sequential circuit 23 to the combinational circuit 20 in a cyclic manner. Although not shown, an external input signal is input to any of the circuits, and an external output signal is output from any of the circuits.
[0056]
FIG. 3B shows an example in which the representative sequential circuits 21 and 23 are constituted by CMOS dynamic circuits. For example, the sequential circuit 21 is configured by a series circuit of a CMOS clocked inverter 210 and a CMOS inverter 211, and the sequential circuit 23 is configured by a series circuit of a CMOS clocked inverter 230 and a CMOS inverter 231. In the sequential circuit 21, the clocked inverter 210 is enabled to output by the high level of the clock signal φ2, and in the sequential circuit 23, the clocked inverter 230 is enabled to output by the high level of the clock signal φ1. The P-channel type MOS transistor 212 is turned on by a signal SIG which is set to a low level during operation standby, forcing the input of the inverter 211 to a power supply voltage, and setting the inside to a state where the previous value is held. As the signal SIG, a signal similar to the oscillator stop signal 135 described with reference to FIG. 9 can be used.
[0057]
In the circuit form shown in FIG. 3B, information transmission is dynamically performed by charging and discharging the output load capacity of the clocked inverters 210 and 230. By using a two-phase no-overlap clock signal (a no-overlap clock signal is also referred to as a non-overlap clock signal) φ1 and φ2 and a dynamic circuit, the number of transistors can be reduced, and the physical characteristics of the semiconductor integrated circuit can be reduced. The scale can be reduced. However, in this case, data is held by the electric charge stored in the load capacitor, and therefore, data can be held only for a finite time due to the presence of a leakage current from the load capacitor. For example, if the leakage current is constant, the data can be expressed as V-it / C in a state where the high level is maintained. C is the capacity, V is the power supply voltage, i is the leakage current, and t is the elapsed time. As the time elapses, the voltage at the output terminal decreases. If the threshold voltage of a CMOS circuit to which such a voltage is input is Vth, data can be held only for a time equal to or less than C (V-Vth) / i. Therefore, it is necessary to update the data within this time. In other words, the switching frequency of a switching element such as the clocked inverters 210 and 230 cannot be reduced to i / C (V-Vth) or less. As a result, when the internal operation is stopped, such as when the clock is stopped, the switching frequency cannot be sufficiently increased, and the data cannot be held.
[0058]
In order to retain data even in such a clock stopped state, it is conceivable to use a static circuit instead of a dynamic circuit for each of the sequential circuits 21 and 23. The static circuit increases the number of transistors and increases the physical scale of the semiconductor integrated circuit as compared with the dynamic circuit. As the number of transistors increases, the number of wirings increases, and the current consumption increases in proportion to the number of wirings and the number of transistors.
[0059]
FIG. 3C shows an example of a CMOS dynamic circuit used in the single-chip microcomputer of this embodiment. In the figure, the sequential circuit 23 synchronized with the clock signal φ1 is composed of a dynamic circuit, and the sequential circuit 21 synchronized with the clock signal φ2 is composed of a static circuit. In the static circuit, a clocked inverter 213 is added to the inverter 211 in an anti-parallel connection, and the output operation can be performed in a phase opposite to that of the clocked inverter 210. Note that the output stage inverter 231 in the sequential circuit 23 is added to match the logical polarity and may be deleted as necessary. According to the example of FIG. 3C, when the clock is stopped and when the operation is on standby, the clock signal φ1 is at the high level and φ2 is at the low level, and the sequential circuit 21 latches the input data immediately before it, and The state of the sequential circuit 23 is controlled to a state where the previous value is held. The operation standby state means a state in which the clock is not stopped, but the operation is stopped while maintaining the previous state when a predetermined event has not occurred. As the predetermined event, for example, in the case of the PWM timer 7, read / write by a bus master such as the CPU 1, generation of a count-up clock described later, and the like are included.
[0060]
In FIG. 3C, the dynamic circuit forming the sequential circuit 23 is formed of six MOS transistors, and similarly, in FIG. 3C, the static circuit forming the sequential circuit 21 is formed of ten MOS transistors. In FIG. 3B, the dynamic circuit forming the sequential circuit 23 is constituted by six MOS transistors, and similarly, in FIG. 3B, the dynamic circuit forming the sequential circuit 21 is constituted by seven MOS transistors. . If all circuits are static circuits, each of the sequential circuits 21 and 23 is composed of ten MOS transistors. Therefore, comparing this portion, it can be seen that, of the 16 transistors in the configuration of FIG. 3C, 13 transistors if all are dynamic circuits and 20 transistors if all are static circuits. The configuration of ()) requires about 1.23 times the number of transistors as compared to the case where both circuits are dynamic circuits and about 0.8 times the number of transistors as compared to the case where both circuits are static circuits.
[0061]
In addition, as shown in FIG. 3C, static circuits and dynamic circuits are alternately arranged as sequential circuits, and the duty ratios of the no-overlap two-phase clock signals φ1 and φ2 (in this specification, the duty ratio = High level period / 1 cycle) from 50%, and the one with the larger duty ratio is used as the clock signal of the dynamic circuit. In other words, the high output impedance period of the clocked inverter 230 included in the dynamic circuit is set shorter than the high output impedance period of the clocked inverter 210 included in the static circuit. Thereby, for example, the range in which the frequency of system clock signal φB can be reduced can be expanded. For example, a clock signal φ1B having a duty ratio larger than 50% shown in FIG. 20 is used as the clock φ1 of the dynamic circuit, and a clock signal φ2B having a duty ratio smaller than 50% is used as the clock φ2 of the static circuit.
[0062]
<< Prescaler Clock >> In addition to the system clock signal, a so-called prescaler clock signal may be supplied to a predetermined functional block. That is, when the frequency divider divides the system clock signal as needed, the clock signal having various division ratios is formed intensively when the prescaler is used, as compared with the case where the frequency divider is arranged in each functional block. Since the clock having the necessary division ratio is distributed to the necessary functional blocks, the frequency divider of each functional block can be shared, and the logic scale of the entire chip can be reduced.
[0063]
However, according to the study of the present inventors, the prescaler clock signal has a long clock wiring length and a large wiring capacity due to the property commonly used by each functional block. Further, the prescaler clock having a low frequency division ratio has a high signal change frequency. For this reason, current consumption also increases. In the present embodiment taking this into consideration, a clock signal having a relatively high frequency corresponding to a prescaler clock signal having a low frequency division ratio is not shared by the function blocks with respect to the function blocks, and each of the function blocks performs individual frequency division. It is made to generate individually using a circuit.
[0064]
FIG. 4 is a block diagram showing an example of the prescaler 14. The figure typically shows the configuration of the lower four digits, and the latch circuits constituting each digit are illustrated as 140 to 143. The circuit configuration is typically the same as the configuration of the latch circuit 140 shown in detail. Is the same. The latch circuit 140 mainly includes a static latch composed of two-input NOR gates 1401 and 1402, and a clocked inverter 1403 whose output is controlled by a terminal CS is disposed at an output stage thereof. Are provided with two-input AND gates 1404 and 1405 that perform an opening / closing function according to the logical value of the terminal CM. The input terminal T is coupled to one input terminal of a two-input type exclusive OR gate 1406, and the output of the clocked inverter 1403 is fed back to the other input terminal. The output of the exclusive OR gate 1406 is supplied to the AND gate 1404, and the output of the exclusive OR gate 1406 is supplied to the AND gate 1405 after being inverted by the inverter 1407. The logical value "1" is supplied to the input terminal T of the lowermost latch circuit 140, and the lower count-up clocks φ / 4UP, φ / 8UP, φ / 16UP,. They are connected in cascade.
[0065]
The latch circuits 140, 141, 142, 143,... Of each digit update the data held when the terminal CM is at the logical value "1" (high level in this embodiment, although not particularly limited). If the terminal T has a logical value “0” (not particularly limited, but in this embodiment, a low level), the data is held. If the terminal T has a logical value “1”, the data is inverted. That is, the terminal CM and the terminal CS are not simultaneously set to the logical value 1. In other words, φ1 and φ2 are no-overlap two-phase clock signals. The clocked inverter 1403 is enabled to output when the terminal CS is at a high level, and is brought into a high output impedance state when the terminal CS is at a low level. At the logical value “1” of the terminal CM, the other input of the AND gates 1404 and 1405 is reflected on the output of the AND gates 1404 and 1405, and the latch data is updated. At this time, if the terminal T is at a low level, the data that has been latched up to that point is held as it is, and if the terminal T is at a high level, the data that has been latched is inverted. At the low level of the terminal CM, the outputs of 1404 and 1405 are both forced to the low level, and the static latch composed of the two NOR gates 1401 and 1402 statically holds the previous state.
[0066]
The no-overlap two-phase clock signals φ1 and φ2 are generated from the clock signal φOSC. As shown in FIG. 4, the generation circuit 144 mainly includes a pair of AND gates 1443 and 1444 whose one output is fed back to the other input via delay circuits 1441 and 1442, and generates the clock signals φ1 and φ2. An OR gate 1445 for output control for forcing φ1 to a high level when stopped, and an AND gate 1446 for output control for forcing φ2 to a low level are provided. The AND gate 1444 takes a logical product of the inverted signal of the feedback signal via the φOSC and the delay circuit 1441. An AND gate 1443 takes a logical product of the inverted signal of the feedback signal via the delay circuit 1442 and φOSC. The AND gate 1446 ANDs the inverted signal of the prescaler module stop signal MSTPPSC and the output of the AND gate 1444. Although the details of the prescaler module stop signal MSTPPSC will be described later, the output of the clock signals φ1 and φ2 is permitted by the logical value “0”, and the output of the clock signals φ1 and φ2 is prohibited by the logical value “1”. In a state where the output of the clock signals φ1 and φ2 is prohibited, φ1 is fixed at a high level and φ2 is fixed at a low level. Therefore, at this time, changes in various prescaler clock signals are also suppressed.
[0067]
The prescaler 14 shown in FIG. 4 counts up the clock signal φOSC. For example, a prescaler as described in "H8 / 3003 Hardware Manual" p555 published by Hitachi, Ltd. in March 1993 sequentially generates frequency-divided clocks φ / 2, φ / 4, φ / 8. are doing. The prescaler 14 of this embodiment also generates count-up clocks φ / 2UP, φ / 4UP, φ / 8UP... For each digit. The count-up signal (carry signal) at the digit is obtained as a logical product signal of all the carry signals lower than the digit and the output of the latch circuit at the digit.
[0068]
In this embodiment, a clock signal (prescaler clock signal) generated by the prescaler 14 is supplied to predetermined functional blocks, for example, the timer 7, the SCI 9, the A / D converter 10, and the like. In this case, the prescaler clock signal supplied to such a functional block is a prescaler clock signal having a frequency division ratio of φ / 8 or more. Clock signals having a relatively small frequency division ratio (high frequency) such as φ / 2, φ / 4, φ / 2UP, φ / 4UP, etc. are not output from the prescaler 14 to external function blocks. When a clock signal having a low frequency division ratio is collectively supplied from the prescaler 14 to each functional block, charging and discharging are performed at high speed in synchronization with a high frequency on a considerably long clock wiring, so that power consumption increases. Furthermore, each functional block does not always use such a high-frequency clock signal separately from the system clock signal φS, and it is greatly expected that such power consumption will be wasted. Therefore, a clock signal having a relatively high frequency such as φ / 2 uses the system clock signal φS by dividing the frequency inside the functional block. Thus, power consumption can be reduced.
[0069]
5A to 5I show operation timing charts of the prescaler 14. The prescaler clock signal is changed at a timing synchronized with the clock signal φ1. The count-up clock of each digit is set to the logical value "1" when the latch circuit output of the lower digit of the digit becomes the logical value "1" of all the bits, and the digit is changed in synchronization with the subsequent φ1. . That is, a count-up clock to the upper digit is generated once in one cycle of the output Q of each digit. For example, φ / 8 and φ / 16UP are signals having the same cycle, and the high-level period of φ / 16UP matches the high-level period of the clock signal φ / 2.
[0070]
<< Module Stop >> FIG. 6 is a block diagram of the PWM timer 7. The PWM timer 7 includes a no overlap generation circuit 700, a clock control circuit 710, a frequency divider 720, a read / write control circuit 730, a counter clock control circuit 740, an output control 750, a bus interface 760, a control register (TCR) 771, a counter (TCNT) 772, duty register (DTR) 773, and comparator (CMP) 774.
[0071]
The no-overlap generation circuit 700 receives the clock signal φS, and generates a clock signal φ1S having the same phase as φS and a clock signal φ2S having the opposite phase to the clock signal φ1S. . As shown in FIG. 7A, an example of the no overlap generation circuit 700 includes a pair of AND gates 703 and 704 in which one output is fed back to the other input via delay circuits 701 and 702. An output control OR gate 705 for forcing the clock signal φ1S to a high level when the clock signals φ1S and φ2S are to be stopped, and an output control AND gate 706 for forcing the clock signal φ2S to a low level are provided. Become. The AND gate 704 calculates the logical product of the clock signal φS and the inverted signal of the feedback signal via the delay circuit 701. The AND gate 703 calculates the logical product of the clock signal φS and the inverted signal of the feedback signal via the delay circuit 702. The AND gate 706 ANDs the inverted signal of the timer module stop signal MSTPPWM supplied to one input and the output of the AND gate 704. The details of the timer module stop signal MSTPPWM will be described later, but the output of the clock signals φ1S and φ2S is permitted by the logical value “0”, and the output of the clock signals φ1S and φ2S is prohibited by the logical value “1”. That is, when the timer module stop signal MSTPPWM is at the logical value "1", the signal φ1S is fixed at a high level and the signal φ2S is fixed at a low level. As described above, the timer module stop signal MSTPPWM is a control signal for stopping the clock signals φ1S and φ2S with a predetermined logical value when it is not necessary to operate the PWM timer 7.
[0072]
The clock signals φ1S and φ2S generated by the no overlap generation circuit 700 are supplied only to the frequency divider 720, the clock control circuit 710, and the counter clock control circuit 740.
[0073]
Frequency divider 720 receives clock signals φ1S and φ2S and generates clock signal φS / 2. This logical configuration can be realized with the lowest logical configuration in the prescaler 14 described with reference to FIG. The clock signal φS / 2 having a relatively small frequency division ratio with respect to the clock signal φS is generated by a frequency divider in a functional block. This is a consideration for reducing power consumption as described in the prescaler item.
[0074]
The counter clock control circuit 740 inputs φ / 16UP, φ / 64UP, and φ / 256UP as prescaler clocks, and also inputs the clock signal φS / 2 generated by the frequency divider 720. A desired input clock signal is selected from these input clock signals, and the selected input clock signal is used for counting up. That is, the input clock signal to be selected is specified by the CK1 and CK0 bits of the control register (TCR) 771, and the input clock signal is selected by the counter clock control circuit 740 according to this specification, and the selected clock is selected. The count-up clock signal 741 is generated in synchronization with the signal cycle. The generation of the count-up clock signal 741 is permitted when the OE (output enable) bit in the control register (TCR) is "1", and is prohibited when it is "0". The counter (TCNT) 772 performs a count-up operation in synchronization with the count-up clock signal 741.
[0075]
The clock control circuit 710 controls the clock signals φ1S and φ2S and the PWM timer selection signal MSPWM # generated by the address signal output from the CPU 1 (the symbol # indicates that the signal attached thereto is a low enable signal, that is, a signal of negative logic. ), And the count-up clock signal 741 output from the counter clock control circuit 740, and the clock signals φ1-PWM and φ2-PWM are converted to the TCR 771, TCNT 772, CMP 774, DTR 773, bus interface 760, output control circuit 750. The clock signals φ1-PWM and φ2-PWM become valid when the CPU 1 reads / writes the PWM timer 7 or when a count-up clock signal is generated. In other cases, φ1-PWM is fixed at a high level and φ2-PWM is fixed at a low level.
[0076]
The read / write control circuit 730 receives the internal address, read signal RD, write signal WR, and PWM timer selection signal MSPWM # output from the CPU 1 via the bus controller 3 to control each register and the bus interface. , And controls the input and output of data between each register and, for example, the CPU 1.
[0077]
The output control circuit 750 receives the compare match signal 780 output from the CMP 774, the overflow signal 781 output from the TCNT 772, and the OE bit from the TCR 771, and outputs a PWM signal. When the OE bit is set to the logical value “1”, the PWM signal is output to the outside from a predetermined terminal that is also used as an input / output port. The PWM signal outputs a logical value "1" at the time of a compare match (the compare match signal 780 has the logical value "1"), and outputs a logical value "0" at the time of overflow (the overflow signal 781 has the logical value "1"). Is output.
[0078]
The bus interface 760 inputs and outputs information between the internal data bus PDB and the module data bus inside the PWM timer 7 under the control of the read / write control circuit 730.
[0079]
The TCR 771 has an OE bit and CK1 to CK0, and data is input / output under the control of the read / write control circuit 730. When the OE bit is set to "1", the PWM timer 7 operates. As described above, the CK1 to CK0 bits are bits for selecting the count clock cycle. The TCNT 772 inputs and outputs data under the control of the read / write control circuit 730. Further, the count-up operation is performed by the count clock signal 741 output from the counter clock control circuit 740. When an overflow occurs due to the count-up operation, the TCNT 772 activates the overflow signal 781. The DTR 773 inputs and outputs data according to the control of the read / write control circuit 730. The CMP 774 receives and compares the outputs of the TCNT 772 and the DTR 773, and activates the compare match signal 780 when the results match.
[0080]
FIG. 7B illustrates an example of the clock control circuit 710. The clock control circuit 710 includes two OR circuits 711 and 712 and one AND circuit 713. The inverted signal of the timer selection signal MSPWM # and the count-up clock signal 741 are input to the OR circuit 711. An inverted signal of the output of the OR circuit 711 and the clock signal φ1S are input to the OR circuit 712, and this output is used as the clock signal φ1-PWM. The output of the OR circuit 711 and the clock signal φ2S are input to the AND circuit 713, and this output is used as the clock signal φ2-PWM. The clock signals φ1-PWM and φ2-PWM become valid when the CPU 1 activates the timer selection signal MSPWM # to read / write the PWM timer 7, or when the count-up clock signal 741 is generated. . In other cases, the clock signal φ1-PWM is fixed at a high level and the clock signal φ2-PWM is fixed at a low level. That is, only when a predetermined event (read / write of the CPU 1 and generation of a count-up clock signal) occurs, the clocks φ1-PWM and φ2-PWM to be supplied to the respective units change clocks. Therefore, a circuit which receives and operates in synchronization with the clock signals φ1-PWM and φ2-PWM, that is, functional blocks other than the no overlap generation circuit 700, the clock control circuit 710, the frequency divider 720, and the counter clock control circuit 740 Is operated only when the predetermined event occurs. In other states, the change in the signal is suppressed, and the current consumption is suppressed.
[0081]
As described above, the no-overlap generating circuit 700 is configured as shown in FIG. 7A, and φ1S is fixed at a high level and φ2S is fixed at a low level by the high level of the module stop signal MSTPPWM. As is clear from FIG. 7B, in the module stop state in the no overlap generation circuit 700, the clock signals φ1-PWM and φ2-PWM are also fixed to predetermined levels, respectively. As described above, when the PWM timer 7 is not used at all, the change of the internal clock signals φ1S, φ2S, φ1-PWM, φ2-PWM is suppressed by the module stop signal MSTPPWM. By suppressing changes in the internal clock signals φ1-PWM and φ2-PWM until a predetermined event occurs, low power consumption can be achieved.
[0082]
The above-described configuration for selectively suppressing the change of the internal clock signal by the no overlap generation circuit 700 and the clock control circuit 710 is similarly applied to other circuit modules, for example, WDT8, SCI9, and A / D10. The same applies to the supply of a prescaler clock signal with a high frequency division ratio and the generation of a clock with a low frequency division ratio by an internal divider.
[0083]
FIG. 7C shows an example of a no overlap generation circuit employed in the WDT 8. An AND circuit 707 is added to the no overlap generation circuit 700 shown in FIG. One input of the AND circuit 707 is supplied with a module stop signal MSTPWDT assigned to the WDT 8, and the other input is supplied with an inverted signal of a WDTM bit designating a watchdog timer mode. The WDT 8 is also made available as an interval timer, and when it is used as a watchdog timer, the WDTM bit is set to a logical value "1". A WDTM bit is provided in a predetermined register, and this bit is set to a logical value “1” by, for example, the CPU 1 to designate the watchdog timer mode, in other words, once the watchdog timer mode is designated, the module The instruction to stop the module by the stop signal MSTPWDT is ignored. As a result, it is possible to prevent a situation in which the system monitoring function using the WDT 8 is erroneously released, thereby contributing to an improvement in the reliability of the system.
[0084]
FIG. 8 shows an operation timing chart of the PWM timer of FIG. The CPU 1 writes the TCR 771 of the PWM timer 7 from the state S3. Such a write operation requires three states. First, in state S3, the module selection signal MSPWM # is set to low level. When the module selection signal MSPWM # goes low, the output of the OR circuit 711 shown in FIG. 7B goes high, and the clock signals φ1-PWM and φ2-PWM are synchronized with φ1S and φ2S. To start changing. Note that MSPWM # is synchronized with φ1S. The OE bit is set to "1" in the third state of the write operation (start timing of state S5). Further, CK1 to CK0 are set, and for example, the clock signal φS / 2 is selected by the set CK1 to CK0.
[0085]
With the OE bit set to “1”, the clock signal φS / 2 generated by the frequency divider 720 is used as a count-up clock signal 741, and during a period when the count-up clock signal is at a high level, the clock signal φ1- PWM and φ2-PWM are changed in accordance with the clock signals φ1S and φ2S, and the PWM timer 7 performs a count-up operation. During the period from state S6 to state S12, the periods of φ1-PWM and φ2-PWM are halved compared to the case where clock signals φ1S and φ2S are used as they are. Accordingly, the operation frequency of the circuit blocks other than the no-overlap generation circuit 700, the clock control circuit 710, the frequency divider 720, and the counter clock control circuit 740 is also reduced to 、, and the current consumption of such portions is also reduced to 1 /. be able to. For example, if the ratio of the logical scale of such a part to the logical scale of the no overlap generation circuit 700, the clock control circuit 710, the frequency divider 720, and the counter clock control circuit 740 is 8: 2, the PWM timer 7 can also be reduced to 6/10. If φ / 16UP is selected as the count-up clock, this is equal to the frequency of φS / 8, so that the current consumption of the portion is reduced to 1/8, and the current consumption of the entire PWM timer 7 can be reduced to 3/10. .
[0086]
When the OE bit is cleared to “0” by the write operation of the CPU 1 in the state S13 to the state S15, the output of the OR circuit 711 is set to a low level, whereby φ1-PWM is at a high level and φ2-PWM is at a high level. Fixed to low level. During the timer operation of the PWM timer 7 (state S3 to state S5, state S7, state S9, state S11, state S13 to state S15), the pulse widths of φ1-PWM and φ2-PWM are equivalent, and the operation is suspended. , DC1-φPWM is at a high level and φ2-PWM is at a low level. The internal state is maintained in the suspended state of this operation. That is, the sequential circuits in the circuit blocks other than the no-overlap generation circuit 700, the clock control circuit 710, the frequency divider 720, and the counter clock control circuit 740 of the PWM timer 7 are the sequential circuits as shown in FIG. Is used, the clock signal φ2 is used as the clock signal φ2-PWM, and the clock signal φ1 is used as the clock signal φ1-PWM.
[0087]
Similarly, in the module stop mode, the module stop signal MSTPPWM is activated, and stops when φ1S is at a high level and φ2S is at a low level, and further stopped when φ1-PWM is at a high level and φ2-PWM is at a low level. I do. In this state, the state of the PWM timer 7 itself is maintained as described above. For example, the contents of TCR771 and the contents of DTR773 and TCNT772 are retained. It is not necessary to reset the TCR 771 after releasing the module stop. In the module stop state, the CPU 1 cannot perform read / write. Since φ1S and φ2S are stopped, the signal change of the entire PWM timer 7 is suppressed, and the current consumption during that period is substantially zero. The output of the AND circuit is connected to the supply line of the timer module stop signal MSTPPWM shown in FIG. 7A, and the timer module stop signal MSTPWM and the timer module selection signal MSPWM # are supplied to the AND circuit. By doing so, even if the module stop state is set, the PWM timer 7 is made readable / writable by the CPU 1.
[0088]
<< Clock Control Circuit >> FIG. 9 is a block diagram of the clock oscillator 12 and the clock control circuit 13 of the single-chip microcomputer shown in FIG. The clock control circuit 13 includes a frequency divider 130, a selector 131, a clock control register 132, a module stop control register 133, and a standby control circuit 134. The module stop control registers 133 are provided for a predetermined number of bits corresponding to selectable function blocks. That is, bits corresponding to selectable function blocks are provided in the module stop control register 133. A crystal oscillator is connected to the oscillator 12 via EXTAL and XTAL terminals, or an external clock is supplied from the EXTAL terminal. When a crystal oscillator is used, it can be considered that an oscillation circuit is configured by the crystal oscillator and the circuit 12. Although not particularly limited, the oscillation circuit 12 generates the clock signal φOSC having the same frequency as the natural frequency of the crystal resonator or the frequency of the external clock. The oscillator 12 is supplied with an oscillator stop signal 135 from the standby control circuit 134, and the oscillator 12 is stopped by the oscillator stop signal 135 being activated in the standby state, and the clock signal φOSC is fixed at a high level, for example, and its change is made. Is stopped. Note that the oscillator 12 may include a duty correction circuit. Further, the oscillator 12 may incorporate a frequency divider and output a clock signal obtained by dividing the frequency of the crystal oscillator or the external clock by 2 as φOSC. These are described in, for example, "H8 / 3003" issued by Hitachi, Ltd. in March 1993.
Hardware Manual ", pages 553 to 560.
[0089]
The frequency divider 130 receives the clock signal φOSC and, for example, sequentially divides the frequency by two to generate clock signals φOSC / 2, φOSC / 4, and φOSC / 8. Selector 131 receives clock signals φOSC, φOSC / 2, φOSC / 4, and φOSC / 8 and outputs a clock signal selected by MSME bit, CKS1, and CKS0 bits of clock control register 132 as system clock signal φB. Then, it is supplied to the CPU 1 and the like in the single-chip microcomputer. Alternatively, count-up clocks φOSC / 4UP, φOSC / 8UP, and φOSC / 16UP may be input instead of φOSC / 2, φOSC / 4, and φOSC / 8. When changing the selection content by the selector 131, the phase of the clock signal is not particularly matched before and after the change. For example, by changing in synchronization with the rising of the clock signal φS (φ1S when generated inside the selector 131), the minimum pulse width at the transition becomes equal to or greater than the pulse width of the clock signal φS (φOSC). When the clock signal is stopped in the low power consumption state, φOSC is set to the high level, and the clock signals φB and φS are set to the high level. FIG. 10A shows an example of a clock signal selection mode based on the logical values of the MSME bit, the CKS1 bit, and the CKS0 bit. CKS1 and CKS0 are significant when MSME = "1", and when MSME = "0", φS = φOSC regardless of CKS1 and CKS0.
[0090]
FIG. 10B shows an embodiment of the selector controlled by the MSME bit, CKS1 bit, and CKS0 bit. In the figure, an AG 101 is an AND gate (logical product circuit) that receives a CKS 1 bit, a CKS 0 bit, and an MSME bit and outputs “1” when these bits are “1”. An AG 102 is a CKS 0 bit. The AND gate receives the inverted signal, the CKS1 bit and the MSME bit, and outputs “1” when CKS0 = “0”, CKS1 = “1”, and MSME = “1”. AG103 is the inverted signal of the CKS1 bit. , CKS0 bit and MSME bit, and outputs “1” when CKS1 = "0", CKS0 = "1", and MSME = "1". The AG 104 is an AND gate that receives the inverted signal of the CKS0 bit and the inverted signal of the CKS1 and outputs “1” when CKS0 = “0” and CKS1 = “0”. The NG101 is the output of the AG104 and the MSME. An OR gate (logical sum circuit) that receives a bit inversion signal and outputs “1” when the output of the AG 104 is “1” or MSME = “0”. Therefore, the OR gate NG101 outputs “1” when the MSME bit is “0” or when both the CKS0 bit and the CKS1 bit are “0”.
[0091]
AG105 is an AND gate receiving the output of the OR gate NG101 and the clock signal φOSC, AG106 is an AND gate receiving the output of the AND gate AG103 and the divided clock signal φOSC / 2, and the AG107 is the AND gate. The AND gate receives the output of the AND gate AG102 and the divided clock signal φOSC / 4, and the AG 108 receives the output of the AND gate AG101 and the divided clock signal φOSC / 8. Outputs of these AND gates AG105 to AG108 are supplied to an OR gate NG102, and the OR gate NG102 outputs the system clock signal φB. By configuring the selector in this manner, the OR gate NG 102 outputs a system clock signal φB having a frequency according to the combination of each bit shown in FIG.
[0092]
The clock control register 132 and the module stop control register 133 are connected to the internal data bus PDB, and are readable / writable by the CPU 1. The clock control register 132 outputs the MSME bit, CKS1, and CKS0 bits to the selector 131, and outputs the SSBY bit to the standby control circuit 134. The module stop control register 133 supplies a module stop signal MSTP to each functional block. The standby control circuit 134 is formed of, for example, a flip-flop. When the CPU 1 executes a sleep command (the sleep command execution signal is in an active state) in a state where the SSBY bit of the control register 132 is a logical value “1”, the flip-flop is used. Is set to the set state. By the set state of the flip-flop, the oscillator stop signal 135 is activated, the oscillation operation of the oscillator 12 is stopped, and the single-chip microcomputer enters the standby state. When an external interrupt request or reset occurs in the standby state, for example, under the control of the interrupt controller 4, the standby release signal 136 is activated, and the flip-flop is reset. By this reset state, the oscillator stop signal 135 becomes inactive, the oscillation operation of the oscillator 12 is restarted, and the standby state is released. It is preferable to provide an oscillation stabilization time at the time of releasing the standby state, but the detailed procedure and configuration of the release are not directly related to the present invention, and therefore, detailed description thereof is omitted. When the CPU 1 executes the sleep command, the operation clock inside the CPU 1 is stopped. When the CPU 1 executes the sleep command while the SSBY bit is set to the logical value “0”, the oscillation operation of the clock oscillator 12 is not stopped. The state in which the CPU 1 executes the sleep command and is set in the CPU 1 (the sleep state of the CPU 1) can be released by interruption or reset.
[0093]
FIGS. 11A and 11B show examples of the register configuration of the module stop control register 133 for controlling the module stop mode and the register configuration of the clock control register 132 for controlling the medium speed mode. FIGS. 12A to 12C, FIGS. 13A and 13B, and FIGS. 14A to 14C show details of each bit of these registers.
[0094]
The module stop control register 133 is an 8-bit register readable / writable by the CPU 1 and has bits MSTP7 to MSTP3. MSTP7 is a data transfer controller (DTC) 2, MSTP6 is a timer 7, and MSTP5 is a watchdog timer (WDT). 8, MSTP4 corresponds to the serial communication interface (SCI) 9, and MSTP3 corresponds to the A / D converter 10. As shown in FIGS. 12A to 12C and FIGS. 13A and 13B, the module stop state can be specified separately for each functional block. The module stop signal MSTPPWM for the PWM timer 7 is activated by setting the bit MSTP6 to a logical value "1". The logical value "1" set in the bit MSTP5 is effective when not in the watchdog timer mode substantially as described with reference to FIG. 7C. Although the initial values of these bits after power-on or after reset are not particularly limited, they are logical value "1", and after reset, the module is in the stop state. The current consumption immediately after the start of the operation is reduced. For example, the current consumption is reduced according to the ratio of the logical scale of the function block in the module stop state to the function block in the operation state. For example, if the ratio is 4: 6, the current consumption can be reduced to 6/10.
[0095]
The prescaler 14 sets the timer 7, the WDT 8, the SCI 9, and the A / D converter 10 to which the prescaler clock signal is supplied, all in the module stop state, that is, all the MSTP6 to MSTP3 bits are set to "1". In addition, when the WDT 8 is not in the watchdog timer mode, the prescaler module stop signal MSTPPSC is activated and is stopped. According to FIG. 9, the module stop signal MSTPPSC for the prescaler 14 is formed by an AND circuit 137 which takes the logical AND of the module stop signals corresponding to the bits MSTP6 to MSTP3 and the inverted signal of the watchdog timer mode signal WDTM. Note that bits 2 to 0 of the module stop control register 133 are reserved bits, and when read, "0" is read, and writing is invalidated.
[0096]
The clock control register 132 has four bits of SSBY, MSME, CKS1, and CKS0 as shown in FIG. As shown in FIG. 14A, the SSBY bit controls the transition to the standby state. When the CPU 1 executes the sleep command while the SSBY bit is set to the logical value “1”, the oscillation operation of the clock oscillator 12 is stopped, the single-chip microcomputer shifts to the standby state, and the SSBY bit is set to the logical value. When the CPU 1 executes the sleep command in a state where the CPU 1 is cleared to “0”, the clock signal inside the CPU 1 is stopped and the CPU 1 transits to a so-called sleep state. In such a standby state, the entire single-chip microcomputer stops, but in the sleep state, only the CPU 1 stops.
[0097]
As shown in FIGS. 14B and 14C, the bit MSME is a medium speed mode enable bit, and only when this bit is set to the logical value “1”, The specification of the clock signal by the bits CKS1 and CKS0 becomes valid. When such bits MSME, CKS1, and CKS0 are supplied to the selector, the system clock signal φB of the microcomputer is selected from φOSC, φOSC / 2, φOSC / 4, and φOSC / 8. Note that the time of one cycle of the system clock signal φB is called one state. A state in which a clock other than the clock signal φOSC is selected as the clock signal φB is called a medium speed mode. Bits 6 to 3 are reserved bits, and when read, "0" is read and writing is invalid.
[0098]
FIG. 15 shows a schematic operation flowchart focusing on the system clock signal in the single-chip microcomputer of this embodiment. Immediately after the reset, the single-chip microcomputer enters the module stop state, and the bus master such as the CPU 1 starts operating in the high-speed mode (φB = φOSC). Then, it is determined whether the mode is the medium speed mode (ST1). If high speed operation is not required, a desired value is written to the clock control register, and the mode transits to the medium speed mode (ST2). For a function block requiring an operation, a desired value is written to the module stop control register to release the module stop state for the required function block (ST3). After that, each function block is set (ST4). For example, this is performed by initially writing a desired value to a control register or the like of each functional block. Then, desired processing is performed by the CPU 1 (ST5). At that time, if high-speed processing is not required, it is determined whether or not the clock signal φB should be changed to enable transition to the medium-speed mode (ST6). The clock control register is set according to the result (ST7). It is determined whether there is no need to operate a specific function block or whether there is a change in a circuit module (function block) to be operated to cope with a new operation of the specific function block. (ST8) If it should be changed, a desired value is written to the module stop control register to change the module stop state (ST9). Then, it is determined whether or not the microcomputer should be set to the standby state (ST10). If the operation of the entire microcomputer needs to be interrupted, the SSBY bit is set to "1" and a sleep command is executed (ST11). (ST12). When an external interrupt occurs, the operation returns from the standby state and resumes the operation (ST13). Since the internal state of the module is maintained in the standby state as described above, it is not necessary to set each functional block, for example, write to the control register of each functional block, after the standby state is released. The setting of the register in each of the above steps is performed by a program. For example, the CPU 1 executes an instruction to specify a register and write data to the register, thereby setting the register.
[0099]
<< Switching of φB Associated with Interrupt Request and the Like >> According to the study of the present inventors, if the clock is switched by software to reduce the power consumption, a predetermined event, for example, an interrupt to CPU1 occurs and CPU1 is interrupted. When high-speed processing is required, such an event is recognized as an interrupt, an interrupt exception process is performed, and a desired process is performed after switching the frequency division ratio of the system clock in the interrupt processing routine. It will be. In this case, the operation speed from the occurrence of the event to the desired processing cannot be increased, and the response time to the interrupt becomes longer, which is inconvenient. In this embodiment, when a predetermined event such as an interrupt request or a transfer request occurs, the control bit MSME is automatically cleared to the logical value “0”, and the CPU 1 and the DTC 2 are reset to the highest frequency φOSC of the clock signal φB. It is possible to make a transition to a high-speed mode for performing a synchronous operation. Upon return from the interrupt exception handling, bit MSME is set to logical value "1". When the bit MSME is set to the logical value “1” by software, the operation mode is set according to the set control bits CKS0 and CKS1. When a DTC activation request (DTC transfer request) is generated, similarly, the control bit MSME is automatically cleared to the logical value “0”, and the CPU 1 and the DTC 2 transition to the high-speed mode. When the DTC data transfer is completed, the MSME bit is automatically set to the logical value “1”, and the operation mode is set according to the set control bits CKS0 and CKS1. If the DTC 2 has an external transfer request terminal, the same can be applied to a case where an external transfer request is made.
[0100]
FIG. 16 shows a schematic block diagram of the MSME bit. The MSME bit mainly includes a set / reset type flip-flop 1320, for example. A data input terminal D of the flip-flop 1320 is connected to a predetermined signal line of the internal data bus PDB, and a clock input terminal C is an output of the AND circuit 1321, that is, a signal indicating a bus right of the CPU 1, a write signal, and an address decode signal. AND signal with The address decode signal is a signal obtained by decoding the contents of the address bus IAB, and is a signal indicating that the address of the clock control register 132 has been given. The output terminal Q is supplied to the selector 131 of the clock control circuit 13 and output to the data bus via the clocked buffer 1322. The clocked buffer 1322 is enabled to output by a high-level output of a two-input AND circuit 1323 that receives the decode signal and the read signal, and is in a high output impedance state in other states. To the reset input terminal R, a logical sum signal of the reset signal, the DTC transfer request signal, and the CPU interrupt signal is given from the logical sum circuit 1324. DTC transfer end signal 1325 is applied to set input terminal S. DTC transfer end signal 1325 is output from DTC2, and DTC2 is activated, for example, when data transfer ends. As the reset signal, an external reset signal RES or an output signal of the watchdog timer WDT8 is used. The DTC transfer request signal is supplied from the interrupt controller 4, and the CPU interrupt signal is also supplied from the interrupt controller 4.
[0101]
The CPU interrupt signal and the DTC transfer request signal are used as event occurrence signals. When the DTC 2 has an input terminal for an external transfer request other than the DTC transfer request from the interrupt controller 4, the logical sum signal of the external transfer request signal and the transfer request signal from the interrupt controller is a DTC transfer request. The signal is supplied to the OR circuit 1324 as a signal. It should be noted that, even if an interrupt request having a level lower than the mask level of the CPU 1 occurs with reference to the mask information of the CPU 1, the event is not recognized as an event. The interrupt mask is described in, for example, “H8 / 3003 Hardware Manual”, pages 89 to 115, issued by Hitachi, Ltd. in March 1993.
[0102]
FIG. 17 shows an example of the operation timing when an interrupt request occurs. When the bit CKS1 is cleared to “0”, the bit CKS0 is set to “1”, and the bit MSME is set to “1”, the operation at φB = φOSC / 2 (the state of the medium speed mode) )), When an interrupt request signal is generated in the state S5, the MSME bit is cleared to "0", φB = φOSC, and the CPU 1 and the DTC 2 are set to the high-speed mode. When the CPU 1 performs the interrupt exception processing and ends the processing to be processed in the high-speed mode, the CPU 1 sets the MSME bit to “1” by software according to the operation program. For example, in state S15, the MSME bit is set to "1", and φB = φOSC / 2. Thereafter, the CPU 1 executes a return instruction and transitions to the original processing.
[0103]
FIG. 18 shows an example of operation timing when a DTC activation request occurs. As in the case of FIG. 17, first, the CPU 1 operates in the medium speed mode (bit CKS1 is cleared to “0”, bit CKS0 is set to “1”, and bit MSME is set to “1”. φOSC / 2). At this time, when a DTC transfer request which is a DTC activation factor occurs, the bit MSME is cleared to “0”, φB = φOSC, and the CPU 1 and the DTC 2 are operated. When the DTC is activated, for example, the interrupt factor that has caused the activation is cleared, and data transfer is performed. When the necessary data transfer is completed, the DTC transfer end signal 1325 from the DTC 2 is activated, whereby the MSME bit is set to “1”, and the operation speed of the functional block such as the CPU 1 is returned to the original speed.
[0104]
<< Interface Signal >> FIG. 19 schematically shows an example of an interface between the bus master and the bus slave. FIG. 2 representatively shows interface signals I / F1 and I / F2. FIG. 20 shows an example timing of the bus master clock and the bus slave clock. According to the present embodiment, the bus masters are the CPU 1 and the DTC 2 that are operated in synchronization with the clock signal φB, and the bus slaves are functional blocks such as WDT8 and SCI9 that are operated in synchronization with the clock signal φS.
[0105]
The clock signal φB is always longer or equal in cycle to the clock signal φS according to the selection state of the selector 131, and the falling edge of the clock signal φB is synchronized with the rising edge of φS. φ1S and φ2S are no-overlapping two-phase clock signals generated from φS, and φ1B and φ2B are no-overlapping two-phase clock signals generated from φB. In FIG. 20, the duty of the clock signal φB is set to 50% or more. The clock signal φB can be formed, for example, by the logical sum of a signal obtained by dividing the frequency of the clock signal φOSC corresponding to the clock signal φS by 2 at a duty of 50% and a signal obtained by dividing the frequency by 4. Alternatively, the count-up signal φOSC / 8UP may be inverted. In particular, in the example of FIG. 20, the low level period of the clock signal φ1B matches the low level period of the clock signal φ1S, and the high level period of the clock signal φ2B matches the high level period of the clock signal φ2S. In other words, the low-level pulse width of the clock signal φ1B is equal to that of the clock signal φ1S, and the high-level pulse width of the clock signal φ2B is equal to that of φ2S.
[0106]
In the example of FIG. 19, the output signal of the bus master is output in synchronization with the change of the clock signal φ1B to the high level, and the input signal to the bus master is synchronized with the change of the clock signal 2B from the high level to the low level. Latched. The input signal to the bus slave is latched in synchronization with the change of the clock signal φ2S from the high level to the low level, and the output signal of the bus slave is output in synchronization with the change of the clock signal φ1S to the high level. . Referring to FIG. 20, the bus master outputs in synchronization with the high level periods of clock signals φB and φ1B, and the bus slave outputs in synchronization with the high level periods of φS and φ1S. The bus master inputs the clock signal φB while the clock signal φB is at the low level and φ2B is at the high level (the latch is performed in synchronization with the change of the clock signal φ2B from the high level to the low level). The bus slave inputs during a period when φS is at a low level and φ2S is at a high level (latch is performed in synchronization with the change of the clock signal φ2S from a high level to a low level). For example, in FIG. 20, the interface signal I / F1 is an interface signal from the bus master to the bus slave. The interface signal I / F1 is output from the bus master in synchronization with the change of φ1B of the state S9 to the high level, and latched by the bus slave in synchronization with the change of the φ2S of the state S9 from the high level to the low level. The interface signal I / F2 is an interface signal from the bus slave to the bus master. The interface signal I / F2 is output from the bus slave in synchronization with the change of φ1S of the state S3 to the high level, and latched by the bus master in synchronization with the change of φ2B of the state S4 from the high level to the low level. Therefore, a period of one or more states of the clock signal φS can be always ensured from the start of signal output to the capture. Thereby, the timing design can be made similar to the case where the medium speed mode is not considered, that is, the case where φB = φOSC.
[0107]
FIGS. 21 and 22 show the case where the synchronous clock signal for input / output control is reversed from those in FIGS. In the example of FIG. 21, the output of the bus master is synchronized with the change of the clock signal φ2B to the high level, and the input to the bus master is latched in synchronization with the change of the clock signal 1B from the high level to the low level. The input to the bus slave is latched in synchronization with the change of the clock signal φ1S from the high level to the low level, and the output of the bus slave is synchronized with the change in the clock signal φ2S to the high level. Referring to FIG. 22, the output of the bus master is performed in synchronization with the low level of the clock signal φB and the high level of φ2B, and the output of the bus slave is performed in synchronization with the low level of φS and the high level of φ2S. The input of the bus master is performed during the period when the clock signals φB and φ1B are at the high level (the latch is performed in synchronization with the change of the clock signal φ1B from the high level to the low level). This is performed during the level period (the latch is performed in synchronization with the change of the clock signal φ1S from the high level to the low level). For example, in FIG. 22, the interface signal I / F1 is an interface signal from the bus master to the bus slave. The interface signal I / F1 is output from the bus master in synchronization with the change of φ2B of the state S4 to the high level, and latched by the bus slave in synchronization with the change of φ1S of the state S5 from the high level to the low level. The interface signal I / F2 is an interface signal from the bus slave to the bus master. The interface signal I / F2 is output from the bus slave in synchronization with the change of φ2S of the state S7 to the high level, and latched by the bus master in synchronization with the change of φ1B of the state S12 from the high level to the low level. Therefore, a period of one or more states of the clock signal φS can be always ensured from the start of signal output to the capture. Thereby, the timing design can be made similar to the case where the medium speed mode is not considered, that is, the case where φB = φOSC.
[0108]
As shown in FIGS. 20 and 22, the operating clocks (φ1B, φ2B) of the bus master have a lower frequency than the operating clocks (φ1S, φ2S) of the bus slave, so that the interface signal from the bus master to the bus slave must be provided. The bus slave can recognize the same state as the output state of the bus master. Therefore, the interface signal can have an arbitrary pulse width for each state of the bus master. A bus access signal such as a read signal or a write signal, an interrupt factor clear signal, or the like can be assigned to such an interface signal.
[0109]
As shown in FIGS. 20 and 22, since the operating clock of the bus slave has a higher frequency than the operating clock of the bus master, the interface signal from the bus slave to the bus master is recognized by the bus master after the output of the bus slave. (The state of the bus slave) cannot be fixed. Therefore, these interface signals are preferably so-called handshake signals. An interrupt request signal signal, a DTC activation request signal, or the like can be assigned to such an interface signal. For example, once the factor flag is set to "1" and becomes active, the interrupt request signal is held. When the CPU recognizes the interrupt request signal and clears the interrupt factor flag to "0", the interrupt request signal is made inactive. Also, these interface signals are not recognized in one state. When used in only one state period, edge detection is performed on the input side. Note that if the output period at that time is set to a period longer than the longest period of the selectable system clock signal φB, that is, the period of the clock signal φOSC / 8 or more, no handshake is required.
[0110]
The request signal between the bus masters or between the bus slaves can be at any timing.
[0111]
FIG. 23 shows another operation timing of the bus master clock and the bus slave clock. Unlike FIG. 20 and FIG. 22, the clock signal φB has a duty of 50% even in the middle speed mode. The period of the clock signal φB is always equal to or longer than that of the clock signal φS, and the rising edge of the clock signal φB is synchronized with the rising edge of the clock signal φS. The input / output timing of the interface signal between the functional blocks is the same as in FIG. 19, and is as follows in detail. That is, the output of the bus master (bus slave) is permitted in synchronism with the high-level period of φB and φ1B (the high-level period of φS and φ1S) (change of the output signal is permitted). Regarding signal input, the bus master (bus slave) is allowed to input during a period when φB is at a low level and φ2B is at a high level (a period when φS is at a low level and φ2S is at a high level). The input latch timing of the bus master is synchronized with the change of the clock signal φ2B from high level to low level, and the input latch timing of the bus slave is synchronized with the change of the clock signal φ2S from high level to low level. For example, in the figure, an interface signal I / F1 is an interface signal from a bus master to a bus slave. The interface signal I / F1 is output from the bus master in synchronization with φ1B in the state S9, and latched by the bus slave in synchronization with the change of φ2S from the high level to the low level in the state S9. The interface signal I / F2 is an interface signal from the bus slave to the bus master. The interface signal I / F2 is output from the bus slave in synchronization with φ1S of the state S3, and latched by the bus master in synchronization with the change of φ2B from the high level to the low level in the state S4. Therefore, a period of one state or more of the clock signal φS can always be ensured from the start of signal output to capture. Thereby, the timing design can be made similar to the case where the middle speed mode is not considered, that is, the case where φB = φOSC.
[0112]
The point to be noted in the timing of FIG. 23 is that the rising of the clock signal φ2B matches the rising timing of the clock signal φ1S, and at this point, the phases of the clock signals φ2B and φ1S partially match. At the timing when the phases match, a signal is output from the bus slave to the bus master.
[0113]
At this time, if the interface control timing using the clock signal of FIG. 23 is reversed as shown in FIG. 21, the time from the start of signal output to the capture may not be ensured depending on the phase of φB and φS. In some cases, signals cannot be transmitted correctly. For example, when the bus slave outputs a signal in synchronization with the rise of φ2S in state S6 in FIG. 23, the bus master is allowed to latch input data in synchronization with the fall of φ1B in state S7, and Only a half cycle of the clock signal φS can be secured until the input latch of the signal. This is not a problem when there is only one signal, but in the case of a bus having a plurality of signals, among a plurality of signals, an old signal is transmitted and a new signal is transmitted. In some cases, such data may be mixed, and when these combinations make sense, the data may become meaningless data or cause a malfunction.
[0114]
When the clock signal waveform as shown in FIG. 23 is used in the interface specification as shown in FIG. 19, as shown in FIG. 23, the operating clock of the bus master is lower in frequency than the operating clock of the bus slave. Therefore, the interface signal to the bus slave is always recognized by the bus slave in the same state as the output of the bus master. Therefore, the interface signal can have an arbitrary pulse width for each state. A bus access signal such as a read signal or a write signal, an interrupt factor clear signal, or the like can be assigned to such an interface signal.
[0115]
Since the operating clock of the bus slave has a higher frequency than the operating clock of the bus master, the interface signal from the bus slave to the bus master in FIG. 23 is recognized by the bus master after the output of the bus slave (state of the bus slave). Cannot be constant. Therefore, these interface signals are preferably so-called handshake signals. An interrupt request signal signal, a DTC activation request signal, or the like can be assigned to such an interface signal. Note that if the output period at that time is set to a period longer than the longest period of the selectable system clock signal φB, that is, the period of the clock signal φOSC / 8 or more, no handshake is required.
[0116]
Here, the clock signal waveforms of FIGS. 20 and 22 will be further described. As is clear from FIGS. 20 and 22, the high-level period of φ2B is included in the low-level period of φ1S. Therefore, at least a spare time for one state of φS can be secured from the output of the bus slave synchronized with the rise of φ1S to the input signal latch operation of the bus master synchronized with the fall of φ2B. The high-level period of φ2S is included in the low-level period of φ1B. Accordingly, at least a margin of one state of φS can be secured from the output of the bus master synchronized with the rise of φ1B to the input signal latch operation of the bus slave synchronized with the fall of φ2S. These facts hold for both the interface specifications of FIGS. 19 and 21. On the other hand, as shown in FIG. 23, clock signals φ1S, φ2S, φ1B, φ2B, etc. are used in which the phase of the rising change of the clock signal φ2B to the high level coincides with the phase of the rising change of the clock signal φ1S. In this case, only in the bus interface specification (for example, the interface specification in FIG. 19) in which the timing of the phase coincidence is used as the signal output timing from the bus slave to the bus master, the signal φS is set to 1 from the signal output to the input latch of the signal. The extra time for the state can be secured.
[0117]
<< Example of Actual Bus Interface Timing >> FIGS. 24 and 25 show examples of actual bus interface timing. The timings in the figures are based on the use of the clock signals shown in FIGS. 20 and 22. As described above, the interface specifications can be used in exactly the same manner in FIGS. 19 and 21. This is an example in which one of the optimum interface specifications is adopted according to the above. In each figure, an address (via PAB), a functional block signal (MS #), a read signal RD #, and a write signal WR # are provided from a bus master. In FIG. 24, the read operation of the bus master is performed from the state S5. That is, from state S5 to state S16, the address bus and the function block selection signal (MS #) become valid. The read signal RD # becomes active (low level) in synchronization with φ2B in the first state (states S5 to S8) of the bus master. The bus slave detects the transition of the read signal RD # to the active state, and activates the register read signal and the bus interface latch signal inside the bus slave. For example, in FIG. 6, a register 771 or a timer counter 772 is specified by a register read signal, and data is transferred from the specified register or counter to the bus interface 760 via the module data bus and latched. A control signal in the bus slave such as a register read signal is included in, for example, an output control signal of the read / write control circuit 730 in FIG. Then, in synchronization with the next φ2S in state S9, the latched data is output to the data bus. After the read signal RD # is deactivated, the data bus is set to the high impedance state in synchronization with the change of φ1S in the state following the state S16. Read signal RD # is deactivated in synchronization with the rise of φ2B in the third state (states S13 to S16) of the bus master. The bus master latches the contents of the data bus in synchronization with the falling of the clock signal φ2B.
[0118]
In FIG. 25, the write operation of the bus master is performed from the state S5. From state S5 to state S16, the address bus and the function block selection signal (MS #) become valid. Write data is output to the data bus in synchronization with the rise of φ2B in the first state (states S5 to S8) of the bus master. The write signal WR # becomes active (low level) in synchronization with the rise of φ1B in the second state (states S9 to S12) of the bus master. The bus slave detects the transition of the write signal WR # to the active state, and activates the bus interface latch signal and the register write signal. The write data is latched by the bus interface, and the data is transferred from the bus interface to a designated register or a timer counter via the module data bus and written. Such a signal is included in, for example, a control signal output from the read / write control circuit 730 in FIG. The write signal is deactivated in synchronization with the rise of φ2B in the third state (states S13 to S16) of the bus master.
[0119]
<< External Output of Clock Signal φ >> As shown in FIG. 26, the single-chip microcomputer can externally output system clock signals φS and φB. That is, there are a case where the system clock signal φS is used as a reference clock of another semiconductor integrated circuit device and a case where a control signal synchronized with an external bus is generated based on the system clock signal φB. In the present invention, the system clock signal φS can be output to generate a reference clock for another semiconductor integrated circuit device or the like, and the system clock signal φB can be output to generate a control signal synchronized with an external bus. Output terminals TφS and TφB for that purpose are provided independently of each other at a predetermined input / output port IOP. For example, the output of the clock signal φS is assigned to the input / output port IOP60, and the output of the clock signal φB is assigned to the input / output port IOP61. The input / output ports IOP60 and IOP61 are also used for other input / output functions, and are included in the input / output port IOP6 shown in FIG.
[0120]
At this time, the clock signals φS and φB are generated by the clock control circuit 13 and output to the outside via the above-described input / output ports IOP60 and IOP61. The clock signals φS and φB are substantially the highest-speed signals in the semiconductor integrated circuit. Wirings 1310 and 1311 between the clock control circuit 13 and the input / output ports IOP60 and IOP61 extend between the functional blocks and have a relatively large capacitance component. Therefore, when such a clock signal is externally output, current consumption increases due to its relatively large capacitance component and high clock frequency.
[0121]
Since the external output of φS or φB is a necessary operation, it is inevitable to consume current. However, a single-chip microcomputer or the like often does not need to output a clock to the outside. Stopping the clock output is effective in reducing power consumption, coupling noise, and unnecessary radiation, as described in Japanese Patent Application No. 60-184207, for example. To cope with this, in the present embodiment, when the clock signal φS or φB is not output to the outside, the signal between the clock control circuit 13 and the input / output ports IOP60 and IOP61 is set to, for example, the level of the logical value “0”. It is fixed so that no signal change occurs on the clock lines 1310 and 1311 to reduce current consumption. For example, as schematically shown in FIG. 26, a serial circuit of an AND circuit 1300 and a clock driver 1302 is provided for external output of the clock signal φS generated by the clock control circuit 13, and the output of the clock driver 1302 is Connected to input / output port IOP60 via clock wiring. Similarly, a serial circuit of an AND circuit 1301 and a clock driver 1303 is provided for external output of the clock signal φB generated by the clock control circuit 13, and the output of the clock driver 1303 is supplied to the input / output port IOP61 via the clock wiring. Connected. The output of the input / output ports IOP60 and IOP61 is permitted using the corresponding bits DDR60 and DDR61 of the data direction register (not shown) of the corresponding input / output port IOP6. When the bits DDR60 and DDR61 are set to the logical value "1", the IOP60 and IOP61 are in an output enabled state. This can be controlled independently for φS and φB. At this time, the inverted signal of the output permission bit DDR60 is supplied to the other input of the AND circuit 1300, and the inverted signal of the output permission bit DDR61 is supplied to the other input of the AND circuit 1301. Therefore, when the output of the clock signals φS and φB is not permitted to the IOPs 60 and 61, the outputs of the AND circuits 1300 and 1301 are fixed to the low level. Thus, when the clock signals φS and φB are not output to the outside, power consumption in the clock wiring after the clock drivers 1302 and 1303 can be reduced, and further, coupling noise and unnecessary radiation (generation of undesired radio waves) can be reduced. can do.
[0122]
FIG. 27 shows a modification in which either the clock signal φS or φB can be selectively externally output. At this time, the clock control register 132 is provided with PHIS bits shown in FIGS. 28 (A) and (B). As shown in FIG. 28B, when the PHIS bit is a logical value "1", the clock signal φS is instructed to be outputted to the outside, and when the logical value is "0", the clock signal φB is instructed to be outputted to the outside. Is done. The selection of a clock signal to be output is performed by a selector including AND circuits 1304 and 1305 and an OR circuit 1306. The external output of the clock signal selected by this selector is enabled by the output enable bit DDR60 for the input / output port IOP60. The output enable bit is inverted and supplied to the AND circuit 1307 as in the case of FIG. The output clock signal of the selector is supplied from the AND circuit 1307 and the clock driver 1308 to the input / output port IOP61 via the clock wiring only when the output of the clock signal is permitted by the output permission bit DDR60. When the output of the clock signal to the external terminal Tφ is prohibited, the output of the AND circuit 1307 is fixed to the logical value “0” as described above, and as a result, the power consumption of the clock wiring after the clock driver 1308 is reduced. Etc. can be realized.
[0123]
<< Multi-division of Internal Bus >> FIG. 29 shows another example of division of the internal bus of the single-chip microcomputer. FIG. 29 is a block diagram focusing on the internal bus of a single-chip microcomputer. The buffer BUF is a buffer circuit included in the input / output ports IOP1 to IOP5 and interfaced with an external address bus and an external data bus.
[0124]
Internal address bus PAB and internal data bus PDB shown in FIG. 1 are divided into internal address bus PAB1 and internal data bus PDB1 and internal address bus PAB2 and internal data bus PDB2 in FIG. 29, respectively. And I / O ports IOP1 to IOP6, WDT8, and a static latch circuit HD1 are coupled to PDB1. Connected.
[0125]
The internal buses PAB1 and PAB2 and the internal buses PDB1 and PDB2 have the same wiring length, that is, the same wiring capacity, and the total wiring capacity is smaller than the wiring capacity of the internal buses PAB and PDB in the case of FIG. The allocation of the divided internal buses and the circuit modules is determined in accordance with the actual layout of the circuit blocks so that the size of the internal bus does not increase. Logically, there is no restriction on which of the divided buses the input / output port IOP, timer 7, WDT 8, SCI 9, and A / D converter 10 should be connected to.
[0126]
According to the module select determination included in the bus controller 3, one of PAB1 and PDB1 and one of PAB2 and PDB2 is set to an active state. When the ROM 5 or the RAM 6 is accessed, both PAB1 and PDB1 and PAB2 and PDB2 are deactivated. In the inactive state, the internal address buses PAB1 and PAB2 retain the previous value. When the outputs of the bus controller 3 and the functional blocks such as the WDT 8 are set to high impedance, the previous values of the internal data buses PDB1 and PDB2 are held by the static latch circuits HD1 and HD2. Each of the static latch circuits HD1 and HD2 is provided with, for example, two inverter circuits connected in anti-parallel to each signal line, and is configured to hold the state of PDB1 and PDB2. In the case of outputting, it has a relatively small driving ability so that driving of the bus by such output data can be prioritized. That is, the output currents of the inverter circuits constituting the static latch circuits HD1 and HD2 are larger than the leakage currents of the PDB1 and PDB2 and sufficiently smaller than the output currents of the functional blocks. Note that the number of divisions of the internal buses PDB and PAB in FIG. 1 can be three or more. If the number of the internal address buses PAB is small, the internal address buses PAB may be shared and only the internal data bus PDB may be divided.
[0127]
<< Vectorization of Low Power Consumption Information >> As means for forcibly increasing the frequency of the clock signal φB in order to speed up processing for an interrupt request or the like, a clock control register described in FIG. 9A and FIG. In addition to using the 132 MSME bits, low power consumption information may be fetched as a vector at the start of interrupt processing (including exception processing such as reset). In a part of the address space of the CPU 1, a plurality of vectors each corresponding to an interrupt are written in advance. When an interrupt request is generated, the CPU 1 fetches a vector corresponding to the interrupt and performs a process according to the information on the interrupt held in the fetched vector. That is, when an interrupt request occurs, the CPU 1 outputs an address indicating a vector corresponding to the interrupt, and fetches information on the interrupt from a vector area indicated by the address. In this embodiment, this information includes a start address of a program (handler program) to be executed by the interrupt and low power consumption information. In response to the interrupt request, the start address is set in a program counter (not shown) in the CPU 1 for executing the handler program, and the low power consumption information is stored in the module stop signal as described later. It is set in the control register 133 and the clock control register 132. Further, after the processing for the interrupt request is completed, the contents of the status register and the address to be returned are stored in the stack pointer in the CPU 1 when responding to the interrupt request, as described later, in order to return to the original program. The data is written to an address area (stack area) in the address space of the CPU 1 designated by (not shown). As will be understood from the following description, in this embodiment, in addition to the contents of the status register and the return address, the contents of the module stop control register 133 and the clock control register 132 are designated by the stack pointer. It is written (stacked) to the stack area. For example, the interrupt vector has control information for setting the medium speed mode and setting the module stop as low power consumption information together with the start address of the handler to be executed by the interrupt. In this case, the initial value of the clock control register 132 can be determined by the low power consumption information of the reset vector, and it is preferable to set this to the medium speed mode. By doing so, the low power consumption state after the reset can be set immediately, so that the load on the software can be reduced, and the current consumption can be reduced, for example, starting from the medium speed mode is possible.
[0128]
FIGS. 30A to 30C show an example of a vector array designating a low power consumption state and a stack in that case. According to this example, the low power consumption information has 8 bits as shown in FIG. That is, the low power consumption information includes 6 bits (bits 7 and 2 of the low power consumption information) corresponding to bits 7 and 2 (MSTP7 and MSTP2) of the module stop control register 133, and bit 0 and bit 0 of the clock control register 132. 2 (bits 1 and 0 of low power consumption information) corresponding to 1 (CKS0, CKS1). In the vector shown in FIG. 30A, the start address is 24 bits if the address space is 16 MB. As shown in FIG. 30C, in the stack area, in addition to the return address and the low power consumption information used in the return destination, a 16-bit storage area for the status register that holds the internal state of the CPU 1 Is included. The status register includes a condition code indicating the result of the operation, an interrupt mask bit, and the like. In the following description, bits 7 to 2 (MSTP7 to MSTP2) of the module stop control register 133 and bits 0 and 1 (CKS0, CKS1) of the clock control register 132 are combined with a low power consumption state control register. Name.
[0129]
FIG. 31 shows the operation timing at the time of exception processing and at the time of return. Although not particularly limited, the ROM 5 and the RAM 6 can be read / written in one state. Instructions and vectors are arranged in the ROM 5, and the stack area is arranged in the RAM 6. At the time of exception processing, the value of the program counter (PC) at that time and the information of the low power consumption state control registers (CK0 and CK1 of the clock control register 132 and MSTP2 to MSTP7 of the module stop control register 133) and the status register (not shown) Is saved in the stack area (states S1 to S5). That is, the dedicated read signal RD-LPCR # is activated to read the contents of the low power consumption state control register (states S2 to S4), and the write signal WR # is also activated. Is written to the stack area. Following the operation of the stack, the contents of the low power consumption state control register and the PC are read from the ROM 5 as a vector (S6 to S9). The low power consumption state control register read from the ROM 5 is not taken in by the CPU, but is written into the low power consumption state control register (S6 to S8). The dedicated write signal WR-LPCR # for this is activated. As a result, the contents of the low power consumption control register are changed from the state S7, and the setting of the medium speed mode and the setting of the module stop are changed. The start address as a vector is taken into a program counter (not shown) inside the CPU, and the CPU 1 starts executing the instruction from the start address (S11 to S13).
[0130]
At the time of return, the contents of the status register, the low power consumption state control register, and the PC are read from the stack area in the RAM 6 (S14 to S18). The contents of the low power consumption state control register read from the stack area are not taken in by the CPU 1 but written into the low power consumption state control register. The return address is taken into the CPU 1, and the CPU 1 starts executing the instruction from the address. The status register is stored inside the CPU 1. From S16, the contents of the low power consumption control register are restored. The setting of the medium speed mode and the setting of the module stop are restored, and the state becomes the same as the state before S6. If the medium speed mode is set before S6 and after S16, and the high speed mode is set from S7 to S15, the same operation as in FIG. 17 can be realized without load of software. Since a low power consumption state can be set for each interrupt, an appropriate operation speed is set for an interrupt request that does not require high-speed processing, so that power consumption is not wasted. In addition, since the function block can be stopped while holding the internal state of the function block by the module stop, for example, if the DTC 2 is set as the module stop, it is possible to prevent the DTC 2 from using the bus to interrupt the operation of the CPU 1. This is effective when it is necessary to execute a high-speed interrupt processing routine.
[0131]
FIG. 32 representatively shows a 1-bit configuration of the low power consumption control register. As described above, bits 1 and 0 of the clock control register 132 and bits 7 and 2 of the module stop control register 133 constitute a low power consumption control register. In the configuration of FIG. 32, two OR circuits 1325 and 1326 are added to FIG. 16, and the dedicated write signal WR-LPCR is applied to the clock input terminal C via the OR circuit 1325. The contents of the data bus are input regardless of the address. Also, the read signal of the clocked buffer 1322 is supplied with the dedicated read signal RD-LPCR via the OR circuit 1326, and the contents of the register are output to the data bus regardless of the address. The dedicated write signal WR-LPCR and the dedicated read signal RD-LPCR are formed by, for example, the CPU 1 and have a signal common to bits 1 and 0 of the clock control register 132 and bits 7 and 2 of the module stop control register 133. Is done. In FIG. 32, the signals RD, WR, RD-LPCR, and WR-LPCR are shown as positive logic signals to facilitate understanding.
[0132]
<< Example of Sub Clock Oscillator >> FIG. 33 shows another example of the clock oscillator and the clock control circuit. In this example, a second oscillator 12A, a frequency divider 130A, a selector 131A, and a no overlap generating circuit 138 are added to FIG. For example, a crystal oscillator such as 32.768 kHz is connected to EXTALL and XTALL of the second oscillator 12A. As a single-chip microcomputer having two sets of oscillators, for example, there is one described in “H8 / 3834 HD6473834 HD6433834 Hardware Manual” issued by Hitachi, Ltd., September, 1992. The second frequency divider 130A performs frequency division in the same manner as described above, and the frequency-divided clock signals φOSC / 2, φOSC / 4, and φOSC / 8 are selected by the selector 131A based on control bits from the clock control register 132. . Based on the selected clock signal, the no-overlap generation circuit 138 generates two-phase no-overlap clock clock signals φ1L and φ2L, and supplies them to required functional blocks, for example, the CPU 1 and the timer 7. The no-overlap generation circuit 138 is different from the one built in each of the functional blocks so as to be compatible with a low operation frequency and a low voltage operation. Because of the low frequency, even if the two-phase clock signals φL1 and φL2 are supplied to the CPU 1, the timer 7, and the like, there is no disadvantage in power consumption.
[0133]
Although not particularly limited, the two-phase no-overlap clock signals φ1L and φ2L are used when a single-chip microcomputer is used for clock processing. The clock control register 132 has a watch mode bit WM. When this is set to a logical value "1", the single-chip microcomputer operates at the lowest operating frequency required for clock processing. The clock process is a process of updating the clock display at regular time intervals, such as every second, when the clock is included in the control target of the single-chip microcomputer. The CPU 1 causes the CPU 1 to execute a clock process by a timer interrupt performed at regular time intervals by a timer clocked by the clock signals φ1L and φ2L.
[0134]
FIG. 34 is a schematic block diagram of a single-chip microcomputer exclusively showing a mode of supplying the clock signals φ1L and φ2L from the clock control circuit 13 of FIG. 33 to other functional blocks. This block diagram considers, for example, the clock processing. In the single-chip microcomputer of FIG. 34, in addition to the clock control circuit 13 of FIG. 33, a CPU 1, a bus controller 3, an interrupt controller 4, input / output ports IOP1 to IOP11, and a timer 7 are representatively shown. NOV shown in each circuit block is a no-overlap generation circuit that forms a no-overlap two-phase clock signal from an input clock signal. The clock signal φB is supplied to the CPU 1, the bus controller 3, and the no-overlap generation circuit NOV of the interrupt controller 4 coupled to the internal buses IAB and IDB described in FIG. 1, and the internal buses PAB and PDB described in FIG. The clock signal φS is supplied to a timer 7 and a no-overlap generating circuit NOV of IOP1 to IOP11. Further, the above-mentioned no-overlapping two-phase clock signals φL1 and φL2 are supplied to the respective functional blocks 1, 3, 4, 7, and IOP1 to IOP11, and output from the no-overlap generating circuit NOV in the respective functional blocks. A selector SEL for selecting which of the two-phase clock signal or the two-phase clock signals φL1 and φL2 is used as the internal synchronization clock signal is provided. The selector of the timer 7 is selected according to a control bit of an internal control register set by the CPU 1 or the like. When the timer 7 includes a plurality of channels, the control register and the selector SEL may be provided for each channel. The selection state of the CPU 1, the bus controller 3, the interrupt controller 4, and the selector SEL of the input / output ports IOP1 to IOP11 is determined by a watch mode bit WM output from the clock control circuit 13.
[0135]
When the watch mode bit is set to the logical value "1", the timer 7 is set to a module stop state except for a predetermined channel. The predetermined channel of the timer 7 selects the clock signals φL1 and φL2 by the selector SEL using the control bit, and performs a clocking operation for intermittently performing a clock process using the clock signals φL1 and φL2 for a predetermined time. The timer interrupt signal is output every time. In the CPU 1, the bus controller 3, the interrupt controller 4, and the IOP1 to IOP11, the clock signals φL1 and φL2 are selected by the selectors based on the watch mode bit WM having the logical value “1”, so that these functional blocks have the low frequency for the clock. Clock signals φL1 and φL2. The timer 7 generates an interrupt signal for clock processing at regular intervals, and the CPU 1 intermittently performs clock processing in response thereto. When the watch mode bit WM is activated, the first oscillator 12 stops oscillating. The watch mode is released by the CPU 1 setting the watch mode bit WM to the logical value “0”.
[0136]
According to the above embodiment, the following effects can be obtained. [1] The system clock signals are φS and φB, and the dividing ratio of the system clock signal φB is made variable without increasing the total wiring capacitance of the clock signal wiring so much to secure the absolute reference clock of the functional block. In addition, the power consumption of the bus master can be reduced by changing the system clock signal φB, and the power consumption of the entire semiconductor integrated circuit can be reduced. By reducing power consumption, unnecessary radiation (the generation of undesired radio waves) can be reduced.
[0137]
[2] Since the constant frequency system clock signal φS is supplied to peripheral circuits such as the SCI and the timer, even if the frequency of the system clock signal φB to the CPU or the like is changed, the SCI bit rate or baud rate and the timer The clock cycle of the above can be kept constant, and even if the operating frequency of the CPU or the like is changed, it is not necessary to change the settings of those peripheral function blocks.
[0138]
[3] The clock control circuit 13 includes the register means 132 in which information for selecting the frequency division ratio of the system clock signal φB can be set by the bus master. Can be arbitrarily selected.
[0139]
[4] The data bus is supplied with an internal data bus IDB supplied with a system clock signal φB and connected to a functional block such as a CPU, and an internal data bus connected with a functional block supplied with a system clock signal φS and operated as a bus slave. It is separated into a bus PDB. By connecting a function block that frequently starts a bus cycle, such as a bus master such as a CPU, to a data bus different from the bus slave, the load on the frequently accessed data bus is reduced, contributing to low power consumption. I do. Also, it can contribute to speeding up. By holding the previous value of the data bus, which is relatively infrequently used for access, by the hold circuits HD1 and HD2, the number of times of charging and discharging on the data bus can be reduced to contribute to low power consumption. .
[0140]
[5] By supplying system clock signals φS and φB as one-phase clock signals to the function blocks and generating a two-phase clock signal inside each function block, the total wiring capacity of the clock signal wiring can be reduced. Power consumption can be reduced.
[0141]
[6] When a prescaler clock signal is used, a prescaler clock signal with a low frequency division ratio is internally generated for each functional block, and a prescaler clock signal with a large frequency division ratio is generated in common, thereby greatly increasing the logic scale. By not using a signal having a large signal change frequency as a signal between functional blocks, power consumption can be reduced.
[0142]
[7] The inter-function block signal from the bus slave to the bus master is synchronized with φ1S as described with reference to FIGS. 20 and 23, for example, to facilitate the interface.
[0143]
[8] By making it possible to hold the internal state of the functional block and limiting the portion to which the clock is always supplied, it is possible to limit signal changes even during operation and reduce power consumption. Further, even if the clock is stopped, by maintaining the internal state, the burden of resetting by software can be reduced.
[0144]
[9] Divide the internal bus including the data bus, divide the capacity, and suppress the signal change for the inactive bus, so that the signal that changes in one operation is charged / discharged. The required capacity can be reduced, and the power consumption can be reduced.
[0145]
[10] An event detection circuit, such as an interrupt controller, for detecting information on an interrupt or a change in a signal at an external terminal is provided. When an event occurs, the frequency division ratio of φB is automatically changed. By changing the state of the module stop or the like, it is possible to reduce the time from when an event occurs to when a desired process is performed, thereby improving the processing performance. At the time of the change, the information before the change is saved in, for example, a stack area, and the new information is loaded together with, for example, a vector, so that an arbitrary setting can be performed.
[0146]
[11] By making it possible to output clock signals corresponding to the clock signals φS and φB to the outside and to prohibit the output by software, the clock signal φS can be used as a reference clock of the external semiconductor integrated circuit, φB can be used as a control signal of the bus control circuit. In addition, if unnecessary, output is prohibited, so that power consumption, coupling noise, and unnecessary radiation can be reduced.
[0147]
Although the invention made by the inventor has been specifically described based on the embodiments, the present invention is not limited thereto, and it is needless to say that various modifications can be made without departing from the gist of the invention.
[0148]
For example, the case where the clock signal is made asymmetric is not limited to the above embodiment. In any case where operation is unnecessary, one can be stopped at a high level and the other at a low level. For example, it can be applied to a case where the CPU is in a wait state. If all the timing circuits are of a static type, the clock signal does not become asymmetric, and φB in the middle speed mode can be a clock signal with a duty ratio of 50%.
[0149]
The clock control register may be readable / writable from the CPU, or may be changeable by setting an external terminal. For example, the initial setting value of the clock control register may be changed by inputting a predetermined terminal. When a predetermined terminal is reset at a low level, it operates with a high-speed clock, and then operates at a low speed with the setting of the CPU. When the predetermined terminal is reset at a high level, it operates with a low-speed clock, and then at a setting of the CPU. To enable high-speed operation.
[0150]
The details of the bus timing can be variously changed. Although the timings of IAB / IDB and PAB / PDB are the same, they may be shifted. The event may include, for example, an external bus release. When the bus is released to the outside, the bus master can automatically enter the medium speed mode, or the DTC can be set to the module stop state. The low power consumption information provided as a vector is not limited to 8 bits. Any number of bits can be used. A plurality of sets of dedicated read signals and dedicated write signals may be provided.
[0151]
The configuration of the low power consumption control register can be variously changed. The specific circuit configurations of the dynamic circuit and the static circuit can be variously changed. For example, the static circuit can be configured by a flip-flop. Further, the clock is not limited to two-phase no overlap. Three or more phases or an overlap clock can be used. The clocks of some phases may be made longer and the clocks of the other phases may be made shorter.
[0152]
Although a case has been described where a DTC is incorporated as a data transfer device, this may be a DMA controller (DMAC). DTC in the embodiment may be read as DMAC. These need not be functional blocks independent of the CPU, and may be realized as a part of the CPU. In this case, a name such as micro DMA, macro service, or intelligent I / O service may be used. The other functional blocks of the single-chip microcomputer are not restricted at all. The number of functional blocks and the method of specifying a module stop can also be set arbitrarily.
[0153]
In the above description, the case where the invention made by the inventor is mainly applied to a single-chip microcomputer as a background of application has been described. However, the present invention is not limited to this, and it is applicable to other semiconductor integrated circuits. The present invention is applicable, and at least the present invention can be applied to a semiconductor integrated circuit included in a system that operates in synchronization with a clock.
[0154]
【The invention's effect】
The following is a brief description of an effect obtained by a representative one of the inventions disclosed in the present application.
[0155]
[1] A second system clock signal (φS) having a constant frequency is supplied in common to a plurality of functional blocks, a frequency division ratio is selectable, and a frequency is set to be equal to or lower than the second system clock signal. By supplying the system clock signal (φB) to a predetermined functional block, the operating frequency is changed according to the state of the functional block to which the first system clock signal (φB) is supplied, thereby achieving low power consumption. Can be. At this time, even if the frequency of the first system clock signal is changed, the operating speeds of the plurality of functional blocks operated in response to the second system clock signal (φS) are not changed. In controlling power consumption by changing the frequency of the system clock signal, there is no processing for resetting the operating conditions for a plurality of functional blocks that are operated in response to the second system clock signal (φS). No need.
[0156]
[2] The function block to which the first system clock signal is supplied via the first clock signal wiring is a bus master, so that the bus master is supplied with a system clock signal having a variable frequency division ratio. Become. In a data processor such as a microcomputer, a CPU as a bus master generally frequently starts a bus cycle for fetching instructions and data, which is effective in reducing power consumption.
[0157]
[3] By making the function block to which the second system clock signal is supplied via the second clock signal wiring a bus slave, even if the frequency of the system clock signal of the bus master is changed, the serial communication interface The bit rate or baud rate, the time period of the timer, and the like can be kept constant, and the setting change of these peripheral function blocks can be eliminated.
[0158]
[4] By adopting the register means (132) in which the information for selecting the division ratio of the first clock signal (φB) can be set by the bus master, the division ratio can be determined by the bus master such as the CPU. The choice can be made arbitrarily.
[0159]
[5] By connecting a function block that frequently starts a bus cycle like a bus master such as a CPU to a data bus different from a bus slave, the load on a frequently accessed data bus is reduced. In this regard, low power consumption is achieved. By holding (previous value holding) the previous value of the data bus that is relatively infrequently used for access by the hold circuit, the number of times of charging and discharging on the data bus is reduced, thereby contributing to low power consumption. .
[0160]
[6] The two-phase no-overlap clock signals generated based on the first and second system clock signals are partially made to coincide in phase, and synchronized with the timing when the phases coincide, Changing a signal to be supplied from a function block operated in synchronization with the second system clock signal to a function block operated in synchronization with the first system clock signal (a function block whose operation speed can be relatively slowed down). This facilitates the interface between the functional blocks having different system clock signal frequencies, in other words, the timing design for the interface can be facilitated.
[0161]
[7] The first-phase clock signals of the two non-overlapping two-phase clock signals generated based on the first and second system clock signals have phases in which the low-level periods coincide. Since the second-phase clock signals have phases in which the high-level periods are matched, the output and input of each functional block can be synchronized with either the first-phase or the second-phase clock signal. A period of one cycle or more of the second system clock signal (φS) can be secured between the function blocks having different system clock signals from the data output to inputting and latching the data. In other words, the interface between the functional blocks different from the above can be simplified, in other words, the timing design for the interface can be facilitated.
[0162]
[8] When the output from the output circuit that selectively outputs the first system clock signal (φB) and the second system clock signal (φS) to the outside is set to the non-selection state, the clock of the output circuit is output. By forcing the input wiring to a predetermined level, when external output of the system clock signal is not required, charging and discharging of the clock input wiring can be suppressed, thereby contributing to low power consumption.
[0163]
[9] By individually suppressing the generation of an internal clock signal or the like for each functional block, the change of the internal clock signal is stopped in the unused internal function block, and the power due to the charge / discharge current due to the useless change of the clock signal. Consumption can be reduced. At this time, by maintaining the internal state when the internal clock signal is stopped, it is possible to save the trouble of setting the internal circuit again when the operation restart is selected.
[0164]
[10] Low power consumption can be realized by suppressing the generation of the internal timing signal by making the own operation unselected. By maintaining the internal state when the change of the internal timing signal is stopped, it is possible to save the trouble of resetting the internal circuit when restarting the operation.
[0165]
[11] A circuit that is operated in response to a no-overlap two-phase internal timing signal is connected in series to a dynamic circuit that is dynamically operated in response to the first-phase timing signal and to the dynamic circuit And a static circuit that is statically operated in response to the timing signal of the second phase. Is supplied to the static circuit, even if the information holding time due to the output load capacitance of the dynamic circuit is finite, the period in which the dynamic circuit should hold the information is shortened, and the first system clock The range in which the frequency of the signal can be reduced can be widened. Further, the physical scale of the circuit can be reduced as compared with the case where both are configured by static latch circuits.
[0166]
[12] The selection state of the system clock signal frequency when a predetermined event occurs by forcing the frequency of the first system clock signal based on the event detection even if the set system clock signal frequency is low. Can be forced to a predetermined state, for example, the highest frequency selection state, so that the time required for performing a desired process in response to a predetermined event can be reduced.
[0167]
[13] The process of forcing the system clock signal to a specific frequency can be simplified by forcing the system clock signal frequency by rewriting a predetermined storage area (MSME) to a predetermined value upon occurrence of an event.
[0168]
[14] When returning from the exceptional processing requested by the central processing unit due to the occurrence of an event, the central processing unit returns the storage area (MSME) to a predetermined value, thereby storing information for selectively designating a frequency. It is not necessary to save and restore the values of the areas (CKS1, CKS2) themselves.
[0169]
[15] When the functional block that receives the system clock signal whose frequency is forcibly is a data transfer controller other than the central processing unit, the data transfer controller that has requested the exceptional processing due to the occurrence of the event ends the exceptional processing. Is output, thereby returning the storage area (MSME) to a predetermined value, thereby restoring the system clock signal without burdening the central processing unit or software.
[0170]
[16] A register means (133) for rewritably holding information for inhibiting the formation of the internal clock signal in units of functional blocks is provided, and the register means is controlled by the internal clock signal based on occurrence of a predetermined event such as reset. By initializing to a state in which the formation of is formed, power consumption in an initial state when a predetermined event such as a reset occurs can be reduced.
[0171]
[17] By using control information paired with a vector such as an interrupt vector to force the frequency of a system clock signal, low power consumption can be finely set according to the type of event.
[0172]
[18] When using the control information of a pair with a vector such as the above-mentioned interrupt vector, when an event occurs, the current information for low power consumption control is saved by the control information of the pair with the vector so as not to be lost. After the exceptional processing requested by the occurrence of the event, the power control state can be returned to the state immediately before the occurrence of the event.
[0173]
[19] A prescaler clock signal with a low frequency division ratio that can be generated by the prescaler is not supplied from the prescaler, but is generated individually by the frequency divider in the functional block, so that a clock signal with a low frequency division ratio can also be generated from the prescaler. Power consumption can be reduced as compared with the case where the power is directly supplied to a plurality of functional blocks.
[Brief description of the drawings]
FIG. 1 is a block diagram of a single-chip microcomputer as one embodiment of a semiconductor integrated circuit according to the present invention.
FIG. 2 is a block diagram showing a modification of the single-chip microcomputer of FIG.
FIG. 3A shows an example of the configuration of a typical logic circuit of each functional block, and FIG. 3B shows an example of a sequential circuit formed of a CMOS dynamic circuit, which is used in the single-chip microcomputer of this embodiment. FIG. 4 is an explanatory diagram showing an example of the CMOS dynamic circuit shown in FIG.
FIG. 4 is a block diagram illustrating an example of a prescaler.
FIG. 5 is an explanatory diagram showing operation timings of an example of the prescaler by (A) to (I).
FIG. 6 is a block diagram illustrating an example of a PWM timer.
FIG. 7 illustrates an example of a no-overlap generation circuit by (A), an example of a clock control circuit by (B), and an example of a no-overlap generation circuit employed in the WDT by (C). FIG.
FIG. 8 is an operation timing chart of an example of the PWM timer of FIG. 6;
9 is a block diagram showing an example of a clock oscillator and a clock control circuit of the single-chip microcomputer shown in FIG.
10A is an explanatory diagram illustrating an example of a clock signal selection mode based on logical values of an MSME bit, a CKS1 bit, and a CKS0 bit, and FIG.
11A and 11B are explanatory diagrams showing examples of a register configuration of a module stop control register for controlling a module stop mode and a register configuration of a clock control register for controlling a medium speed mode.
FIG. 12 is an explanatory diagram showing MSTP7 to MSTP5 in the module stop control register by (A) to (C).
FIG. 13 is an explanatory diagram showing MSTP4 to MSTP3 in the module stop control register by (A) and (B).
FIG. 14 is an explanatory diagram showing a clock control register by (A) to (C).
FIG. 15 is a schematic operation flowchart focusing on a system clock signal in the single-chip microcomputer of the present embodiment.
FIG. 16 is a block diagram showing a schematic example of an MSME bit.
FIG. 17 is an example operation timing chart when an interrupt request occurs.
FIG. 18 is an example operation timing chart when a DTC activation request occurs.
FIG. 19 is a schematic explanatory diagram of a first interface specification between a bus master and a bus slave.
FIG. 20 is a timing chart of an example of a bus master clock and a bus slave clock according to FIG. 19;
FIG. 21 is a schematic explanatory diagram of a second interface specification between a bus master and a bus slave.
FIG. 22 is a timing chart of an example of a bus master clock and a bus slave clock according to FIG. 21;
FIG. 23 is another operation timing chart of the bus master clock and the bus slave clock.
FIG. 24 is a timing chart of an example of a bus interface in a read operation for a bus slave.
FIG. 25 is a timing chart of an example of a bus interface in a write operation for a bus slave.
FIG. 26 is an explanatory diagram of an example of a configuration for selectively enabling external output of clock signals φS and φB.
FIG. 27 is an explanatory diagram of an example of a configuration in which either one of clock signals φS or φB can be selectively externally output;
28 is an explanatory diagram showing PHIS bits required for the configuration of FIG. 27 by (A) and (B).
FIG. 29 is a schematic block diagram showing another example of division of the internal bus of the single-chip microcomputer.
FIG. 30 is a diagram illustrating an example of a vector array specifying a low power consumption state and a stack in that case;
FIG. 31 is an example of an operation timing chart at the time of exception processing and at the time of return in an embodiment in which low power consumption information is arranged in a vector.
FIG. 32 is an example block diagram representatively showing a configuration of one bit of a low power consumption control register.
FIG. 33 is a block diagram showing another example of the clock oscillator and the clock control circuit.
34 is a schematic block diagram of a single-chip microcomputer exclusively showing a mode of supplying clock signals φ1L and φ2L from the clock control circuit of FIG. 33 to other functional blocks.
[Explanation of symbols]
1 Central processing unit (CPU)
2 Data transfer controller (DTC)
3 Bus controller
4 Interrupt controller
5 ROM
6 RAM
7 Timer (PWM timer)
700 No overlap generation circuit
710 Clock control circuit
720 divider
8 Watchdog timer (WDT)
9 Serial Communication Interface (SCI))
10 Analog / Digital (A / D) converter
12 Clock oscillator
13 Clock control circuit
130 divider
131 Selector
132 Clock control register
1325 DTC transfer end signal
133 Module stop control register
1300,1301,1307 AND gate
1310, 1311 Wiring for external output of system clock signal
14 Prescaler
IOP60, IOP61 I / O port
IDB, IAB Internal bus
PDB, PAB Internal bus
φOSC clock signal
φS, φB system clock signal
L1, L2 clock signal wiring
φ1S, φ2S No overlap two phase clock signal
φ1B, φ2B No overlap two phase clock signal
φ1-PWM, φ2-PWM No overlap two-phase timing signal
MSTP module stop signal
MSTPPSC Prescaler module stop signal

Claims (8)

第1システムクロック信号に同期して、例外処理とその他の処理とを実行する第1機能ブロックと、
イベントの発生を検出し、上記第1機能ブロックに対して、例外処理の実行を要求する要求信号を出力するイベント検出回路と、
上記イベントを発生する第2機能ブロックと、
上記第1システムクロック信号の周波数を変更する制御回路であって、上記要求信号に応答して、上記第1システムクロック信号を所定の周波数に変更する制御回路と、を具備することを特徴とする半導体集積回路。
A first functional block that executes exception processing and other processing in synchronization with the first system clock signal;
An event detection circuit for detecting occurrence of an event and outputting a request signal requesting execution of exception processing to the first functional block;
A second functional block for generating the above event;
A control circuit for changing the frequency of the first system clock signal, the control circuit changing the first system clock signal to a predetermined frequency in response to the request signal. Semiconductor integrated circuit.
請求項1において、
上記制御回路は、
第1記憶領域と第2記憶領域とを有する第1レジスタ手段と、
上記所定の周波数を含む互いに異なる周波数の複数のクロック信号を受け、上記第1記憶領域が第1状態にされているとき、上記所定の周波数のクロック信号を、上記第1システムクロック信号として出力し、上記第1記憶領域が第2状態にされているとき、上記第2記憶領域に保持されている情報に従って、上記複数のクロック信号の内の一つを、上記第1システムクロック信号として出力するセレクタとを含むことを特徴とする半導体集積回路。
In claim 1,
The control circuit includes:
First register means having a first storage area and a second storage area;
Receiving a plurality of clock signals of different frequencies including the predetermined frequency and outputting the clock signal of the predetermined frequency as the first system clock signal when the first storage area is in the first state. When the first storage area is in the second state, one of the plurality of clock signals is output as the first system clock signal in accordance with the information held in the second storage area. A semiconductor integrated circuit comprising a selector.
請求項2において、
上記第1機能ブロックは、上記例外処理からの復帰に際して、上記第1記憶領域を上記第2状態に設定可能にする中央処理装置を含むことを特徴とする半導体集積回路。
In claim 2,
The semiconductor integrated circuit according to claim 1, wherein the first functional block includes a central processing unit that enables the first storage area to be set to the second state when returning from the exception processing.
請求項3において、
上記第1機能ブロックは、上記例外処理の終了に応答して、終了信号を出力するデータトランスファーコントローラを含み、上記終了信号によって上記第1記憶領域が上記第2状態へ設定されることを特徴とする半導体集積回路。
In claim 3,
The first functional block includes a data transfer controller that outputs a termination signal in response to termination of the exception processing, wherein the termination signal sets the first storage area to the second state. Semiconductor integrated circuit.
例外処理の要求に応答するために、上記例外処理に対応するメモリ内のベクタ領域から情報を取りこみ、第1システムクロック信号に従って動作する中央処理装置装置と、
イベントの発生を検出し、上記中央処理装置へ例外処理の要求を出力するイベント検出回路と、
上記第1システムクロック信号の周波数を指定する情報を保持する第1レジスタ手段と、
第2システムクロック信号を受け、内部クロック信号を形成するクロック信号形成回路を有し、形成された内部クロック信号に従って動作する周辺回路と、
上記周辺回路内のクロック信号形成回路による内部クロック信号の形成を制御する情報を保持する第2レジスタ手段とを具備し、
上記第1レジスタ手段及び上記第2レジスタ手段にセットされるべき情報は、上記ベクタ領域に対応する上記メモリ内の領域に保持され、上記例外処理が要求されたときに上記情報が上記第1レジスタ手段及び上記第2レジスタ手段へセットされることを特徴とする半導体集積回路。
A central processing unit that fetches information from a vector area in a memory corresponding to the exception processing and operates according to a first system clock signal to respond to the exception processing request;
An event detection circuit that detects the occurrence of an event and outputs a request for exception processing to the central processing unit;
First register means for holding information designating the frequency of the first system clock signal;
A peripheral circuit having a clock signal forming circuit for receiving the second system clock signal and forming an internal clock signal, and operating in accordance with the formed internal clock signal;
Second register means for holding information for controlling formation of an internal clock signal by a clock signal forming circuit in the peripheral circuit,
The information to be set in the first register means and the second register means is held in an area in the memory corresponding to the vector area, and the information is stored in the first register when the exception processing is requested. And a second register means.
請求項5において、
上記中央処理装置は、上記例外処理の実行前に、上記第1レジスタ手段及び上記第2レジスタ手段に保持されている情報を、上記メモリのスタック領域へ退避し、
上記例外処理の完了後、上記情報は、上記ベクタ領域に対応する上記メモリ内の上記領域から取り出され、上記第1レジスタ手段及び上記第2レジスタ手段へセットされることを特徴とする半導体集積回路。
In claim 5,
The central processing unit saves the information held in the first register means and the second register means to a stack area of the memory before executing the exception processing,
After the completion of the exception processing, the information is taken out from the area in the memory corresponding to the vector area, and is set in the first register means and the second register means. .
第1クロック信号に従って動作し、第1の処理と例外処理とを実行するCPUと、
イベントの検出によって、上記CPUに対して、例外処理の実行を要求する要求信号を発生するイベント検出回路と、
各々に共通に供給された第2クロック信号に従って動作する複数の周辺モジュールと、
所定のクロック信号を受けるクロック制御回路とを具備し、
上記クロック制御回路は、レジスタ内の制御情報に応答して、上記所定のクロック信号を可変に分周して可変周波数を有する上記第1クロック信号を発生し、
上記クロック制御回路は、上記所定のクロック信号に基づいて1つの周波数を有する上記第2クロック信号を発生し、
上記第1クロック信号の上記周波数は可変にされ、上記2クロック信号の上記周波数は可変にされず、
さらに、上記クロック制御回路は、上記イベント検出回路が発生する要求信号に応答して上記第1クロック信号の周波数を変更する制御回路を有することを特徴とする半導体集積回路。
A CPU that operates according to a first clock signal and performs a first process and an exception process;
An event detection circuit for generating a request signal for requesting the CPU to execute exception processing by detecting an event;
A plurality of peripheral modules each operating in accordance with a second clock signal commonly supplied to each;
A clock control circuit for receiving a predetermined clock signal,
The clock control circuit, in response to control information in a register, variably divides the predetermined clock signal to generate the first clock signal having a variable frequency,
The clock control circuit generates the second clock signal having one frequency based on the predetermined clock signal,
The frequency of the first clock signal is variable, the frequency of the second clock signal is not variable,
Further, the clock control circuit has a control circuit for changing a frequency of the first clock signal in response to a request signal generated by the event detection circuit.
請求項7において、
上記第1クロック信号は、上記CPUが上記第1処理を実行しているとき、第1周波数を有し、
上記イベントの検出に応答して、上記レジスタ内の制御情報は、上記検出されたイベントのための制御情報に変更され、
上記第1クロック信号は、上記例外処理の間、第2周波数を有し、
上記例外処理の完了に応答して、上記制御情報は上記レジスタへ再格納され、
上記1クロック信号は、上記例外処理の完了の後、上記第1周波数を有することを特徴とする半導体集積回路。
In claim 7,
The first clock signal has a first frequency when the CPU is executing the first process;
In response to the detection of the event, the control information in the register is changed to control information for the detected event,
The first clock signal has a second frequency during the exception processing;
In response to the completion of the exception processing, the control information is re-stored in the register,
The semiconductor integrated circuit according to claim 1, wherein the one clock signal has the first frequency after completion of the exception processing.
JP2003205675A 1994-11-22 2003-08-04 Semiconductor integrated circuit Pending JP2004094930A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003205675A JP2004094930A (en) 1994-11-22 2003-08-04 Semiconductor integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP31243094 1994-11-22
JP2003205675A JP2004094930A (en) 1994-11-22 2003-08-04 Semiconductor integrated circuit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP28659995A Division JP3505018B2 (en) 1994-11-22 1995-10-06 Semiconductor integrated circuit

Publications (1)

Publication Number Publication Date
JP2004094930A true JP2004094930A (en) 2004-03-25

Family

ID=32071440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003205675A Pending JP2004094930A (en) 1994-11-22 2003-08-04 Semiconductor integrated circuit

Country Status (1)

Country Link
JP (1) JP2004094930A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230439A (en) * 2008-03-21 2009-10-08 Toshiba Tec Corp Information processing device, and clock control method and program thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009230439A (en) * 2008-03-21 2009-10-08 Toshiba Tec Corp Information processing device, and clock control method and program thereof

Similar Documents

Publication Publication Date Title
JP3505018B2 (en) Semiconductor integrated circuit
US11429546B2 (en) Addressing read and write registers in an event slot of a communications interface with a single address by a host system and individually addressable by a state machine
JPH0677249B2 (en) Microcomputer
US12072833B2 (en) Executing functions in response to reading event indices on an event queue by a state machine
JPH04236682A (en) Microcomputer system
US20030079152A1 (en) Microprocessor with multiple low power modes and emulation apparatus for said microprocessor
JP2636691B2 (en) Microcomputer
US6381705B1 (en) Method and device for reducing current consumption of a microcontroller
US7219248B2 (en) Semiconductor integrated circuit operable to control power supply voltage
JPS63126018A (en) Semiconductor integrated circuit
JP3291569B2 (en) Microcomputer
US5734927A (en) System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
US10948970B2 (en) Low power microcontroller
US5734878A (en) Microcomputer in which a CPU is operated on the basis of a clock signal input into one of two clock terminals
JP2004094930A (en) Semiconductor integrated circuit
JP2002041495A (en) Microcomputer
JP3701100B2 (en) Clock generation circuit and clock generation method
JP2003196149A (en) Memory control device
JP2001125786A (en) Device and system for processing data
JP4176920B2 (en) Data processing device
JPH09231195A (en) Micro computer
CN114647613A (en) Processing system, related integrated circuit and method
US6154820A (en) Arrangement for storing program instructions and data in a memory device and method therefor
TW202339400A (en) Semiconductor device and method of operating a semiconductor device
JP2005004591A (en) Semiconductor integrated circuit

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060509