JP4007848B2 - マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 - Google Patents
マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 Download PDFInfo
- Publication number
- JP4007848B2 JP4007848B2 JP2002132301A JP2002132301A JP4007848B2 JP 4007848 B2 JP4007848 B2 JP 4007848B2 JP 2002132301 A JP2002132301 A JP 2002132301A JP 2002132301 A JP2002132301 A JP 2002132301A JP 4007848 B2 JP4007848 B2 JP 4007848B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- internal clock
- signal
- output
- input
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 14
- 230000001934 delay Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000007704 transition Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000003111 delayed effect Effects 0.000 description 7
- 230000007257 malfunction Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
Description
【発明の属する技術分野】
本発明はマイクロプロセッサおよびマイクロプロセッサの動作モード切替方法に関し、特に通常動作モードと低消費電力モードとのモード切替機能を有するマイクロプロセッサおよびそのようなマイクロプロセッサの動作モード切替方法に関する。
【0002】
【従来の技術】
現在、デジタルカメラやプリンタなどの様々な電子機器にマイクロプロセッサが搭載されている。これらの電子機器は、マイクロプロセッサによって動作が制御される。デジタルカメラであれば、CCD(Charge-Coupled Devices)で撮影した画像データがマイクロプロセッサによって所定のデータ形式に圧縮され、メモリに記録される。また、デジタルカメラにおける自動焦点機能もマイクロプロセッサで制御されている。
【0003】
このようなマイクロプロセッサの中には、通常動作モードと低消費電力モードとのモード切替機能を有するものがある。たとえば、電子機器の通常使用時には、マイクロプロセッサが通常動作モードで動作する。これにより、電子機器が備えている全ての機能を、マイクロプロセッサの制御下で動作させることができる。一方、ユーザが電子機器に対する操作を一定期間行っていないときは、電子機器を低消費電力モードにする。そのとき、マイクロプロセッサは、ユーザの操作入力を検知する機能以外の機能を停止させることで、消費電力を押さえることができる。以下、プロセッサの消費電力を押さえる低消費電力モードをスリープモードと呼ぶ。
【0004】
図9は、従来のマイクロプロセッサの構成例を示す図である。図9に示すように、マイクロプロセッサは、PLL(Phase Locked Loop)210、バスインタフェースユニット220、整数ユニット230、命令キャッシュ240、およびデータキャッシュ250を有している。
【0005】
PLL210には、システムクロックが入力されている。PLL210からは内部クロックが出力され、バスインタフェースユニット220に供給されている。また、PLL210から出力される内部クロックは、3つのOR回路261〜263に入力される。バスインタフェースユニット220には、さらにウェイクアップ信号が入力されている。バスインタフェースユニット220からはスリープ信号が出力される。そのスリープ信号は、3つのOR回路261〜263に入力される。3つのOR回路261〜263からの出力は、それぞれ整数ユニット230、命令キャッシュ240、データキャッシュ250に入力される。
【0006】
このような構成のマイクロプロセッサにおいて、ウェイクアップ信号が通常ハイレベルに固定されている。スリープモードから通常動作モードに移行する際には、ウェイクアップ信号が所定期間ローレベル(アサート)にされる。
【0007】
バスインタフェースユニット220は、ウェイクアップ信号のアサートを検知して、スリープモードから通常動作モードへの遷移タイミングを判断する。そして、バスインタフェースユニット220は、通常動作モードの間はスリープ信号をネゲート(ローレベル)する。スリープ信号がネゲートされると、PLL210から出力される内部クロックの信号が、そのまま整数ユニット230、命令キャッシュ240、およびデータキャッシュ250に供給される。
【0008】
マイクロプロセッサは、所定の入力があると(たとえば、スリープモードレジスタに「1」が設定される)、動作モードをスリープモードに遷移させる。スリープモードの間は、バスインタフェースユニット220は、スリープ信号をアサート(ハイレベル)する。すると、整数ユニット230、命令キャッシュ240、およびデータキャッシュ250には、常にハイレベルのスリープ信号が供給される。その結果、整数ユニット230、命令キャッシュ240、およびデータキャッシュ250の内部回路の動作が停止する。動作が停止した整数ユニット230、命令キャッシュ240、およびデータキャッシュ250には電流が流れないため、消費電力が抑えられる。
【0009】
このようにして、マイクロプロセッサでは、通常動作モードからスリープモードに切り換えることにより、消費電力を抑えることができる。
【0010】
【発明が解決しようとする課題】
しかし、従来のマイクロプロセッサでは、スリープモードから通常動作モードへ復帰する際に、ウェイクアップ信号の入力タイミングで各回路へ内部クロックが同時に供給されてしまう。そのため、マイクロプロセッサ全体の電流量が大きく変化する。その結果、グランドレベルが変化して、過度のノイズが発生する。このノイズにより、それまで安定して動作していたPLLのロックが外れ、マイクロプロセッサの誤動作を引き起こす原因となる。
【0011】
この現象は、通常動作モードからスリープモードに遷移する際にも同様に発生する。PLLのロックが外れたままウェイクアップ信号が入力されると、マイクロプロセッサが誤動作してしまう。
【0012】
本発明はこのような点に鑑みてなされたものであり、モード切替時にも安定した内部クロックを供給できるマイクロプロセッサおよびそのようなマイクロプロセッサの動作モード切替方法を提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明の第1の態様では上記課題を解決するために、図1に示すような動作モードの切替機能を備えたマイクロプロセッサが提供される。本発明に係るマイクロプロセッサは、内部クロックを発生させるクロック発生回路と、入力されたクロック信号に同期して動作する複数の同期回路と、前記クロック発生回路と前記複数の同期回路との間に接続され、前記複数の同期回路の動作を開始させる際に、前記クロック発生回路から前記複数の同期回路のそれぞれへ、前記内部クロックの1周期間隔で時間をずらして、前記複数の同期回路の動作開始時の処理の発生順に沿って順番に前記内部クロックを供給開始するクロック供給制御回路と、を有している。
【0014】
このようなマイクロプロセッサによれば、複数の同期回路の動作を開始させる際には、クロック供給制御回路により、クロック発生回路から複数の同期回路のそれぞれへ、内部クロックが時間をずらして供給開始される。各同期回路は、供給された内部クロックに同期して動作する。
【0017】
本発明の第2の態様では上記課題を解決するために、内部クロックに同期して動作する複数の同期回路を有するマイクロプロセッサの動作モード切替方法において、前記複数の同期回路の動作の開始を示す信号が入力されると、前記複数の同期回路のうちで最初に処理が発生する前記同期回路へ内部クロックの供給を開始し、前記信号の入力から1周期間隔で時間をずらして、前記複数の同期回路の動作開始時の処理の発生順に沿って順番に、前記内部クロックが未供給の他の前記同期回路へ前記内部クロックを供給開始する、ことを特徴とするマイクロプロセッサの動作モード切替方法が提供される。
【0018】
このようなマイクロプロセッサの動作モード切替方法によれば、複数の同期回路の動作の開始を示す信号が入力されると、複数の同期回路の一部へ内部クロックの供給が開始される。そして、信号の入力から所定時間遅延させた後、内部クロックが未供給の他の同期回路への内部クロックの供給を開始される。
【0021】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るマイクロプロセッサの回路構成図である。図1に示すようにマイクロプロセッサは、PLL11、バスインタフェースユニット12、整数ユニット13、命令キャッシュ14、およびデータキャッシュ15を有している。
【0022】
PLL11は、システムクロックに基づいて所定の周波数の内部クロックを生成する回路であり、位相同期ループ回路とも呼ばれる。すなわち、PLL11が、内部クロックを発生させるクロック発生回路として機能している。バスインタフェースユニット12は、外部バスと内部バスとを接続するための回路である。整数ユニット13は、整数演算を行う演算回路である。命令キャッシュ14は、命令を記憶するためのキャッシュメモリである。データキャッシュ15は、データを記憶するためのキャッシュメモリである。整数ユニット13、命令キャッシュ14およびデータキャッシュ15は、マイクロプロセッサにおいて内部クロックに同期して動作する回路(同期回路)である。
【0023】
PLL11には、システムクロックが入力されている。PLL11からは内部クロックが出力され、バスインタフェースユニット12に供給されている。また、PLL11から出力される内部クロックは、3つのOR回路21〜23、第1の遅延回路24、および第2の遅延回路25に入力される。OR回路21〜23は、入力された信号の論理和を出力する論理回路である。第1の遅延回路24と第2の遅延回路25とは、入力された信号を所定期間遅延させて出力する回路である。第1の遅延回路24は、入力されたスリープ信号の変化を、内部クロックの周期で1周期分の時間遅延させる。第2の遅延回路25は、入力されたスリープ信号の変化を、内部クロックの周期で2周期分の時間遅延させる。
【0024】
バスインタフェースユニット12には、さらにウェイクアップ信号が入力されている。バスインタフェースユニット12からはスリープ信号が出力される。スリープ信号は、ハイアクティブ(ハイレベルのときに有効)の信号である。スリープ信号は、OR回路21、第1の遅延回路24および第2の遅延回路25に入力される。
【0025】
OR回路21の出力は、整数ユニット13に入力される。第1の遅延回路24の出力は、OR回路22に入力される。OR回路22の出力は、命令キャッシュ14に入力される。第2の遅延回路25の出力は、OR回路23に入力される。OR回路23の出力は、データキャッシュ15に入力される。
【0026】
このような構成のマイクロプロセッサに対して、システムクロックが外部から継続してPLL11に入力される。そして、PLL11により、システムクロックに基づいて所定の周波数の内部クロックが出力される。
【0027】
また、マイクロプロセッサのバスインタフェースユニット12には、動作モードを指定するウェイクアップ信号が入力される。ウェイクアップ信号は、通常は、ハイレベルが維持されている。そして、ウェイクアップ信号は、マイクロプロセッサを通常動作モードで動作させる際に、所定期間(たとえば、マイクロプロセッサの外部の回路のシステムクロックで2サイクル以上)アサート(ローレベル)される。ウェイクアップ信号が所定期間アサートされるとスリープ信号がネゲートされ、バスインタフェースユニット12、OR回路21〜23、第1の遅延回路24、及び第2の遅延回路25の連携した動作により、PLL11から整数ユニット13、命令キャッシュ14およびデータキャッシュ15それぞれへ、内部クロックが時間をずらして供給される。
【0028】
また、外部からマイクロプロセッサに対して、スリープモードへの遷移を示す入力が行われるとスリープ信号がアサートされ、バスインタフェースユニット12、OR回路21〜23、第1の遅延回路24、及び第2の遅延回路25の連携した動作により、PLL11から整数ユニット13、命令キャッシュ14およびデータキャッシュ15それぞれへの内部クロックの供給が、時間をずらして停止される。なお、スリープモードへの遷移を示す入力により、マイクロプロセッサ内の所定のレジスタ(スリープモードレジスタ)に1が設定される。この場合、スリープモードレジスタの値は、スリープモードへの遷移後初期化される(0が設定される)。
【0029】
以上のような構成により、各同期回路(整数ユニット13、命令キャッシュ14およびデータキャッシュ15)へのクロックの供給タイミングが制御される。すなわち、バスインタフェースユニット12、OR回路21〜23、第1の遅延回路24、及び第2の遅延回路25により、クロック供給制御回路が構成されている。
【0030】
ここで、マイクロプロセッサの動作モードを、スリープモードから通常動作モードに切り換える際の各回路の動作について説明する。
ウェイクアップ信号が所定期間アサートされると、バスインタフェースユニット12によりスリープ信号がネゲート(解除)される。このときOR回路21には、ローレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。その結果、OR回路21からは内部クロックが出力され、整数ユニット13に供給される。整数ユニット13は、内部クロックが供給されることにより、動作を開始する。
【0031】
また、スリープ信号がネゲートされたとき、第1の遅延回路24には、ローレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。第1の遅延回路24は、スリープ信号がネゲートされてから内部クロックの1周期分経過後に出力信号をネゲートする。その結果、スリープ信号がネゲートされてから1周期経過後から、OR回路22から内部クロックが出力され、命令キャッシュ14に供給される。命令キャッシュ14は、内部クロックが供給されることにより、動作を開始する。
【0032】
さらに、スリープ信号がネゲートされたとき、第2の遅延回路25には、ローレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。第2の遅延回路25は、スリープ信号がネゲートされてから内部クロックの2周期分経過後に出力信号をネゲートする。その結果、スリープ信号がネゲートされてから2周期経過後から、OR回路23から内部クロックが出力され、データキャッシュ15に供給される。データキャッシュ15は、内部クロックが供給されることにより、動作を開始する。
【0033】
このようにして、通常動作モードに切り換える際に、整数ユニット13、命令キャッシュ14、およびデータキャッシュ15に対して、内部クロックの信号を、1周期分ずつずらして供給することができる。各回路は、内部クロックに同期して動作するため、内部クロックの供給が開始された時点から動作を開始する。したがって、各回路の動作開始タイミングがずれることになり、モード切替時のチップ全体での電流量の変化を少なく抑えることができる。電流量の変化が少ないことで、余計なノイズを発生させずにすみ、PLL11のロックが外れることもなくなる。
【0034】
次に、マイクロプロセッサの動作モードを、通常動作モードからスリープモードに切り換える際の各回路の動作について説明する。
スリープモードへの遷移を示す入力が行われる(スリープモードレジスタに1が設定される)と、バスインタフェースユニット12によりスリープ信号がアサート(有効化)される。このときOR回路21には、ハイレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。その結果、OR回路21からはハイレベルのスリープ信号が出力され、整数ユニット13に供給される。整数ユニット13は、内部クロックに代えて常にハイレベルのスリープ信号が供給されることにより、動作を停止する。
【0035】
また、スリープ信号がアサートされたとき、第1の遅延回路24には、ハイレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。第1の遅延回路24は、スリープ信号がアサートされてから内部クロックの1周期分経過後に出力信号をアサートする。その結果、スリープ信号がアサートされてから1周期経過後から、OR回路22からハイレベルのスリープ信号が出力され、命令キャッシュ14に供給される。命令キャッシュ14は、内部クロックに代えて常にハイレベルのスリープ信号が供給されることにより、動作を停止する。
【0036】
さらに、スリープ信号がアサートされたとき、第2の遅延回路25には、ハイレベルのスリープ信号と、PLL11が出力した内部クロックとが入力される。第2の遅延回路25は、スリープ信号がアサートされてから内部クロックの2周期分経過後に出力信号をアサートする。その結果、スリープ信号がアサートされてから2周期経過後から、OR回路23からハイレベルのスリープ信号が出力され、データキャッシュ15に供給される。データキャッシュ15は、内部クロックに代えて常にハイレベルのスリープ信号が供給されることにより、動作を停止する。
【0037】
このようにして、スリープモードに切り換える際に、整数ユニット13、命令キャッシュ14、およびデータキャッシュ15に対する内部クロックの供給を、1周期間隔で時間をずらして停止することができる。その結果、各回路の動作停止タイミングがずれることになり、動作モード切替時のチップ全体での電流量の変化を少なく抑えることができる。電流量の変化が少ないことで、余計なノイズを発生させずにすみ、PLLのロックが外れることもなくなる。その結果、動作モードの切替時においても、内部の回路に安定した内部クロックを供給し、マイクロプロセッサを安定して動作させることができる。
【0038】
次に、遅延回路の内部構成について説明する。
図2は、遅延回路の内部構成を示す図である。第1の遅延回路と第2の遅延回路とは、遅延時間(内部クロックのサイクル数)に応じた数のフリップフロップで構成されている。
【0039】
すなわち、第1の遅延回路24は、1つのフリップフロップ24aで構成されている。また、第2の遅延回路25は、2つのフリップフロップ25a,25bで構成されている。これらのフリップフロップ24a,25a,25bは、いずれもD(Delay)−FF(Flip-Flop)と呼ばれるフリップフロップである。D−FFは、D端子に入力された値を、クロックパルスの立ち上がりで取り込み、Q端子から出力する。
【0040】
スリープ信号は、第1の遅延回路24のフリップフロップ24aのD端子と、第2の遅延回路25のフリップフロップ25aのD端子とに入力されている。内部クロックは、第1の遅延回路24のフリップフロップ24aのクロック(CK)端子と、第2の遅延回路25の2つのフリップフロップ25a,25bのクロック(CK)端子とに入力されている。
【0041】
第1の遅延回路24のフリップフロップ24aのQ端子が、図1に示すOR回路22に接続される。また、第2の遅延回路25のフリップフロップ25aのQ端子がフリップフロップ25bのD端子に接続されている。そして、フリップフロップ25bのQ端子が、図1に示すOR回路23に接続される。
【0042】
このような遅延回路によれば、動作モードが切り替わる際には、内部クロックの立ち上がりに合わせて、スリープ信号がネゲートまたはアサートされる。次の周期の内部クロックの立ち上がりで、フリップフロップ24aとフリップフロップ25aとにスリープ信号が取り込まれ、Q端子から出力される。その次の周期の内部クロックの立ち上がりで、スリープ信号がフリップフロップ25bに取り込まれ、Q端子から出力される。
【0043】
このようにD−FFを用いることで、任意の時間だけスリープ信号を遅延させる遅延回路を構成することができる。
図3は、第1の実施の形態に係るマイクロプロセッサのタイミングチャートである。図3には、上から順番に、システムクロック、スリープ信号、ウェイクアップ信号、PLL11の内部クロック、バスインタフェースユニット12の内部クロック、第1の遅延回路24の出力、命令キャッシュ14の内部クロック、第2の遅延回路25の出力、およびデータキャッシュ15の内部クロックが示されている。
【0044】
PLL11の内部クロックは、システムクロックに位相を合わせてPLL11内部で発生させるクロックである。バスインタフェースユニット12の内部クロックは、バスインタフェースユニット12を構成する内部回路のうち、通常動作モードのときにのみ動作する部分に供給されるクロックである。バスインタフェースユニット12を構成する内部回路のうち、ウェイクアップ信号の入力を検知する回路などはスリープモードの間も動作する必要があるため、PLL11から出された内部クロックがそのまま供給される。なお、整数ユニット13には、バスインタフェースユニット12の内部クロックと同様の内部クロックが供給される。
【0045】
命令キャッシュ14の内部クロックは、命令キャッシュ14の内部の回路に供給されるクロックである。データキャッシュ15の内部クロックは、データキャッシュ15の内部の回路に供給されるクロックである。
【0046】
図3の例では、PLL11の内部クロックは、システムクロックの周期の半分の周期である。また、時刻T1以前は、マイクロプロセッサの動作モードがスリープモードに設定されているものとする。ウェイクアップ信号は、通常動作モードへの遷移指示が入力されるとき以外は、ハイレベルである。スリープモードの間は、スリープ信号、バスインタフェースユニット12の内部クロック、第1の遅延回路24の出力、命令キャッシュ14の内部クロック、第2の遅延回路25の出力およびデータキャッシュ15の内部クロックがハイレベルである。
【0047】
時刻T0に、ウェイクアップ信号がハイレベルからローレベルに変更される。その状態が、システムクロックで2周期の時間継続することで、通常動作モードへの遷移の指示がバスインタフェースユニット12で認識される。
【0048】
時刻T1に、ウェイクアップ信号がローレベルからハイレベルに変更される。同時に、バスインタフェースユニット12のスリープ信号がハイレベルからローレベルに切り替わる(ネゲートされる)。また、バスインタフェースユニット12の内部クロックが、PLL11の内部クロックと同じ信号になる。この時点では、第1の遅延回路24の出力と第2の遅延回路25の出力とは、ハイレベルのままである。したがって、命令キャッシュ14の内部クロックとデータキャッシュ15の内部クロックとは、ハイレベルのままである。
【0049】
時刻T2に、第1の遅延回路24の出力がローレベルに切り替わる。すると、命令キャッシュ14の内部クロックが、PLL11の内部クロックと同じ信号になる。この時点では、第2の遅延回路25の出力はハイレベルのままである。したがって、データキャッシュ15の内部クロックはハイレベルのままである。
【0050】
時刻T3に、第2の遅延回路25の出力がローレベルに切り替わる。すると、データキャッシュ15の内部クロックが、PLL11の内部クロックと同じ信号になる。
【0051】
このようにして、マイクロプロセッサのモードを切り替える際に(たとえば、スリープモード(低消費電力モード)から通常動作モードへの復帰時)において、プロセッサ内の各回路(モジュール)へのクロック供給タイミングをずらすことができる。その結果、モード切り替え時のグランドレベルに発生するノイズの変動を抑えることができ、PLLのロックが外れることが防止される。すなわち、マイクロプロセッサに流れる電流の変化を分散させることにより、急激なグランドレベルの変化(ノイズ)が抑えられる。これにより、従来スリープ解除時に発生していたPLLロック外れによる誤動作を、第1の実施の形態に示す構成によって防ぐことが出来る。
【0052】
また、第1の実施の形態では、スリープモードから通常動作モードへの復帰時には、整数ユニット13、命令キャッシュ14、データキャッシュ15の順で、内部クロックの1周期間隔で時間をずらして、内部クロックの供給を開始している。この回路の起動順は、マイクロプロセッサ内の処理の発生順に沿っている。
【0053】
すなわち、マクロプロセッサの動作開始時は、整数ユニット13がまず起動する。そして、整数ユニット13が、命令キャッシュ14から命令をフェッチする。その後、整数ユニット13はデータキャッシュ15にアクセスし、フェッチした命令に従って実行する処理に必要なデータを取得する。このように、プロセッサ内の動作は、整数ユニット13、命令キャッシュ14、データキャッシュ15の順で実行される。従って、整数ユニット13への内部クロックの供給開始から1周期送れて命令キャッシュ14への内部クロックの供給が開始され、その後さらに1周期送れてデータキャッシュ15への内部クロックの供給が開始されても、プロセッサにおける処理が滞ることはない。
【0054】
[第2の実施の形態]
第2の実施の形態は、通常動作モードへ遷移する場合にのみ、内部クロックの供給タイミングの遅延制御を行う場合の例である。PLLのロックが外れることによる誤動作の影響が大きいのは、通常動作モードへ移行する際である。逆に、スリープモードに移行するときは、全ての回路の動作をすぐに停止させることで、電力消費量の低減を図ることができる。スリープモードへの移行の際にPLLのロックが外れてしまっても、スリープモードへの移行後一定時間経過するまでモード切り替えができないようにすれば、スリープモード中にPLLのロック状態を回復させることができる。
【0055】
図4は、第2の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。図4に示すようにマイクロプロセッサは、PLL31、バスインタフェースユニット32、整数ユニット33、命令キャッシュ34、およびデータキャッシュ35を有している。これらの各回路の機能は、図1に示した第1の実施の形態の同名の回路と同じである。
【0056】
PLL31には、システムクロックが入力されている。PLL31からは内部クロックが出力され、バスインタフェースユニット32に供給されている。また、PLL31から出力される内部クロックは、3つのOR回路41〜43、第1の遅延回路44、および第2の遅延回路45に入力される。OR回路41〜43は、入力された信号の論理和を出力する論理回路である。第1の遅延回路44と第2の遅延回路45とは、入力された信号を所定期間遅延させて出力する回路であり、それぞれ図2に示した第1の実施の形態における第1の遅延回路24、第2の遅延回路25と同様の内部構成である。
【0057】
バスインタフェースユニット32には、さらにウェイクアップ信号が入力されている。バスインタフェースユニット32からはスリープ信号が出力される。スリープ信号は、ハイアクティブの信号である。スリープ信号は、OR回路41、第1の遅延回路44、第2の遅延回路45、およびOR回路46,47に入力される。OR回路46,47は、入力された信号の論理和を出力する論理回路である。
【0058】
OR回路41の出力は、整数ユニット33に入力される。第1の遅延回路44の出力は、OR回路46に入力される。OR回路46の出力は、OR回路42に入力される。OR回路42の出力は、命令キャッシュ34に入力される。第2の遅延回路45の出力は、OR回路47に入力される。OR回路47の出力は、OR回路43に入力される。OR回路43の出力は、データキャッシュ35に入力される。
【0059】
このような構成のマイクロプロセッサに対して、システムクロックが外部から継続して入力される。システムクロックはPLL31に入力される。そして、PLL31により、システムクロックに基づいて所定の周波数の内部クロックが出力される。また、マイクロプロセッサのバスインタフェースユニット32には、動作モードを指定するウェイクアップ信号が入力される。ウェイクアップ信号は、通常はハイレベルであり、スリープモードから通常動作モードへプロセッサの動作モードを遷移させる際に、所定期間アサート(ローレベル)される。
【0060】
ここで、マイクロプロセッサの動作モードを、スリープモードから通常動作モードに切り換える際の各回路の動作について説明する。
ウェイクアップ信号が所定期間アサートされると、バスインタフェースユニット32によりスリープ信号がネゲート(ローレベル)される。このときOR回路41には、ローレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。その結果、OR回路41からは内部クロックが出力され、整数ユニット33に供給される。
【0061】
また、スリープ信号がネゲートされたとき、第1の遅延回路44には、ローレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。第1の遅延回路44は、スリープ信号がネゲートされてから内部クロックの1周期分経過後に出力信号をネゲートする。このとき、OR回路46には、第1の遅延回路44のローレベルの出力と、ローレベルのスリープ信号とが入力される。そのため、OR回路46からはローレベルの信号が出力される。すると、OR回路42には、内部クロックとローレベルの信号とが入力されることとなる。その結果、スリープ信号がネゲートされてから1周期分経過以降、OR回路42から内部クロックが出力され、命令キャッシュ34に供給される。
【0062】
さらに、スリープ信号がネゲートされたとき、遅延回路45には、ローレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。遅延回路45は、スリープ信号がネゲートされてから内部クロックの2周期分経過後に出力信号をネゲートする。このとき、OR回路47には、第2の遅延回路45のローレベルの出力と、ローレベルのスリープ信号とが入力される。そのため、OR回路47からはローレベルの信号が出力される。すると、OR回路43には、内部クロックとローレベルの信号とが入力されることとなる。その結果、スリープ信号がネゲートされてから2周期分経過以降、OR回路43から内部クロックが出力され、データキャッシュ35に供給される。
【0063】
このようにして、通常動作モードに切り換える際に、整数ユニット33、命令キャッシュ34、およびデータキャッシュ35に対して、内部クロックの信号を、1周期間隔で時間をずらして供給することができる。
【0064】
次に、マイクロプロセッサの動作モードを、通常動作モードからスリープモードに切り換える際の各回路の動作について説明する。
スリープモードへの遷移を示す入力(スリープモードレジスタへの1の設定)が行われると、バスインタフェースユニット32によりスリープ信号がアサートされる。このときOR回路41には、ハイレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。その結果、OR回路41からはハイレベルのスリープ信号が出力され、整数ユニット33に供給される。
【0065】
また、スリープ信号がアサートされたとき、第1の遅延回路44には、ハイレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。第1の遅延回路44は、スリープ信号がアサートされてから内部クロックの1周期分経過後に出力信号をアサートする。一方、OR回路46には、スリープ信号がアサートされたときからハイレベルのスリープ信号が入力されている。そのため、第1の遅延回路44の出力に関係なく、スリープ信号がアサートされた直後から、OR回路46からハイレベルの信号が出力される。すると、OR回路42には、スリープ信号がアサートされた直後から内部クロックとハイレベルのスリープ信号とが入力されることとなる。その結果、スリープ信号がアサートされた直後から、OR回路42からハイレベルの信号が出力され、命令キャッシュ34に供給される。
【0066】
スリープ信号がアサートされたとき、第2の遅延回路45には、ハイレベルのスリープ信号と、PLL31が出力した内部クロックとが入力される。第2の遅延回路45は、スリープ信号がアサートされてから内部クロックの2周期分経過後に出力信号をアサートする。一方、OR回路47には、スリープ信号がアサートされたときからハイレベルのスリープ信号が入力されている。そのため、第2の遅延回路45の出力に関係なく、スリープ信号がアサートされた直後から、OR回路47からハイレベルの信号が出力される。すると、OR回路43には、スリープ信号がアサートされた直後から内部クロックとハイレベルのスリープ信号とが入力されることとなる。その結果、スリープ信号がアサートされた直後から、OR回路43からハイレベルの信号が出力され、データキャッシュ35に供給される。
【0067】
このようにして、スリープモードから通常動作モードへ移行する際には、タイミングをずらして各回路へ内部クロックを供給し、通常動作モードからスリープモードへ移行する際には、各回路へ同時に内部クロックの供給を停止することができる。
【0068】
[第3の実施の形態]
第3の実施の形態は、内部クロックが2層クロックのマイクロプロセッサに本発明を適用した場合の例である。
【0069】
図5は、第3の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。図5に示すようにマイクロプロセッサは、PLL51、バスインタフェースユニット52、整数ユニット53、命令キャッシュ54、およびデータキャッシュ55を有している。これらの各回路の機能は、図1に示した第1の実施の形態の同名の回路とほぼ同じである。但し、図5に示すPLL51は、2層クロックを生成する。また、バスインタフェースユニット52、整数ユニット53、命令キャッシュ54、およびデータキャッシュ55は、2層クロックに従って内部回路が動作する。
【0070】
PLL51には、システムクロックが入力されている。PLL51からは2層の内部クロック(PH1,PH2)が出力され、バスインタフェースユニット52に供給されている。また、PLL51から出力される内部クロックPH1は、3つのOR回路61〜63、第1の遅延回路64、および第2の遅延回路65に入力される。PLL51から出力される内部クロックPH2は、3つのAND回路66〜68、第1の遅延回路64、および第2の遅延回路65に入力される。
【0071】
第1の遅延回路64と第2の遅延回路65とは、入力された信号を所定期間遅延させて出力する回路である。第1の遅延回路64は、入力されたスリープ信号の変化を、内部クロックの周期で1周期分の時間遅延させる。第2の遅延回路65は、入力されたスリープ信号の変化を、内部クロックの周期で2周期分の時間遅延させる。
【0072】
バスインタフェースユニット52には、さらにウェイクアップ信号が入力されている。バスインタフェースユニット52からはスリープ信号が出力される。スリープ信号は、ハイアクティブの信号である。スリープ信号は、OR回路61、第1の遅延回路64、第2の遅延回路65、およびAND回路66に入力される。
【0073】
OR回路61の出力は、整数ユニット53に入力される。第1の遅延回路64の出力は、OR回路62に入力されると共に、信号を反転してAND回路67に入力される。OR回路62の出力とAND回路67の出力とは、命令キャッシュ54に入力される。第2の遅延回路65の出力は、OR回路63に入力されると共に、信号を反転してAND回路68に入力される。OR回路63の出力とAND回路68の出力とは、データキャッシュ55に入力される。
【0074】
ここで、マイクロプロセッサの動作モードを、スリープモードから通常動作モードに切り換える際の各回路の動作について説明する。
ウェイクアップ信号が所定期間アサート(ローレベル)されると、バスインタフェースユニット52によりスリープ信号がネゲートされる。このときOR回路61には、ローレベルのスリープ信号と、PLL51が出力した内部クロック(PH1)とが入力される。その結果、OR回路61からは内部クロック(PH1)が出力され、整数ユニット53に供給される。また、AND回路66には、ローレベルのスリープ信号が反転されて(ハイレベルの信号に変換されて)入力されると共に、内部クロック(PH2)が入力される。その結果、AND回路66からは内部クロック(PH2)が出力され、整数ユニット53に供給される。
【0075】
また、スリープ信号がネゲートされたとき、第1の遅延回路64には、ローレベルのスリープ信号と、PLL51が出力した2層の内部クロック(PH1,PH2)とが入力される。第1の遅延回路64は、スリープ信号がネゲートされてから内部クロックの1周期分経過後に出力信号をネゲートする。その結果、スリープ信号がネゲートされてから1周期経過した後、OR回路62から内部クロック(PH1)が出力され、命令キャッシュ54に供給される。また、スリープ信号がネゲートされてから1周期経過した後、AND回路67から内部クロック(PH2)が出力され、命令キャッシュ54に供給される。
【0076】
さらに、スリープ信号がネゲートされたとき、第2の遅延回路65には、ローレベルのスリープ信号と、PLL51が出力した内部クロック(PH1,PH2)とが入力される。第2の遅延回路65は、スリープ信号がネゲートされてから内部クロックの2周期分経過後に出力信号をネゲートする。その結果、スリープ信号がネゲートされてから2周期経過した後、OR回路63から内部クロック(PH1)が出力され、データキャッシュ55に供給される。また、スリープ信号がネゲートされてから2周期経過した後、AND回路68から内部クロック(PH2)が出力され、データキャッシュ55に供給される。
【0077】
このようにして、通常動作モードに切り換える際に、整数ユニット53、命令キャッシュ54、およびデータキャッシュ55に対して、内部クロック(PH1,PH2)の信号を、1周期分ずつずらして供給することができる。
【0078】
次に、マイクロプロセッサの動作モードを、通常動作モードからスリープモードに切り換える際の各回路の動作について説明する。
スリープモードへの遷移を示す入力が行われる(スリープモードレジスタに1が設定される)と、バスインタフェースユニット52によりスリープ信号がアサートされる。このときOR回路61には、ハイレベルのスリープ信号と、PLL51が出力した内部クロック(PH1)とが入力される。その結果、OR回路61からはハイレベルの信号が出力され、整数ユニット53に供給される。また、AND回路66には、ハイレベルのスリープ信号が反転されて入力されると共に、PLL51が出力した内部クロック(PH2)とが入力される。その結果、AND回路66からはローレベルの信号が出力され、整数ユニット53に供給される。
【0079】
また、スリープ信号がアサートされたとき、第1の遅延回路64には、ハイレベルのスリープ信号と、PLL51が出力した内部クロック(PH1,PH2)とが入力される。第1の遅延回路64は、スリープ信号がアサートされてから内部クロックの1周期分経過後に出力信号をアサートする。その結果、スリープ信号がアサートされてから1周期経過後から、OR回路62からハイレベルの信号が出力され、命令キャッシュ54に供給される。また、スリープ信号がアサートされてから1周期経過後から、AND回路67からローレベルの信号が出力され、命令キャッシュ54に供給される。
【0080】
さらに、スリープ信号がアサートされたとき、第2の遅延回路65には、ハイレベルのスリープ信号と、PLL51が出力した内部クロック(PH1,PH2)とが入力される。第2の遅延回路65は、スリープ信号がアサートされてから内部クロックの2周期分経過後に出力信号をアサートする。その結果、スリープ信号がアサートされてから2周期経過後から、OR回路63からハイレベルの信号が出力され、データキャッシュ55に供給される。また、スリープ信号がアサートされてから2周期経過後から、AND回路68からローレベルの信号が出力され、データキャッシュ55に供給される。
【0081】
このようにして、スリープモードに切り換える際に、整数ユニット53、命令キャッシュ54、およびデータキャッシュ55に対して、内部クロックの供給を、1周期ずつずらして停止することができる。
【0082】
ところで、第3の実施の形態における第1の遅延回路64と第2の遅延回路65とは、たとえば多段のラッチ回路で構成することができる。
図6は、第3の実施の形態における遅延回路の構成例を示す図である。第1の遅延回路64と第2の遅延回路とは、遅延時間に応じた数(遅延させる周期の2倍)のラッチ回路で構成される。すなわち、第1の遅延回路64は、2つのラッチ回路64a,64bで構成されている。また、第2の遅延回路65は、4つのラッチ回路65a〜65dで構成されている。ラッチ回路64a,64b,65a〜65dは、D(delay)ラッチと呼ばれる回路である。この回路は、G端子への入力がハイレベルのとき、D端子に入力された信号がQ端子に伝わる。また、G端子への入力がローレベルのときデータの流れが遮断され、以前の出力が保持される。
【0083】
第1の遅延回路64では、1段目のラッチ回路64aのD端子にスリープ信号が入力され、G端子に内部クロック(PH2)が入力されている。ラッチ回路64aのQ端子は、2段目のラッチ回路64bのD端子に接続されている。ラッチ回路64bのG端子には、内部クロック(PH1)が入力されている。ラッチ回路64bのQ端子が第1の遅延回路64の出力として、図5に示すOR回路62とAND回路67とに供給される。
【0084】
第2の遅延回路65では、1段目のラッチ回路65aのD端子にスリープ信号が入力され、G端子に内部クロック(PH2)が入力されている。ラッチ回路65aのQ端子は、2段目のラッチ回路65bのD端子に接続されている。ラッチ回路65bのG端子には、内部クロック(PH1)が入力されている。ラッチ回路65bのQ端子は、3段目のラッチ回路65cのD端子に接続されている。ラッチ回路65cのG端子には、内部クロック(PH2)が入力されている。ラッチ回路65cのQ端子は、4段目のラッチ回路65dのD端子に接続されている。ラッチ回路65dのG端子には、内部クロック(PH1)が入力されている。ラッチ回路65dのQ端子が第2の遅延回路65の出力として、図5に示すOR回路63とAND回路68とに供給される。
【0085】
このような回路の遅延回路によれば、第1の遅延回路64では、スリープ信号の出力が変化すると、内部クロックで1周期分の時間経過後にスリープ信号の出力の変化が第1の遅延回路64の出力に反映される。また、第2の遅延回路65では、スリープ信号の出力が変化すると、内部クロックで2周期分の時間経過後にスリープ信号の出力の変化が第2の遅延回路65の出力に反映される。
【0086】
たとえば、スリープ信号がハイレベルからローレベルへ変化した場合(スリープモードから通常動作モードへ遷移するとき)を想定する。スリープ信号がハイレベルの間は、全てのラッチ回路64a,64b,65a〜65dのQ端子からの出力はハイレベルである。
【0087】
スリープ信号がローレベルになると、内部クロック(PH2)がハイレベルになったときに、1段目のラッチ回路64a,65aのQ端子の出力がローレベルになる。次に、内部クロック(PH1)がハイレベルになったときに、2段目のラッチ回路64b,65bのQ端子の出力がローレベルになる。これにより、第1の遅延回路64からローレベルの信号が出力される。
【0088】
その後、内部クロック(PH2)がハイレベルになったときに、3段目のラッチ回路65cのQ端子の出力がローレベルになる。次に、内部クロック(PH1)がハイレベルになったときに、4段目のラッチ回路65dのQ端子の出力がローレベルになる。これにより、第2の遅延回路65からローレベルの信号が出力される。
【0089】
このようにして、各遅延回路によってスリープ信号を遅延させることができる。なお、スリープ信号がローレベルからハイレベルに変化するとき(通常動作モードからスリープモードへ遷移するとき)も、信号の伝わり方は同じである。
【0090】
図7は、第3の実施の形態に係るマイクロプロセッサのタイミングチャートである。図7には、上から順番に、システムクロック、スリープ信号、ウェイクアップ信号、PLL51の内部クロック(PH1)、PLL51の内部クロック(PH2)、バスインタフェースユニット52の内部クロック(PH1)、バスインタフェースユニット52の内部クロック(PH2)、第1の遅延回路64の出力、命令キャッシュ54の内部クロック(PH1)、命令キャッシュ54の内部クロック(PH2)、第2の遅延回路65の出力、データキャッシュ55の内部クロック(PH1)、およびデータキャッシュ55の内部クロック(PH2)が示されている。なお、整数ユニット53に供給される内部クロック(PH1,PH2)は、バスインタフェースユニット52の内部クロック(PH1,PH2)と同様である。
【0091】
図7の例では、PLL51の内部クロック(PH1,PH2)は、システムクロックの周期の半分の周期である。PLL51の内部クロック(PH1)とPLL51の内部クロック(PH2)とは、位相が正反対(180度ずれている)のクロック信号である。また、時刻T11以前は、マイクロプロセッサの動作モードがスリープモードに設定されているものとする。ウェイクアップ信号は、通常動作モードへの遷移指示が入力されるとき以外はハイレベルである。スリープモードの間は、バスインタフェースユニット52の内部クロック(PH2)、命令キャッシュ54の内部クロック(PH2)、およびデータキャッシュ55の内部クロック(PH2)がローレベルである。また、スリープモードの間は、スリープ信号、バスインタフェースユニット52の内部クロック(PH1)、第1の遅延回路64の出力、命令キャッシュ54の内部クロック(PH1)、第2の遅延回路65の出力、およびデータキャッシュ55の内部クロック(PH1)がハイレベルである。
【0092】
時刻T10に、ウェイクアップ信号がハイレベルからローレベルに変更される。その状態が、システムクロックで2周期の時間継続することで、通常動作モードへの遷移の指示がバスインタフェースユニット52で認識される。
【0093】
時刻T11に、ウェイクアップ信号がローレベルからハイレベルに変更される(アサートされる)。同時に、バスインタフェースユニット52のスリープ信号がハイレベルからローレベルに切り替わる(ネゲートされる)。また、バスインタフェースユニット52の内部クロック(PH1、PH2)が、それぞれPLL11の内部クロック(PH1、PH2)と同じ信号になる。この時点では、第1の遅延回路64の出力と第2の遅延回路65の出力とは、ハイレベルのままである。したがって、命令キャッシュ54の内部クロック(PH1、PH2)とデータキャッシュ55の内部クロック(PH1、PH2)とは変化しない。
【0094】
時刻T12に、第1の遅延回路64の出力がローレベルに切り替わる。すると、命令キャッシュ54の内部クロック(PH1、PH2)が、それぞれPLL51の内部クロック(PH1、PH2)と同じ信号になる。この時点では、第2の遅延回路65の出力はハイレベルのままである。したがって、データキャッシュ55の内部クロック(PH1、PH2)は変化しない。
【0095】
時刻T13に、第2の遅延回路65の出力がローレベルに切り替わる。すると、データキャッシュ55の内部クロック(PH1、PH2)が、それぞれPLL51の内部クロックと同じ信号になる。
【0096】
[第4の実施の形態]
第4の実施の形態は、内部クロックが2層クロックのマイクロプロセッサにおいて、通常動作モードへ切り替えるときのみ、内部クロックの供給タイミングを遅延させる場合の例である。
【0097】
図8は、第4の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。図8に示すようにマイクロプロセッサは、PLL71、バスインタフェースユニット72、整数ユニット73、命令キャッシュ74、およびデータキャッシュ75を有している。これらの各回路の機能は、図5に示した第3の実施の形態の同名の回路と同じである。
【0098】
PLL71には、システムクロックが入力されている。PLL71からは2層の内部クロック(PH1,PH2)が出力され、バスインタフェースユニット72に供給されている。また、PLL71から出力される内部クロックPH1は、3つのOR回路81〜83、第1の遅延回路84、および第2の遅延回路85に入力される。PLL71から出力される内部クロックPH2は、3つのAND回路86〜88、第1の遅延回路84、および第2の遅延回路85に入力される。
【0099】
第1の遅延回路84と第2の遅延回路85とは、入力された信号を所定期間遅延させて出力する回路である。第1の遅延回路84は、入力されたスリープ信号の変化を、内部クロックの周期で1周期分の時間遅延させる。第2の遅延回路85は、入力されたスリープ信号の変化を、内部クロックの周期で2周期分の時間遅延させる。
【0100】
バスインタフェースユニット72には、さらにウェイクアップ信号が入力されている。バスインタフェースユニット72からはスリープ信号が出力される。スリープ信号は、ハイアクティブの信号である。スリープ信号は、3つのOR回路81,91,92、第1の遅延回路84、第2の遅延回路85、AND回路86に入力される。
【0101】
OR回路81の出力は、整数ユニット73に入力される。第1の遅延回路84の出力は、OR回路91に入力される。OR回路91の出力はOR回路82に入力されると共に、信号を反転してAND回路87に入力される。OR回路82の出力とAND回路87の出力とは、命令キャッシュ74に入力される。第2の遅延回路85の出力は、OR回路92に入力される。OR回路92の出力はOR回路83に入力されると共に、信号を反転してAND回路88に入力される。OR回路83の出力とAND回路88の出力とは、データキャッシュ75に入力される。
【0102】
ここで、マイクロプロセッサの動作モードを、スリープモードから通常動作モードに切り換える場合、スリープ際の各回路の動作について説明する。
ウェイクアップ信号が所定時間アサートされると、バスインタフェースユニット72によりスリープ信号がネゲートされる。このときOR回路81には、ローレベルのスリープ信号と、PLL71が出力した内部クロック(PH1)とが入力される。その結果、OR回路81からは内部クロック(PH1)が出力され、整数ユニット73に供給される。また、AND回路86には、ローレベルのスリープ信号が反転されて(ハイレベルの信号に変換されて)入力されると共に、内部クロック(PH2)が入力される。その結果、AND回路86からは内部クロック(PH2)が出力され、整数ユニット73に供給される。
【0103】
また、スリープ信号がネゲートされたとき、第1の遅延回路84には、ローレベルのスリープ信号と、PLL71が出力した2層の内部クロック(PH1,PH2)とが入力される。第1の遅延回路84は、スリープ信号がネゲートされてから内部クロックの1周期分経過後に出力信号をネゲートする。OR回路91にバスインタフェースユニット72から入力されているスリープ信号がローレベルであるため、OR回路91の出力は、スリープ信号がネゲートされてから内部クロックの1周期分経過後にネゲートされる。その結果、スリープ信号がネゲートされてから1周期経過した後、OR回路82から内部クロック(PH1)が出力され、命令キャッシュ74に供給される。また、スリープ信号がネゲートされてから1周期経過した後、AND回路87から内部クロック(PH2)が出力され、命令キャッシュ74に供給される。
【0104】
さらに、スリープ信号がネゲートされたとき、第2の遅延回路85には、ローレベルのスリープ信号と、PLL71が出力した内部クロック(PH1,PH2)とが入力される。第2の遅延回路85は、スリープ信号がネゲートされてから内部クロックの2周期分経過後に出力信号をネゲートする。OR回路92にバスインタフェースユニット72から入力されているスリープ信号がローレベルであるため、OR回路92の出力は、スリープ信号がネゲートされてから内部クロックの2周期分経過後にネゲートされる。その結果、スリープ信号がネゲートされてから2周期経過した後、OR回路83から内部クロック(PH1)が出力され、データキャッシュ75に供給される。また、スリープ信号がネゲートされてから2周期経過した後、AND回路88から内部クロック(PH2)が出力され、データキャッシュ75に供給される。
【0105】
このようにして、通常動作モードに切り換える際に、整数ユニット73、命令キャッシュ74、およびデータキャッシュ75に対して、内部クロック(PH1,PH2)の信号を、1周期分ずつずらして供給することができる。
【0106】
次に、マイクロプロセッサの動作モードを、通常動作モードからスリープモードに切り換える際の各回路の動作について説明する。
スリープモードへの遷移を示す入力が行われる(スリープモードレジスタに1が設定される)と、バスインタフェースユニット72によりスリープ信号がアサートされる。このときOR回路81には、ハイレベルのスリープ信号と、PLL71が出力した内部クロック(PH1)とが入力される。その結果、OR回路81からはハイレベルの信号が出力され、整数ユニット73に供給される。また、AND回路86には、ハイレベルのスリープ信号が反転されて入力されると共に、PLL71が出力した内部クロック(PH2)とが入力される。その結果、AND回路86からはローレベルの信号が出力され、整数ユニット73に供給される。
【0107】
また、スリープ信号がアサートされたとき、第1の遅延回路84には、ハイレベルのスリープ信号と、PLL71が出力した内部クロック(PH1,PH2)とが入力される。第1の遅延回路84は、スリープ信号がアサートされてから内部クロックの1周期分経過後に出力信号をアサートする。一方、OR回路91にバスインタフェースユニット72から入力されているスリープ信号がハイレベルであるため、OR回路91の出力は、スリープ信号のアサートと同時にネゲート(ハイレベル)される。その結果、スリープ信号のアサート直後から、OR回路82からハイレベルの信号が出力され、命令キャッシュ74に供給される。また、スリープ信号がアサートされた直後から、AND回路87からローレベルの信号が出力され、命令キャッシュ74に供給される。
【0108】
さらに、スリープ信号がアサートされたとき、第2の遅延回路85には、ハイレベルのスリープ信号と、PLL71が出力した内部クロック(PH1,PH2)とが入力される。第2の遅延回路85は、スリープ信号がアサートされてから内部クロックの2周期分経過後に出力信号をアサートする。一方、OR回路92にバスインタフェースユニット72から入力されているスリープ信号がハイレベルであるため、OR回路92の出力は、スリープ信号のアサートと同時にネゲート(ハイレベル)される。その結果、スリープ信号のアサート直後から、OR回路83からハイレベルの信号が出力され、データキャッシュ75に供給される。また、スリープ信号のアサート直後から、AND回路88からローレベルの信号が出力され、データキャッシュ75に供給される。
【0109】
このようにして、スリープモードに切り換える際には、スリープ信号の出力と同時に、整数ユニット73、命令キャッシュ74、およびデータキャッシュ75への内部クロック(PH1,PH2)の供給を停止することができる。
【0110】
なお、第4の実施の形態における第1の遅延回路84と第2の遅延回路85との内部構成は、図6に示した第3の実施の形態における遅延回路と同様である。
[他の変形例]
上記の各実施の形態では、各回路への内部クロックの供給開始タイミングのずれを内部クロック1周期分の時間としているが、供給開始のタイミングのずれの時間幅を変えてもよい。たとえば、2周期分の時間ずつ内部クロックの供給開始や供給停止のタイミングをずらすことも可能である。
【0111】
また、通常動作モードからスリープモードへのモード遷移の際には、内部クロックの停止タイミングをずらさずに、スリープモードから通常動作モードに移行するときにのみ、内部クロックの供給タイミングをずらすようにすることも可能である。
【0112】
(付記1) 動作モードの切替機能を備えたマイクロプロセッサにおいて、
内部クロックを発生させるクロック発生回路と、
入力されたクロック信号に同期して動作する複数の同期回路と、
前記クロック発生回路と前記複数の同期回路との間に接続され、前記複数の同期回路の動作を開始させる際に、前記クロック発生回路から前記複数の同期回路のそれぞれへ、前記内部クロックを時間をずらして供給開始するクロック供給制御回路と、
を有することを特徴とするマイクロプロセッサ。
【0113】
(付記2) 前記クロック供給制御回路は、前記内部クロックの供給を停止させるスリープ信号の前記複数の同期回路それぞれに対する入力を、時間をずらして解除することを特徴とする付記1記載のマイクロプロセッサ。
【0114】
(付記3) 前記クロック供給制御回路は、前記複数の同期回路のうちの一部の同期回路に入力されている前記スリープ信号の解除を遅延させる遅延回路を有することを特徴とする付記2記載のマイクロプロセッサ。
【0115】
(付記4) 前記遅延回路は、遅延時間に応じた数のフリップフロップで構成されていることを特徴とする付記3記載のマイクロプロセッサ。
(付記5) 前記遅延回路は、遅延時間に応じた数のラッチ回路で構成されていることを特徴とする付記3記載のマクロプロセッサ。
【0116】
(付記6) 前記クロック供給制御回路は、前記複数の同期回路の動作を停止させる際に、前記クロック発生回路から前記複数の同期回路それぞれへの前記内部クロックの供給を、時間をずらして停止することを特徴とする付記1記載のマイクロプロセッサ。
【0117】
(付記7) 前記クロック供給制御回路は、前記内部クロックの供給を停止させるスリープ信号の前記複数の同期回路それぞれに対する入力を、時間をずらして解除することを特徴とする付記6記載のマイクロプロセッサ。
【0118】
(付記8) 前記クロック供給制御回路は、前記複数の同期回路のうちの一部の同期回路への前記スリープ信号の入力を遅延させる遅延回路を有することを特徴とする付記7記載のマイクロプロセッサ。
【0119】
(付記9) 前記複数の同期回路は、演算回路とキャッシュとを含んでおり、
前記クロック供給制御回路は、前記演算回路に前記内部クロックを供給開始してから所定の時間経過後に、前記キャッシュへの前記内部クロックの供給を開始することを特徴とする付記1記載のマイクロプロセッサ。
【0120】
(付記10) 前記キャッシュは、命令キャッシュとデータキャッシュとを含んでおり、前記命令キャッシュに前記内部クロックを供給開始してから所定の時間経過後に、前記データキャッシュへの前記内部クロックの供給を開始することを特徴とする付記9記載のマイクロプロセッサ。
【0121】
(付記11) 前記クロック発生回路は、PLL(Phase Locked Loop)回路であることを特徴とする付記1記載のマイクロプロセッサ。
(付記12) 動作モードの切替機能を備えたマイクロプロセッサにおいて、
内部クロックを発生させるクロック発生回路と、
入力されたクロック信号に同期して動作する複数の同期回路と、
前記クロック発生回路と前記複数の同期回路との間に接続され、前記複数の同期回路の動作を停止させる際に、前記クロック発生回路から前記複数の同期回路のそれぞれへの前記内部クロックの供給を、時間をずらして停止するクロック供給制御回路と、
を有することを特徴とするマイクロプロセッサ。
【0122】
(付記13) 内部クロックに同期して動作する複数の同期回路を有するマイクロプロセッサの動作モード切替方法において、
前記複数の同期回路の動作の開始を示す信号が入力されると、前記複数の同期回路の一部へ内部クロックの供給を開始し、
前記信号の入力から所定時間遅延させた後、前記内部クロックが未供給の他の同期回路への前記内部クロックの供給を開始する、
ことを特徴とするマイクロプロセッサの動作モード切替方法。
【0123】
(付記14) 内部クロックに同期して動作する複数の同期回路を有するマイクロプロセッサの動作モード切替方法において、
前記複数の同期回路の動作の停止を示す信号が入力されると、前記複数の同期回路の一部への内部クロックの供給を停止し、
前記信号の入力から所定時間遅延させた後、前記内部クロックの供給が未停止の他の同期回路への前記内部クロックの供給を停止する、
ことを特徴とするマイクロプロセッサの動作モード切替方法。
【0124】
【発明の効果】
以上説明したように本発明では、複数の同期回路の動作を開始または停止させる際に、複数の同期回路への内部クロックの供給の開始または停止の時間をずらすようにしたため、複数の同期回路に流れる電流の変化を少なく抑え、ノイズの発生を抑制することができる。その結果、マイクロプロセッサを安定して動作させることができる。
【図面の簡単な説明】
【図1】第1の実施の形態に係るマイクロプロセッサの回路構成図である。
【図2】遅延回路の内部構成を示す図である。
【図3】第1の実施の形態に係るマイクロプロセッサのタイミングチャートである。
【図4】第2の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。
【図5】第3の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。
【図6】第3の実施の形態における遅延回路の構成例を示す図である。
【図7】第3の実施の形態に係るマイクロプロセッサのタイミングチャートである。
【図8】第4の実施の形態に係るマイクロプロセッサの回路構成例を示す図である。
【図9】従来のマイクロプロセッサの構成例を示す図である。
【符号の説明】
11 PLL
12 バスインタフェースユニット
13 整数ユニット
14 命令キャッシュ
15 データキャッシュ
21〜24 OR回路
24 第1の遅延回路
25 第2の遅延回路
Claims (8)
- 動作モードの切替機能を備えたマイクロプロセッサにおいて、
内部クロックを発生させるクロック発生回路と、
入力されたクロック信号に同期して動作する複数の同期回路と、
前記クロック発生回路と前記複数の同期回路との間に接続され、前記複数の同期回路の動作を開始させる際に、前記クロック発生回路から前記複数の同期回路のそれぞれへ、前記内部クロックの1周期間隔で時間をずらして、前記複数の同期回路の動作開始時の処理の発生順に沿って順番に前記内部クロックを供給開始するクロック供給制御回路と、
を有することを特徴とするマイクロプロセッサ。 - 前記クロック供給制御回路は、前記内部クロックの供給を停止させるスリープ信号の前記複数の同期回路それぞれに対する入力を、時間をずらして解除することを特徴とする請求項1記載のマイクロプロセッサ。
- 前記クロック供給制御回路は、前記複数の同期回路のうちの一部の同期回路に入力されている前記スリープ信号の解除を遅延させる遅延回路を有することを特徴とする請求項2記載のマイクロプロセッサ。
- 前記遅延回路は、遅延時間に応じた数のフリップフロップで構成されていることを特徴とする請求項3記載のマイクロプロセッサ。
- 前記遅延回路は、遅延時間に応じた数のラッチ回路で構成されていることを特徴とする請求項3記載のマイクロプロセッサ。
- 前記クロック供給制御回路は、前記複数の同期回路の動作を停止させる際に、前記クロック発生回路から前記複数の同期回路それぞれへの前記内部クロックの供給を、時間をずらして停止することを特徴とする請求項1記載のマイクロプロセッサ。
- 前記複数の同期回路は、演算回路とキャッシュとを含んでおり、
前記クロック供給制御回路は、前記演算回路に前記内部クロックを供給開始してから所定の時間経過後に、前記キャッシュへの前記内部クロックの供給を開始することを特徴とする請求項1記載のマイクロプロセッサ。 - 内部クロックに同期して動作する複数の同期回路を有するマイクロプロセッサの動作モード切替方法において、
前記複数の同期回路の動作の開始を示す信号が入力されると、前記複数の同期回路のうちで最初に処理が発生する前記同期回路へ内部クロックの供給を開始し、
前記信号の入力から1周期間隔で時間をずらして、前記複数の同期回路の動作開始時の処理の発生順に沿って順番に、前記内部クロックが未供給の他の前記同期回路へ前記内部クロックを供給開始する、
ことを特徴とするマイクロプロセッサの動作モード切替方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002132301A JP4007848B2 (ja) | 2002-05-08 | 2002-05-08 | マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 |
US10/376,617 US7243244B2 (en) | 2002-05-08 | 2003-03-03 | Microprocessor and operation mode switching method for the microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002132301A JP4007848B2 (ja) | 2002-05-08 | 2002-05-08 | マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003323228A JP2003323228A (ja) | 2003-11-14 |
JP4007848B2 true JP4007848B2 (ja) | 2007-11-14 |
Family
ID=29397384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002132301A Expired - Fee Related JP4007848B2 (ja) | 2002-05-08 | 2002-05-08 | マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7243244B2 (ja) |
JP (1) | JP4007848B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4051682B2 (ja) * | 2003-08-06 | 2008-02-27 | ソニー株式会社 | クロック制御回路と集積回路 |
WO2006051612A1 (ja) * | 2004-11-15 | 2006-05-18 | Renesas Technology Corp. | 半導体集積回路 |
US7420403B2 (en) * | 2005-12-08 | 2008-09-02 | Electronics And Telecommunications Research Institute | Latch circuit and flip-flop |
US7606991B2 (en) * | 2006-04-06 | 2009-10-20 | Texas Instruments Incorporated | Dynamic clock switch mechanism for memories to improve performance |
GB2466300B (en) * | 2008-12-19 | 2013-05-15 | Advanced Risc Mach Ltd | Control of clock gating |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355503A (en) * | 1990-05-31 | 1994-10-11 | National Semiconductor Corporation | Event driven scanning of data input equipment using multi-input wake-up techniques |
JP3426870B2 (ja) | 1996-09-18 | 2003-07-14 | 東芝マイクロエレクトロニクス株式会社 | 半導体集積回路 |
EP0855718A1 (en) * | 1997-01-28 | 1998-07-29 | Hewlett-Packard Company | Memory low power mode control |
US6184813B1 (en) * | 1998-11-20 | 2001-02-06 | Legerity, Inc. | Method and apparatus for synchronizing signals |
US6512402B2 (en) * | 2001-03-30 | 2003-01-28 | Intel Corporation | Method and apparatus for shifting the frequency spectrum of noise signals |
-
2002
- 2002-05-08 JP JP2002132301A patent/JP4007848B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-03 US US10/376,617 patent/US7243244B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003323228A (ja) | 2003-11-14 |
US7243244B2 (en) | 2007-07-10 |
US20030212917A1 (en) | 2003-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1451666B1 (en) | Glitch free clock selection switch | |
US6563349B2 (en) | Multiplexor generating a glitch free output when selecting from multiple clock signals | |
JP5317356B2 (ja) | クロック制御信号生成回路、クロックセレクタ、及び情報処理装置 | |
JP4745127B2 (ja) | クロック切替回路 | |
US11206027B2 (en) | DPLL restart without frequency overshoot | |
JPH10161767A (ja) | 小電力状態に出入するときにデータ処理システム内のクロックを自動的に順序付ける装置およびその方法 | |
US5357204A (en) | One-shot clock generator circuit | |
US8831160B2 (en) | Method and apparatus for switching clock frequency in a system-in-package device | |
JP4007848B2 (ja) | マイクロプロセッサおよびマイクロプロセッサの動作モード切替方法 | |
US6624681B1 (en) | Circuit and method for stopping a clock tree while maintaining PLL lock | |
JP2008061169A (ja) | 電子回路 | |
KR20160143159A (ko) | 데이터 복원을 안정적으로 제어하는 파워 게이팅 제어 회로 | |
JP2000357947A (ja) | クロック制御回路 | |
US7003683B2 (en) | Glitchless clock selection circuit | |
JPH09167134A (ja) | データ同期システム | |
US5568100A (en) | Synchronous power down clock oscillator device | |
JPH0715293A (ja) | クロックディスエーブル回路、クロックディスエーブルおよびイネーブル回路、ならびに同期されたクロックディスエーブルおよびイネーブルを備えるキャリア信号周波数トラッキング装置 | |
JP2000137699A (ja) | マイクロコンピュータ | |
US6157233A (en) | Always-deterministic phase-locked loop | |
JP2002132375A (ja) | クロック信号制御回路 | |
JP2004258888A (ja) | 半導体集積回路 | |
JP4032927B2 (ja) | 大規模集積回路の初期化回路 | |
JP4750505B2 (ja) | クロック切り換え回路 | |
JP2000349599A (ja) | 半導体集積回路装置 | |
JP2006164036A (ja) | 複数cpuクロック制御システム、その制御方法及びそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070307 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070828 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070828 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100907 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110907 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120907 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120907 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130907 Year of fee payment: 6 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |