(57)【要約】【課題】ダイナミックに変動する負荷にパフォーマンスを追従させことができる半導体装置を提供すること【解決手段】半導体装置は、ＣＰＵコア１〜４、周波数調整回路ＦＲＣ１〜４、クロック周波数制御回路ＣＦＣＣ１〜４を備える。周波数調整回路ＦＲＣ１〜４は、テーブルＴ１〜Ｔ４、Ｔ３０、Ｔ４０を備える。周波数制御回路ＣＦＣＣ１〜４は、ＣＰＵコア１〜４にクロックＣＫ１〜ＣＫ４を供給する。ＣＰＵコア１〜４は、自己の動作状態を示す動作状態信号ＯＳＳ１〜ＯＳＳ４を出力する。周波数調整回路ＦＲＣ１〜４は、テーブルＴ１〜Ｔ４、Ｔ３０、Ｔ４０及び動作状態信号ＯＳＳ１〜ＯＳＳ４に基づいてクロックＣＫ１〜ＣＫ４の周波数を制御する。【選択図】図５
2014146095.tif 000002
【特許請求の範囲】
【請求項１】
以下を含む半導体装置：
（ａ）第１ＣＰＵコア；
（ｂ）第１テーブルを備える第１周波数調整回路；
（ｃ）前記第１ＣＰＵコアに第１クロックを供給する第１クロック周波数制御回路、
ここで前記第１ＣＰＵコアは、前記第１ＣＰＵコアの動作状態を示す第１動作状態信号を出力し、
前記第１周波数調整回路は、前記第１テーブル及び前記第１動作状態信号に基づいて前記第１クロックの周波数を制御する。
【請求項２】
以下を更に含む請求項１に記載の半導体装置：
（ｄ）第２ＣＰＵコア；
（ｅ）第２テーブルを備える第２周波数調整回路；
（ｆ）第２クロック周波数制御回路、
ここで前記第２ＣＰＵコアは、前記第２ＣＰＵコアの動作状態を示す第２動作状態信号を出力し、
前記第１周波数調整回路は、前記第１動作状態信号に基づいて第１切り替え要求を出力し、
前記第２周波数調整回路は、前記第１切り替え要求に基づいて、前記第２クロック周波数制御回路に前記第２ＣＰＵコアへの第２クロックの供給を開始させ、前記第２テーブル及び前記第２動作状態信号に基づいて前記第２クロックの周波数を制御する。
【請求項３】
請求項２に記載の半導体装置であって、
ここで前記第１周波数調整回路は、第３テーブルを更に備え、
前記第１周波数調整回路は、前記第１切り替え要求を出力するときに、前記第１クロックの周波数を前記第１テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第１変動制御状態から前記第１クロックの周波数を第１固定値に制御する第１クロック第１固定制御状態へ切り替わり、
前記第２周波数調整回路は、前記第２動作状態信号に基づいて、前記第２クロックの周波数を前記第２テーブル及び前記第２動作状態信号に基づいて制御する第２クロック第１変動制御状態から前記第２クロックの周波数を第２固定値に制御する第２クロック第１固定制御状態へ切り替わり、前記第２クロック第１変動制御状態から前記第２クロック第１固定制御状態へ切り替わるときに第２切り替え要求を出力し、
前記第１周波数調整回路は、前記第２切り替え要求に基づいて、前記第１クロック第１固定制御状態から前記第１クロックの周波数を前記第３テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第２変動制御状態へ切り替わり、前記第１クロック第１固定制御状態から前記第１クロック第２変動制御状態へ切り替わるときに電源制御回路に電圧アップ要求を出力し、
前記電源制御回路は、前記電圧アップ要求に基づいて、前記第１ＣＰＵコアに供給する動作電圧を第１電圧に制御する通常電圧制御状態から前記動作電圧を前記第１電圧より高い第２電圧に制御するオーバードライブ電圧制御状態に切り替わる。
【請求項４】
請求項１に記載の半導体装置であって、
ここで前記第１動作状態信号は、前記第１ＣＰＵコアのパフォーマンスを示し、
前記第１テーブルは、パフォーマンスと周波数を対応付ける。
【請求項５】
請求項１に記載の半導体装置であって、
ここで前記第１動作状態信号は、前記第１ＣＰＵコアのアイドル状態を示し、
前記第１周波数調整回路は、前記第１動作状態信号に基づいて、前記第１ＣＰＵコアの単位時間当たりの動作期間又はアイドル期間を計算する期間計算器を更に備え、
前記第１テーブルは、単位時間当たりの動作期間又はアイドル期間と周波数を対応付ける。
【請求項６】
請求項１に記載の半導体装置であって、
ここで前記第１テーブルは以下を含む：
（ｉ）第１パラメータの第１値と第２パラメータの第２値の組合せ、前記第１パラメータの第３値と前記第２パラメータの第４値の組合せを格納するレジスタ；
（ｉｉ）前記第１値と前記第２値の組合せ、前記第３値と前記第４値の組合せを補間する前記第１パラメータの第５値と前記第２パラメータの第６値の組合せを計算する補間計算器、
前記第１動作状態信号は前記第１パラメータの値を示し、又は、前記第１周波数調整回路は前記第１動作状態信号に基づいて前記第１パラメータの値を算出し、
前記第２パラメータは前記第１クロックの周波数である。
【請求項７】
以下を含む電子装置：
（ａ）半導体装置、
ここで前記半導体装置は以下を含む：
（ｉ）第１ＣＰＵコア；
（ｉｉ）第１テーブルを備える第１周波数調整回路；
（ｉｉｉ）前記第１ＣＰＵコアに第１クロックを供給する第１クロック周波数制御回路、
前記第１ＣＰＵコアは、前記第１ＣＰＵコアの動作状態を示す第１動作状態信号を出力し、
前記第１周波数調整回路は、前記第１テーブル及び前記第１動作状態信号に基づいて前記第１クロックの周波数を制御する。
【請求項８】
請求項７に記載の電子装置であって、
ここで前記半導体装置は以下を更に含む
（ｉｖ）第２ＣＰＵコア；
（ｖ）第２テーブルを備える第２周波数調整回路；
（ｖｉ）第２クロック周波数制御回路、
ここで前記第２ＣＰＵコアは、前記第２ＣＰＵコアの動作状態を示す第２動作状態信号を出力し、
前記第１周波数調整回路は、前記第１動作状態信号に基づいて第１切り替え要求を出力し、
前記第２周波数調整回路は、前記第１切り替え要求に基づいて、前記第２クロック周波数制御回路に前記第２ＣＰＵコアへの第２クロックの供給を開始させ、前記第２テーブル及び前記第２動作状態信号に基づいて前記第２クロックの周波数を制御する。
【請求項９】
以下を更に含む請求項８に記載の電子装置：
（ｂ）前記第１ＣＰＵコアに動作電圧を供給する電源制御回路、
ここで前記第１周波数調整回路は、第３テーブルを更に備え、
前記第１周波数調整回路は、前記第１切り替え要求を出力するときに、前記第１クロックの周波数を前記第１テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第１変動制御状態から前記第１クロックの周波数を第１固定値に制御する第１クロック第１固定制御状態へ切り替わり、
前記第２周波数調整回路は、前記第２動作状態信号に基づいて、前記第２クロックの周波数を前記第２テーブル及び前記第２動作状態信号に基づいて制御する第２クロック第１変動制御状態から前記第２クロックの周波数を第２固定値に制御する第２クロック第１固定制御状態へ切り替わり、前記第２クロック第１変動制御状態から前記第２クロック第１固定制御状態へ切り替わるときに第２切り替え要求を出力し、
前記第１周波数調整回路は、前記第２切り替え要求に基づいて、前記第１クロック第１固定制御状態から前記第１クロックの周波数を前記第３テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第２変動制御状態へ切り替わり、
前記電源制御回路は、前記第１周波数調整回路が前記第１クロック第１変動制御状態のとき及び前記第１クロック第１固定制御状態のときに前記動作電圧を第１電圧に制御し、前記第１周波数調整回路が前記第１クロック第２変動制御状態のときに前記動作電圧を前記第１電圧より高い第２電圧に制御する。
【請求項１０】
以下を含む半導体装置の制御方法：
ここで前記半導体装置は以下を含む：
（ｉ）第１ＣＰＵコア；
（ｉｉ）第１テーブルを備える第１周波数調整回路；
（ｉｉｉ）前記第１ＣＰＵコアに第１クロックを供給する第１クロック周波数制御回路、
（ａ）前記第１ＣＰＵコアは、前記第１ＣＰＵコアの動作状態を示す第１動作状態信号を出力し；
（ｂ）前記第１周波数調整回路は、前記第１テーブル及び前記第１動作状態信号に基づいて前記第１クロックの周波数を制御する。
【請求項１１】
以下を更に含む請求項１０記載の制御方法：
ここで前記半導体装置は以下を更に含む：
（ｉｖ）第２ＣＰＵコア；
（ｖ）第２テーブルを備える第２周波数調整回路；
（ｖｉ）第２クロック周波数制御回路、
（ｃ）前記第１周波数調整回路は、前記第１動作状態信号に基づいて第１切り替え要求を出力し；
（ｄ）前記第２周波数調整回路は、前記第１切り替え要求に基づいて、前記第２クロック周波数制御回路に前記第２ＣＰＵコアへの第２クロックの供給を開始させ、
（ｅ）前記第２ＣＰＵコアは、前記第２ＣＰＵコアの動作状態を示す第２動作状態信号を出力し；
（ｆ）前記第２周波数調整回路は、前記第２テーブル及び前記第２動作状態信号に基づいて前記第２クロックの周波数を制御する。
【請求項１２】
以下を更に含む請求項１１記載の制御方法：
ここで前記第１周波数調整回路は、第３テーブルを更に備え、
（ｇ）前記第１周波数調整回路は、前記第１切り替え要求を出力するときに、前記第１クロックの周波数を前記第１テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第１変動制御状態から前記第１クロックの周波数を第１固定値に制御する第１クロック第１固定制御状態へ切り替わり；
（ｈ）前記第２周波数調整回路は、前記第２動作状態信号に基づいて、前記第２クロックの周波数を前記第２テーブル及び前記第２動作状態信号に基づいて制御する第２クロック第１変動制御状態から前記第２クロックの周波数を第２固定値に制御する第２クロック第１固定制御状態へ切り替わり；
（ｉ）前記第２周波数調整回路は、前記第２クロック第１変動制御状態から前記第２クロック第１固定制御状態へ切り替わるときに第２切り替え要求を出力し；
（ｊ）前記第１周波数調整回路は、前記第２切り替え要求に基づいて、前記第１クロック第１固定制御状態から前記第１クロックの周波数を前記第３テーブル及び前記第１動作状態信号に基づいて制御する第１クロック第２変動制御状態へ切り替わり；
（ｋ）前記第１周波数調整回路は、前記第１クロック第１固定制御状態から前記第１クロック第２変動制御状態へ切り替わるときに電源制御回路に電圧アップ要求を出力し；
（ｌ）前記電源制御回路は、前記電圧アップ要求に基づいて、前記第１ＣＰＵコアに供給する動作電圧を第１電圧に制御する通常電圧制御状態から前記動作電圧を前記第１電圧より高い第２電圧に制御するオーバードライブ電圧制御状態に切り替わる。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、電子装置、及び半導体装置の制御方法に関する。
【背景技術】
【０００２】
半導体装置において、必要な性能（パフォーマンス）を確保しつつ消費電力を削減することが求められている。
【０００３】
例えば、特許文献１は、高性能ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、低消費電力ＣＰＵ、処理内容判定部、電源電圧制御管理部、クロック供給制御部を備えた半導体集積回路装置を開示している。処理内容判定部は、半導体集積回路装置で実行すべき処理に応じて高性能ＣＰＵ及び低消費電力ＣＰＵのうちどちらを使用するのが最適かを判断する。電源電圧制御管理部は、処理内容判定部による判断結果に基づき、高性能ＣＰＵ及び低消費電力ＣＰＵへの電源供給を制御する。クロック供給制御部は、処理内容判定部による判断結果に基づき、高性能ＣＰＵ及び低消費電力ＣＰＵへのクロック供給を制御する。
【０００４】
特許文献２は、プロセッサへ電力を供給する電力供給装置を開示している。電力供給装置は、タスク要求性能テーブル、電力モードテーブル、システム要求性能算出ブロック、電力モード判定ブロックを備える。タスク要求性能テーブルは、プロセッサが実行すべき複数のタスクについて、タスクごとの要求性能を記憶する。電力モードテーブルは、プロセッサがシステム要求性能を実現するための動作周波数及び印加電圧を定義している。システム要求性能算出ブロックは、タスク要求性能テーブルに基づいてシステム要求性能を算出する。電力モード判定ブロックは、システム要求性能算出ブロックによって算出されたシステム要求性能及び電力モードテーブルに基づいて、プロセッサの動作周波数及び印加電圧を設定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２８８１５０号公報
【特許文献２】特開２００５−２８５０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
発明者らは、半導体装置の開発に際し、様々な課題を見出した。本願で開示される各実施の形態は、ダイナミックに変動する負荷にパフォーマンスを追従させことができる半導体装置を提供する。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態にかかる半導体装置は、テーブルを備えた周波数調整回路を備えている。周波数調整回路は、テーブルとＣＰＵコアが出力する動作状態信号に基づいてＣＰＵコアに供給されるクロックの周波数を制御する。
【発明の効果】
【０００８】
一実施の形態によれば、ダイナミックに変動する負荷にパフォーマンスを追従させことができる半導体装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】比較例にかかる半導体装置のブロック図である。
【図２】比較例にかかる半導体装置の制御方法の概念図である。
【図３Ａ】実施の形態１にかかる無線通信端末の正面図である。
【図３Ｂ】実施の形態１にかかる無線通信端末の背面図である。
【図４】実施の形態１にかかる無線通信端末が備える無線通信装置のブロック図である。
【図５】実施の形態１にかかる半導体装置のブロック図である。
【図６】実施の形態１にかかる半導体装置の制御方法の概念図である。
【図７】実施の形態１にかかるテーブルのブロック図である。
【図８】実施の形態１にかかるテーブルが備えるレジスタに格納される値を示す。
【図９】実施の形態１にかかるテーブルが備えるパラメータテーブルに格納される値を示す。
【図１０】実施の形態１にかかるテーブルの設定例を示すグラフである。
【図１１Ａ】実施の形態１にかかるテーブルの他の設定例を示すグラフである。
【図１１Ｂ】実施の形態１にかかるテーブルの他の設定例を示すグラフである。
【図１１Ｃ】実施の形態１にかかるテーブルの他の設定例を示すグラフである。
【図１１Ｄ】実施の形態１にかかるテーブルの他の設定例を示すグラフである。
【図１２】実施の形態１の変形例にかかる周波数調整回路のブロック図である。
【図１３】実施の形態１の変形例にかかるテーブルの設定例を示すグラフである。
【図１４】実施の形態２にかかる半導体装置のブロック図である。
【図１５】実施の形態２にかかる半導体装置の制御方法のフローチャートである。
【図１６Ａ】実施の形態２にかかる第１の周波数調整回路の状態遷移図である。
【図１６Ｂ】実施の形態２にかかる第２の周波数調整回路の状態遷移図である。
【図１６Ｃ】実施の形態２にかかる第３の周波数調整回路の状態遷移図である。
【図１６Ｄ】実施の形態２にかかる第４の周波数調整回路の状態遷移図である。
【図１７Ａ】実施の形態２にかかる第１のテーブルの設定例を示すグラフである。
【図１７Ｂ】実施の形態２にかかる第２のテーブルの設定例を示すグラフである。
【図１７Ｃ】実施の形態２にかかる第３のテーブルの設定例を示すグラフである。
【図１７Ｄ】実施の形態２にかかる第４のテーブルの設定例を示すグラフである。
【図１８】実施の形態２にかかる半導体装置のパフォーマンスとパワーの関係を示すグラフである。
【図１９】実施の形態３にかかる半導体装置のブロック図である。
【図２０Ａ】実施の形態３にかかる第３の周波数調整回路のブロック図である。
【図２０Ｂ】実施の形態３にかかる第４の周波数調整回路のブロック図である。
【図２１Ａ】実施の形態３にかかる第３の周波数調整回路の状態遷移図である。
【図２１Ｂ】実施の形態３にかかる第４の周波数調整回路の状態遷移図である。
【図２１Ｃ】第３のＣＰＵコアに動作電圧を供給する電源制御部の状態遷移図である。
【図２１Ｄ】第４のＣＰＵコアに動作電圧を供給する電源制御部の状態遷移図である。
【発明を実施するための形態】
【００１０】
以下、具体的な実施の形態について、図面を参照しながら詳細に説明する。尚、説明を明確にするために、以下の記載及び図面は、適宜、簡略化されている。
【００１１】
＜比較例にかかる半導体装置の構成＞
はじめに、図１を参照して、発明者らが検討した比較例にかかる半導体装置の構成を説明する。比較例にかかる半導体装置は、ＣＰＵ９０及びクロック周波数制御回路ＣＦＣＣを備える。
【００１２】
＜比較例にかかる半導体装置の動作＞
次に、比較例にかかる半導体装置の動作を説明する。クロック周波数制御回路ＣＦＣＣは、ＣＰＵ９０のコア９にクロックＣＫを供給する。コア９は、クロックＣＫに基づいて処理を実行する。コア９は、コア９のアイドル状態を示すアイドル状態信号ＩＳＳを生成する。ＣＰＵ９０は、ＯＳ（Operating System）制御に従って、アイドル状態信号ＩＳＳに基づいて周波数制御信号ＦＣＳを生成する。周波数制御信号ＦＣＳは、クロックＣＫの設定周波数を示す。クロック周波数制御回路ＣＦＣＣは、周波数制御信号ＦＣＳに基づいてクロックＣＫの周波数を制御する。
【００１３】
図２を参照して、比較例にかかる半導体装置の動作を詳細に説明する。ＣＰＵ９０は、ＯＳ制御に従って、一定の周波数制御インターバルごとにクロックＣＫの周波数を制御する。具体的には、ＣＰＵ９０は、アイドル状態信号ＩＳＳに基づいて、周波数制御インターバルごとのコア９の動作率を計算する。動作率は、周波数制御インターバルにおけるアクティブ状態時間の割合である。ＣＰＵ９０は、動作率に基づいて、クロックＣＫの設定周波数を示す周波数制御信号ＦＣＳを生成する。クロック周波数制御回路ＣＦＣＣは、周波数制御信号ＦＣＳに基づいてクロックＣＫの周波数を制御する。
【００１４】
以下に、ＯＳ制御により計算したコア９の動作率に基づいてクロックＣＫの周波数を制御する方法の問題点を説明する。
【００１５】
動作率に基づいてクロックＣＫの周波数を制御する方法では、周波数制御インターバルが長くなってしまう。そのため、コア９に要求されるパフォーマンスがダイナミックに変化する場合に、コア９が実行するパフォーマンスを要求パフォーマンスに追従させることができない。具体的には、時刻Ｔ０から時刻Ｔ５までの周波数制御インターバルにおいてクロックＣＫの周波数が一定であるため、実行パフォーマンスがその周波数に対応したレベルに制限される。クロックＣＫの周波数が要求パフォーマンスに対して不足する場合、要求パフォーマンスがゼロに立ち下がった後もコア９のアクティブ状態が継続する。例えば、要求パフォーマンスが時刻Ｔ１でゼロに立ち下がるが、時刻Ｔ１までに処理できなかったタスクを処理するために時刻Ｔ０に始まったアクティブ状態が時刻Ｔ２まで引き延ばされる。要求パフォーマンスが時刻Ｔ４でゼロに立ち下がるが、時刻Ｔ４までに処理できなかったタスクを処理するために時刻Ｔ３に始まったアクティブ状態が時刻Ｔ５まで引き延ばされる。
【００１６】
ここで、コア９の消費電力は、ベース部分及び有効部分から構成される。ベース部分は、コア９がアクティブ状態であるだけで必要とされる電力である。有効部分は、コア９の実行パフォーマンスに応じた電力である。アクティブ状態が引き延ばされる結果、消費電力のベース部分が大きくなってしまう。更に、制御がソフトウェア的に破たんするおそれがある。尚、クロックＣＫの設定周波数の下限を高い値に設定することでアクティブ状態が引き延ばされることを回避できるが、その場合、要求パフォーマンスが低い値で一定の場合における消費電力が大きくなってしまう。
【００１７】
更に、周波数制御インターバルごとに、ＣＰＵ９０がＯＳ制御により動作率を計算するオーバーヘッドが発生してしまう。そのため、周波数制御インターバルを短くすることが困難である。尚、オーバーヘッドは図２において省略されている。
【００１８】
（実施の形態１）
＜無線通信端末の概要＞
まず、図３Ａ、３Ｂを参照して、実施の形態１に係る半導体装置が適用される電子装置として好適な無線通信端末の概要について説明する。図３Ａ及び３Ｂは、無線通信端末５００の構成例を示す外観図である。
【００１９】
なお、図３Ａ、３Ｂでは、無線通信端末５００がスマートフォンである場合について示している。しかしながら、無線通信端末５００は、フィーチャーフォン(例えば、折り畳み式の携帯電話端末)、携帯ゲーム端末、タブレットＰＣ(Personal Computer)、ノートＰＣ、カーナビゲーション装置等のその他の無線通信端末であってもよい。また、当然のことながら、本実施の形態に係る半導体装置は、無線通信端末以外に適用することも可能である。
【００２０】
図３Ａは、無線通信端末５００を形成する筐体５０１の一方の主面(前面)を示している。筐体５０１の前面には、ディスプレイデバイス５０２と、タッチパネル５０３と、幾つかの操作ボタン５０４と、カメラデバイス５０５とが配置されている。一方、図３Ｂは、筐体５０１の他方の主面(背面)を示している。筐体５０１の背面には、カメラデバイス５０６が配置されている。
【００２１】
ディスプレイデバイス５０２は、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬディスプレイ（ＯＬＥＤ：Organic Light-Emitting Diode）等の表示装置である。ディスプレイデバイス５０２は、表示面が筐体５０１の前面に位置するように配置されている。
【００２２】
タッチパネル５０３は、ディスプレイデバイス５０２の表示面を覆うように配置されるか、或いはディスプレイデバイス５０２の裏面側に配置され、ユーザーによる表示面への接触位置を検知する。つまり、ユーザーは、指や専用のペン(一般に、スタイラスと呼称される)等でディスプレイデバイス５０２の表示面に触れることで、無線通信端末５００を直感的に操作することができる。
【００２３】
操作ボタン５０４は、無線通信端末５００に対する補助的な操作に用いられる。なお、無線通信端末によっては、このような操作ボタンが設けられないこともある。
【００２４】
カメラデバイス５０５は、そのレンズユニットが筐体５０１の前面に位置するように配置されたサブカメラである。なお、無線通信端末によっては、このようなサブカメラが設けられないこともある。
【００２５】
カメラデバイス５０６は、そのレンズユニットが筐体５０１の背面に位置するように配置されたメインカメラである。
【００２６】
＜無線通信装置の構成＞
図４を参照して、本実施の形態に係る半導体装置が搭載される無線通信装置６００の構成について説明する。図４は、実施の形態１に係る無線通信装置６００の構成例を示すブロック図である。無線通信装置６００は、例えば、図３Ａ、３Ｂに示した無線通信端末５００の内部構成である。図４に示すように、無線通信装置６００は、アプリケーションプロセッサ（ホストＩＣ）６０１、ベースバンドプロセッサ６０２、ＲＦＩＣ（Radio Frequency Integrated Circuit）６０３、メインメモリ６０４、バッテリ６０５、電源制御回路ＰＭＣ、表示部６０７、カメラ部６０８、操作入力部６０９、オーディオＩＣ６１０、マイク６１１、スピーカ６１２、ＧＰＵ（Graphics Processor Unit）６１３を含む。電源制御回路ＰＭＣは、例えば、パワーマネジメントＩＣ（ＰＭＩＣ：Power Management Integrated Circuit）６０６である。
【００２７】
アプリケーションプロセッサ（ホストＩＣ）６０１は、メインメモリ６０４に格納されたプログラムを読み出して、無線通信装置６００の各種機能を実現するための処理を行う半導体集積回路である。例えば、アプリケーションプロセッサ６０１は、メインメモリ６０４からＯＳ（Operating System）プログラムを読み出して実行すると共に、このＯＳプログラムを動作基盤とするアプリケーションプログラムを実行する。
【００２８】
ベースバンドプロセッサ６０２は、携帯通信端末が送受信するデータに対して符号化（例えば、畳み込み符号やターボ符号等の誤り訂正符号化）処理又は復号化処理等を含むベースバンド処理を行う。
【００２９】
特に音声データについては、ベースバンドプロセッサ６０２は、送信音声データをオーディオＩＣ６１０から受け取り、受け取った送信音声データに対して符号化処理を施して、ＲＦＩＣ６０３に送信する。より具体的には、ベースバンドプロセッサ６０２は、オーディオＩＣ６１０から受け取ったＰＣＭ（Pulse Code Modulation）データを符号化処理し、ＲＦＩＣ６０３が受信できるＡＭＲ（Adaptive Multi Rate）データへ変換する。
【００３０】
他方、ベースバンドプロセッサ６０２は、ＲＦＩＣ６０３から受信音声データを受け取り、受け取った受信音声データに対して復号化処理を施してオーディオＩＣ６１０に送信する。より具体的には、ベースバンドプロセッサ６０２は、ＲＦＩＣ６０３により復調された受信音声データであるＡＭＲデータを復号化処理し、ＰＣＭデータへ変換する。なお、ＡＭＲデータは圧縮データであり、ＰＣＭデータは非圧縮データである。
【００３１】
ＲＦＩＣ６０３は、アナログＲＦ信号処理を行う。アナログＲＦ信号処理は、周波数アップコンバージョン、周波数ダウンコンバージョン、増幅などを含む。
特に音声データについては、ＲＦＩＣ６０３は、ベースバンドプロセッサ６０２によって変調された送信音声データから送信ＲＦ信号を生成し、アンテナを介してこの送信ＲＦ信号を無線送信する（Ｕｐ  Ｌｉｎｋ）。
他方、ＲＦＩＣ６０３は、アンテナを介して受信ＲＦ信号を無線受信し、受信ＲＦ信号から受信音声データを生成し、この受信音声データをベースバンドプロセッサ６０２に送信する（Ｄｏｗｎ  Ｌｉｎｋ）。
【００３２】
メインメモリ（外部メモリ）６０４は、アプリケーションプロセッサ６０１により利用されるプログラム及びデータを格納している。また、メインメモリ６０４は、オーディオＩＣ６１０によるボコーダ処理に利用されるプログラムすなわちコーデック（Codec）を格納している。メインメモリ６０４としては、電源が遮断された場合に記憶したデータがクリアされる揮発性メモリであるＤＲＡＭ（Dynamic Random Access Memory）が用いる場合が多い。もちろん、メインメモリ６０４として、電源が遮断されても記憶したデータを保持する不揮発性メモリを用いてもよい。
【００３３】
バッテリ６０５は、電池であり、無線通信装置６００が外部電源によらずに動作する場合に利用される。なお、無線通信装置６００は、外部電源が接続されている場合においてもバッテリ６０５の電源を利用してもよい。また、バッテリ６０５としては、二次電池を利用することが好ましい。
【００３４】
電源制御回路ＰＭＣは、バッテリ６０５又は外部電源から内部電源を生成する。この内部電源は、無線通信装置６００の各ブロックに与えられる。このとき、電源制御回路ＰＭＣは、内部電源の供給を受けるブロック毎に内部電源の電圧を制御する。電源制御回路ＰＭＣは、アプリケーションプロセッサ６０１からの指示に基づき内部電源の電圧制御を行う。さらに、電源制御回路ＰＭＣは、ブロック毎に内部電源の供給と遮断とを制御することもできる。また、電源制御回路ＰＭＣは、外部電源の供給がある場合、バッテリ６０５への充電制御も行う。
【００３５】
表示部６０７は、図３Ａ、３Ｂにおけるディスプレイデバイス５０２に相当するものであって、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）や有機ＥＬディスプレイ（ＯＬＥＤ：Organic Light-Emitting Diode）等の表示装置である。表示部６０７は、アプリケーションプロセッサ６０１及びＧＰＵ６１３における処理に従い様々な画像を表示する。表示部６０７において表示される画像には、ユーザーが無線通信装置６００に動作指示を与えるユーザーインタフェース画像、カメラ画像、動画等が含まれる。
【００３６】
カメラ部６０８は、アプリケーションプロセッサ６０１からの指示に従い、画像を取得する。カメラ部６０８は、図３Ａ、３Ｂにおけるカメラデバイス５０５、５０６に相当するものである。
【００３７】
操作入力部６０９は、ユーザーが操作して無線通信装置６００に操作指示を与えるユーザーインタフェースである。操作入力部６０９は、図３Ａ、３Ｂにおけるタッチパネル５０３、操作ボタン５０４に相当するものである。
【００３８】
オーディオＩＣ６１０は、ベースバンドプロセッサ６０２から受け取ったデジタル信号である受信音声データをアナログ信号に変換し、スピーカ６１２を駆動する。これにより、スピーカ６１２から音声が出力される。
他方、オーディオＩＣ６１０は、マイク６１１で検出したアナログ信号である音声をアナログ／デジタル（Ａ／Ｄ）変換して、ベースバンドプロセッサ６０２に出力する。より具体的には、オーディオＩＣ６１０は、アナログ信号である音声からデジタル信号であるＰＣＭデータを生成する。
【００３９】
＜実施の形態１にかかる半導体装置の構成＞
図５を参照して、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１の構成について説明する。アプリケーションプロセッサ６０１は、例えば、ＬＳＩ（Large Scale Integration）である。アプリケーションプロセッサ６０１は、ＣＰＵ１０、周波数調整回路（Frequency Regulating Circuit）ＦＲＣ１、クロック周波数制御回路ＣＦＣＣ１を含む。ＣＰＵ１０は、コア１を含む。周波数調整回路ＦＲＣ１は、テーブルＴ１を備える。テーブルＴ１は、コア１のパフォーマンス値とクロックＣＫ１の周波数値を対応付けている。
【００４０】
＜実施の形態１にかかる半導体装置の動作＞
次に、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１の動作を説明する。クロック周波数制御回路ＣＦＣＣ１は、ＣＰＵ１０のコア１にクロックＣＫ１を供給する。コア１は、クロックＣＫ１に基づいて処理を実行する。コア１は、コア１の動作状態を示す動作状態信号（Operation State Signal）ＯＳＳ１を出力する。ここでは、動作状態信号ＯＳＳ１は、コア１のパフォーマンスを示すパフォーマンスモニタ信号である。動作状態信号ＯＳＳ１が示すパフォーマンスは、絶対値でもコア１の最大パフォーマンスに対する相対値でもよい。例えば、パフォーマンスの単位はＭＩＰＳ（Million Instructions per Second）である。周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１に基づいて、クロックＣＫ１の周波数を制御する。具体的には、周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１に基づいて、周波数制御信号ＦＣＳ１を出力する。周波数制御信号ＦＣＳ１は、クロックＣＫ１の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ１は、周波数制御信号ＦＣＳ１に基づいてクロックＣＫ１の周波数を制御する。
【００４１】
図６を参照して、本実施形態にかかる半導体装置であるアプリケーションプロセッサ６０１の動作を詳細に説明する。周波数調整回路ＦＲＣ１は、一定の周波数制御インターバルごとにクロックＣＫ１の周波数を制御する。具体的には、周波数調整回路ＦＲＣ１は、テーブルＴ１を参照して、動作状態信号ＯＳＳ１が示すコア１のパフォーマンスに対応する周波数を決定する。周波数調整回路ＦＲＣ１は、決定した周波数を示す周波数制御信号ＦＣＳ１を出力する。クロック周波数制御回路ＣＦＣＣ１は、周波数制御信号ＦＣＳ１に基づいてクロックＣＫ１の周波数を制御する。本実施形態にかかる周波数制御インターバルは短い。そのため、コア１が実行するパフォーマンスをコア１に要求されるパフォーマンスに追従させることができる。コア１の消費電力は、ベース部分及び有効部分から構成される。ベース部分は、コア１がアクティブ状態であるだけで必要とされる電力である。有効部分は、コア１の実行パフォーマンスに応じた電力である。
【００４２】
＜実施の形態１にかかる半導体装置と比較例にかかる半導体装置の対比＞
本実施形態によれば、周波数調整回路ＦＲＣ１は、動作状態信号ＯＳＳ１が示すコア１のパフォーマンスに基づいてクロックＣＫ１の周波数を制御する。そのため、比較例に比べて周波数制御インターバルを短くすることができる。そのため、要求パフォーマンス（負荷）がダイナミックに変化する場合であっても、実行パフォーマンスを要求パフォーマンスに追従させることができる。その結果、コア１のアクティブ状態が引き延ばされない。アクティブ状態が引き延ばされないため、コア１の消費電力のベース部分が大きくなってしまうことが防がれる。したがって、消費電力を低減することができる。更に、実行パフォーマンスをダイナミックに変化する要求パフォーマンスに追従させることができるため、クロックＣＫ１の設定周波数の下限を低い値に設定できる。
【００４３】
更に、本実施形態によれば、クロックＣＫ１の周波数を制御するための専用回路としての周波数調整回路ＦＲＣ１が設けられ、周波数調整回路ＦＲＣ１はテーブルＴ１を備える。そのため、周波数調整回路ＦＲＣ１は、ＯＳに依存しないでクロックＣＫ１の周波数を制御することができる。したがって、本実施形態によれば、比較例の場合とは異なり、オーバーヘッドが発生しない。
【００４４】
以上、アプリケーションプロセッサ６０１が単一のＣＰＵコア１を含む場合を説明したが、アプリケーションプロセッサ６０１が複数のＣＰＵコア１を含んでいてもよい。この場合、ＣＰＵコア１ごとに周波数調整回路ＦＲＣ１及びクロック周波数制御回路ＣＦＣＣ１が設けられる。
【００４５】
＜実施の形態１にかかるクロック周波数制御に用いられるテーブルの詳細な説明＞
図７を参照して、テーブルＴ１は、レジスタ１１、比較器１２を含む。比較器１２は、計算器１３、パラメータテーブル１４を含む。
【００４６】
図８を参照して、レジスタ１１に格納された値を説明する。レジスタ１１は、ポイントＰ０〜Ｐ５として、第１のパラメータとしてのパフォーマンスの値と第２のパラメータとしての周波数の値の組合せを格納している。具体的には、レジスタ１１は、パフォーマンス値「０」と周波数値「１０％」の組合せとしてのポイントＰ０、パフォーマンス値「１０」と周波数値「４０％」の組合せとしてのポイントＰ１、パフォーマンス値「２０」と周波数値「６５％」の組合せとしてのポイントＰ２、パフォーマンス値「３０」と周波数値「８０％」の組合せとしてのポイントＰ３を格納する。レジスタ１１は、パフォーマンス値「５０」と周波数値「９０％」の組合せとしてのポイントＰ４、パフォーマンス値「８５」と周波数値「９０％」の組合せとしてのポイントＰ５を格納する。尚、パフォーマンス値及び周波数値がそれぞれ最大値に対する相対値である場合が図８に示されているが、パフォーマンス値及び周波数値は絶対値であってもよい。
【００４７】
計算器１３は、レジスタ１１に格納されたポイントＰ０〜Ｐ５に基づいて、ポイントＰ０及びＰ１を補間するポイントＰ０−Ａ、ポイントＰ１及びＰ２を補間するポイントＰ１−Ａ、ポイントＰ２及びＰ３を補間するポイントＰ２−Ａ、ポイントＰ３及びＰ４を補間するポイントＰ３−Ａ〜Ｐ３−Ｃ、ポイントＰ４及びＰ５を補間するポイントＰ４−Ａ〜Ｐ４−Ｄを計算する。
【００４８】
図９を参照して、ポイントテーブル１４は、ポイントＰ０〜Ｐ５、ポイントＰ０−Ａ、Ｐ１−Ａ、Ｐ２−Ａ、Ｐ３−Ａ〜Ｐ３−Ｃ、Ｐ４−Ａ〜Ｐ４−Ｄを格納する。ポイントＰ０−Ａは、パフォーマンス値「５」と周波数値「２５％」の組合せである。ポイントＰ１−Ａは、パフォーマンス値「１５」と周波数値「５２％」の組合せである。ポイントＰ２−Ａは、パフォーマンス値「２５」と周波数値「７２％」の組合せである。ポイントＰ３−Ａは、パフォーマンス値「３５」と周波数値「８２％」の組合せである。ポイントＰ３−Ｂは、パフォーマンス値「４０」と周波数値「８５％」の組合せである。ポイントＰ３−Ｃは、パフォーマンス値「４５」と周波数値「８７％」の組合せである。ポイントＰ４−Ａは、パフォーマンス値「５５」と周波数値「９０％」の組合せである。ポイントＰ４−Ｂは、パフォーマンス値「６０」と周波数値「９０％」の組合せである。ポイントＰ４−Ｃは、パフォーマンス値「６５」と周波数値「９０％」の組合せである。ポイントＰ４−Ｄは、パフォーマンス値「７０」と周波数値「９０％」の組合せである。
【００４９】
図１０は、パラメータテーブル１４に格納されたパフォーマンス値と周波数値の対応関係を示すグラフである。ポインントＰ０〜Ｐ５が塗りつぶされた円で示され、ポイントＰ０−Ａ、Ｐ１−Ａ、Ｐ２−Ａ、Ｐ３−Ａ〜Ｐ３−Ｃ、Ｐ４−Ａ〜Ｐ４−Ｄが塗りつぶされない円で示される。
【００５０】
比較器１２は、パラメータテーブル１４を参照して、動作状態信号ＯＳＳ１が示すコア１のパフォーマンス値に対応する周波数値ＦＲＱ１を決定する。周波数調整回路ＦＲＣ１は、周波数値ＦＲＱ１を示す周波数制御信号ＦＣＳ１を出力する。
【００５１】
計算器１３がレジスタ１１に格納されたポイントＰ０〜Ｐ５に基づいて補間ポイントＰ０−Ａ、Ｐ１−Ａ、Ｐ２−Ａ、Ｐ３−Ａ〜Ｐ３−Ｃ、Ｐ４−Ａ〜Ｐ４−Ｄを計算しているため、レジスタ１１に格納された少数のポイントＰ０〜Ｐ５を変更するだけでパラメータテーブル１４の内容を変更することができる。そのため、無線通信端末６００の使用状況に応じてパラメータテーブル１４の内容を変更することが容易である。また、これらのポイントは自由に設定できるため、曲線的な周波数軌道を定義することも可能である。
【００５２】
＜実施の形態１におけるテーブルの設定例＞
次に、本実施の形態におけるテーブルＴ１の設定例を説明する。
【００５３】
図１１Ａは、音楽再生モードに適合したパラメータテーブル１４の内容を示すグラフである。音楽再生モードではＣＰＵ１０に要求されるパフォーマンスが小さいため、ポイントＰ１〜Ｐ５の周波数値を低く抑えている。
【００５４】
図１１Ｂは、タッチパネル入力操作モードに適合したパラメータテーブル１４の内容を示すグラフである。タッチパネル入力操作モードではユーザーのタッチパネル５０３に対するタッチ操作に対して素早く反応するため、ポイントＰ０〜Ｐ２における周波数値の立ち上がりを急傾斜にしている。
【００５５】
図１１Ｃは、３Ｄ（Three dimensional）グラフィックスモードに適合したパラメータテーブル１４の内容を示すグラフである。３ＤグラフィックスモードではＧＰＵ６１３からＣＰＵ１０への要求に対して素早く反応するためにポイントＰ０〜Ｐ２における周波数値の立ち上がりを急傾斜にしているが、電流的な観点から周波数の上限値（ポイントＰ２〜Ｐ５の周波数値）をタッチパネル入力操作モードの場合よりも低い値に制限している。
【００５６】
図１１Ｄは、省電力モードに適合したパラメータテーブル１４の内容を示すグラフである。ここでは、パフォーマンス値がある閾値（ポイントＰ４のパフォーマンス値）以下の場合は消費電流を抑えるために周波数値を低く設定しているが、パフォーマンス値が閾値より大きい場合の周波数値を高く設定している。
【００５７】
＜実施の形態１の変形例＞
次に、実施の形態１の変形例を説明する。本変形例では、コア１が出力する動作状態信号ＯＳＳ１は、コア１のアイドル状態を示す。そのため、周波数調整回路ＦＲＣ１の構成及び動作が上述した構成及び動作と異なっている。
【００５８】
図１２を参照して、本変形例にかかる周波数調整回路ＦＲＣ１は、テーブルＴ１、計算器１５を備える。計算器１５は、動作状態信号ＯＳＳ１が示すコア１のアイドル状態に基づいて、コア１の動作率ＡＴＲ１を計算する。動作率ＡＴＲ１は、コア１の単位時間当たりの動作期間を示す。例えば、動作率ＡＴＲ１は、周波数制御インターバルにおけるアクティブ状態時間の割合である。周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作率ＡＴＲ１に基づいて、周波数制御信号ＦＣＳ１を出力する。
【００５９】
図１３を参照して、本変形例にかかるテーブルＴ１は、コア１の動作率とクロックＣＫ１の周波数値を対応付けている。尚、本変形例にかかるテーブルＴ１は、コア１の単位時間当たりのアイドル期間と周波数値を対応付けていてもよい。例えば、コア１の単位時間当たりのアイドル期間は、周波数制御インターバルにおけるアイドル状態時間の割合である。この場合、計算器１５は、動作状態信号ＯＳＳ１が示すコア１のアイドル状態に基づいて、コア１の単位時間当たりのアイドル期間を計算する。周波数調整回路ＦＲＣ１は、テーブルＴ１及びコア１の単位時間当たりのアイドル期間に基づいて、周波数制御信号ＦＣＳ１を出力する。
【００６０】
本変形例においても実施の形態１の場合と同様に、クロックＣＫ１の周波数を制御するための専用回路としての周波数調整回路ＦＲＣ１が設けられ、周波数調整回路ＦＲＣ１はテーブルＴ１を備える。そのため、周波数調整回路ＦＲＣ１は、ＯＳに依存しないでクロックＣＫ１の周波数を制御することができる。したがって、本変形例によれば、比較例の場合とは異なり、オーバーヘッドが発生しない。オーバーヘッドが発生しないため、周波数制御インターバルを比較例の場合よりも短くすることができる。そのため、要求パフォーマンス（負荷）がダイナミックに変化する場合であっても、実行パフォーマンスを要求パフォーマンスに追従させることができる。その結果、コア１のアクティブ状態が引き延ばされない。アクティブ状態が引き延ばされないため、コア１の消費電力のベース部分が大きくなってしまうことが防がれる。したがって、消費電力を低減することができる。尚、動作状態信号ＯＳＳ１がコア１のパフォーマンスを示す場合、周波数制御インターバルを更に短くすることができる
【００６１】
（実施の形態２）
次に、実施の形態２にかかる半導体装置であるアプリケーションプロセッサ６０１を説明する。実施の形態２にかかるアプリケーションプロセッサ６０１は、複数のＣＰＵコアを含む。以下において、実施の形態１と共通する事項の説明は省略される場合がある。
【００６２】
＜実施の形態２にかかる半導体装置の構成＞
図１４を参照して、実施の形態２にかかる半導体装置であるアプリケーションプロセッサ６０１の構成について説明する。アプリケーションプロセッサ６０１は、ＣＰＵ１０及び２０を含む。ＣＰＵ１０は、動作周波数とパフォーマンスが低い省電力ＣＰＵである。ＣＰＵ２０は、動作周波数とパフォーマンスが高い高性能ＣＰＵである。ＣＰＵ１０は、コア１及び２を含む。ＣＰＵ２０は、コア３及び４を含む。コア１〜４は、それぞれ、クロックＣＫ１〜４に基づいて処理を実行する。
【００６３】
アプリケーションプロセッサ６０１は、周波数調整回路ＦＲＣ１〜ＦＲＣ４、クロック周波数制御回路ＣＦＣＣ１〜ＣＦＣＣ４を含む。周波数調整回路ＦＲＣ１は、クロックＣＫ１の周波数を制御するためのテーブルＴ１、切り替え回路ＳＣ１を含む。テーブルＴ１は、コア１のパフォーマンス値とクロックＣＫ１の周波数値を対応付けている。周波数調整回路ＦＲＣ２は、クロックＣＫ２の周波数を制御するためのテーブルＴ２、切り替え回路ＳＣ２を含む。テーブルＴ２は、コア２のパフォーマンス値とクロックＣＫ２の周波数値を対応付けている。周波数調整回路ＦＲＣ３は、クロックＣＫ３の周波数を制御するためのテーブルＴ３、切り替え回路ＳＣ３を含む。テーブルＴ３は、コア３のパフォーマンス値とクロックＣＫ３の周波数値を対応付けている。周波数調整回路ＦＲＣ４は、クロックＣＫ４の周波数を制御するためのテーブルＴ４、切り替え回路ＳＣ４を含む。テーブルＴ４は、コア４のパフォーマンス値とクロックＣＫ４の周波数値を対応付けている。
【００６４】
本実施の形態にかかるテーブルＴ１〜Ｔ４の構成は、実施の形態１にかかるテーブルＴ１と同様である。本実施の形態にかかるテーブルＴ１〜Ｔ４の各々において、ポイントＰ０〜Ｐ５が設定されている。ただし、本実施の形態にかかるテーブルＴ１〜Ｔ４におけるパフォーマンス値と周波数値の対応関係は、後述するように設定されている。パフォーマンス値と周波数値の対応関係は、消費電力を低減するために制御対象であるＣＰＵコアごとに異なっている。パフォーマンス値と周波数値の対応関係は、制御対象であるコア１〜４の特性（省電力タイプ又は高性能タイプ）にマッチしていることが好ましい。
【００６５】
＜実施の形態２にかかる半導体装置の動作＞
次に、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１の動作を説明する。
【００６６】
クロック周波数制御回路ＣＦＣＣ１は、ＣＰＵ１０のコア１にクロックＣＫ１を供給する。コア１は、クロックＣＫ１に基づいて処理を実行する。コア１は、コア１の動作状態を示す動作状態信号ＯＳＳ１を出力する。動作状態信号ＯＳＳ１は、コア１のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１に基づいて、クロックＣＫ１の周波数を制御する。具体的には、周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１に基づいて、周波数制御信号ＦＣＳ１を出力する。周波数制御信号ＦＣＳ１は、クロックＣＫ１の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ１は、周波数制御信号ＦＣＳ１に基づいてクロックＣＫ１の周波数を制御する。切り替え回路ＳＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１に基づいて、切り替え要求（スイッチ要求）ＳＷ１１を出力する。周波数調整回路ＦＲＣ１は、切り替え要求ＳＷ２１に基づいて、制御状態を切り替える。
【００６７】
クロック周波数制御回路ＣＦＣＣ２は、ＣＰＵ１０のコア２にクロックＣＫ２を供給する。コア２は、クロックＣＫ２に基づいて処理を実行する。コア２は、コア２の動作状態を示す動作状態信号ＯＳＳ２を出力する。動作状態信号ＯＳＳ２は、コア２のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ２は、テーブルＴ２及び動作状態信号ＯＳＳ２に基づいて、クロックＣＫ２の周波数を制御する。具体的には、周波数調整回路ＦＲＣ２は、テーブルＴ２及び動作状態信号ＯＳＳ２に基づいて、周波数制御信号ＦＣＳ２を出力する。周波数制御信号ＦＣＳ２は、クロックＣＫ２の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ２は、周波数制御信号ＦＣＳ２に基づいてクロックＣＫ２の周波数を制御する。切り替え回路ＳＣ２は、テーブルＴ２及び動作状態信号ＯＳＳ２に基づいて、切り替え要求ＳＷ１２、ＳＷ２１を出力する。周波数調整回路ＦＲＣ２は、切り替え要求ＳＷ１１、ＳＷ２２に基づいて、制御状態を切り替える。
【００６８】
クロック周波数制御回路ＣＦＣＣ３は、ＣＰＵ２０のコア３にクロックＣＫ３を供給する。コア３は、クロックＣＫ３に基づいて処理を実行する。コア３は、コア３の動作状態を示す動作状態信号ＯＳＳ３を出力する。動作状態信号ＯＳＳ３は、コア３のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、クロックＣＫ３の周波数を制御する。具体的には、周波数調整回路ＦＲＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、周波数制御信号ＦＣＳ３を出力する。周波数制御信号ＦＣ３は、クロックＣＫ３の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ３は、周波数制御信号ＦＣＳ３に基づいてクロックＣＫ３の周波数を制御する。切り替え回路ＳＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、切り替え要求ＳＷ１３、ＳＷ２２を出力する。周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ１２、ＳＷ２３に基づいて、制御状態を切り替える。
【００６９】
クロック周波数制御回路ＣＦＣＣ４は、ＣＰＵ２０のコア４にクロックＣＫ４を供給する。コア４は、クロックＣＫ４に基づいて処理を実行する。コア４は、コア４の動作状態を示す動作状態信号ＯＳＳ４を出力する。動作状態信号ＯＳＳ４は、コア４のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、クロックＣＫ４の周波数を制御する。具体的には、周波数調整回路ＦＲＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、周波数制御信号ＦＣＳ４を出力する。周波数制御信号ＦＣ４は、クロックＣＫ４の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ４は、周波数制御信号ＦＣＳ４に基づいてクロックＣＫ４の周波数を制御する。切り替え回路ＳＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、切り替え要求ＳＷ２３を出力する。周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ１３に基づいて、制御状態を切り替える。
【００７０】
図１５を参照して、コア１〜４におけるクロック制御の連携を説明する。図１５は、実施の形態２にかかる半導体装置の制御方法のフローチャートである。半導体装置の制御方法は、ステップＳ１００〜Ｓ１０３、Ｓ１０５。Ｓ１１１〜Ｓ１１５、Ｓ１２１〜Ｓ１２５、Ｓ１３１、Ｓ１３２、Ｓ１３４、Ｓ１３５を含む。
【００７１】
ステップＳ１００において、テーブルＴ１を設定する。具体的には、テーブルＴ１の計算器１３がテーブルＴ１のレジスタ１１に格納されたポイントＰ０〜Ｐ５に基づいて、ポイントＰ０〜Ｐ５を補間する補間ポイントを計算する。テーブルＴ１のパラメータテーブル１４は、ポイントＰ０〜Ｐ５及び補間ポイントを格納する。更に、テーブルＴ１と同様に、テーブルＴ２〜Ｔ４を設定する。
【００７２】
周波数調整回路ＦＲＣ１は、動作状態信号ＯＳＳ１が示すパフォーマンス値をチェックする（Ｓ１０１）。周波数調整回路ＦＲＣ１は、動作状態信号ＯＳＳ１が示すパフォーマンス値とテーブルＴ１とを比較する（Ｓ１０２）。動作状態信号ＯＳＳ１が示すパフォーマンス値がテーブルＴ１におけるパフォーマンス値の最大値（ポイントＰ５のパフォーマンス値）より大きい場合（Ｓ１０３においてＹＥＳ）、ステップＳ１１１に進む。動作状態信号ＯＳＳ１が示すパフォーマンス値がテーブルＴ１におけるパフォーマンス値の最大値より大きくない場合（Ｓ１０３においてＮＯ）、周波数調整回路ＦＲＣ１は、テーブルＴ１及び動作状態信号ＯＳＳ１が示すパフォーマンス値に基づいてクロックＣＫ１の周波数を設定する（Ｓ１０５）。ステップＳ１０５の後、ステップＳ１０１に戻る。
【００７３】
周波数調整回路ＦＲＣ２は、動作状態信号ＯＳＳ２が示すパフォーマンス値をチェックする（Ｓ１１１）。周波数調整回路ＦＲＣ２は、動作状態信号ＯＳＳ２が示すパフォーマンス値とテーブルＴ２とを比較する（Ｓ１１２）。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最大値（ポイントＰ５のパフォーマンス値）より大きい場合（Ｓ１１３においてＹＥＳ）、ステップＳ１２１に進む。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最大値より大きくない場合（Ｓ１１３においてＮＯ）、ステップＳ１１４に進む。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最小値（ポイントＰ０のパフォーマンス値）より小さい場合（Ｓ１１４においてＹＥＳ）、ステップＳ１０１に戻る。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最小値より小さくない場合（Ｓ１１４においてＮＯ）、周波数調整回路ＦＲＣ２は、テーブルＴ２及び動作状態信号ＯＳＳ２が示すパフォーマンス値に基づいてクロックＣＫ２の周波数を設定する（Ｓ１１５）。ステップＳ１１５の後、ステップＳ１１１に戻る。
【００７４】
周波数調整回路ＦＲＣ３は、動作状態信号ＯＳＳ３が示すパフォーマンス値をチェックする（Ｓ１２１）。周波数調整回路ＦＲＣ３は、動作状態信号ＯＳＳ３が示すパフォーマンス値とテーブルＴ３とを比較する（Ｓ１２１）。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最大値（ポイントＰ５のパフォーマンス値）より大きい場合（Ｓ１２３においてＹＥＳ）、ステップＳ１３１に進む。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最大値より大きくない場合（Ｓ１２３においてＮＯ）、ステップＳ１２４に進む。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最小値（ポイントＰ０のパフォーマンス値）より小さい場合（Ｓ１２４においてＹＥＳ）、ステップＳ１１１に戻る。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最小値より小さくない場合（Ｓ１２４においてＮＯ）、周波数調整回路ＦＲＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３が示すパフォーマンス値に基づいてクロックＣＫ３の周波数を設定する（Ｓ１２５）。ステップＳ１２５の後、ステップＳ１２１に戻る。
【００７５】
周波数調整回路ＦＲＣ４は、動作状態信号ＯＳＳ４が示すパフォーマンス値をチェックする（Ｓ１３１）。周波数調整回路ＦＲＣ４は、動作状態信号ＯＳＳ４が示すパフォーマンス値とテーブルＴ４とを比較する（Ｓ１３１）。動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最小値（ポイントＰ０のパフォーマンス値）より小さい場合（Ｓ１３４においてＹＥＳ）、ステップＳ１２１に戻る。動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最小値より小さくない場合（Ｓ１３４においてＮＯ）、周波数調整回路ＦＲＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４が示すパフォーマンス値に基づいてクロックＣＫ４の周波数を設定する（Ｓ１３５）。ステップＳ１３５の後、ステップＳ１３１に戻る。
【００７６】
図１６Ａ〜１６Ｄを参照して、コア１〜４におけるクロック制御の連携を更に説明する。
【００７７】
図１６Ａは、周波数調整回路ＦＲＣ１の状態遷移図である。周波数調整回路ＦＲＣ１は、状態Ｓ１０、Ｓ１１、Ｓ１２をとることができる。初期状態である状態Ｓ１０において、周波数調整回路ＦＲＣ１は、ステップＳ１００で説明したようにテーブルＴ１を設定する。テーブルＴ１の設定が終了すると、周波数調整回路ＦＲＣ１は、状態Ｓ１０から状態Ｓ１１に切り替わる。
【００７８】
状態１１において、周波数調整回路ＦＲＣ１は、ステップＳ１０１〜Ｓ１０５を繰り返し実行して、クロックＣＫ１の周波数をテーブルＴ１及び動作状態信号ＯＳＳ１に基づいて制御する。状態１１では、クロックＣＫ１の周波数は、動作状態信号ＯＳＳ１が示すパフォーマンス値の変化に従って変動する。ここで、アプリケーションプロセッサ６０１の負荷が増大すると動作状態信号ＯＳＳ１が示すパフォーマンス値が大きくなる。動作状態信号ＯＳＳ１が示すパフォーマンス値がテーブルＴ１におけるパフォーマンス値の最大値（設定の上限であるポイントＰ５のパフォーマンス値）より大きい場合、コア１だけでは処理が追いつかないほどに負荷が増大していると判断できる。したがって、動作状態信号ＯＳＳ１が示すパフォーマンス値がテーブルＴ１におけるパフォーマンス値の最大値より大きいことを検出すると（Ｓ１０３においてＹＥＳ）、周波数調整回路ＦＲＣ１は、切り替え要求ＳＷ１１を周波数調整回路ＦＲＣ２に出力し、状態Ｓ１１から状態Ｓ１２に切り替わる。
【００７９】
状態１２において、周波数調整回路ＦＲＣ１は、クロックＣＫ１の周波数をテーブルＴ１における周波数値の最大値（ポイントＰ５の周波数値）に固定する。周波数調整回路ＦＲＣ２から切り替え要求ＳＷ２１を受信すると、周波数調整回路ＦＲＣ１は、状態Ｓ１２から状態Ｓ１１に切り替わる。
【００８０】
図１６Ｂは、周波数調整回路ＦＲＣ２の状態遷移図である。周波数調整回路ＦＲＣ２は、状態Ｓ２０、Ｓ２９、Ｓ２１、Ｓ２２をとることができる。初期状態である状態Ｓ２０において、周波数調整回路ＦＲＣ２は、ステップＳ１００で説明したようにテーブルＴ２を設定する。テーブルＴ２の設定が終了すると、周波数調整回路ＦＲＣ２は、状態Ｓ２０から状態Ｓ２９に切り替わる。状態Ｓ２９において、周波数調整回路ＦＲＣ２は、クロック周波数制御回路ＣＦＣＣ２にクロックＣＫ２を供給させない。周波数調整回路ＦＲＣ１から切り替え要求ＳＷ１１を受信すると、周波数調整回路ＦＲＣ２は、クロック周波数制御回路ＣＦＣＣ２にコア２へのクロックＣＫ２の供給を開始させ、状態Ｓ２９から状態Ｓ２１に切り替わる。
【００８１】
状態２１において、周波数調整回路ＦＲＣ２は、ステップＳ１１１〜Ｓ１１５を繰り返し実行して、クロックＣＫ２の周波数をテーブルＴ２及び動作状態信号ＯＳＳ２に基づいて制御する。状態２１では、クロックＣＫ２の周波数は、動作状態信号ＯＳＳ２が示すパフォーマンス値の変化に従って変動する。ここで、アプリケーションプロセッサ６０１の負荷が増大すると動作状態信号ＯＳＳ２が示すパフォーマンス値が大きくなる。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最大値（設定の上限であるポイントＰ５のパフォーマンス値）より大きい場合、コア１及び２だけでは処理が追いつかないほどに負荷が増大していると判断できる。したがって、動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最大値より大きいことを検出すると（Ｓ１１３においてＹＥＳ）、周波数調整回路ＦＲＣ２は、切り替え要求ＳＷ１２を周波数調整回路ＦＲＣ３に出力し、状態Ｓ２１から状態Ｓ２２に切り替わる。
【００８２】
一方、アプリケーションプロセッサ６０１の負荷が低下すると動作状態信号ＯＳＳ２が示すパフォーマンス値が小さくなる。動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最小値（設定の下限であるポイントＰ０のパフォーマンス値）より小さい場合、コア１だけで処理が可能な程度に負荷が低下していると判断できる。したがって、動作状態信号ＯＳＳ２が示すパフォーマンス値がテーブルＴ２におけるパフォーマンス値の最小値より小さいことを検出すると（Ｓ１１４においてＹＥＳ）、周波数調整回路ＦＲＣ２は、切り替え要求ＳＷ２１を周波数調整回路ＦＲＣ１に出力し、状態Ｓ２１から状態Ｓ２９に切り替わる。
【００８３】
状態２２において、周波数調整回路ＦＲＣ２は、クロックＣＫ２の周波数をテーブルＴ２における周波数値の最大値（ポイントＰ５の周波数値）に固定する。周波数調整回路ＦＲＣ３から切り替え要求ＳＷ２２を受信すると、周波数調整回路ＦＲＣ２は、状態Ｓ２２から状態Ｓ２１に切り替わる。
【００８４】
図１６Ｃは、周波数調整回路ＦＲＣ３の状態遷移図である。周波数調整回路ＦＲＣ３は、状態Ｓ３０、Ｓ３９、Ｓ３１、Ｓ３２をとることができる。初期状態である状態Ｓ３０において、周波数調整回路ＦＲＣ３は、ステップＳ１００で説明したようにテーブルＴ３を設定する。テーブルＴ３の設定が終了すると、周波数調整回路ＦＲＣ３は、状態Ｓ３０から状態Ｓ３９に切り替わる。状態Ｓ３９において、周波数調整回路ＦＲＣ３は、クロック周波数制御回路ＣＦＣＣ３にクロックＣＫ３を供給させない。周波数調整回路ＦＲＣ２から切り替え要求ＳＷ１２を受信すると、周波数調整回路ＦＲＣ３は、クロック周波数制御回路ＣＦＣＣ３にコア３へのクロックＣＫ３の供給を開始させ、状態Ｓ３９から状態Ｓ３１に切り替わる。
【００８５】
状態３１において、周波数調整回路ＦＲＣ３は、ステップＳ１２１〜Ｓ１２５を繰り返し実行して、クロックＣＫ３の周波数をテーブルＴ３及び動作状態信号ＯＳＳ３に基づいて制御する。状態３１では、クロックＣＫ３の周波数は、動作状態信号ＯＳＳ３が示すパフォーマンス値の変化に従って変動する。ここで、アプリケーションプロセッサ６０１の負荷が増大すると動作状態信号ＯＳＳ３が示すパフォーマンス値が大きくなる。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最大値（設定の上限であるポイントＰ５のパフォーマンス値）より大きい場合、コア１〜３だけでは処理が追いつかないほどに負荷が増大していると判断できる。したがって、動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最大値より大きいことを検出すると（Ｓ１２３においてＹＥＳ）、周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ１３を周波数調整回路ＦＲＣ４に出力し、状態Ｓ３１から状態Ｓ３２に切り替わる。
【００８６】
一方、アプリケーションプロセッサ６０１の負荷が低下すると動作状態信号ＯＳＳ３が示すパフォーマンス値が小さくなる。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最小値（設定の下限であるポイントＰ０のパフォーマンス値）より小さい場合、コア１及び２だけで処理が可能な程度に負荷が低下していると判断できる。したがって、動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３におけるパフォーマンス値の最小値より小さいことを検出すると（Ｓ１２４においてＹＥＳ）、周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ２２を周波数調整回路ＦＲＣ２に出力し、状態Ｓ３１から状態Ｓ３９に切り替わる。
【００８７】
状態３２において、周波数調整回路ＦＲＣ３は、クロックＣＫ３の周波数をテーブルＴ３における周波数値の最大値（ポイントＰ５の周波数値）に固定する。周波数調整回路ＦＲＣ４から切り替え要求ＳＷ２３を受信すると、周波数調整回路ＦＲＣ３は、状態Ｓ３２から状態Ｓ３１に切り替わる。
【００８８】
図１６Ｄは、周波数調整回路ＦＲＣ４の状態遷移図である。周波数調整回路ＦＲＣ４は、状態Ｓ４０、Ｓ４９、Ｓ４１をとることができる。初期状態である状態Ｓ４０において、周波数調整回路ＦＲＣ４は、ステップＳ１００で説明したようにテーブルＴ４を設定する。テーブルＴ４の設定が終了すると、周波数調整回路ＦＲＣ４は、状態Ｓ４０から状態Ｓ４９に切り替わる。状態Ｓ４９において、周波数調整回路ＦＲＣ４は、クロック周波数制御回路ＣＦＣＣ４にクロックＣＫ４を供給させない。周波数調整回路ＦＲＣ３から切り替え要求ＳＷ１３を受信すると、周波数調整回路ＦＲＣ４は、クロック周波数制御回路ＣＦＣＣ４にコア３へのクロックＣＫ４の供給を開始させ、状態Ｓ４９から状態Ｓ４１に切り替わる。
【００８９】
状態４１において、周波数調整回路ＦＲＣ４は、ステップＳ１３１〜Ｓ１３５を繰り返し実行して、クロックＣＫ４の周波数をテーブルＴ４及び動作状態信号ＯＳＳ４に基づいて制御する。状態４１では、クロックＣＫ４の周波数は、動作状態信号ＯＳＳ４が示すパフォーマンス値の変化に従って変動する。ここで、アプリケーションプロセッサ６０１の負荷が低下すると動作状態信号ＯＳＳ４が示すパフォーマンス値が小さくなる。動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最小値（設定の下限であるポイントＰ０のパフォーマンス値）より小さい場合、コア１〜３だけで処理が可能な程度に負荷が低下していると判断できる。したがって、動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最小値より小さいことを検出すると（Ｓ１３４においてＹＥＳ）、周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ２３を周波数調整回路ＦＲＣ３に出力し、状態Ｓ４１から状態Ｓ４９に切り替わる。
【００９０】
＜実施の形態２におけるテーブルの設定例＞
次に、本実施の形態におけるテーブルＴ１〜Ｔ４の設定例を説明する。
【００９１】
図１７Ａは、テーブルＴ１に設定されたパフォーマンス値と周波数値の対応関係を示すグラフである。ポイントＰ０〜Ｐ５が塗りつぶされた円で示されている。軽い負荷を省電力タイプのコア１だけで処理できるように、テーブルＴ１はクロックＣＫ１の周波数が上がりやすいように設定されている。
【００９２】
図１７Ｂは、テーブルＴ２におけるパフォーマンス値と周波数値の対応関係を示すグラフである。ポイントＰ０〜Ｐ５が塗りつぶされた円で示されている。ポイントＰ０からポイントＰ４までの区間において、周波数値はパフォーマンス値の増加に対してリニアに増加する。このように、テーブルＴ２は、クロックＣＫ２の周波数が上がりやすいように設定されている。ただし、可能な限り省電力タイプのコア１及び２だけで負荷を処理できるように、ポイントＰ５のパフォーマンス値を大きい値に設定して切り替え要求ＳＷ１２の発生を抑制している。
【００９３】
図１７Ｃは、テーブルＴ３に設定されたパフォーマンス値と周波数値の対応関係を示すグラフである。ポイントＰ０〜Ｐ５が塗りつぶされた円で示されている。高性能ではあるが消費電力が大きいコア３及び省電力タイプのコア１、２だけで負荷を処理する目的で、クロックＣＫ３の設定周波数の上限（ポイントＰ２〜Ｐ５の周波数値）を制限し、切り替え要求ＳＷ１３の発生を抑制している。
【００９４】
図１７Ｄは、テーブルＴ４に設定されたパフォーマンス値と周波数値の対応関係を示すグラフである。ポイントＰ０〜Ｐ５が塗りつぶされた円で示されている。コア４の動作時間を可能な限り短縮する目的で、テーブルＴ４はクロックＣＫ４の周波数が上がりやすいように設定されている。
【００９５】
このように、特性が互いに異なるＣＰＵ１０及び２０について、消費電力低下を目的としたクロック周波数制御を実行することができる。
【００９６】
尚、本実施の形態において、動作状態信号ＯＳＳ１〜ＯＳＳ４は、コア１〜４のアイドル状態を示してもよい。この場合、周波数調整回路ＦＲＣ１〜ＦＲＣ４は、実施の形態１の変形例にかかる周波数調整回路ＦＲＣ１と同様の処理により周波数制御信号ＦＣＳ１〜ＦＣＳ４を出力する。
【００９７】
本実施の形態によれば、コア１〜４のクロック制御を連携させることができる。言い換えると、アプリケーションプロセッサ６０１の負荷の変化に応じて処理を実行するＣＰＵコアを増減することができる。したがって、アプリケーションプロセッサ６０１全体のパフォーマンスをダイナミックに変動する負荷に良好に追従させることができる。更に、アプリケーションプロセッサ６０１に含まれるＣＰＵコアが増加しても増加したＣＰＵコアに対応した周波数調整回路及びクロック周波数制御回路を追加するだけでよいので、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１は拡張性に優れている。更に、省電力タイプのコア１及び２と高性能タイプのコア３及び４の役割分担が適正化されるため、アプリケーションプロセッサ６０１全体のパフォーマンスをダイナミックに変動する負荷に良好に追従させながら、アプリケーションプロセッサ６０１全体の消費電力を抑制することができる。
【００９８】
図１８を参照して、本実施の形態による他の効果を説明する。図１８は、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１全体におけるパフォーマンスとパワーの関係を示すグラフである。状態Ｓ１１、Ｓ２９、Ｓ３９、Ｓ４９に対応する処理モード、状態Ｓ１２、Ｓ２１、Ｓ３９、Ｓ４９に対応する処理モード、状態Ｓ１２、Ｓ２２、Ｓ３１、Ｓ４９に対応する処理モード、状態Ｓ１２、Ｓ２２、Ｓ３２、Ｓ５１に対応する処理モード、処理モード間の切り替えが示されている。アプリケーションプロセッサ６０１全体の電流限界としてのパワーリミットがある場合、パワーリミットに対応するパフォーマンスリミットをテーブルに設定してパフォーマンスリミットに対応する周波数値以上にクロックの周波数が上がらないようにすることが可能である。これにより、定義することが難しいアプリケーションプロセッサ６０１全体の電流上限を数値的に定義することができる。
【００９９】
（実施の形態３）
次に、実施の形態３にかかる半導体装置であるアプリケーションプロセッサ６０１を説明する。実施の形態３では、ＣＰＵ２０のコア３、４の動作電圧の制御が追加される。以下において、実施の形態２と共通する事項の説明は省略される場合がある。
【０１００】
＜実施の形態３にかかる半導体装置の構成＞
図１９を参照して、実施の形態３にかかる半導体装置であるアプリケーションプロセッサ６０１の構成について説明する。アプリケーションプロセッサ６０１は、ＣＰＵ１０及び２０を含む。ＣＰＵ１０及び２０の構成は実施の形態２と同様である。
【０１０１】
アプリケーションプロセッサ６０１は、周波数調整回路ＦＲＣ１〜ＦＲＣ４、クロック周波数制御回路ＣＦＣＣ１〜ＣＦＣＣ４を含む。周波数調整回路ＦＲＣ１、ＦＲＣ２の構成は、実施の形態２と同様である。クロック周波数制御回路ＣＦＣＣ１〜ＣＦＣＣ４の構成は、実施の形態２と同様である。周波数調整回路ＦＲＣ３、ＦＲＣ４の構成は、実施の形態２と異なる。電源制御回路ＰＭＣは、コア３に動作電圧を供給する電源制御部５、コア４に動作電圧を供給する電源制御部６を含む。
【０１０２】
図２０Ａを参照して、周波数調整回路ＦＲＣ３の構成を説明する。周波数調整回路ＦＲＣ３は、クロックＣＫ３の周波数を制御するためのテーブルＴ３及びＴ３０、切り替え回路ＳＣ３を含む。テーブルＴ３及びＴ３０は、それぞれ、コア３のパフォーマンス値とクロックＣＫ３の周波数値を対応付けている。テーブルＴ３におけるパフォーマンス値と周波数値の対応関係は、テーブルＴ３０におけるパフォーマンス値と周波数値の対応関係と異なっている。テーブル３は、後述する通常電圧ＮＶに対応している。テーブルＴ３０は、後述するオーバードライブ電圧ＯＤＶに対応している。
【０１０３】
図２０Ｂを参照して、周波数調整回路ＦＲＣ４の構成を説明する。周波数調整回路ＦＲＣ４は、クロックＣＫ４の周波数を制御するためのテーブルＴ４及びＴ４０、切り替え回路ＳＣ４を含む。テーブルＴ４及びＴ４０は、それぞれ、コア４のパフォーマンス値とクロックＣＫ４の周波数値を対応付けている。テーブルＴ４におけるパフォーマンス値と周波数値の対応関係は、テーブルＴ４０におけるパフォーマンス値と周波数値の対応関係と異なっている。テーブル４は、後述する通常電圧ＮＶに対応している。テーブルＴ４０は、後述するオーバードライブ電圧ＯＤＶに対応している。
【０１０４】
＜実施の形態３にかかる半導体装置の動作＞
次に、本実施の形態にかかる半導体装置であるアプリケーションプロセッサ６０１の動作を説明する。
【０１０５】
ＣＰＵ１０、周波数調整回路ＦＲＣ１及びＦＲＣ２、クロック周波数制御回路ＣＦＣＣ１及びＣＦＣＣ２の動作は実施の形態２と同様である。
【０１０６】
図１９及び図２０Ａを参照して、クロック周波数制御回路ＣＦＣＣ３は、ＣＰＵ２０のコア３にクロックＣＫ３を供給する。コア３は、クロックＣＫ３に基づいて処理を実行する。コア３は、コア３の動作状態を示す動作状態信号ＯＳＳ３を出力する。動作状態信号ＯＳＳ３は、コア３のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ３は、一の制御状態において、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、クロックＣＫ３の周波数を制御する。具体的には、周波数調整回路ＦＲＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、周波数制御信号ＦＣＳ３を出力する。周波数調整回路ＦＲＣ３は、他の制御状態において、テーブルＴ３０及び動作状態信号ＯＳＳ３に基づいて、クロックＣＫ３の周波数を制御する。具体的には、周波数調整回路ＦＲＣ３は、テーブルＴ３０及び動作状態信号ＯＳＳ３に基づいて、周波数制御信号ＦＣＳ３を出力する。周波数制御信号ＦＣ３は、クロックＣＫ３の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ３は、周波数制御信号ＦＣＳ３に基づいてクロックＣＫ３の周波数を制御する。切り替え回路ＳＣ３は、テーブルＴ３及び動作状態信号ＯＳＳ３に基づいて、切り替え要求ＳＷ１３、ＳＷ２２を出力する。切り替え回路ＳＣ３は、テーブルＴ３０及び動作状態信号ＯＳＳ３に基づいて、切り替え要求ＳＷ１５、ＳＷ２４、電圧ダウン要求ＤＷ３を出力する。周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ１２、ＳＷ２３、ＳＷ２５に基づいて、制御状態を切り替える。周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ１４に基づいて、制御状態を切り替え、電圧アップ要求ＵＰ３を出力する。
【０１０７】
図１９及び図２０Ｂを参照して、クロック周波数制御回路ＣＦＣＣ４は、ＣＰＵ２０のコア４にクロックＣＫ４を供給する。コア４は、クロックＣＫ４に基づいて処理を実行する。コア４は、コア４の動作状態を示す動作状態信号ＯＳＳ４を出力する。動作状態信号ＯＳＳ４は、コア４のパフォーマンスを示すパフォーマンスモニタ信号である。周波数調整回路ＦＲＣ４は、一の制御状態において、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、クロックＣＫ４の周波数を制御する。具体的には、周波数調整回路ＦＲＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、周波数制御信号ＦＣＳ４を出力する。周波数調整回路ＦＲＣ４は、他の制御状態において、テーブルＴ４０及び動作状態信号ＯＳＳ４に基づいて、クロックＣＫ４の周波数を制御する。具体的には、周波数調整回路ＦＲＣ４は、テーブルＴ４０及び動作状態信号ＯＳＳ４に基づいて、周波数制御信号ＦＣＳ４を出力する。周波数制御信号ＦＣ４は、クロックＣＫ４の設定周波数を示す。クロック周波数制御回路ＣＦＣＣ４は、周波数制御信号ＦＣＳ４に基づいてクロックＣＫ４の周波数を制御する。切り替え回路ＳＣ４は、テーブルＴ４及び動作状態信号ＯＳＳ４に基づいて、切り替え要求ＳＷ１４、ＳＷ２３を出力する。切り替え回路ＳＣ４は、テーブルＴ４０及び動作状態信号ＯＳＳ４に基づいて、切り替え要求ＳＷ２５、電圧ダウン要求ＤＷ４を出力する。周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ１３、ＳＷ２４に基づいて、制御状態を切り替える。周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ１５に基づいて、制御状態を切り替え、電圧アップ要求ＵＰ４を出力する。
【０１０８】
図１９を参照して、電源制御部５は、電圧アップ要求ＵＰ３に基づいて、コア３に供給する動作電圧を通常電圧ＮＶに制御する状態からオーバードライブ電圧ＯＤＶに制御する状態に切り替わる。ここで、オーバードライブ電圧ＯＤＶは通常電圧ＮＶより高い。電源制御部５は、電圧ダウン要求ＤＷ３に基づいて、コア３に供給する動作電圧をオーバードライブ電圧ＯＤＶに制御する状態から通常電圧ＮＶに制御する状態に切り替わる。
【０１０９】
図１９を参照して、電源制御部６は、電圧アップ要求ＵＰ４に基づいて、コア４に供給する動作電圧を通常電圧ＮＶに制御する状態からオーバードライブ電圧ＯＤＶに制御する状態に切り替わる。ここで、オーバードライブ電圧ＯＤＶは通常電圧ＮＶより高い。電源制御部６は、電圧ダウン要求ＤＷ４に基づいて、コア４に供給する動作電圧をオーバードライブ電圧ＯＤＶに制御する状態から通常電圧ＮＶに制御する状態に切り替わる。
【０１１０】
図２１Ａを参照して、周波数調整回路ＦＲＣ３の動作を更に説明する。図２１Ａは、周波数調整回路ＦＲＣ３の状態遷移図である。周波数調整回路ＦＲＣ３は、状態Ｓ３０、Ｓ３９、Ｓ３１〜Ｓ３４をとることができる。初期状態である状態Ｓ３０において、周波数調整回路ＦＲＣ３は、テーブルＴ３及びＴ３０を設定する。状態Ｓ３９、Ｓ３１、Ｓ３２、状態Ｓ３０と状態Ｓ３９の間の切り替え、状態Ｓ３９と状態Ｓ３１の間の切り替え、状態Ｓ３１と状態Ｓ３２の間の切り替えは、実施の形態２と同様である。周波数調整回路ＦＲＣ４から切り替え要求ＳＷ１４を受信すると、周波数調整回路ＦＲＣ３は、電圧アップ要求ＵＰ３を電源制御部５に出力し、状態Ｓ３２から状態Ｓ３３に切り替わる。
【０１１１】
状態Ｓ３３において、周波数調整回路ＦＲＣ３は、クロックＣＫ３の周波数をテーブルＴ３０及び動作状態信号ＯＳＳ３に基づいて制御する。状態３３では、クロックＣＫ３の周波数は、動作状態信号ＯＳＳ３が示すパフォーマンス値の変化に従って変動する。周波数調整回路ＦＲＣ３が状態Ｓ３３の場合のコア３の処理能力は、周波数調整回路ＦＲＣ３が状態Ｓ３１の場合のコア３の処理能力より高い。ここで、アプリケーションプロセッサ６０１の負荷が増大すると動作状態信号ＯＳＳ３が示すパフォーマンス値が大きくなる。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３０におけるパフォーマンス値の最大値より大きい場合、アプリケーションプロセッサ６０１の現在の処理能力では処理が追いつかないほどに負荷が増大していると判断できる。したがって、動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３０におけるパフォーマンス値の最大値より大きいことを検出すると、周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ１５を周波数調整回路ＦＲＣ４に出力し、状態Ｓ３３から状態Ｓ３４に切り替わる。
【０１１２】
一方、アプリケーションプロセッサ６０１の負荷が低下すると動作状態信号ＯＳＳ３が示すパフォーマンス値が小さくなる。動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３０におけるパフォーマンス値の最小値より小さい場合、アプリケーションプロセッサ６０１の現在の処理能力が負荷に対して過剰になっていると判断できる。したがって、動作状態信号ＯＳＳ３が示すパフォーマンス値がテーブルＴ３０におけるパフォーマンス値の最小値より小さいことを検出すると、周波数調整回路ＦＲＣ３は、切り替え要求ＳＷ２４を周波数調整回路ＦＲＣ４に出力し、電圧ダウン要求ＤＷ３を電源制御部５に出力し、状態Ｓ３３から状態Ｓ３２に切り替わる。
【０１１３】
状態３４において、周波数調整回路ＦＲＣ３は、クロックＣＫ３の周波数をテーブルＴ３０における周波数値の最大値に固定する。周波数調整回路ＦＲＣ３が状態Ｓ３４の場合のコア３の処理能力は、周波数調整回路ＦＲＣ３が状態Ｓ３２の場合のコア３の処理能力より高い。波数調整回路ＦＲＣ４から切り替え要求ＳＷ２５を受信すると、周波数調整回路ＦＲＣ３は、状態Ｓ３４から状態Ｓ３３に切り替わる。
【０１１４】
図２１Ｂを参照して、周波数調整回路ＦＲＣ４の動作を更に説明する。図２１Ｂは、周波数調整回路ＦＲＣ４の状態遷移図である。周波数調整回路ＦＲＣ４は、状態Ｓ４０、Ｓ４９、Ｓ４１〜Ｓ４３をとることができる。初期状態である状態Ｓ４０において、周波数調整回路ＦＲＣ４は、テーブルＴ４及びＴ４０を設定する。状態Ｓ４９、Ｓ４１、状態Ｓ４０と状態Ｓ４９の間の切り替え、状態Ｓ４９と状態Ｓ４１の間の切り替えは、実施の形態２と同様である。
【０１１５】
状態Ｓ４１において、アプリケーションプロセッサ６０１の負荷が増大すると動作状態信号ＯＳＳ４が示すパフォーマンス値が大きくなる。動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最大値より大きい場合、アプリケーションプロセッサ６０１の現在の処理能力では処理が追いつかないほどに負荷が増大していると判断できる。したがって、動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４におけるパフォーマンス値の最大値より大きいことを検出すると、周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ１４を周波数調整回路ＦＲＣ３に出力し、状態Ｓ４１から状態Ｓ４２に切り替わる。
【０１１６】
状態４２において、周波数調整回路ＦＲＣ４は、クロックＣＫ４の周波数をテーブルＴ４における周波数値の最大値に固定する。波数調整回路ＦＲＣ３から切り替え要求ＳＷ１５を受信すると、周波数調整回路ＦＲＣ４は、電圧アップ要求ＵＰ４を電源制御部６に出力し、状態Ｓ４２から状態Ｓ４３に切り替わる。波数調整回路ＦＲＣ３から切り替え要求ＳＷ２４を受信すると、周波数調整回路ＦＲＣ４は、状態Ｓ４２から状態Ｓ４１に切り替わる。
【０１１７】
状態Ｓ４３において、周波数調整回路ＦＲＣ４は、クロックＣＫ４の周波数をテーブルＴ４０及び動作状態信号ＯＳＳ４に基づいて制御する。状態４３では、クロックＣＫ４の周波数は、動作状態信号ＯＳＳ４が示すパフォーマンス値の変化に従って変動する。周波数調整回路ＦＲＣ４が状態Ｓ４３の場合のコア４の処理能力は、周波数調整回路ＦＲＣ４が状態Ｓ４１の場合のコア４の処理能力より高い。ここで、アプリケーションプロセッサ６０１の負荷が低下すると動作状態信号ＯＳＳ４が示すパフォーマンス値が小さくなる。動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４０におけるパフォーマンス値の最小値より小さい場合、アプリケーションプロセッサ６０１の現在の処理能力が負荷に対して過剰になっていると判断できる。したがって、動作状態信号ＯＳＳ４が示すパフォーマンス値がテーブルＴ４０におけるパフォーマンス値の最小値より小さいことを検出すると、周波数調整回路ＦＲＣ４は、切り替え要求ＳＷ２５を周波数調整回路ＦＲＣ３に出力し、電圧ダウン要求ＤＷ４を電源制御部６に出力し、状態Ｓ４３から状態Ｓ４２に切り替わる。
【０１１８】
図２１Ｃを参照して、電源制御部５の動作を更に説明する。図２１Ｃは、電源制御部５の状態遷移図である。電源制御部５は、状態Ｓ５１、Ｓ５２をとることができる。初期状態である状態Ｓ５１において、電源制御部５は、コア３に供給する動作電圧を通常電圧ＮＶに制御する。周波数調整回路ＦＲＣ３から電圧アップ要求ＵＰ３を受信すると、電源制御部５は、状態Ｓ５１から状態Ｓ５２に切り替わる。状態Ｓ５２において、電源制御部５は、コア３に供給する動作電圧をオーバードライブ電圧ＯＤＶに制御する。周波数調整回路ＦＲＣ３から電圧ダウン要求ＤＷ３を受信すると、電源制御部５は、状態Ｓ５２から状態Ｓ５１に切り替わる。したがって、周波数調整回路ＦＲＣ３が状態３１の場合と状態３２の場合の両方において、電源制御部５は状態Ｓ５１である。周波数調整回路ＦＲＣ３が状態３３の場合と状態３４の場合の両方において、電源制御部５は状態Ｓ５２である。
【０１１９】
図２１Ｄを参照して、電源制御部６の動作を更に説明する。図２１Ｄは、電源制御部６の状態遷移図である。電源制御部６は、状態Ｓ６１、Ｓ６２をとることができる。初期状態である状態Ｓ６１において、電源制御部６は、コア４に供給する動作電圧を通常電圧ＮＶに制御する。周波数調整回路ＦＲＣ４から電圧アップ要求ＵＰ４を受信すると、電源制御部６は、状態Ｓ６１から状態Ｓ６２に切り替わる。状態Ｓ６２において、電源制御部６は、コア４に供給する動作電圧をオーバードライブ電圧ＯＤＶに制御する。周波数調整回路ＦＲＣ４から電圧ダウン要求ＤＷ４を受信すると、電源制御部６は、状態Ｓ６２から状態Ｓ６１に切り替わる。したがって、周波数調整回路ＦＲＣ４が状態４１の場合と状態４２の場合の両方において、電源制御部６は状態Ｓ６１である。周波数調整回路ＦＲＣ４が状態４３の場合において、電源制御部６は状態Ｓ６２である。
【０１２０】
尚、本実施の形態において、動作状態信号ＯＳＳ１〜ＯＳＳ４は、コア１〜４のアイドル状態を示してもよい。この場合、周波数調整回路ＦＲＣ１〜ＦＲＣ４は、実施の形態１の変形例にかかる周波数調整回路ＦＲＣ１と同様の処理により周波数制御信号ＦＣＳ１〜ＦＣＳ４を出力する。
【０１２１】
本実施の形態によれば、複数のＣＰＵコアについてのクロック制御及び動作電圧制御を連携させることで、アプリケーションプロセッサ６０１全体のパフォーマンスをダイナミックに変動する負荷に更に良好に追従させることができる。
【０１２２】
＜変更例等＞
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、テーブルＴ１〜Ｔ４、Ｔ３０、Ｔ４０とは別の閾値と動作状態信号ＯＳＳ１〜ＯＳＳ４との比較に基づいて制御状態の切り替えを行ってもよい。
【符号の説明】
【０１２３】
５００  無線通信端末
ＰＭＣ  電源制御回路
６０１  アプリケーションプロセッサ
１０、２０  ＣＰＵ
１〜４  コア
１１  レジスタ
１３、１５  計算器
ＦＲＣ１〜ＦＲＣ４  周波数調整回路
ＣＦＣＣ１〜ＣＦＣＣ４  クロック周波数制御回路
ＡＴＲ１  動作率（Ａｃｔｉｖｅ  Ｔｉｍｅ  Ｒａｔｉｏ）
ＣＫ１〜ＣＫ４  クロック
ＯＳＳ１〜ＯＳＳ４  動作状態信号
ＳＷ１１〜ＳＷ１５、ＳＷ２１〜ＳＷ２５  切り替え要求
Ｔ１〜Ｔ４、Ｔ３０、Ｔ４０  テーブル
ＵＰ３、ＵＰ４  電圧アップ要求
ＤＷ３、ＤＷ４  電圧ダウン要求
ＮＶ  通常電圧
ＯＤＶ  オーバードライブ電圧
【図１】
2014146095.tif 000003
【図２】
2014146095.tif 000004
【図３Ａ】
2014146095.tif 000005
【図３Ｂ】
2014146095.tif 000006
【図４】
2014146095.tif 000007
【図５】
2014146095.tif 000008
【図６】
2014146095.tif 000009
【図７】
2014146095.tif 000010
【図８】
2014146095.tif 000011
【図９】
2014146095.tif 000012
【図１０】
2014146095.tif 000013
【図１１Ａ】
2014146095.tif 000014
【図１１Ｂ】
2014146095.tif 000015
【図１１Ｃ】
2014146095.tif 000016
【図１１Ｄ】
2014146095.tif 000017
【図１２】
2014146095.tif 000018
【図１３】
2014146095.tif 000019
【図１４】
2014146095.tif 000020
【図１５】
2014146095.tif 000021
【図１６Ａ】
2014146095.tif 000022
【図１６Ｂ】
2014146095.tif 000023
【図１６Ｃ】
2014146095.tif 000024
【図１６Ｄ】
2014146095.tif 000025
【図１７Ａ】
2014146095.tif 000026
【図１７Ｂ】
2014146095.tif 000027
【図１７Ｃ】
2014146095.tif 000028
【図１７Ｄ】
2014146095.tif 000029
【図１８】
2014146095.tif 000030
【図１９】
2014146095.tif 000031
【図２０Ａ】
2014146095.tif 000032
【図２０Ｂ】
2014146095.tif 000033
【図２１Ａ】
2014146095.tif 000034
【図２１Ｂ】
2014146095.tif 000035
【図２１Ｃ】
2014146095.tif 000036
【図２１Ｄ】
2014146095.tif 000037