JP2019192110A - 半導体装置およびプロセッサ制御方法 - Google Patents
半導体装置およびプロセッサ制御方法 Download PDFInfo
- Publication number
- JP2019192110A JP2019192110A JP2018086891A JP2018086891A JP2019192110A JP 2019192110 A JP2019192110 A JP 2019192110A JP 2018086891 A JP2018086891 A JP 2018086891A JP 2018086891 A JP2018086891 A JP 2018086891A JP 2019192110 A JP2019192110 A JP 2019192110A
- Authority
- JP
- Japan
- Prior art keywords
- usage rate
- processor
- frequency
- semiconductor device
- clock signal
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/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
-
- 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/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
【課題】消費電力の低減を図ることが可能な半導体装置を提供する。【解決手段】供給される動作クロック信号に同期して、タスクを切り換えながら、複数のタスクを実行するプロセッサを備えた半導体装置は、第1期間におけるプロセッサの使用率を測定するプロセッサ使用率測定回路と、プロセッサ使用率測定回路によって測定された使用率に基づいて、第1期間よりも時間的に後の第2期間において、プロセッサへ供給する動作クロック信号の周波数を変更する分周値選択回路および分周回路を備える。【選択図】図1
Description
本発明は、プロセッサを備えた半導体装置およびプロセッサ制御方法に関し、例えばタスクを切り換えながら、複数のタスクを実行するプロセッサを備えた半導体装置およびプロセッサ制御方法に関する。
タスクを切り換えながら、複数のタスクをプロセッサに実行させるために、プロセッサ上でマルチタスクのオペレーティングシステム(以下、OSと呼ぶ)を動作させ、マルチタスクのOS上で複数のタスクを動作させることが行われる。タスクには、予め決められた一定の周期で実行されることが要求されるタスク、すなわちリアルタイム性が要求されるタスク(以下、リアルタイムタスクと呼ぶ)が存在する。このようなリアルタイムタスクを扱うことが可能なOSとしてリアルタイムOSが存在する。リアルタイムOSは、例えば産業用ネットワーク機器等を構成する半導体装置に実装され、半導体装置内のプロセッサが、リアルタイムOSを実行する。
リアルタイムOSを搭載したデータ処理装置が、例えば特許文献1に記載されている。また、ハードウェアによってリアルタイムOSを実装する技術が、例えば特許文献2に記載されている。
一般的に、産業用ネットワーク機器は、安全性およびリアルタイム性が求められており、安全性およびリアルタイム性を確保するために、産業用ネットワーク機器内のプロセッサを、より高い周波数の動作クロック信号で動作させる傾向にある。そのため、プロセッサの消費電力が増加すると言う課題がある。また、例えば、工場には、多くの産業用ネットワーク機器が設置されるが、産業用ネットワーク機器のプロセッサの消費電力が増加することにより、工場全体の消費電力も増加すると言う課題もある。
本発明者は、リアルタイムOSを実装した産業用ネットワーク機器として、ネットワーク通信用半導体装置の処理の負荷状況を調べた。調べたところ、実行すべき有意なタスク(アプリケーションを構成するタスク)が無いときに実行されるアイドルタスクの時間が、比較的長いことに気づいた。アイドルタスクは、タスクの優先度が最も低いタスクであり、例えば空のループ処理を実行するタスクである。
プロセッサは、アイドルタスクを実行しているときも、優先度が高いタスクを実行しているときと同じ周波数の動作クロック信号に同期して動作している。すなわち、プロセッサは、アイドルタスクを実行しているときも、優先度の高いタスクを実行しているときと同様な電力を消費していることになる。
特許文献1には、個々のタスクの要求性能を管理するタスク要求性能テーブルを備えたデータ処理装置が記載されている。この特許文献1では、プロセッサを動作させる動作クロック信号の周波数が、タスク要求性能テーブルに設定された要求性能に応じて決定される。リアルタイムタスクを特許文献1に記載のデータ処理装置で処理させるには、リアルタイム性を確保するために、十分なマージンを持った要求性能を、タスク要求性能テーブルに設定することが必要である。そのため、リアルタイムOSの処理全体として最適化がなされているとは言えず、データ処理装置の消費電力を想定した値にまで低減することができないことが危惧される。逆に、十分なマージンを持たない要求性能を設定した場合、一定の周期で実行されるべきリアルタイムタスクが、処理しきれずに、リアルタイム性が損なわれることが懸念される。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態に係わる半導体装置を述べると、次のとおりである。
すなわち、半導体装置は、動作クロック信号に同期して、タスクを切り換えながら、複数のタスクを実行するプロセッサを備えている。半導体装置は、第1期間におけるプロセッサの使用率を測定する使用率測定部と、使用率測定部によって測定された使用率に基づいて、第1期間よりも時間的に後の第2期間において、プロセッサへ供給する動作クロック信号の周波数を変更する周波数変更部とを備えている。
一実施の形態によれば、消費電力の低減を図ることが可能な半導体装置を提供することができる。第1期間における使用率に基づいて、第2期間においてプロセッサに供給する動作クロック信号の周波数が変更される。これにより、第2期間における半導体装置の消費電力を低減することが可能である。
以下、本発明の各実施の形態について、図面を参照しつつ説明する。なお、開示はあくまでも一例にすぎず、当業者において、発明の主旨を保っての適宜変更について容易に想到し得るものについては、当然に本発明の範囲に含有されるものである。また、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
また、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号を付して、詳細な説明を適宜省略することがある。
(実施の形態1)
<半導体装置の構成>
図1は、実施の形態1に係わる半導体装置の構成を示すブロック図である。特に制限されないが、図1に示す半導体装置1は、産業用ネットワーク通信用半導体装置である。半導体装置1は、ネットワーク通信を行うための複数の回路ブロックを備えているが、図1には、説明に必要な部分のみが描かれている。
<半導体装置の構成>
図1は、実施の形態1に係わる半導体装置の構成を示すブロック図である。特に制限されないが、図1に示す半導体装置1は、産業用ネットワーク通信用半導体装置である。半導体装置1は、ネットワーク通信を行うための複数の回路ブロックを備えているが、図1には、説明に必要な部分のみが描かれている。
図1において、2は、バス12に接続されたプロセッサを示している。バス12には、プロセッサ2以外に、複数の周辺ブロックおよびメモリ等が接続されている。同図では、周辺ブロックとしてダイレクトメモリアクセスコントローラ(以下、DMAコントローラと呼ぶ)3が、バス12に接続されている。また、4は、バス12に接続されたメモリを示している。メモリ4には、リアルタイムOSのプログラムと、リアルタイムOS上で動作する複数のアプリケーション用プログラムが格納されている。
プロセッサ2は、バス12を介してリアルタイムOSのプログラムを読み出し、リアルタイムOSを実行する。リアルタイムOSにより、上記した複数のアプリケーション用プログラムのそれぞれは、複数のタスクに分けられ、分けられたタスクは、タスクスイッチされながら、プロセッサ2により実行される。また、DMAコントローラ3は、特定のタスクに割り当てられ、特定のタスクが実行されるとき、DMAコントローラ3が動作する。
図1において、5は、発振回路を示している。特に制限されないが、発振回路5は、半導体装置1の外部端子15−1および15−2を介して水晶振動子13に接続され、水晶振動子13によって定まる所定の周波数のクロック信号CLK1を出力する。クロック信号CLK1は、特に制限されないが、周波数を逓倍する逓倍回路6に供給され、逓倍されたクロック信号CLK2が、逓倍回路6から出力される。特に制限されないが、クロック信号CLK1の周波数は、約25MHzである。逓倍回路6は、例えば所謂PLL(Phase Locked Loop)を備え、PLLを用いて、約25MHzのクロック信号CLK1から、例えば約500MHzのクロック信号を生成し、クロック信号CLK2として出力する。
クロック信号CLK2は、タイマー7と分周回路10に供給されている。タイマー7は、クロック信号CLK2を基にして、タイムクロック信号Tckを発生する。タイマー7は、例えば、クロック信号CLK2をカウントし、所定数カウントすると、タイムクロック信号Tckの電圧を変化させる。これにより、タイムクロック信号Tckは、所定の時間を1周期としたクロック信号となる。タイムクロック信号Tckは、プロセッサ2に供給されている。プロセッサ2では、供給されたタイムクロック信号Tckを、リアルタイムOSにおいて時間を定める基準クロック信号として用いる。なお、タイムクロック信号Tckは、プロセッサ2だけでなく、後で説明するプロセッサ使用率測定回路等の半導体装置1内の他の回路ブロックにも供給されている。
分周回路10は、可変分周回路である。分周回路10は、分周値選択回路9から供給される分周値情報DINFによって示される分周値に従って、クロック信号CLK2を分周し、分周により得たクロック信号を動作クロック信号O−CLKとしてプロセッサ2に供給する。プロセッサ2は、この動作クロック信号O−CLKに同期して動作する。
図1において、8はプロセッサ使用率測定回路を示し、11は目標使用率レジスタを示している。プロセッサ使用率測定回路8は、クロックカウンタX1およびX2を備え、アイドルタスクが実行されている実行時間を、クロックカウンタX1、X2等を用いてハードウェア的に計測し、計測により得られたアイドルタスクの実行時間と、所定の処理時間との比率を求め、求めた比率を、プロセッサの使用率情報DUDとして出力する。すなわち、プロセッサ使用率測定回路8においては、アイドルタスクの実行時間が、プロセッサ2の未使用時間と仮定され、所定の時間(例えばプロセッサ2による全体の処理時間)と仮定した未使用時間の比率が、プロセッサ使用率として求められる。言い換えるならば、プロセッサ使用率は、所定の時間において、プロセッサ2がアイドルタスク以外のタスクを実行している時間の割合を示していることになる。プロセッサ使用率測定回路8は、後で、さらに詳しく説明する。
目標使用率レジスタ11には、半導体装置1の外部端子14を介して、プロセッサ2の目標使用率が設定される。勿論、目標使用率は、外部端子14ではなく、バス12を介して目標使用率レジスタ11に設定するようにしてもよい。アイドルタスクの実行時間をプロセッサ2の未使用時間と仮定しているため、目標使用率は、上記した所定の時間において、プロセッサ2がアイドルタスク以外のタスクを実行している時間の割合を示すことになる。目標使用率は、例えば、半導体装置1を用いるユーザーが、外部端子14を介して目標使用率レジスタ11に設定する。目標使用率レジスタ11は、設定された目標使用率を、目標使用率情報TUDとして出力する。
分周値選択回路9は、目標使用率情報TUDにより表される目標使用率と、プロセッサ使用率測定回路8から出力されている使用率情報DUDにより表される現在のプロセッサ2の使用率との差を小さくするような、分周値を選択し、選択した分周値を分周値情報DINFとして出力する。
例えば、目標使用率として、70%が目標使用率レジスタ11に設定され、使用率情報DUDによって表される現在のプロセッサ2の使用率が、50%であるとする。この場合、分周値選択回路9は、現在の分周値よりも大きな分周値を選択し、分周値情報DINFとして出力する。現在の分周比(1/分周値)に比べて分周比が小さくなるため、分周回路10から出力される動作クロック信号O−CLKの周波数が低くなる。そのため、プロセッサ2の動作が遅くなり、最も優先度の低いアイドルタスクが実行されている時間の低減が可能となる。このようにしてアイドルタスクの実行時間が短くなると、次にプロセッサ使用率測定回路8から出力される使用率情報DUDで表される使用率は、50%よりも上昇し、70%の目標使用率との差が小さくなる。
これに対して、目標使用率が70%に設定され、使用率情報DUDによって表される現在のプロセッサ2の使用率が、例えば80%の場合には、分周値選択回路9は、現在の分周値よりも小さい分周値を選択し、分周値情報DINFとして出力する。その結果、分周回路10から出力される動作クロック信号O−CLKの周波数は高くなり、プロセッサ2の動作が早くなる。これにより、最も優先度の低いアイドルタスクが実行されている実行時間を長くすることが可能となる。アイドルタスクの実行時間が長くなると、次にプロセッサ使用率測定回路8から出力される使用率情報DUDで表される使用率は、80%よりも下降し、70%の目標使用率との差が小さくなる。
上記した説明では、目標使用率をユーザーが、半導体装置1の外部から設定する例を説明したが、これに限定されるものではない。例えば70%の目標使用率を表す目標使用率情報TUDが、固定的に分周値選択回路9に供給されるようにしてもよい。この場合には、プロセッサ2の使用率を、常に70%程度にキープするような分周値が、分周値選択回路9から分周値情報DINFとして出力されることになる。
<半導体装置の動作>
次に実施の形態1に係わる半導体装置1の動作を説明する。図2は、実施の形態1に係わる半導体装置の動作を示すタイミング図である。ここで、図2(A)は、第1の期間T1において、プロセッサ2により実行されるタスクTA、TBおよびTIDのタイミングを示している。また、図2(B)は、時間的に期間T1よりも後の第2の期間T2において、プロセッサ2により実行されるタスクTA、TBおよびTIDのタイミングを示している。なお、タスクTAおよびTBは、図2(A)および(B)において、同じタスクである。
次に実施の形態1に係わる半導体装置1の動作を説明する。図2は、実施の形態1に係わる半導体装置の動作を示すタイミング図である。ここで、図2(A)は、第1の期間T1において、プロセッサ2により実行されるタスクTA、TBおよびTIDのタイミングを示している。また、図2(B)は、時間的に期間T1よりも後の第2の期間T2において、プロセッサ2により実行されるタスクTA、TBおよびTIDのタイミングを示している。なお、タスクTAおよびTBは、図2(A)および(B)において、同じタスクである。
図2(A)および(B)において、Tickは、タイムクロック信号Tckによって表される時間を示している。すなわち、リアルタイムOSにおける時間である。プロセッサ2に供給される動作クロック信号O−CLKの周波数は、分周値情報DINFによって変更されるが、タイムクロック信号Tckの周波数は一定である。すなわち、動作クロック信号O−CLKの周波数が変更されても、時間Tickによって表される時間間隔は変化しない。時間Tickは、期間T1およびT2において、時間tの経過とともに、等間隔で、1から40に増加している。
タスクTAは、その優先度が最も高く、例えば優先度が1となっている。また、タスクTAは、時間Tick=10を1周期として、周期的に起動されるリアルタイムタスクである。タスクTBは、その優先度が、タスクTAよりも低く、例えば優先度が2のタスクである。このタスクTBは、周期的に起動されるタスクではなく、例えば割り込み要求等によって起動されるランダムなタスクである。タスクTBは、周期的に起動されないため、ノンリアルタイムタスクと見なすことができる。また、タスクTIDは、その優先度が最も低く、例えば優先度が15となっている。タスクTIDは、空のタスクであり、例えばループ処理を行うアイドルタスクである。
プロセッサ2は、タスクTAおよびTBを実行していないときに、タスクTIDを実行する。図2(A)では、タスクTAが、時刻Tick=1−2、11−12、21−22および31−32において、実行されている。また、タスクTBは、時刻Tick=4−5、10、13、16−17、23−24、28−29、34−35および40において、実行されている。タスクTIDは、タスクTAおよびTBが実行されていない時刻Tick=3、6−9、14−15、18−20、25−27、30、33および36−39において実行されている。
ここでは、期間T1において、プロセッサ使用率測定回路8により、使用率を求め、期間T2の開始時に、分周回路10に供給される分周値が変更され、期間T2においては、動作クロック信号O−CLKの周波数が変更される場合を説明する。
期間T1およびT2のそれぞれが、上記した所定の時間、すなわちプロセッサ2の使用率を求める際の時間(プロセッサ2の全体の処理時間)に相当する。図2では、プロセッサ2の全体の処理時間は、Tick=1〜40の40である。アイドルタスクであるタスクTIDが実行されている実行時間は、時刻Tick=3、6−9、14−15、18−20、25−27、30、33および36−39の合計である19である。そのため、プロセッサ使用率測定回路8は、プロセッサ2の未使用時間として19を仮定し、使用率として1−19/40=52.5%を、使用率情報DUDとして出力する。
プロセッサ2の使用率が52.5%と、負荷を処理するには、未だ余裕があるため、例えば70〜80%の目標使用率が、ユーザーによって目標使用率レジスタ11に設定される。これにより、分周値選択回路9は、目標使用率とプロセッサの使用率との差を小さくするように、現在の分周値よりも大きな分周値を選択し、選択した分周値を、分周値情報DINFとして分周回路10へ供給する。これにより、分周回路10での分周比が、現在の分周比(例えば1/3)から、小さな分周比(2/9)へと変更される。
これにより、期間T2の開始時には、プロセッサ2に供給される動作クロック信号O−CLKの周波数が低くなる。期間T2においても、期間T1と同様に、タスクTAおよびTBは実行されるが、動作クロック信号O−CLKの周波数が低くなるため、プロセッサ2の動作が遅くなる。そのため、タスクTAおよびTBを実行するのに要する時間が長くなる。すなわち、プロセッサ2は、図2(B)に示すように、タスクTAを、時刻Tick=1−3、11−13、21−23および31−33において実行し、タスクTBを、時刻Tick=4−6、10、14−18、24−26、28−30、34−36および40において実行する。
そのため、タスクTAおよびTBが実行されていない時間は、時刻Tick=7−9、19−20、27および37−39となり、プロセッサ2は、この時間において、タスクTIDを実行する。アイドルタスクであるタスクTIDを実行している実行時間が、9(時刻Tick=7−9、19−20、27および37−39の合計)となり、プロセッサ2の未使用時間を9に低減することができる。その結果、プロセッサ2の使用率は、1−9/40=77.5%まで向上させることができる。すなわち、タスクTAおよびTBの処理時間は長くなるが、アイドルタスクの実行時間を短くすることが可能であり、プロセッサ2の使用効率を向上させることが可能である。動作クロック信号O−CLKの周波数を低くしても、リアルタイムタスクであるタスクTAは、図2(B)に示すように、図2(A)と同様に、同じ周期(TicK=1〜10)で起動されるため、リアルタイム性を確保することが可能である。
このように、アイドルタスクの実行時間を短くすることにより、アイドルタスクの実行により生じる消費電力を低減することが可能である。また、タスクTAおよびTBが実行されているときの平均消費電力を低くすることも可能である。
なお、タスクの優先度として、15の優先度があり、優先度の番号が増えるのに従って、タスクの優先度が低くなる例を説明したが、これに限定されるものではない。すなわち、タスクの優先度は15個に限定されず、また、タスクの優先度は、優先度の番号が増えるのに従って高くなるようにしてもよい。
なお、図2(A)および(B)において、タスクTBの2回目の実行は、優先度の高いタスクTAと重なるため、タスクTBからタスクTAにタスクスイッチし、タスクTAの2回目の実行が終了すると、タスクTBの2回目が再起動されている。
<プロセッサ使用率測定回路および分周値選択回路>
プロセッサ使用率測定回路8は、図1に示したようにクロックカウンタX1およびX2を備えている。クロックカウンタX1およびX2は、プロセッサ2により制御される。すなわち、クロックカウンタX1およびX2は、プロセッサ2からのカウント開始の指示により、タイムクロック信号Tckをカウントする。また、プロセッサ2からの読み出し指示により、クロックカウンタX1およびX2によってカウントされたカウント値XC1およびXC2は、プロセッサ2によって読み出される。さらに、クロックカウンタX1およびX2は、プロセッサ2からのクリア指示により、クリアされる。
プロセッサ使用率測定回路8は、図1に示したようにクロックカウンタX1およびX2を備えている。クロックカウンタX1およびX2は、プロセッサ2により制御される。すなわち、クロックカウンタX1およびX2は、プロセッサ2からのカウント開始の指示により、タイムクロック信号Tckをカウントする。また、プロセッサ2からの読み出し指示により、クロックカウンタX1およびX2によってカウントされたカウント値XC1およびXC2は、プロセッサ2によって読み出される。さらに、クロックカウンタX1およびX2は、プロセッサ2からのクリア指示により、クリアされる。
図3〜図5は、実施の形態1に係わるプロセッサ使用率測定回路および分周値選択回路の動作を示すフローチャート図である。
図1に示したプロセッサ2は、プロセッサ使用率測定回路8および分周値選択回路9の機能を実現するための使用率設定プログラムを実行することにより、図3〜図5に示す処理を実行する。使用率設定プログラムを実行する過程において、プロセッサ2は、図1に示したクロックカウンタX1およびX2を利用する。特に制限されないが、この使用率設定プログラムは、リアルタイムOSのプログラムに追加されている。
プロセッサ2は、リアルタイムOSの処理を、図5のステップS50で開始する。次に、プロセッサ2は、所定の時間が経過したか否かを、図5のステップS51で判定する。ステップS51で判定する所定の時間が、図2で説明した第1の期間T1および第2の期間T2に相当する。このステップS51は、所定の時間が経過するまで、繰り返される。ステップS51が繰り返されている所定の時間の間において、プロセッサ2は、図3および図4に示すステップを実行する。
すなわち、所定の時間の開始時に、プロセッサ2は、図3のステップS31を実行する。このステップS31で、プロセッサ2は、クロックカウンタX1に対してカウントの開始を指示する。この指示により、クロックカウンタX1は、タイムクロック信号Tckの電圧が変化するたびに、ステップS32を実行する。すなわち、ステップS32で、クロックカウンタX1のカウント値が+1加算される。これにより、クロックカウンタX1のカウント値XC1は、所定の時間が開始すると、タイムクロック信号Tckが変化するたびに、+1加算され、順次増加する。クロックカウンタX1のカウント値XC1は、所定の時間におけるプロセッサ2の全体の処理時間を表すことになる。
また、所定の時間の開始時に、プロセッサ2は、図4のステップS41を実行する。ステップS41で、プロセッサ2は、リアルタイムOSを用いたタスクスケジューリングを開始する。図4には、タスクスケジューリングのうち、タスクの優先度に基づいた処理のみが示されている。すなわち、ステップS42において、優先度1のタスクに対応するイベントが有るか否かが判定される。同図には、複数の優先度1のタスクS43−1〜S43−3が実行待ちの状態になっている場合が示されている。この場合、優先度1のタスクS43−1〜43−3が実行される。優先度1のタスクの実行が完了した場合または優先度1のイベントがない場合、次にステップS44が実行される。
ステップS44では、優先度2のタスクに対応するイベントが有るか否かが判定される。同図には、複数の優先度2のタスクS45−1〜S45−3が実行待ちの状態になっている場合が示されている。この場合、優先度2のタスクS45−1〜45−3が実行される。優先度2のタスクの実行が完了した場合または優先度2のイベントがない場合、優先度3のタスクに対応するイベントが有るか否かの判定が行われ、イベントが有る場合には、優先度3のタスクが実行される。
以降、同様にして、優先度4〜13まで、イベントの有無が判定され、イベントが有る場合には、対応する優先度のタスクが実行される。ステップS46では、2番目に低い優先度14のタスクに対応するイベントが有るか否かが判定される。同図には、複数の優先度14のタスクS47−1〜S47−3が実行待ちの状態になっている場合が示されている。この場合、優先度14のタスクS47−1〜47−3が実行される。優先度14のタスクの実行が完了した場合または優先度14のイベントがない場合、次にステップS48が実行される。
ステップS48においては、最も低い優先度15のタスクであるアイドルタスクが実行される。アイドルタスクのステップS48において、プロセッサ2は、ループ処理を実行するとともに、クロックカウンタX2に対して、カウントの開始を指示する。これにより、クロックカウンタX2は、ステップS49において、タイムクロック信号Tckの電圧が変化すると、カウント値XC2に+1加算を行う。
ステップS48において、アイドルタスクが実行されると、次にステップS42に戻り、以降、上記した所定の時間の間、上記した動作が繰り返される。
これにより、所定の時間において、イベントが有る場合には、イベントに対応したタスクが実行され、例えば優先度1〜14のイベントが存在しない場合には、アイドルタスクが実行される。アイドルタスクにおいては、クロックカウンタX2のカウント値XC2が、タイムクロック信号Tckの電圧変化に応答して更新される。そのため、クロックカウンタX2のカウント値XC2は、所定の時間の間に実行したアイドルタスクにおいて、タイムクロック信号Tckが変化した数の総数となる。図2を例にして述べると、クロックカウンタX2のカウント値XC2は、期間(所定の時間)T1、T2において、アイドルタスクが実行された実行時間19、9を表すことになる。
再び、図5に戻って説明する。ステップS51において、所定の時間が経過したことが判定されると、次にステップS52が実行される。ステップS52において、プロセッサ2は、クロックカウンタX1およびX2から、カウント値XC1、XC2を読み出し、読み出したカウント値XC1、XC2に基づいて、プロセッサの使用率を求める。すなわち、プロセッサ2は、1−XC2/XC1の演算を実施する。
また、ステップS52において、次の所定の時間での処理に備えて、クロックカウンタX1およびX2のカウント値がクリアされる。
次に、プロセッサ2は、ステップS53において、目標使用率情報TUDによって通知された目標使用率と、ステップS52で算出したプロセッサの使用率とを用いて、動作クロック信号O−CLKの周波数を求めるための分周値演算を実行する。分周値演算により算出した分周値を、選択した分周値として、プロセッサ2は、分周回路10に出力する。
ステップS53において実行される分周値演算の一例は、次の通りである。すなわち、プロセッサ2は、目標使用率とプロセッサの使用率のどちらが高いかを判定し、目標使用率とプロセッサの使用率との差を求める。目標使用率が、プロセッサの使用率よりも高い場合、プロセッサ2は、現在の分周値よりも大きな分周値を選択し、現在の分周値と選択した分周値との間の差を、目標使用率とプロセッサの使用率との間の差から算出する。これに対して、目標使用率が、プロセッサの使用率よりも低い場合、プロセッサ2は、現在の分周値よりも小さな分周値を選択し、現在の分周値と選択した分周値との間の差を、目標使用率とプロセッサの使用率との間の差から算出する。勿論、ステップS53で実行する分周値演算は、これに限定されるものではない。
ステップS53の後で、プロセッサ2は、ステップS54を実行する、ステップS54では、ステップS53で選択した分周値を、分周回路10に設定する。その後は、再びステップS51に戻り、上記したステップS51〜S54を実行する。
ステップS51が繰り返して実行されているとき、プロセッサ2には、時間的に先に実行されたステップS54で設定された分周値に従った動作クロック信号O−CLKが供給されている。すなわち、図2で説明したように、第2の期間T2においてプロセッサ2に供給される動作クロック信号O−CLKの周波数は、第1の期間T1において測定したプロセッサ2の使用率に基づいて変更される。その結果、第1の期間T1におけるプロセッサ2の使用率と目標使用率とによって、第2の期間T2において実行されるアイドルタスクの実行時間を、例えば短くし、プロセッサ2の使用率を向上させることが可能である。
実施の形態1に係わる半導体装置1においては、タスク毎に固定的に定めた周波数の動作クロック信号でプロセッサを動作させるのではなく、所定の時間(期間T1)におけるプロセッサの使用率を測定し、測定により得られた使用率に基づいて、次の所定の時間(期間T2)における動作クロック信号の周波数が変更される。これにより、プロセッサの動作状況に応じて、プロセッサを動作させる動作クロック信号の周波数を最適化することが可能となる。その結果として、プロセッサおよびプロセッサを内蔵した半導体装置の消費電力を効率的に抑制することが可能である。
また、実施の形態1においては、タスクが切り換わるごとに動作クロック信号の周波数を変更するのではなく、所定の時間ごとに動作クロック信号の周波数が変更される。すなわち、プロセッサの使用率を測定している期間においては、動作クロック信号の周波数は変更されない。そのため、動作クロック信号の周波数が、頻繁に変更されるのを防ぐことが可能であり、プロセッサおよび半導体装置の動作が不安定になるのを防ぐことが可能である。
実施の形態1に係わる半導体装置においては、プロセッサ2が、リアルタイムOSを実行することにより、リアルタイムタスク、ノンリアルタイムタスクおよびアイドルタスクを切り換えながら、タスクを実行する。実施の形態1に係わる半導体装置においては、リアルタイムOSを実行しているときに、アイドルタスクに係わる情報から、プロセッサ2の使用率を求め、求めた使用率からプロセッサの動作クロック信号を、動的に変更するようにフィードバックが行われていると見なすこともできる。
図1に示したプロセッサ使用率測定回路8は、使用率測定部と見なすことができる。また、分周値選択回路9および分周回路10によって、周波数変更部が構成されていると見なすことができる。
また、図3〜図5は、プロセッサ2を制御する制御方法を示していると見なすことができる。この場合、プロセッサの使用率を測定する使用率測定工程は、図3に示したステップS32、図4に示したステップS48および図5に示したステップS52を含んでいると見なすことができ、動作クロック信号の周波数を変更する周波数変更工程は、図5に示したステップS53およびS54を含んでいると見なすことができる。
<実施の形態2>
実施の形態2においては、動作クロック信号の周波数が、急激に変化するのを抑制することが可能な半導体装置が提供される。実施の形態1においては、第1の期間T1(図2)において測定されたプロセッサの使用率に基づいて、分周値が選択され、選択された分周値で、第2の期間T2(図2)においてプロセッサ2に供給される動作クロック信号O−CLKの周波数が定められていた。そのため、第1の期間T1から第2の期間T2へ移る際に、動作クロック信号O−CLKの周波数が、大きく変化することが危惧される。動作クロック信号O−CLKの周波数の変化量が大きいと、プロセッサ2の動作が不安定になることが考えられる。実施の形態2においては、分周値選択回路9(図1)から分周回路10に通知される分周値が段階的に変化する。これにより、動作クロック信号O−CLKの周波数が大きく変化することを防ぐことが可能であり、プロセッサ2の安定した動作を担保することが可能となる。
実施の形態2においては、動作クロック信号の周波数が、急激に変化するのを抑制することが可能な半導体装置が提供される。実施の形態1においては、第1の期間T1(図2)において測定されたプロセッサの使用率に基づいて、分周値が選択され、選択された分周値で、第2の期間T2(図2)においてプロセッサ2に供給される動作クロック信号O−CLKの周波数が定められていた。そのため、第1の期間T1から第2の期間T2へ移る際に、動作クロック信号O−CLKの周波数が、大きく変化することが危惧される。動作クロック信号O−CLKの周波数の変化量が大きいと、プロセッサ2の動作が不安定になることが考えられる。実施の形態2においては、分周値選択回路9(図1)から分周回路10に通知される分周値が段階的に変化する。これにより、動作クロック信号O−CLKの周波数が大きく変化することを防ぐことが可能であり、プロセッサ2の安定した動作を担保することが可能となる。
図6は、実施の形態2に係わるプロセッサ使用率測定回路および分周値選択回路の動作を示すフローチャート図である。また、図7は、実施の形態2に係わる半導体装置の動作を説明するためのタイミング図である。実施の形態2に係わる半導体装置1の構成は、実施の形態1で説明した半導体装置と同じであるため、説明は省略する。
図6は、図5と類似しているので、相異点を主に説明する。図5に対して、図6では、ステップS60〜S62が追加されている。なお、図5で説明した分周値を設定するステップS54は、ステップS62に含まれている。
図5で説明したのと同様に、図6のステップS53で、期間T1で測定したプロセッサの使用率に基づいて分周値が算出される。算出された分周値は、ステップS62において、微調整され、微調整された分周値が、分周値情報DINFとして分周回路10に設定される。ステップS53において算出された分周値が、例えば4であったとする。この場合、分周回路10は、クロック信号CLK2を4分周することになる。ステップS62において、プロセッサ2は、微調整として、4分周を、例えば2分周と2分周に分割する。分周値選択回路9は、分割により得た2分周を、分周値情報DINFとして、分周回路10に供給する。図7を参照して述べると、分周値選択回路9は、第2の期間T2の開始時刻t1で、2分周を示す分周値D2−1を分周値情報DINFとして、分周回路10に供給する。これにより、分周回路10は、クロック信号CLK2を2分周した周波数f2−1のクロック信号を動作クロック信号O−CLKとしてプロセッサ2に供給する。その結果、プロセッサ2は、周波数f2−1の動作クロック信号O−CLKで、第2の期間における処理を開始する。
次に、プロセッサ2は、ステップS60を実行する。ステップS60では、分周値設定が完了したか否かを判定する。プロセッサ2は、ステップS62で分割した全ての分周値を、分周値情報DINFとして分周回路10に供給していないことを把握しているため、ステップS60では、分周値設定は完了していないと判定する。これにより、次にステップS61が実行される。ステップS61では、微調整用の時間(T3)が経過したか否かを判定する。ステップS61において、微調整用の時間(T3)が経過していないと判定されると、ステップS51が実行される。
一方、ステップS61において、微調整用の時間(T3)が経過したと判定された場合、次にステップS62が再び実行される。ステップS62において、プロセッサ2は、分割により得た残りの2分周と、先に分周値情報DINFとして出力した2分周とを掛け算し、4分周を取得し、図7に示すように、微調整用の時間(T3)が経過した時刻t2において、分周値D2−2として、分周回路10に通知する。
これにより、動作クロック信号O−CLKの周波数は、時刻t1では、2分周の周波数であるf2−1に変化し、微調整用の時間(T3)の間、この周波数f2−1に維持される。その後、時刻t2において、動作クロック信号O−CLKの周波数は、4分周の周波数であるf2−2に変化することになる。すなわち、分周値および動作クロック信号O−CLKが、時間の経過にともなって段階的に変化する。従って、動作クロック信号O−CLKが、短時間に大きく変化するのを防ぐことが可能であり、プロセッサ2および半導体装置1の動作の安定化を図ることが可能である。
分周値D2−2を分周回路10に通知するために、プロセッサ2が、ステップS62において掛け算を実施する例を示したが、これに限定されない。すなわち、第1の期間T1において算出した分周値を、分周値D2−2として、分周回路10へ通知するようにしてもよい。また、プロセッサ2は、ステップS62において、分割により得た残りの2分周を、分周回路10に通知し、分周回路10において、掛け算により4分周を算出するようにしてもよい。さらに、分割する分周値は2つに限定されず、3つ以上に分割するようにしてもよい。
実施の形態2においても、クロックカウンタX1のカウント値XC1は、実施の形態1と同様に、第1の期間T1および第2の期間T2において、図7に示すように、プロセッサ2の処理に応じて増加する。また、クロックカウンタX2のカウント値XC2は、実施の形態1と同様に、第1の期間T1および第2の期間T2において、アイドルタスクが実行されている期間に増加する。
また、図7において、D1−1およびD1−2は、第1の期間T1よりも前の期間において算出された分周値を分割することにより得られた分周値を示し、f1−1は、分周値D1−1により分周された周波数を示し、f1−2は、分周値D1−2により分周された周波数を示している。
実施の形態では、リアルタイムOSのプログラムを、プロセッサ2が実行する場合を説明したが、これに限定されるものではない。すなわち、リアルタイムOSは、特許文献2に記載されているようにハードウェアによって実装されてもよい。特許文献2に記載されているタスク処理装置に適用する場合を例にして述べると、次のようになる。すなわち、タスク処理装置に、上記したクロックカウンタX1およびX2が追加される。また、タスク処理装置が備える複数の状態記憶部のうち、アイドルタスクに対応する状態記憶部が選択されたとき、図3〜図5で説明したステップが実行されるようにすればよい。これにより、ハードウェアによってリアルタイムOSを実装する場合も、クロックカウンタX1およびX2を用いて、プロセッサの使用率を測定することが可能である。測定したプロセッサの使用率に基づいて、次の期間においてプロセッサを動作させる動作クロック信号の周波数を変更することが可能である。
上記した実施の形態1では、クロックカウンタX1およびX2が、タイムクロック信号Tckをカウントする例を示したが、これに限定されるものではない。クロックカウンタX1およびX2は、同じクロック信号をカウントすればよい。そのため、クロックカウンタX1およびX2は、例えば期間ごとに周波数が変化する動作クロック信号O−CLKの電圧変化をカウントするようにしてもよい。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1 半導体装置
2 プロセッサ
3 DMAコントローラ
4 メモリ
5 発振回路
6 逓倍回路
7 タイマー
8 プロセッサ使用率測定回路
9 分周値選択回路
10 分周回路
11 目標使用率レジスタ
12 バス
DUD 使用率情報
DINF 分周値情報
O−CLK 動作クロック信号
TUD 目標使用率情報
Tck タイムクロック信号
X1、X2 クロックカウンタ
2 プロセッサ
3 DMAコントローラ
4 メモリ
5 発振回路
6 逓倍回路
7 タイマー
8 プロセッサ使用率測定回路
9 分周値選択回路
10 分周回路
11 目標使用率レジスタ
12 バス
DUD 使用率情報
DINF 分周値情報
O−CLK 動作クロック信号
TUD 目標使用率情報
Tck タイムクロック信号
X1、X2 クロックカウンタ
Claims (11)
- 供給される動作クロック信号に同期して、タスクを切り換えながら、複数のタスクを実行するプロセッサを備えた半導体装置であって、
第1期間における前記プロセッサの使用率を測定する使用率測定部と、
前記使用率測定部によって測定された使用率に基づいて、前記第1期間よりも後の第2期間において、前記プロセッサへ供給する前記動作クロック信号の周波数を変更する周波数変更部と、
を備える、半導体装置。 - 請求項1に記載の半導体装置において、
前記プロセッサは、前記第1期間および前記第2期間において、アイドルタスクを含む複数のタスクを実行する、半導体装置。 - 請求項2に記載の半導体装置において、
前記使用率測定部は、前記第1期間において実行される前記アイドルタスクに基づいて、前記プロセッサの使用率を測定する、半導体装置。 - 請求項3に記載の半導体装置において、
前記使用率測定部は、前記第1期間において実行される前記アイドルタスクの実行時間に基づいて、前記プロセッサの使用率を測定する、半導体装置。 - 請求項4に記載の半導体装置において、
前記周波数変更部は、前記使用率測定部で測定された使用率と目標使用率との差が小さくなるように、前記動作クロック信号の周波数を変更する、半導体装置。 - 請求項5に記載の半導体装置において、
前記周波数変更部は、
クロック信号を分周する分周回路と、
前記分周回路に接続され、前記使用率測定部で測定された使用率と前記目標使用率とに基づいて、前記使用率測定部で測定された使用率と前記目標使用率との間の差を小さくするような分周値を、前記分周回路に供給する分周値選択回路と、
を備え、
前記分周回路は、前記分周値選択回路から供給された分周値に従って、前記クロック信号を分周することにより、前記動作クロック信号を出力する、
半導体装置。 - 請求項6に記載の半導体装置において、
前記分周値選択回路は、分周値を変更するとき、段階的に分周値を変更する、半導体装置。 - 請求項6または7に記載の半導体装置において、
前記目標使用率が設定されるレジスタを、さらに備える、半導体装置。 - 動作クロック信号に同期して、複数のタスクをプロセッサに実行させるプロセッサ制御方法であって、
第1期間において、前記プロセッサにより実行されるアイドルタスクに基づいて、プロセッサの使用率を測定する使用率測定工程と、
前記使用率測定工程で測定された使用率に基づいて、前記動作クロック信号の周波数を変更する周波数変更工程と、
を備える、プロセッサ制御方法。 - 請求項9に記載のプロセッサ制御方法において、
前記第1期間において、前記プロセッサにより実行されるタスクは、周期的に実行されるリアルタイムタスクと、ランダムに実行されるノンリアルタイムタスクと、前記リアルタイムタスクおよび前記ノンリアルタイムタスクが実行されていないときに、実行される前記アイドルタスクと、を含み、
前記使用率測定工程では、前記第1期間に実行される前記アイドルタスクの実行時間に基づいて、前記使用率を算出する、プロセッサ制御方法。 - 請求項10に記載のプロセッサ制御方法において、
前記周波数変更工程は、
クロック信号を分周して、前記動作クロック信号を形成する分周工程と、
前記算出された前記使用率と目標使用率との差が小さくなるように、前記分周工程での分周値を選択する選択工程と、
を備える、プロセッサ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018086891A JP2019192110A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置およびプロセッサ制御方法 |
US16/378,131 US11086690B2 (en) | 2018-04-27 | 2019-04-08 | Semiconductor device and processor control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018086891A JP2019192110A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置およびプロセッサ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019192110A true JP2019192110A (ja) | 2019-10-31 |
Family
ID=68292512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018086891A Pending JP2019192110A (ja) | 2018-04-27 | 2018-04-27 | 半導体装置およびプロセッサ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11086690B2 (ja) |
JP (1) | JP2019192110A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220084843A (ko) * | 2020-12-14 | 2022-06-21 | 삼성전자주식회사 | 클록 신호의 주파수를 제어하는 전자 장치 및 전자 장치의 동작 방법 |
US20230418350A1 (en) * | 2022-06-27 | 2023-12-28 | Dell Products L.P. | Programmable biasing of operating frequencies for optimal power scaling |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099432A (ja) * | 2000-09-22 | 2002-04-05 | Sony Corp | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 |
JP3862715B2 (ja) * | 2004-06-01 | 2006-12-27 | 株式会社ソニー・コンピュータエンタテインメント | タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム |
JP4697805B2 (ja) | 2006-10-24 | 2011-06-08 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
US8341641B2 (en) | 2007-08-16 | 2012-12-25 | Kernelon Silicon Inc. | Task processor |
EP2307940A1 (en) * | 2008-07-23 | 2011-04-13 | Nxp B.V. | Adjustment of a processor frequency |
US9564885B2 (en) * | 2011-12-05 | 2017-02-07 | Rambus Inc. | Event-driven clock duty cycle control |
US9026817B2 (en) * | 2012-06-29 | 2015-05-05 | Intel Corporation | Joint optimization of processor frequencies and system sleep states |
US9329663B2 (en) * | 2013-09-09 | 2016-05-03 | Apple Inc. | Processor power and performance manager |
JP6268020B2 (ja) * | 2014-03-26 | 2018-01-24 | ラピスセミコンダクタ株式会社 | クロック生成方法および半導体装置 |
-
2018
- 2018-04-27 JP JP2018086891A patent/JP2019192110A/ja active Pending
-
2019
- 2019-04-08 US US16/378,131 patent/US11086690B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190332445A1 (en) | 2019-10-31 |
US11086690B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4825291B2 (ja) | デジタル処理コンポーネント内で使用する適応電圧スケーリングクロック発生器およびその操作方法 | |
JP4490298B2 (ja) | プロセッサ電力制御装置及びプロセッサ電力制御方法 | |
JP5886015B2 (ja) | 時間測定装置、マイクロコントローラ、プログラム、及び時間測定方法 | |
JP2019192110A (ja) | 半導体装置およびプロセッサ制御方法 | |
JP2018523872A (ja) | 電力配分ネットワーク(pdn)ドループ/オーバシュート緩和 | |
EP2551767A1 (en) | Method and device for adjusting clock interrupt cycle | |
JP2013012003A (ja) | データ処理装置及びデータ処理システム | |
JP2000174615A (ja) | 集積回路の内部クロック周波数を自動補正する方法と装置 | |
JP2013097496A (ja) | 半導体集積回路装置及びそれを用いた電子機器 | |
US8854101B2 (en) | Adaptive clock generating apparatus and method thereof | |
US8525567B2 (en) | Pipeline circuit, semiconductor device, and pipeline control method | |
JP2008217628A (ja) | Cpuの省電力システム及び省電力方法 | |
TWI398100B (zh) | 除頻器、計數器及計數方法 | |
JP2011223179A (ja) | クロック発生回路及びその制御方法 | |
JP2017049972A (ja) | 電子システム及び関連するクロック管理方法 | |
JP2017021513A (ja) | マルチコアプロセッサ、マルチコアプロセッサのクロック制御方法およびクロック制御プログラム | |
US8966300B2 (en) | DFVS-enabled multiprocessor | |
US20230130826A1 (en) | Real-time operating system with a cpu cycle time base | |
JP7173833B2 (ja) | 半導体集積回路、及び、同半導体集積回路を備えた装置 | |
JPH11345129A (ja) | インターバルタイマ回路 | |
JP6274638B2 (ja) | 周波数調整回路および周波数調整方法 | |
JP2016184366A (ja) | タイマ補正装置、タイマ補正方法及びタイマ補正プログラム | |
WO2012067211A1 (ja) | 情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法 | |
JP2017111745A (ja) | 半導体装置、半導体システム、及び、半導体装置の制御方法 | |
JP2011109524A (ja) | 半導体装置 |