JP2019057281A - クロック生成回路およびクロック生成方法 - Google Patents
クロック生成回路およびクロック生成方法 Download PDFInfo
- Publication number
- JP2019057281A JP2019057281A JP2018173698A JP2018173698A JP2019057281A JP 2019057281 A JP2019057281 A JP 2019057281A JP 2018173698 A JP2018173698 A JP 2018173698A JP 2018173698 A JP2018173698 A JP 2018173698A JP 2019057281 A JP2019057281 A JP 2019057281A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- frequency
- pulse
- frequency divider
- mask
- 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.)
- Withdrawn
Links
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/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- 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
-
- 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/02—Digital function generators
- G06F1/025—Digital function generators for functions having two-valued amplitude, e.g. Walsh functions
-
- 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/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
- H03K21/38—Starting, stopping or resetting the counter
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K23/00—Pulse counters comprising counting chains; Frequency dividers comprising counting chains
- H03K23/64—Pulse counters comprising counting chains; Frequency dividers comprising counting chains with a base or radix other than a power of two
- H03K23/66—Pulse counters comprising counting chains; Frequency dividers comprising counting chains with a base or radix other than a power of two with a variable counting base, e.g. by presetting or by adding or suppressing pulses
- H03K23/662—Pulse counters comprising counting chains; Frequency dividers comprising counting chains with a base or radix other than a power of two with a variable counting base, e.g. by presetting or by adding or suppressing pulses by adding or suppressing pulses
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Manipulation Of Pulses (AREA)
Abstract
【課題】所望の周波数のクロックを即座に生成することを可能にするクロック生成回路を提供する。【解決手段】半導体装置100において、クロックコントロールモジュール10は、PLL回路1および分周器2、3を具備する。少なくとも分周器2は、ソースクロックのパルス列の一部をマスクする処理を行うことによって、当該ソースクロックよりも周波数の低い分周クロックを生成する機能を有するパルスマスク型分周器であり、コントローラ6から制御される。【選択図】図1
Description
本発明の実施形態は、クロック生成回路およびクロック生成方法に関する。
コンピュータや半導体などの回路の動作時の電力を削減するために、クロックを必要十分な周波数に制御する方法は知られている。一定以上の性能を必要とする処理や負荷の高い処理においては、機能を損なわないようにクロック周波数を上げる。逆に、性能を必要としない処理や負荷の低い処理の場合には、クロック周波数を下げ動作時の電力を削減する。
また、回路の許容する温度や最大電流量などの動作条件がある場合、その動作条件の範囲内で動作させるために、クロック周波数を下げる制御が行われる。しかし、この場合には性能は犠牲となり、本来提供すべき機能を満たすことが難しくなる。
一般的に、クロック周波数の制御には、予め複数のクロックを生成しておき、そのクロックを切り替える方法や、PLL(Phase Locked Loop)などのクロック発生回路や複数の分周比をとることができる分周回路の設定変更制御を行う方法が取られる。この場合、クロックの切り替え時間や回路の面積オーバーヘッドなどの問題が出てくる。
クロック切り替えに時間がかかってしまうと、最適なクロック周波数での動作を行うことができない。例えば、低周波数動作が可能な期間に周波数の高いクロックで動作し、無駄な電力を消費してしまう。また、逆に、高い周波数で動作することが要求される期間に周波数の低いクロックが供給され、性能の低下を招いてしまう。
クロック生成回路は、他に比べて動作率の高いブロックであり、面積オーバーヘッドが生じた場合、本来、目的とする電力の削減が達成できない要因となり得る。
所望の周波数のクロックを即座に生成することが可能なクロック生成回路およびクロック生成方法を提供する。
実施形態のクロック生成回路は、ソースクロックのパルス列の一部をマスクする処理を行うことによって当該ソースクロックよりも周波数の低い分周クロックを生成することが可能な分周器を具備する。
以下、図面を参照して実施の形態について説明する。
(各実施形態に共通)
最初に、各実施形態に共通する事項について説明する。
最初に、各実施形態に共通する事項について説明する。
各実施形態に示すクロック生成回路は、コンピュータや半導体をはじめとするクロックで動作する回路に適用されるものであり、例えば、ダイナミック電力削減のための技術であるDFS(Dynamic Frequency Scaling)制御や、各種条件下での動作を実現するにあたり、それぞれのシステム、ユースケースに合わせた最適なクロックパルスを発生することを可能にする。具体的には、特定の機能を有する分周器(後述するパルスマスク型分周器)を用い、ソースクロックのパルス列の一部をマスクする処理を行うことによって、当該ソースクロックよりも周波数の低い分周クロックを生成することを可能にする。当該マスク処理は、最小で1クロックサイクル単位(1パルス単位)から行うことが可能であり、より細やかな周波数制御の実現を可能にする。
図1は、各実施形態に係る半導体装置の基本構成の一例を示す概念図である。
図1に示されるように、半導体装置100の中には、クロックコントロールモジュール10、バスブロックBB、ブロックB0,B1,B2,B3を含む複数の機能ブロックなどが配置されている。
クロックコントロールモジュール10は、各部に供給すべきクロックを生成するクロック生成回路を有するものである。ブロックB0,B1,B2,B3は、それぞれ、クロックコントロールモジュール10から供給されるクロックを用いて動作する機能ブロックである。バスブロックBBは、クロックコントロールモジュール10から供給されるクロックを用いて動作するバスを含む。
この半導体装置100には、必要に応じて、ある対象物の何らかの状態を検知するアクティビティモニタ(状態監視回路)が備えられる。例えば、図1に示されるように、バスブロックBBにアクティビティモニタABが備えられていてもよいし、ブロックB0,B1,B2,B3の全てもしくはその一部に(例えば、ブロックB0やブロックB2に)、アクティビティモニタ(例えば、アクティビティモニタA0やアクティビティモニタA2)が備えられていてもよい。
アクティビティモニタABは、例えば、バスブロックBBに対するブロックB0,B1,B2,B3のそれぞれのバスアクセス(トランザクション)の発生の有無などを監視するように構成されていてもよい。
アクティビティモニタA0あるいはアクティビティモニタA2は、例えば、所定の装置にデータを送るFIFO等の記憶手段の空き容量を監視するように構成されていてもよいし、所定の場所の温度を監視するように構成されていてもよいし、消費電力の異なる複数の動作モード間の状態遷移を監視するように構成されていてもよい。
クロックコントロールモジュール10には、PLL回路1、分周器2,3、クロックゲーティング回路4、レジスタ5、コントローラ(制御回路)6などが備えられている。但し、クロックコントロールモジュール10の構成要素は、これらに限定されるものではない。一部の構成要素、例えば分周器3の設置を省略するなど、適宜、構成を変更してもよい。
PLL回路1は、位相の調整されたクロック信号を出力する。分周器2,3は、PLL回路1から供給されるクロック信号(ソースクロック)に対して周波数を低下させたクロック信号を出力する。クロックゲーティング回路4は、分周器2,3から供給されるクロック信号に対してクロックゲーティングを施す。クロックゲーティングの施されたクロック信号は、ブロックB0,B1,B2,B3にそれぞれ供給される。
分周器2,3のうち、少なくとも分周器2は、ソースクロックのパルス列の一部をマスクする処理を行うことによって、当該ソースクロックよりも周波数の低い分周クロックを生成する機能を有するパルスマスク型分周器である。
具体的には、パルスマスク型分周器2は、ソースクロックのパルス列の一部をマスクするビット列のパターン(以下、「クロックパルスパターン」と称す。)を使用することにより、当該ソースクロックよりも周波数の低い分周クロックを生成する機能を有する。クロックパルスパターンは、ソースクロックのパルス列をどのタイミングでマスクし、どのタイミングで出力するかを定義している。
また、パルスマスク型分周器2は、所定のハードウェア(例えばコントローラ6)から制御されることによって、クロックパルスパターンを切り替え、生成する分周クロックの周波数を切り替える機能を有する。より具体的には、パルスマスク型分周器2は、予め用意されている複数種のクロックパルスパターンのうちの1つを選択的に使用することによって、周波数の異なる複数種の分周クロックのうちの1つを選択的に生成する機能を有する。
レジスタ5は、コントローラ6がパルスマスク型分周器2を制御するために使用する各種の情報を記憶する。
コントローラ6は、パルスマスク型分周器2に制御用の信号を送ることにより、パルスマスク型分周器2を制御する。このコントローラ6は、例えば、半導体装置100に備えられるアクティビティモニタ(例えば、アクティビティモニタAB,A0,A2等)から得られる所定の対象物の状態に応じて、パルスマスク型分周器2が生成する分周クロックの周波数を変化させることができる。
パルスマスク型分周器2から出力されたクロックは、必要に応じて分周器3やクロックゲーティング回路4などを経由した後、クロックコントロールモジュール10から出力され、個々のブロックへと供給される。
図2は、パルスマスク型分周器2の回路構成の一例を示す回路図である。
パルスマスク型分周器2には、クロックパルスパターン生成部11、カウンタ12、クロックゲーティング部13などが備えられている。また、パルスマスク型分周器2には、PLL1側から供給されるソースクロックを入力する端子、コントローラ6から供給される制御用の各信号(後述するパルスマスク数の設定を指示する信号やイネーブル信号など)を入力する端子、生成される分周クロックを出力する端子などが備えられている。
クロックパルスパターン生成部11は、予め所定の記憶手段に記憶されている複数種のクロックパルスパターンのうちの該当するクロックパルスパターンを、コントローラ6により指定されるパルスマスク数に応じて選択し、選択したクロックパルスパターンのビット列を出力する。クロックパルスパターンのビット列は、例えば、「0」により所定のパルスをマスクすることを示し、「1」により所定のパルスをマスクしないことを示す。
カウンタ12は、ソースクロックのパルスをカウントするとともに、イネーブル信号のオン/オフを検知する。カウンタ12で得られた情報はクロックパルスパターン生成部11に伝えられる。これにより、クロックパルスパターン生成部11は、イネーブル信号に応じてクロックパルスパターンのビット列出力を開始したり、ソースクロックに同期してクロックパルスパターンのビット列を出力したりすることができる。すなわち、カウンタ12は、クロックパルスパターン生成部11から1つのクロックパルスパターンのビット列を一定のサイクルでクロックゲーティング部13に送出させる。
クロックゲーティング部13は、ソースクロックを入力するとともに、クロックパルスパターン生成部11から送られてきたクロックパルスパターンのビット列を入力し、クロックパルスパターンのビット列に従ってソースクロックのパルス列の一部をマスクして出力する。すなわち、クロックゲーティング部13は、クロックパルスパターンのビット列に従って、ソースクロックをパルス毎にマスクする処理とマスクせずにそのまま出力させる処理とを実施する。この結果、クロックゲーティング部13からは、ソースクロックにマスク処理が施された分周クロックあるいはマスク処理が施されていないクロックが出力される。
図2に示されるパルスマスク型分周器2は、既存のクロックラインに、所定のゲーティング機構を入れるだけで実現できるため、レイアウト・タイミング設計や回路実装が容易である。
なお、図2に示したパルスマスク型分周器2の構成は、これに限定されるものではない。同じ機能を実現できるのであれば、別の構成を採用してもよい。
図3は、図2中に示されるクロックパルスパターン生成部11が所定の記憶手段に記憶している、複数種のクロックパルスパターンが定義されたテーブルの一例を示す図である。
図3の例では、ソースクロックにおける32個のクロックサイクル(32個のパルス)を1つの単位としている。但し、クロックパルスパターンの単位はこの例に限定されるものではない。単位となるクロックサイクル(パルス)の数としては、32個ではなく、16個や64個など、システムやユースケースに応じて任意の数を採用してもよい。
図3には、パルスマスク数に応じた32通りのクロックパルスパターンの例が示されている。
各クロックパルスパターンは、32個のクロックサイクルのうちのどのパルスをマスクするか、また、どのパルスをマスクせずに出力するかを定義している。「0」は、パルスをマスクすることを表し、「1」は、パルスをマスクせずに出力することを表している。
図3に示されるテーブルは、製品の仕様や制約に合わせて所望の複数のマスクパターンを定義することが可能である。
図4は、各種の分周クロックとソースクロックとの関係を示すタイミングチャートである。
図4には、図3のテーブルに示される複数種のクロックパルスパターンにそれぞれ対応するクロックの例が示されている。具体的には、パルスマスク数が0のソースクロックの例と、パルスマスク数に応じた31通りの分周クロックの例とが示されている。
図4の分周クロックの例に示されるように、図3のクロックパルスパターンの「0」となっているタイミングでは、ソースクロックのパルスがマスクされ、図3のクロックパルスパターンの「1」となっているタイミングでは、ソースクロックのパルスがマスクされずに出力されている。
図4の例からわかるように、コントローラ6により指定されるマスク数が増えるほど、間引きされるパルスの数が増え、クロック周波数が低下することになる。
図5は、ソースクロックに対するマスク数の設定およびイネーブル信号のオン/オフに応じてマスク処理された分周クロックが形成される動作の一例を示すタイミングチャートである。
図5の例では、マスク数が24の場合を示す。マスク数24が設定された後、イネーブル信号がオンの状態になると、即座に(例えば数サイクル後に)、設定されたマスク数に対応するクロックパルスパターンのビット列によって、一定期間毎に、ソースクロックのパルス列が部分的にマスクされる。この結果、ソースクロックと同じ周波数だった分周クロックは、周波数が下げられた状態になる。その後、イネーブル信号がオフの状態になると、即座に(例えば数サイクル後に)、当該マスク処理が解除され、分周クロックの周波数が元の状態に戻る。
なお、分周クロックを形成する動作は、図5の例に限定されるものではない。例えば、イネーブル信号は必ずしも必要とされるものではなく、イネーブル信号を用いずに同様の動作を実現することも可能である。この場合、イネーブル信号がオン状態になった時点を基準にマスク数の切り替えを行う代わりに、マスク数が設定された時点を基準にマスク数の切り替えるようにしてもよい。
上述したパルスマスク型分周器2は、図1の半導体装置100の例に限らず、あらゆる種類の装置やシステムへの組み込みを容易に行えるものである。
また、ハードウェアからパルスマスク型分周器2を制御する構成を採用しているため、パルスマスク型分周器2は、新たなクロック周波数を指定する信号を受けると即座に、指定された周波数を生成することができる。周波数の迅速な切り替えが可能になるため、周波数の切り替わり期間における消費電力のロスを低減することができる。また、新たなクロック周波数を指定する信号を受けた直後から、指定された周波数を即座に生成することができるため、所望の性能をすぐに発揮させることができる。
また、クロックゲーティングなどのダイナミック制御は、1サイクルで制御信号が有効になる必要があるが、パルスマスク型分周器2を用いた制御では、必要とされる性能に応じたクロックパルスパターンを任意に設定することができ、必ずしも1サイクルでの制御を必要とはしない。
また、それぞれのシステム、ユースケースに合わせて、上記ハードウェアによる制御に加え、ソフトウェアによる制御を加えることも可能である。
また、クロックパルスパターンは任意に選択することができ、それぞれのユースケースに応じて、どのクロックパルスパターンを選択するのかを予め設定しておくことで、制御をより容易にすることができる。
(第1の実施形態)
次に、第1の実施形態について説明する。
第1の実施形態では、図6および図7を参照して説明する。
次に、第1の実施形態について説明する。
第1の実施形態では、図6および図7を参照して説明する。
図6は、第1の実施形態に係る半導体装置の構成の一例を示す概念図である。なお、図1と共通する要素には同一の符号を付し、重複する説明を省略する。
図6に示されるように、バスブロックBBにはアクティビティモニタABが備えられている。アクティビティモニタABは、例えば、バスブロックBBに対するブロックB0,B1,B2,B3からの各トランザクションの発生の有無を監視する。なお、ブロックB0,B1,B2,B3はそれぞれバスマスタ(マスタモジュール)として動作し、バスブロックBBは上記バスマスタとスレーブ(図示せず)との間でやり取りされる信号を伝達するバス本体として動作する。すなわち、アクティビティモニタABは、バスマスタとスレーブとの間でのやり取りされる信号を監視して各トランザクションの発生の有無を判定する。以下では、ブロックB0,B1,B2,B3をそれぞれMaster0,Master1,Master2,Master3と称す場合がある。アクティビティモニタABにより監視される情報は、常時、コントローラ6に伝えられる。
コントローラ6は、アクティビティモニタABから伝えられる情報に示される各トランザクションの発生の有無に応じて、パルスマスク型分周器2がマスクするパルスのマスク数を変化させ、パルスマスク型分周器2が生成する分周クロックの周波数を変化させる。ここでは、コントローラ6は、例えばMaster0,Master1,Master2を監視の対象としているものとする。
レジスタ5には、どのブロックのトランザクションの状態をDFS制御に用いるかを指定する情報などが記憶される。ここでは、例えばMaster0,Master1,Master2の各トランザクションの状態をDFS制御に用いることを指定する情報が記憶されるものとする。このレジスタ5に記憶された情報は、コントローラ6により参照される。
図7は、各バスマスタのトランザクションの状態に応じてクロックの周波数が変化する動作の一例を示すタイムチャートである。
ここでは、Master0,Master1,Master2の各トランザクションの状態に応じてクロックの周波数が変化する例を示す。
図7に示されるように、例えば、Master0,Master1,Master2のいずれにもトランザクションが発生していないアイドル状態の期間(IDLE期間)においては、データ転送を急ぐ必要がないことから、通常の動作よりも低速な低速動作が実施される。これにより電力消費が抑えられる。
コントローラ6は、このような動作を実現するため、予め定められたパルスマスク数の設定をパルスマスク型分周器2に対して指示する信号を送るとともに、イネーブル信号をパルスマスク型分周器2に送る。これにより、パルスマスク型分周器2からは、間引きされたパルスの数が多いクロックが生成される。
一方、Master0,Master1,Master2の少なくともいずれかにトランザクションが発生しているビジー状態の期間(バスアクセス期間)においては、データ転送を急ぐ必要があることから、高速動作もしくは通常動作が実施される。なお、トランザクションが発生しているバスマスタの数に応じて段階的に動作速度(周波数)が変わるようにしてもよい。
コントローラ6は、このような動作を実現するため、パルスマスク数を0とする設定もしくはIDLE期間のときよりも少ないパルスマスク数の設定をパルスマスク型分周器2に対して指示する信号を送るとともに、イネーブル信号をパルスマスク型分周器2に送る。これにより、パルスマスク型分周器2からは、パルスが間引きされていないクロックもしくは間引きされたパルスの数の少ないクロックが生成される。
このような制御により、ソフトウェアでは容易に実現できない細かい粒度であるトランザクション単位でのDFS制御を実現することが可能となる。また、トランザクションが発生していないIDLE期間がある毎に、低速動作への切り替えを迅速に行えるため、電力削減効果が大きい。また、バスのステータスを示す信号を利用して制御を容易に実現することができるため、実装が容易である。
次に、いくつか具体例を挙げて説明する。
・制御例(1a)
アイドル(IDLE)の状態のバスマスタの数に応じてパルスマスク数を変える制御例について説明する。
アイドル(IDLE)の状態のバスマスタの数に応じてパルスマスク数を変える制御例について説明する。
なお、この制御を実施するために必要な情報(各状態に対応するパルスマスク数を示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
ここでは、IDLEの状態のバスマスタの数が多いほど、パルスマスク数を多くし、クロック周波数を下げるものとする。
Master0,Master1,Master2のすべてがIDLEの状態にある期間においては、コントローラ6は、32個のパルス中の例えば24個のパルスをマスクするための制御を実施する。
また、Master0とMaster1がIDLEの状態にあり、Master2のトランザクションが発生している期間においては、コントローラ6は、32個のパルス中の例えば12個のパルスをマスクするための制御を実施する。
また、Master0とMaster1のトランザクションが発生しており、Master2がIDLEの状態にある期間においては、コントローラ6は、32個のパルス中の例えば4個のパルスをマスクするための制御を実施する。
・制御例(1b)
バスアクセス中の各バスマスタに対し、例えば必要とされる性能の程度などに応じて重み付けを行い、それらの合計に応じてパルスマスク数を変える制御例について説明する。
バスアクセス中の各バスマスタに対し、例えば必要とされる性能の程度などに応じて重み付けを行い、それらの合計に応じてパルスマスク数を変える制御例について説明する。
なお、この制御を実施するために必要な情報(各バスマスタの重みを示す情報や、合計値に応じたパルスマスク数を示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
ここでは、Master0の重みを2、Mater1の重みを1、Master2の重みを6とし、「(バスアクセス中のバスマスタ)×(重み)」の合計が多いほど、パルスマスク数を少なくし、クロック周波数を上げるものとする。なお、(バスアクセス中のバスマスタ)の値は、例えばバスマスタ毎に1とする。
Master0,Master1,Master2のすべてがIDLEの状態にある期間においては、合計が0となる。この場合、コントローラ6は、32個のパルス中の例えば24個のパルスをマスクするための制御を実施する。
また、Master0とMaster1がIDLEの状態にあり、Master2のトランザクションが発生している期間においては、合計が6となる。この場合、コントローラ6は、32個のパルス中、4個のパルスをマスクするための制御を実施する。
また、Master0とMaster1のトランザクションが発生しており、Master2がIDLEの状態にある期間においては、合計が3となる。この場合、コントローラ6は、32個のパルス中、12個のパルスをマスクするための制御を実施する。
・制御例(1c)
上述した制御例(1b)において、特定のバスマスタのトランザクション、例えばMaster2のトランザクションを無視する制御例について説明する。
上述した制御例(1b)において、特定のバスマスタのトランザクション、例えばMaster2のトランザクションを無視する制御例について説明する。
なお、この制御を実施するために必要な情報(Master2のトランザクションを無視することを示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
Master0,Master1,Master2のすべてがIDLEの状態にある期間においては、合計が0となる。この場合、コントローラ6は、32個のパルス中の例えば24個のパルスをマスクするための制御を実施する。
Master0とMaster1がIDLEの状態にあり、Master2のトランザクションが発生している期間においては、合計が0となる。この場合、コントローラ6は、32個のパルス中、24個のパルスをマスクするための制御を実施する。
この第1の実施形態によれば、トランザクションの発生状況に応じて、ハードウェアでパルスマスク型分周器2を制御する構成により、バストランザクション単位での周波数の切り替えを行えるので、より粒度の細かい制御を実現でき、省電力効果を高めることもできる。
また、バストランザクションの監視は、既存のアクティビティモニタ回路における既存の信号を利用して行えるため、汎用性が高く、複雑な回路を改めて実装する必要がなく、簡単な回路実装で済み、また、既存の回路への組み込みが容易である。さらに、製品ごとのアーキテクチャ統一が容易である。
また、ソフトウェアを介さずにハードウェアで自動制御を行うため、ソフトウェア開発のための工数を削減することができる。さらに、ソフトウェアによる制御に比べ、より細かい粒度で制御を行えるので、低消費電力動作が可能となる。
また、レイアウトの工程におけるタイミング設計が容易であり、面積増大や性能低下などのリスクが低い。
また、閾値や重み付け、切り替える周波数が可変であるため、多種の製品に適用することが容易である。
(第2の実施形態)
次に、第2の実施形態について説明する。
第2の実施形態では、前述の図1を参照するとともに、図8、図9Aおよび図9Bを参照して説明する。
次に、第2の実施形態について説明する。
第2の実施形態では、前述の図1を参照するとともに、図8、図9Aおよび図9Bを参照して説明する。
第2の実施形態において監視の対象となるのは、DRAM等からディスプレイ等へデータが供給される経路の途中にあるFIFO等の記憶手段(以下「FIFO」と略称する)である。
図8は、第2の実施形態において監視の対象となるFIFO等を示す構成の一例を示す概念図である。
なお、図8に示される構成は、半導体装置100内に設けられていてもよいし、その一部が半導体装置100外に設けられていてもよい。
図8に示されるように、DRAM等からディスプレイへデータが供給される経路の途中には、ディスプレイインタフェースコントローラ21、FIFO22、ディスプレイインタフェース23がある。FIFO22は、ディスプレイインタフェースコントローラ21から供給されるデータをディスプレイインタフェース23へと順次送り出す。
FIFO22は、状況によってキューイングに空きが多いときもあれば、空きが少ないときもある。このようなFIFO22のキューイング状態を示す情報は、例えば、半導体装置100内の所定のブロックのアクティビティモニタを通じてクロックコントロールモジュール10のコントローラ6へ伝えられる。但し、情報を伝送する経路はこの例に限定されるものではない。例えば、別の手段を通じて、FIFO22のキューイング状態を示す情報がコントローラ6へ伝えられるようにしてもよい。
ここでは、例えば、FIFO22のキューイングの空き容量が、半導体装置100内のブロックB0のアクティビティモニタA0により監視され、その監視結果がコントローラ6へ伝えられるものとする。
コントローラ6は、アクティビティモニタA0から伝えられる情報に示されるFIFO22のキューイングの空き容量に応じて、パルスマスク型分周器2がマスクするパルスのマスク数を変化させ、パルスマスク型分周器2が生成する分周クロックの周波数を変化させる。
レジスタ5には、低速動作に移行するタイミングや高速動作(通常動作)に移行するタイミングを決める閾値などの情報が記憶される。このレジスタ5に記憶された情報は、コントローラ6により参照される。
図9Aは、FIFO22のキューイング状態に応じてクロックの周波数が変化する動作の一例を示すタイムチャートである。
ここでは、FIFO22のキューイングの空き容量に応じてクロックの周波数が変化する例を示す。
図9Aに示されるように、例えば、FIFO22のキューイングの空き容量が第1の閾値(UPPER)を上回る場合、キューイングの空きに余裕があり、データ転送を急ぐ必要がないことから、通常の動作よりも低速な低速動作が開始される。これにより電力消費が抑えられる。
コントローラ6は、このような動作を実現するため、FIFO22のキューイングの空き容量が第1の閾値(UPPER)を上回ることを検知すると、予め定められたパルスマスク数の設定をパルスマスク型分周器2に対して指示する信号を送るとともに、イネーブル信号をパルスマスク型分周器2に送る。これにより、パルスマスク型分周器2からは、間引きされたパルスの数が多いクロックが生成される。なお、この制御を実施するために必要な情報(第1の閾値(UPPER)を示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
一方、FIFO22のキューイングの空き容量が第2の閾値(LOWER)を下回る場合、キューイングの空きに余裕がなく、データ転送を急ぐ必要があることから、高速動作もしくは通常動作が開始される。なお、キューイングの空き容量に応じて段階的に動作速度(周波数)が変わるようにしてもよい。
コントローラ6は、このような動作を実現するため、FIFO22のキューイングの空き容量が第2の閾値(LOWER)を下回ることを検知すると、パルスマスク数を0とする設定もしくはIDLE期間のときよりも少ないパルスマスク数の設定をパルスマスク型分周器2に対して指示する信号を送るとともに、イネーブル信号をパルスマスク型分周器2に送る。これにより、パルスマスク型分周器2からは、パルスが間引きされていないクロックもしくは間引きされたパルスの数の少ないクロックが生成される。なお、この制御を実施するために必要な情報(第2の閾値(LOWER)を示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
次に、そのほかの具体例を挙げて説明する。
・制御例(2a)
上記2つの閾値を用いてパルスマスク数を3段階に変化させる制御例について、図9Bを参照して説明する。
上記2つの閾値を用いてパルスマスク数を3段階に変化させる制御例について、図9Bを参照して説明する。
なお、この制御を実施するために必要な情報(2つの閾値を示す情報など)は、コントローラ6が参照できるようにレジスタ5内に記憶される。
ここでは、FIFO22のキューイングの空きに余裕があるほど、パルスマスク数を多くし、クロック周波数を下げるものとする。
FIFO22のキューイングの空き容量が第1の閾値(UPPER)を上回る期間においては、コントローラ6は、32個のパルス中の例えば28個のパルスをマスクするための制御を実施する。
また、FIFO22のキューイングの空き容量が第1の閾値(UPPER)と第2の閾値(LOWER)との間にある期間においては、コントローラ6は、32個のパルス中の例えば14個のパルスをマスクするための制御を実施する。
また、FIFO22のキューイングの空き容量が第2の閾値(LOWER)を下回る期間においては、コントローラ6は、32個のパルス中の例えば0個のパルスをマスクする(パルスマスクを無効にする)ための制御を実施する。
これにより、より細やかな制御を実現することができる。なお、閾値を2つではなく、3つ以上とすることで、より多段階にパルスマスク数を変化させるように制御してもよい。
この第2の実施形態によれば、FIFO22のキューイング状態に応じてコントローラ6がパルスマスク型分周器2を制御する構成においても、第1の実施形態の場合と同様の効果を得ることができる。
(第3の実施形態)
次に、第3の実施形態について説明する。
第3の実施形態では、前述の図1を参照するとともに、図10および図11を参照して説明する。
次に、第3の実施形態について説明する。
第3の実施形態では、前述の図1を参照するとともに、図10および図11を参照して説明する。
第3の実施形態において監視の対象となるのは、半導体装置100の所定の場所の温度である。
図1に示される半導体装置100の所定の場所には、温度センサ(図示せず)が設けられる。当該温度センサは、半導体装置100の所定の場所の温度を検知するものである。なお、この温度センサは、半導体装置100の内側に設けられていてもよいし、半導体装置100の外側に設けられていてもよい。温度センサにより検知された温度を示す情報は、直接、コントローラ6へ伝えられるようにしてもよいし、あるいは、別の手段を通じて、コントローラ6へ伝えられるようにしてもよい。例えば、温度センサにより検知される温度が半導体装置100内のブロックB0のアクティビティモニタA0により監視され、その監視結果がコントローラ6へ伝えられるようにしてもよい。
ここでは、温度センサにより検知された温度を示す情報が、直接、コントローラ6へ伝えられるものとする。
コントローラ6は、温度センサから伝えられる情報に示される温度の値に応じて、パルスマスク型分周器2がマスクするパルスのマスク数を変化させ、パルスマスク型分周器2が生成する分周クロックの周波数を変化させる。
レジスタ5には、低速動作に移行するタイミングや高速動作(通常動作)に移行するタイミングを決める温度の閾値などの情報が記憶される。このレジスタ5に記憶された情報は、コントローラ6により参照される。
図10は、第3の実施形態の制御による動作の一例を示すフローチャートである。
ここでは、単位時間当たりの温度変化量(前回取得した温度と今回取得した温度との差分)に応じて、パルスマスク数を変える制御例について説明する。
まず、コントローラ6は、パルスマスク型分周器2に対するイネーブル信号をオンにした状態で、温度センサからの温度測定の完了を示すEOC(End Of Conversation)信号がアサートされるまで待機する(ステップS1)。
次に、コントローラ6は、温度測定の完了を示すEOC信号のアサートに応じて、温度情報を取得し、取得した温度に基づく処理を開始する(ステップS2)。
コントローラ6は、今回取得した温度と、レジスタ5に予め設定された基準温度とを比較し、今回取得した温度が基準温度以上であるか否かを判定する(ステップS3)。
今回取得した温度が基準温度以上である場合には(ステップS3のYes)、ステップS4へと進む。一方、今回取得した温度が基準温度未満である場合には(ステップS3のNo)、パルスマスク数を0に戻し(ステップS5)、ステップS6へと進む。
ステップS4では、コントローラ6は、前回取得した温度と今回取得した温度との比較を行う(ステップS4)。
より具体的には、コントローラ6は、今回取得した温度と前回取得した温度との差分と、レジスタ5に予め設定された第1の閾値(RANGE_UP)との比較、および、今回取得した温度と前回取得した温度との差分と、レジスタ5に予め設定された第2の閾値(RANGE_DN)との比較を行う。
今回取得した温度と前回取得した温度との差が、レジスタ5に予め設定された第1の閾値(RANGE_UP)以上である場合には、単位時間内に一定以上の温度上昇があったとみなし、レジスタ5に予め設定されたパルスマスク数増加量(RAIO_UP)分だけ、現在のパルスマスク数を増加させ(ステップS5A)、クロック周波数を下げさせる。この後、ステップS6へと進む。
一方、今回取得した温度と前回取得した温度との差が、レジスタ5に予め設定された第2の閾値(RANGE_DN)以下である場合には、単位時間内に一定以上の温度下降があったとみなし、レジスタ5に予め設定されたパルスマスク数増加量(RAIO_DN)分だけ、現在のパルスマスク数を減少させ(ステップS5B)、クロック周波数を上げさせる。この後、ステップS6へと進む。
なお、今回取得した温度と前回取得した温度との差が、第1の閾値(RANGE_UP)と第2の閾値(RANGE_DN)との間にある場合には、パルスマスク数は変えることなく、ステップS6へと進む。
最後に、コントローラ6は、イネーブル信号の状態を確認する(ステップS6)。コントローラ6は、イネーブル信号をオンとしている限りは、ステップS1からの処理を繰り返す。一方、イネーブル信号をオフとしたときには、当該制御を終了させる。
なお、上記動作においては、例えば、x℃ならa個のパルスマスクを指定し、y℃ならb個のパルスマスクを指定する等を定義したテーブルをレジスタ5に予め設定しておき、このテーブルの定義に従って制御を行うように変形実施することも可能である。
図11は、第3の実施形態による制御と一般的な技術による制御で実現される温度変化および性能変化の違いを対比させて示す概念図である。
図11(a)は、一般的な技術による制御で実現される温度変化および性能変化の例を示している。一方、図11(b)は、第3の実施形態による制御で実現される温度変化および性能変化の例を示している。
なお、図11(a),(b)中、符号T1は、一般的な技術による制御で実現される温度変化を示し、符号T2は、本実施形態による制御で実現される温度変化を示す。また、符号P1は、一般的な技術による制御で実現される性能変化を示し、符号P2は、本実施形態による制御で実現される性能変化を示す。
図11(a)に示す一般的な技術による制御では、温度が上昇する場合、一般的な分周器を用いてクロックを分周させることでクロック周波数を段階的に大きく下降させる。これに応じて、装置の性能も段階的に大きく低下する。
一般的な分周器では、温度の上昇に応じて細やかな周波数制御を行うことができず、粗い周波数制御を行うことになる。そのため、温度変化T1に示されるように温度の上昇を抑える効果が小さい上に、性能変化P1に示されるように性能の低下が大きくなる。
これに対し、図11(b)に示す第3の実施形態による制御では、温度が上昇する場合、例えば単位時間当たりの温度変化量が一定量を超える毎に、パルスマスク型分周器2のパルスマスク数を細かく変化させることで、クロック周波数を少しずつ下降させる。これに応じて、装置の性能も少しずつ低下する。
この第3の実施形態では、温度の上昇に応じて、パルスマスク型分周器2により細やかな周波数制御を行うことができる。そのため、温度変化T2に示されるように温度の上昇を効果的に抑えることができる上に、性能変化P2に示されるように性能の低下を抑制することができる。
(第4の実施形態)
次に、第4の実施形態について説明する。
第4の実施形態では、前述の図1を参照するとともに、図12を参照して説明する。
次に、第4の実施形態について説明する。
第4の実施形態では、前述の図1を参照するとともに、図12を参照して説明する。
第4の実施形態において監視の対象となるのは、図1に示される半導体装置100の動作モードである。
半導体装置100の動作モードは、例えば、半導体装置100内のブロックB2のアクティビティモニタA2により監視され、その監視結果がコントローラ6へ伝えられるものとする。
コントローラ6は、アクティビティモニタA2から伝えられる情報に示される動作モードの遷移に応じて、パルスマスク型分周器2がマスクするパルスのマスク数を変化させ、パルスマスク型分周器2が生成する分周クロックの周波数を変化させる。
レジスタ5には、個々の動作モードに対応するパルスマスク数をそれぞれ定義したテーブルなどの情報が記憶される。このレジスタ5に記憶された情報は、コントローラ6により参照される。
図12は、第4の実施形態において監視の対象となる動作モードの遷移の一例を示す概念図である。
図12に示されるように、半導体装置100の動作モードには、例えば、スタートアップモードM1、アクティブモードM2があるほか、ウェイトモードM11、リテンションモードM12、および、RTCモードM13や、スリープモードM21がある。
スタートアップモードM1は、アクティブモードM2に遷移することが可能である。
アクティブモードM2は、ウェイトモードM11、リテンションモードM12、RCTモードM13、および、スリープモードM21のいずれにも遷移することが可能である。
ウェイトモードM11は、アクティブモードM2に遷移することが可能である。リテンションモードM12は、アクティブモードM2に遷移することが可能である。RCTモードM13は、スタートアップモードM1に遷移することが可能である。
スリープモードM21は、アクティブモードM2に遷移することが可能である。
ウェイトモードM11、リテンションモードM12、RTCモードM13においては、CPUはディープスリープ状態となる。このとき、CPUのクロックは停止され、高速復帰は不要である。そのため、クロックは供給元から停止させておくことが可能である(PLL回路1も停止させておくことが可能である)。この場合、図1中のコントローラ6は、パルスマスク型分周器2のパルスマスク数の設定などの制御は不要となる。
一方、スリープモードM21においては、CPUはスリープ状態となる。このとき、CPUのクロックは停止されるが、高速復帰は必要である。そのため、復帰時間を考慮してクロックの供給元は動作させておく必要がある(PLL回路1も動作させておく必要がある)。この場合、動作率を100%とする必要はない。よって、図1中のコントローラ6は、消費電力を削減すべく、パルスマスク型分周器2のパルスマスク数を、例えばアクティブモードM2時のパルスマスク数よりも多い値に設定することにより、クロック周波数を低下させる。
この第4の実施形態では、CPUスリープモード等の動作率を100%とする必要のないモードにおいて、パルスマスク型分周器2によりクロック周波数を所望の値に低下させることで、消費電力をより一層削減することができる。
以下の実施形態では、省電効果とトレードオフの関係にあるバストランザクションの転送性能の性能低下を抑制しながら、パルスマスク型分周器の最適な制御を行うことにより、省電力化とバス転送性能維持を両立させる技術について説明する。また、パルスマスク型分周器の制御をバストランザクション特性に合わせて自動的に補正することにより、より高い省電力効果を得る技術についても説明する。
前述した第1の実施形態では、図7に各バスマスタのトランザクションの状態に応じてクロックの周波数が変化する動作のタイムチャートの例を示したが、これをより詳細に説明するためのタイムチャートの例を図13に示す。
図13において、バスビジー信号がハイの期間(バストランザクションの発生期間)が終了する時点Aは、各バスマスタのトランザクションが終了しバスがアイドル(IDLE)となる時点であることから、パルスマスク型分周器2を制御してクロックを通常動作から低速動作に移行させる起点となる。また、バスビジー信号がローの期間(バストランザクションの未発生期間)が終了する時点Bは、新たなバスのトランザクションが発生した時点であることから、クロックを低速動作から通常動作に移行させる起点となる。
上記時点A,Bをそれぞれ起点とするクロック切り替え動作は、物理的なバスステータス信号の遅延や非同期クロック間の同期処理等により、区間X,Yのように僅かであるが遅延時間が生じてしまう。区間Xは、通常動作から低速動作に移行するまでのオーバーヘッド期間に相当する。区間Yは、低速動作から通常動作に復帰するまでのオーバーヘッド期間に相当する。特に区間Yは、トランザクションが発生しているにも関わらず、クロックは低速なままであるため、バス転送性能の低下を生じさせてしまう。また、トランザクションの発生とその終了が短い期間に繰り返されるような場合には、クロック切り替え時に都度、切り替えオーバーヘッド期間が累積してしまうため、バス転送性能の低下の影響が顕著に現れてしまう場合がある。以下に説明する実施形態では、このような問題を解決する。
(第5の実施形態)
図14乃至図16を参照して、第5の実施形態について説明する。なお、前述した各図も適宜参照する。以下では、前述した第1の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
図14乃至図16を参照して、第5の実施形態について説明する。なお、前述した各図も適宜参照する。以下では、前述した第1の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
図14は、第5の実施形態によるパルスマスク型分周器の回路構成の一例を示す回路図である。なお、図2と共通する要素には同一の符号を付し、重複する説明を省略する。
図14に示されるパルスマスク型分周器2’には、クロックパルスパターン生成部11、カウンタ12、クロックゲーティング部13などが備えられるほか、さらにマスクフィルター生成部14が備えられている。
また、パルスマスク型分周器2’には、PLL1側から供給されるソースクロックを入力する端子、コントローラ6から供給される制御用の各信号(パルスマスク数の設定を指示する信号や、イネーブル信号、マスクピリオドを指定する信号など)を入力する端子、生成される分周クロックを出力する端子などが備えられている。マスクピリオドは、後述するフィルタリング処理におけるフィルタリング係数に相当するものである。本実施形態では、マスクピリオドは固定値であるものとして説明するが、マスクピリオドは可変値であってもよい。
マスクフィルター生成部14は、ソースクロックを入力しつつ、イネーブル信号(ここでは、1つ又は複数のトランザクションの発生の有無を示すバスビジー信号)を入力し、当該バスビジー信号に対して所定のフィルタリング処理を施し、フィルタリング処理の施されたバスビジー信号を出力する。具体的には、マスクフィルター生成部14は、入力したバスビジー信号のうち、トランザクション発生無しの期間がマスクピリオドに満たない信号を、トランザクション発生有りを示す信号として出力する。すなわち、マスクフィルター生成部14は、入力したバスビジー信号から、トランザクション発生無しの期間がマスクピリオドに満たない信号を除去した後の信号を出力する。
なお、以下では、マスクフィルター生成部14により処理される前のバスビジー信号を「バスビジー入力」と呼び、マスクフィルター生成部14により処理されてから出力されるバスビジー信号を「バスビジー出力」と呼ぶ。
マスクフィルター生成部14の後段に配置されている回路(カウンタ12、クロックパルスパターン生成部11、およびクロックゲーティング部13)は、マスクフィルター生成部14の出力に応じて、生成する分周クロックの周波数を変化させる。
図15に、マスクフィルター生成部14の構成の一例を示す。
図15に示されるように、マスクフィルター生成部14は、マスクカウンタ15とOR回路16とを含む。
マスクカウンタ15は、例えばバスビジー入力がオフ状態(トランザクション発生無しを示す状態)にあるディアサート期間を、ソースクロックのパルス数をカウントすることで求める処理などを行う回路であり、カウント結果に応じてバスビジー入力を補正した結果をマスクフラグとして出力する。
このマスクカウンタ15は、バスビジー入力がオン状態(トランザクション発生有りを示す状態)にあるアサート期間中は、マスクフラグをオン状態として出力する。バスビジー入力がオン状態からオフ状態に変化した場合、マスクカウンタ15は、カウントを開始する。カウント値がマスクピリオドに達する前に、バスビジー入力がオン状態に戻った場合は、カウントを終了する(カウント値をクリアする)。この場合、出力するマスクフラグはオン状態のままである。一方、カウント値がマスクピリオドに達した場合には、出力するマスクフラグをオフ状態に変化させる。
OR回路16は、マスクカウンタ15から出力されるマスクフラグとバスビジー入力との論理和をとり、その結果をバスビジー出力とする回路である。すなわち、OR回路16は、マスクフラグとバスビジー入力の少なくともいずれか一方がオン状態であれば、バスビジー出力をオン状態として出力する。例えば、バスビジー入力がオフ状態にあっても、マスクフラグがオン状態にあれば、バスビジー出力をオン状態とする。
次に、図16のタイムチャートを参照して、マスクフィルター生成部14の動作の一例を説明する。
マスクフィルター生成部14には、ソースクロックが入力されており、マスクピリオドが未指定の状態にあり、マスクカウンタ15はカウント値がクリアされて「6’h0」を維持している状態にあるものとする。また、バスビジー入力、マスクフラグ、バスビジー出力はそれぞれオン状態にあるものとする。
このあと、マスクピリオドとして固定値「6’h4」が指定される。
ある時点で、バスビジー入力がオン状態(トランザクション発生有りを示す状態)からオフ状態(トランザクション発生無しを示す状態)に変わると、マスクカウンタ15は、この後のソースクロックの立ち上がりのタイミング(S11)に合わせて、カウント動作を開始する。
バスビジー入力がオフ状態を維持している限りにおいては、マスクカウンタ15は、ソースクロックの個々の立ち上がりタイミングに合わせて、カウント値を「6’h0」から、「6’h1」, 「6’h2」,・・・と順次インクリメントし、マスクピリオドの値「6’h4」に達するまでカウント動作を続ける。但し、バスビジー入力がオフ状態からオン状態に変われば、マスクカウンタ15は、カウント動作を止め、カウント値をクリアして「6’h0」にする。
カウント値が「6’h0」から、「6’h1」, 「6’h2」,・・・と順次インクリメントされている間、マスクフラグは、オン状態を維持したままであり、その結果、バスビジー入力とマスクフラグとの論理和を示すバスビジー出力もオン状態を維持したままである。この間、バスビジー入力がオフ状態であるのに対し、バスビジー出力はオン状態になることから、バスビジー出力においては、「0」,「1」に示される期間、バスビジー入力が示しているディアサートが抑制された形となり、マスクフィルター生成部14の後段に配置されている回路(カウンタ12およびクロックパルスパターン生成部11)に対しては、バスビジー信号がアサート期間にあるものとして伝えられる。
例えばカウント値が「6’h2」であるときに、バスビジー入力がオフ状態からオン状態に変わると、マスクカウンタ15は、この後のソースクロックの立ち上がりのタイミング(S12)に合わせて、カウント値をクリアして「6’h0」にする。
次に、バスビジー入力がオン状態からオフ状態に変わると、マスクカウンタ15は、この後のソースクロックの立ち上がりのタイミング(S13)に合わせて、カウント動作を開始する。
バスビジー入力がオフ状態を維持している間、マスクカウンタ15は、ソースクロックの個々の立ち上がりタイミングに合わせて、カウント値を「6’h0」から、「6’h1」, 「6’h2」,「6’h3」,・・・と順次インクリメントする。
カウント値が「6’h0」から、「6’h1」, 「6’h2」,「6’h3」,・・・と順次インクリメントされている間、マスクフラグは、オン状態を維持したままであり、その結果、バスビジー入力とマスクフラグとの論理和を示すバスビジー出力もオン状態を維持したままである。この間、バスビジー入力がオフ状態であるのに対し、バスビジー出力はオン状態になることから、バスビジー出力においては、「0」,「1」,「2」,「3」,「4」に示される期間、バスビジー入力が示しているディアサートが抑制された形となる。
カウント値がマスクピリオドの値「6’h4」と一致すると、この後のソースクロックの立ち上がりのタイミング(S14)に合わせて、マスクフラグがオン状態からオフ状態に変わる。その結果、バスビジー入力とマスクフラグとの論理和を示すバスビジー出力もオフ状態となる。これにより、マスクフィルター生成部14の後段に配置されている回路(カウンタ12およびクロックパルスパターン生成部11)に対しては、バスビジー信号がディアサート期間にあるものとして伝えられる。
この第5の実施形態によれば、指定されたマスクピリオド以下の期間のバスビジーのディアサートは除去されるため、クロック切り替え時のオーバーヘッド時間のペナルティの影響を受けずに良好なバス転送性能を維持することができる。これにより、頻繁にクロック切り替えが発生するような細切れのバストランザクション特性による転送性能低下を抑えることが可能となる。
(第6の実施形態)
図17乃至図19を参照して、第6の実施形態について説明する。なお、前述した各図も適宜参照する。以下では、前述した第5の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
図17乃至図19を参照して、第6の実施形態について説明する。なお、前述した各図も適宜参照する。以下では、前述した第5の実施形態と共通する部分の説明を省略し、異なる部分を中心に説明する。
前述の第5の実施形態ではマスクピリオドが固定値である場合の例を示したが、この第6の実施形態ではマスクピリオドが可変値である場合の例を示す。マスクピリオドをクロック生成回路の動作中に動的に変化させ、自動的に補正することにより、最適な性能と低消費電力とをバランス良く達成することを可能にする。
図17は、第6の実施形態において前述したパルスマスク型分周器’に関連して設けられるマスクピリオド自動補正回路の構成の一例を示す回路図である。
図17に示されるマスクピリオド自動補正回路17は、バスビジー入力、ソースクロック、および所定の閾値を用いて、トランザクション発生無しの期間を定期的に計測して統計を取り、当該統計の結果に応じて、図14に示したパルスマスク型分周器2’のマスクフィルター生成部14で使用されるマスクピリオド(フィルタリング係数)を動的に変化させる処理(マスクピリオドの補正処理)を自動的に行う回路である。このマスクピリオド自動補正回路17は、例えばパルスマスク型分周器2’の前段に配置されていてもよいし、パルスマスク型分周器2’の中のマスクフィルター生成部14の前段に配置されていてもよい。
マスクピリオド自動補正回路17は、FSM(Finite State Machine)31,インターバルタイマカウンタ(又はバスビジーカウントカウンタ)32、ヒストグラム計測部33、比較器34等を備えている。なお、ここでは、バスビジーカウントカウンタではなく、インターバルタイマカウンタが使用される場合を考える。
FSM31は、バスビジー入力およびソースクロックを入力してこれらの状態を常に把握するとともに、インターバルタイマカウンタ32によりカウントされるカウント値も把握する。
インターバルタイマカウンタ32は、予め設定された期間(インターバル)を計測し、カウント値が所定値に達した時にその旨を通知する。
ヒストグラム計測部33は、ヒストグラム計測に必要な各種の情報をFSM31から取得し、インターバルタイマカウンタ32による測定期間中に、バスビジー入力の個々のディアサート期間のパルス幅を順次記録し、当該測定期間中におけるパルス幅の最頻出値を求める。
比較器34は、予め設定されたパルス幅の閾値を入力するとともに、ヒストグラム計測部33から出力されるパルス幅の最頻出値を入力し、双方の比較を行う。比較の結果、最頻出値が閾値よりも小さい場合は、最頻出値をマスクピリオド(フィルタリング係数)として出力し、最頻出値が閾値以上の場合は、閾値をマスクピリオド(フィルタリング係数)として出力する。
次に、図18のフローチャートを参照して、マスクピリオド自動補正回路17の動作(インターバルタイマカウンタ32を使用した場合)の一例を説明する。
インターバルタイマカウンタ32は、予め設定された期間(インターバル)を計測するためにカウントを開始する(ステップS21)。このとき、FSM31は、インターバルタイマカウンタ32の状態を把握するとともに、バスビジー入力およびソースクロックの状態も把握している。
ヒストグラム計測部33は、ヒストグラム計測に必要な各種の情報をFSM31から取得し、カウント開始後のバスビジー入力の個々のディアサート期間のパルス幅を順次記録する(ステップS22)。この処理は、インターバルタイマカウンタ32のカウント値が所定値に一致するまで行われる(ステップS23のNO、S22)。
カウント値が所定値に一致すると(ステップS23のYES)、インターバルタイマカウンタ32のカウントが終了する(ステップS24)。
これにより、ヒストグラム計測部33は、測定期間中におけるパルス幅の最頻出値を求める(ステップS25)。
比較器34は、予め設定されたパルス幅の閾値と、ヒストグラム計測部33から出力されるパルス幅の最頻出値との比較を行う(ステップS26)。比較の結果、最頻出値が閾値よりも小さい場合は(ステップS26のYES)、最頻出値をマスクピリオド(フィルタリング係数)として出力する。一方、最頻出値が閾値以上の場合は(ステップS26のNO)、入力した閾値をそのままマスクピリオド(フィルタリング係数)として出力する。
以降、同様の処理を繰り返すことになる。
なお、本例では、測定期間を計測するためのカウンタとして、インターバルタイマカウンタが使用される場合を説明したが、代わりにバスビジーカウントカウンタを使用してもよい。以下では、バスビジーカウントカウンタを使用する場合の例を説明する。
図17の構成において、バスビジーカウントカウンタ32は、パスビジー入力のアサート回数をカウントするものである。このバスビジーカウントカウンタ32は、予め設定したカウント数になるまでカウントを行い、カウント値が所定値に達した時にその旨を通知する。
この場合、FSM31は、バスビジー入力およびソースクロックを入力してこれらの状態を常に把握するとともに、バスビジーカウントカウンタ32によりカウントされるカウント値も把握する。また、ヒストグラム計測部33は、ヒストグラム計測に必要な各種の情報をFSM31から取得し、バスビジーカウントカウンタ32による測定期間中に、バスビジー入力の個々のディアサート期間のパルス幅を順次記録し、当該測定期間中におけるパルス幅の最頻出値を求める。なお、比較器34の処理内容は、前述した通りとなる。
次に、図19のフローチャートを参照して、マスクピリオド自動補正回路17の動作(バスビジーカウントカウンタ32を使用した場合)の一例を説明する。なお、図18のフローチャートと共通するステップには、同一の符号を付している。
バスビジーカウントカウンタ32は、パスビジー入力のアサート回数をカウントするためにカウントを開始する(ステップS21’)。このとき、FSM31は、バスビジーカウントカウンタ32の状態を把握するとともに、バスビジー入力およびソースクロックの状態も把握している。
ヒストグラム計測部33は、ヒストグラム計測に必要な各種の情報をFSM31から取得し、カウント開始後のバスビジー入力の個々のディアサート期間のパルス幅を順次記録する(ステップS22)。この処理は、バスビジーカウントカウンタ32のカウント値が所定値に一致するまで行われる(ステップS23のNO、S22)。
カウント値が所定値に一致すると(ステップS23のYES)、バスビジーカウントカウンタ32のカウントが終了する(ステップS24’)。
これにより、ヒストグラム計測部33は、測定期間中におけるパルス幅の最頻出値を求める(ステップS25)。
比較器34は、予め設定されたパルス幅の閾値と、ヒストグラム計測部33から出力されるパルス幅の最頻出値との比較を行う(ステップS26)。比較の結果、最頻出値が閾値よりも小さい場合は(ステップS26のYES)、最頻出値をマスクピリオド(フィルタリング係数)として出力する。一方、最頻出値が閾値以上の場合は(ステップS26のNO)、入力した閾値をそのままマスクピリオド(フィルタリング係数)として出力する。
以降、同様の処理を繰り返すことになる。
この第6の実施形態によれば、測定期間毎の最頻出値を用いてマスクピリオドを自動的に補正することから、刻々と変化するバストランザクション特性に適したマスクピリオドを測定期間毎の追従特性にて得ることが可能となり、バス性能低下を抑制しつつ、より高い省電力性能を得ることが可能になる。
以上詳述したように各実施形態によれば、所望の周波数のクロックを即座に生成することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…PLL回路、2…パルスマスク型分周器,3…分周器、4…クロックゲーティング回路、5…レジスタ、6…コントローラ、10…クロックコントロールモジュール、11…クロックパルスパターン生成部、12…カウンタ、13…クロックゲーティング部、14…マスクフィルター生成部、15…マスクカウンタ、16…OR回路、17…マスクピリオド自動補正回路、31…FSM、32…インターバルタイマカウンタ(又はバスビジーカウントカウンタ)、33…ヒストグラム計測部、34…比較器、100…半導体装置、A0,A2,AB…アクティビティモニタ、B0,B1,B2,B3…ブロック、BB…バスブロック。
Claims (16)
- ソースクロックのパルス列の一部をマスクする処理を行うことによって当該ソースクロックよりも周波数の低い分周クロックを生成することが可能な分周器を具備する、クロック生成回路。
- 前記分周器は、前記ソースクロックのパルス列の一部をマスクするビット列のパターンを使用することによって、当該ソースクロックよりも周波数の低い分周クロックを生成する、請求項1に記載のクロック生成回路。
- 前記分周器は、前記ビット列のパターンを切り替えることによって、生成する分周クロックの周波数を切り替える、請求項2に記載のクロック生成回路。
- 前記分周器は、所定のハードウェアから制御されることによって、前記ビット列のパターンを切り替え、生成する分周クロックの周波数を切り替える、請求項2又は3に記載のクロック生成回路。
- 前記分周器は、前記ソースクロックのパルス列の一部をマスクするビット列のパターンとして複数種のビット列のパターンを使用し、当該複数種のビット列のパターンのうちの1つを選択的に使用することによって、周波数の異なる複数種の分周クロックのうちの1つを選択的に生成する、請求項1乃至4のいずれか1項に記載のクロック生成回路。
- ある対象物の状態変化に応じて、前記分周器が生成する分周クロックの周波数を変化させるハードウェアとしてのコントローラをさらに具備する、請求項1乃至5のいずれか1項に記載のクロック生成回路。
- 前記コントローラは、1つ又は複数のトランザクションの発生の有無に応じて、前記分周器が生成する分周クロックの周波数を変化させる、請求項6に記載のクロック生成回路。
- 前記コントローラは、所定の装置にデータを送る記憶手段の空き容量に応じて、前記分周器が生成する分周クロックの周波数を変化させる、請求項6又は7に記載のクロック生成回路。
- 前記コントローラは、所定の場所の温度に応じて、前記分周器が生成する分周クロックの周波数を変化させる、請求項6乃至8のいずれか1項に記載のクロック生成回路。
- 前記コントローラは、動作モードの遷移に応じて、前記分周器が生成する分周クロックの周波数を変化させる、請求項6乃至9のいずれか1項に記載のクロック生成回路。
- 1つ又は複数のトランザクションの発生の有無を示す信号を入力し、当該信号のうちトランザクション発生無しの期間が所定期間に満たない信号を、トランザクション発生有りを示す信号として出力するフィルター回路をさらに備え、当該フィルター回路の出力に応じて、生成する分周クロックの周波数を変化させる、請求項6に記載のクロック生成回路。
- トランザクション発生無しの期間を定期的に計測して統計を取り、当該統計の結果に応じて、前記フィルター回路で使用される前記所定期間を動的に変化させる補正回路を備えている、請求項11に記載のクロック生成回路。
- ソースクロックを分周器に入力し、
前記分周器により、前記ソースクロックのパルス列の一部をマスクする処理を行うことによって当該ソースクロックよりも周波数の低い分周クロックを生成する
ことを含む、クロック生成方法。 - 前記分周器により、前記ソースクロックのパルス列の一部をマスクするビット列のパターンを使用することによって、当該ソースクロックよりも周波数の低い分周クロックを生成する
ことを含む、請求項13に記載のクロック生成方法。 - 前記分周器により、前記ビット列のパターンを切り替えることによって、生成する分周クロックの周波数を切り替える
ことを含む、請求項14に記載のクロック生成方法。 - 前記分周器により、前記ソースクロックのパルス列の一部をマスクする複数種のビット列のパターンを使用し、当該複数種のビット列のパターンのうちの1つを選択的に使用することによって、周波数の異なる複数種の分周クロックのうちの1つを選択的に生成する
ことを含む、請求項13乃至15のいずれか1項に記載のクロック生成方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017179976 | 2017-09-20 | ||
JP2017179976 | 2017-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019057281A true JP2019057281A (ja) | 2019-04-11 |
JP2019057281A5 JP2019057281A5 (ja) | 2020-10-15 |
Family
ID=61386712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018173698A Withdrawn JP2019057281A (ja) | 2017-09-20 | 2018-09-18 | クロック生成回路およびクロック生成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10712767B2 (ja) |
EP (1) | EP3460620A1 (ja) |
JP (1) | JP2019057281A (ja) |
KR (1) | KR20190032985A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021047707A (ja) * | 2019-09-19 | 2021-03-25 | 株式会社東芝 | 制御方法及び半導体集積回路 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134748A (zh) * | 2022-05-19 | 2023-11-28 | 长鑫存储技术有限公司 | 一种延时电路和存储器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0387909A (ja) | 1989-05-10 | 1991-04-12 | Seiko Epson Corp | 情報処理装置およびマイクロプロセッサ |
JP3655812B2 (ja) | 2000-07-21 | 2005-06-02 | 日本電気通信システム株式会社 | デコード回路、デコード方法およびタイミングパルス生成回路 |
JP3956768B2 (ja) | 2002-05-14 | 2007-08-08 | ソニー株式会社 | クロック発生回路 |
US7725759B2 (en) | 2005-06-29 | 2010-05-25 | Sigmatel, Inc. | System and method of managing clock speed in an electronic device |
KR100723537B1 (ko) * | 2006-09-12 | 2007-05-30 | 삼성전자주식회사 | 클럭 신호 발생 방법 및 장치와 이를 이용한 클럭 주파수제어 방법 및 장치 |
WO2010070830A1 (ja) * | 2008-12-17 | 2010-06-24 | 日本電気株式会社 | クロック分周回路、及びクロック分周方法 |
KR101622195B1 (ko) | 2009-11-05 | 2016-05-18 | 삼성전자주식회사 | 동적 버스 클럭을 제어하기 위한 장치 및 방법 |
JP2011221711A (ja) | 2010-04-07 | 2011-11-04 | Renesas Electronics Corp | クロック発生回路 |
US8193831B1 (en) * | 2011-02-16 | 2012-06-05 | Broadcom Corporation | Method and apparatus for reducing power consumption in a digital circuit by controlling the clock |
US20170063088A1 (en) | 2015-09-02 | 2017-03-02 | Mediatek Inc. | Method for Power Budget |
-
2018
- 2018-02-13 KR KR1020180017398A patent/KR20190032985A/ko active IP Right Grant
- 2018-02-22 US US15/902,555 patent/US10712767B2/en active Active
- 2018-02-23 EP EP18158334.5A patent/EP3460620A1/en not_active Withdrawn
- 2018-09-18 JP JP2018173698A patent/JP2019057281A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021047707A (ja) * | 2019-09-19 | 2021-03-25 | 株式会社東芝 | 制御方法及び半導体集積回路 |
US11177798B2 (en) | 2019-09-19 | 2021-11-16 | Kabushiki Kaisha Toshiba | Control method and semiconductor integrated circuit |
JP7199329B2 (ja) | 2019-09-19 | 2023-01-05 | 株式会社東芝 | 制御方法及び半導体集積回路 |
US11588475B2 (en) | 2019-09-19 | 2023-02-21 | Kabushiki Kaisha Toshiba | Control method and semiconductor integrated circuit |
Also Published As
Publication number | Publication date |
---|---|
EP3460620A1 (en) | 2019-03-27 |
US10712767B2 (en) | 2020-07-14 |
KR20190032985A (ko) | 2019-03-28 |
US20190086949A1 (en) | 2019-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7199329B2 (ja) | 制御方法及び半導体集積回路 | |
JP4825291B2 (ja) | デジタル処理コンポーネント内で使用する適応電圧スケーリングクロック発生器およびその操作方法 | |
EP3332302B1 (en) | Power distribution network (pdn) droop/overshoot mitigation | |
JP6533135B2 (ja) | 半導体装置 | |
JP2019057281A (ja) | クロック生成回路およびクロック生成方法 | |
US8806260B2 (en) | Method and apparatus for generating a clock signal and for controlling a clock frequency using the same | |
US9360915B1 (en) | Dynamically controlling clocking rate of a processor based on user defined rule | |
US20100295582A1 (en) | Clock circuit for digital circuit | |
US8854101B2 (en) | Adaptive clock generating apparatus and method thereof | |
CN110190846B (zh) | 锁相环防频率过冲电路 | |
US8384463B2 (en) | Clock supply circuit and control method thereof | |
JP2017049972A (ja) | 電子システム及び関連するクロック管理方法 | |
US8760197B2 (en) | Robust glitch-free clock switch with an unate clock network | |
JP6623745B2 (ja) | 電子回路及び発振器の制御方法 | |
JP2009194741A (ja) | パルス位相調整方法および装置 | |
JP6317550B2 (ja) | Emi対策回路 | |
US11381245B1 (en) | Clock step control circuit and method thereof | |
CN108958209B (zh) | 半导体器件和控制半导体器件的方法 | |
US8570087B2 (en) | Circuitry for clock and method for providing clock signal | |
JP2022168364A (ja) | 半導体装置及びクロック制御方法 | |
CN102983843B (zh) | 时钟产生器与移动通讯装置 | |
JP2011109524A (ja) | 半導体装置 | |
CN110677154A (zh) | 一种无频率过冲的数字锁相环 | |
JPH10123267A (ja) | タイマカウンタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200831 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200831 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20201109 |