(57)【特許請求の範囲】
【請求項１】
クロック信号を生成する位相ロックループ回路と、
電圧を生成する電源部と、
速度レベルに対応する周波数識別子及び電圧識別子の組みを複数記憶する速度レベルテーブルを有し、現在の速度レベルから目標の速度レベルへの変更が指示されると、前記現在の速度レベルに対応する前記周波数識別子が示す周波数から前記目標の速度レベルに対応する前記周波数識別子が示す周波数に前記位相ロックループ回路が生成するクロック信号の周波数を変更し、前記現在の速度レベルに対応する前記電圧識別子が示す電圧から前記目標の速度レベルに対応する前記電圧識別子が示す電圧に前記電源部が生成する電圧を変更するように制御する制御部とを有し、
前記制御部は、
前記周波数識別子と周波数情報とフラグの組みを複数記憶する周波数テーブルと、
前記電圧識別子及び電圧情報の組みを複数記憶する電圧テーブルと、
前記現在の速度レベルに対応する前記周波数識別子から前記目標の速度レベルに対応する前記周波数識別子まで周波数識別子の値をカウントする周波数カウンタと、
前記現在の速度レベルに対応する前記電圧識別子から前記目標の速度レベルに対応する前記電圧識別子まで電圧識別子の値をカウントする電圧カウンタと、
前記フラグに応じて、前記周波数カウンタによりカウントされた周波数識別子に対応する前記周波数情報を選択して前記位相ロックループ回路に出力する周波数セレクタと、
前記電圧カウンタによりカウントされた電圧識別子に対応する前記電圧情報を選択して前記電源部に出力する電圧セレクタとを有し、
前記制御部は、前記フラグに応じて、第１の変化量及び第２の変化量を決定し、前記現在の周波数から前記目標の周波数までのうちの第１の周波数範囲では前記第１の変化量で前記クロック信号の周波数を変化させ、前記現在の周波数から前記目標の周波数までのうちの第２の周波数範囲では前記第２の変化量で前記クロック信号の周波数を変化させることを特徴とする位相ロックループ回路制御装置。
【請求項２】
前記位相ロックループ回路制御装置は、
前記目標の速度レベルに対応する前記速度レベルテーブルの周波数識別子と前記周波数カウンタによりカウントされた周波数識別子とを比較する周波数比較器と、
前記目標の速度レベルに対応する前記速度レベルテーブルの電圧識別子と前記電圧カウンタによりカウントされた電圧識別子とを比較する電圧比較器とを有し、
前記周波数カウンタは、前記周波数比較器の比較結果に応じて、前記周波数識別子の値をカウントアップ又はカウントダウンし、
前記電圧カウンタは、前記電圧比較器の比較結果に応じて、前記電圧識別子の値をカウントアップ又はカウントダウンすることを特徴とする請求項１記載の位相ロックループ回路制御装置。
【請求項３】
前記制御部は、前記クロック信号の周波数が低くなるように変更する場合には、前記電源部が生成する電圧が低くなるように変更し、前記クロック信号の周波数が高くなるように変更する場合には、前記電源部が生成する電圧が高くなるように変更することを特徴とする請求項１又は２記載の位相ロックループ回路制御装置。
【請求項４】
前記制御部は、
前記速度レベルが遅くなるように前記速度レベルの変更が指示されると、前記クロック信号の周波数が低くなるように制御し、その後に、前記電源部が生成する電圧が低くなるように制御し、
前記速度レベルが速くなるように前記速度レベルの変更が指示されると、前記電源部が生成する電圧が高くなるように制御し、その後に、前記クロック信号の周波数が高くなるように制御することを特徴とする請求項３記載の位相ロックループ回路制御装置。
【請求項５】
前記制御部は、前記電源部の現在の電圧から前記電源部の目標の電圧まで同じ変化量で前記電源部の電圧を段階的に変化させることを特徴とする請求項１〜４のいずれか１項に記載の位相ロックループ回路制御装置。
【請求項６】
前記第１の周波数範囲及び前記第２の周波数範囲は、前記現在の周波数及び前記目標の周波数に応じて変化することを特徴とする請求項１〜５のいずれか１項に記載の位相ロックループ回路制御装置。
【請求項７】
前記周波数テーブルのフラグは、前記現在の周波数及び前記目標の周波数に応じて変化することを特徴とする請求項１〜６のいずれか１項に記載の位相ロックループ回路制御装置。
【請求項８】
前記第２の周波数範囲は、前記第１の周波数範囲より高い周波数の範囲であることを特徴とする請求項１〜７のいずれか１項に記載の位相ロックループ回路制御装置。
【請求項９】
前記第１の変化量は、前記第２の変化量より大きいことを特徴とする請求項１〜８のいずれか１項に記載の位相ロックループ回路制御装置。
【請求項１０】
クロック信号を生成する位相ロックループ回路と、
電圧を生成する電源部と、
制御部とを有する位相ロックループ回路の制御方法であって、
前記制御部は、
速度レベルに対応する周波数識別子及び電圧識別子の組みを複数記憶する速度レベルテーブルと、
前記周波数識別子と周波数情報とフラグの組みを複数記憶する周波数テーブルと、
前記電圧識別子及び電圧情報の組みを複数記憶する電圧テーブルと、
現在の速度レベルから目標の速度レベルへの変更が指示されると、前記現在の速度レベルに対応する前記周波数識別子から前記目標の速度レベルに対応する前記周波数識別子まで周波数識別子の値をカウントする周波数カウンタと、
前記現在の速度レベルに対応する前記電圧識別子から前記目標の速度レベルに対応する前記電圧識別子まで電圧識別子の値をカウントする電圧カウンタと、
前記フラグに応じて、前記周波数カウンタによりカウントされた周波数識別子に対応する前記周波数情報を選択して前記位相ロックループ回路に出力する周波数セレクタと、
前記電圧カウンタによりカウントされた電圧識別子に対応する前記電圧情報を選択して前記電源部に出力する電圧セレクタとを有し、
前記制御部が、前記現在の速度レベルに対応する前記周波数識別子が示す周波数から前記目標の速度レベルに対応する前記周波数識別子が示す周波数に前記位相ロックループ回路が生成するクロック信号の周波数を変更し、前記現在の速度レベルに対応する前記電圧識別子が示す電圧から前記目標の速度レベルに対応する前記電圧識別子が示す電圧に前記電源部が生成する電圧を変更するように制御し、
前記制御部が、前記フラグに応じて、第１の変化量及び第２の変化量を決定し、前記現在の周波数から前記目標の周波数までのうちの第１の周波数範囲では前記第１の変化量で前記クロック信号の周波数を変化させ、前記現在の周波数から前記目標の周波数までのうちの第２の周波数範囲では前記第２の変化量で前記クロック信号の周波数を変化させることを特徴とする位相ロックループ回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位相ロックループ回路制御装置及び位相ロックループ回路の制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ、クロック発生回路及び電源回路を有する半導体集積回路が知られている（特許文献１参照）。クロック発生回路は、ＣＰＵに動作クロック信号を供給する。ＣＰＵは、クロック発生回路に動作クロック信号の周波数を指示し、電源回路に内部電源電圧を指示する。電源回路は、外部電源電圧から内部電源電圧を生成する電圧レギュレータと、指定された内部電源電圧への遷移状態を判定する判定回路とを有する。判定回路は、ＣＰＵから出力される第１信号を入力した後、指定された内部電源電圧への到達を判定してＣＰＵに第２信号を出力する。
【０００３】
また、半導体集積回路のシステムクロック発生回路に自動的にＣＰＵシステムクロックの周波数を変更可能にするための電源電圧検知回路を付加した半導体装置が知られている（特許文献２参照）。
【０００４】
また、半導体装置が有する回路に発振したクロックを供給する発振部を有する半導体装置が知られている（特許文献３参照）。周波数設定情報記憶部は、発振部が供給する周波数の設定を表す周波数情報と、周波数情報を識別する周波数識別情報との組を複数記憶するとともに、入力する周波数識別情報に基づいて、複数の周波数情報のいずれかを発振部に出力する。速度設定情報記憶部は、半導体装置の速度を表す速度識別情報と、速度識別情報に対応する周波数識別情報とを記憶する。周波数識別情報計数部は、周波数設定情報記憶部に入力する周波数識別情報の値を保持する。制御部は、速度設定情報記憶部に記憶された周波数識別情報の値に近づくように、保持された周波数識別情報の値を、周波数識別情報計数部に増分又は減分させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３３０５４９号公報
【特許文献２】特開平６−４１６９号公報
【特許文献３】特開２０１３−１９６６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プロセッサの動作中に、クロック信号の周波数を段階的ではなく大きく変更すると、負荷が大きく変動する結果、大きな電源ノイズとなる。そのため、周波数を変更する場合には、目標となる値に一気に変更するのではなく、段階的に変更していき、目標の値になるように制御することが好ましい。しかし、周波数を段階的に変更すると、現在の周波数から目標の周波数に変更するまでの時間が長くなってしまう課題がある。
【０００７】
１つの側面では、本発明の目的は、電源ノイズを防止しつつ、周波数を高速に変更することができる位相ロックループ回路制御装置及び位相ロックループ回路の制御方法を提供することである。
【課題を解決するための手段】
【０００８】
位相ロックループ回路制御装置は、クロック信号を生成する位相ロックループ回路と、電圧を生成する電源部と、速度レベルに対応する周波数識別子及び電圧識別子の組みを複数記憶する速度レベルテーブルを有し、現在の速度レベルから目標の速度レベルへの変更が指示されると、前記現在の速度レベルに対応する前記周波数識別子が示す周波数から前記目標の速度レベルに対応する前記周波数識別子が示す周波数に前記位相ロックループ回路が生成するクロック信号の周波数を変更し、前記現在の速度レベルに対応する前記電圧識別子が示す電圧から前記目標の速度レベルに対応する前記電圧識別子が示す電圧に前記電源部が生成する電圧を変更するように制御する制御部とを有し、前記制御部は、前記周波数識別子と周波数情報とフラグの組みを複数記憶する周波数テーブルと、前記電圧識別子及び電圧情報の組みを複数記憶する電圧テーブルと、前記現在の速度レベルに対応する前記周波数識別子から前記目標の速度レベルに対応する前記周波数識別子まで周波数識別子の値をカウントする周波数カウンタと、前記現在の速度レベルに対応する前記電圧識別子から前記目標の速度レベルに対応する前記電圧識別子まで電圧識別子の値をカウントする電圧カウンタと、前記フラグに応じて、前記周波数カウンタによりカウントされた周波数識別子に対応する前記周波数情報を選択して前記位相ロックループ回路に出力する周波数セレクタと、前記電圧カウンタによりカウントされた電圧識別子に対応する前記電圧情報を選択して前記電源部に出力する電圧セレクタとを有し、前記制御部は、前記フラグに応じて、第１の変化量及び第２の変化量を決定し、前記現在の周波数から前記目標の周波数までのうちの第１の周波数範囲では前記第１の変化量で前記クロック信号の周波数を変化させ、前記現在の周波数から前記目標の周波数までのうちの第２の周波数範囲では前記第２の変化量で前記クロック信号の周波数を変化させる。
【発明の効果】
【０００９】
電源ノイズを防止することができる。また、周波数を高速に変更することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態による半導体装置の構成例を示す図である。
【図２】図２（Ａ）は周波数テーブルの例を示す図であり、図２（Ｂ）は電圧テーブルの例を示す図である。
【図３】図３（Ａ）及び（Ｂ）は、要求レベルレジスタを説明するための図である。
【図４】図４（Ａ）〜（Ｃ）は、速度レベルテーブルの例を示す図である。
【図５】図５は、制御部が制御する状態遷移を示す図である。
【図６】図６は、比較状態から次の状態への遷移を説明するための図である。
【図７】図７は、演算処理装置の制御例を示すタイムチャートである。
【図８】図８は、周波数テーブルのフラグがすべて「１」である場合の演算処理装置の制御例を示すタイムチャートである。
【図９】図９は、第２の実施形態による半導体装置の構成例を示す図である。
【図１０】図１０は、制御部が制御する状態遷移を示す図である。
【図１１】図１１は、セッティング部が設定する周波数テーブルのフラグを示す図である。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
図１は、第１の実施形態による半導体装置の構成例を示す図である。半導体装置は、位相ロックループ回路制御装置であり、演算処理装置１０１、電圧レギュレータ１０３及びメモリ１０５を有する。演算処理装置１０１は、例えばプロセッサであり、位相ロックループ（ＰＬＬ：Phase Locked Loop）回路１０２、実行部１０４、要求レベルレジスタ１１１、目標レベルレジスタ１１２、現在レベルレジスタ１１３、速度レベルテーブル１１４、不揮発性メモリ１１５、速度レベルセレクタ１１６、比較器１１７、制御部１１８、周波数比較器１１９、電圧比較器１２０、判定部１２１、周波数カウンタ１２２、電圧カウンタ１２３、周波数テーブル１２４、周波数セレクタ１２５、電圧テーブル１２６、電圧セレクタ１２７、フラグセレクタ１２８及びフラグチェック部１２９を有する。演算処理装置１０１には、メモリ１０５及び電圧レギュレータ１０３が接続される。
【００１２】
演算処理装置１０１の高性能化と高集積化に伴い、演算処理装置１０１が消費する電力を低減する必要がある。演算処理装置１０１の消費電力は、電源電圧Ｖ１の２乗とクロック信号ＣＫの周波数との積に比例する。したがって、演算処理装置１０１の消費電力を低減するため、周波数及び電圧を適切に制御することが望まれる。しかし、演算処理装置１０１の種類及び演算処理装置１０１を製造する半導体プロセスのばらつきにより生じる個体差により、演算処理装置１０１毎に適切な周波数パラメータ及び電圧パラメータが異なる。そのため、周波数パラメータ及び電圧パラメータを適切に制御するためには、演算処理装置１０１の種類及び半導体プロセスのばらつきを吸収するような制御が必要になる。
【００１３】
演算処理装置１０１は、周波数パラメータ（周波数情報）を位相ロックループ回路１０２に入力して周波数の設定を行うとともに、電圧パラメータ（電圧情報）を電圧レギュレータ１０３に入力して電圧の設定を行う。位相ロックループ回路１０２は、入力した周波数パラメータに応じた周波数のクロック信号ＣＫを生成し、実行部１０４に出力する。実行部１０４は、クロック信号ＣＫに同期し、メモリ１０５に記憶されているプログラム（オペレーティングシステム（ＯＳ：Operating System）を含む）を実行し、種々の処理を行う。電圧レギュレータ１０３は、入力した電圧パラメータに応じた大きさの電圧Ｖ１を生成し、実行部１０４に出力する電源部である。実行部１０４は、電圧Ｖ１の供給を受けて動作する。演算処理装置１０１は、周波数パラメータによりクロック信号ＣＫの周波数を制御し、電圧パラメータにより電圧Ｖ１の大きさを制御することができる。
【００１４】
ここで、仮に、実行部１０４がプログラムの実行により、位相ロックループ回路１０２の周波数パラメータ及び電圧レギュレータ１０３の電圧パラメータを制御する場合における課題を説明する。
【００１５】
近年、プロセッサやＡＳＩＣ（Application Specific Integrated Circuit）を含むＳｏＣ（System on Chip）等の半導体装置の分野においては、半導体を企画・設計するユーザーメーカーと半導体を製造する半導体ファウンドリとの分業体制により、半導体装置を協働して製造することが行われている。ユーザーメーカーと半導体ファウンドリとの分業体制により半導体装置を製造する場合には、位相ロックループ回路１０２は、演算処理装置１０１に内蔵され、半導体ファウンドリからユーザーメーカーに提供されるが、標準化されたインターフェースが無く、半導体ファウンドリ毎に周波数パラメータの種類及び値が異なる。また、同一半導体ファウンドリでも位相ロックループ回路１０２の種類及び半導体プロセスの世代によって、周波数パラメータの種類及び値が異なっているため、新しい位相ロックループ回路１０２を採用した演算処理装置１０１を提供する場合には、まず、プログラムによって位相ロックループ回路１０２の対応を行う必要があり、新しい演算処理装置１０１を容易に提供できなくなる。
【００１６】
また、電圧Ｖ１の変更は、業界標準のインターフェース（ＶＩＤ）を用いて行われる。電圧レギュレータ１０３は、演算処理装置１０１がクロック信号ＣＫの周波数で動作するために適切な電圧Ｖ１を生成する必要がある。その適切な電圧Ｖ１の設定値は、演算処理装置１０１の製造時に各種試験において決定される演算処理装置１０１のチップ個体毎に異なる値のため、プログラムはチップ毎の適切な電圧パラメータを知り、チップ毎に電圧パラメータを変える必要がある。
【００１７】
また、演算処理装置１０１の動作中に、クロック信号ＣＫの周波数を段階的ではなく大きく変更すると、負荷が大きく変動する結果、大きな電源ノイズとなる。また、電圧Ｖ１を段階的ではなく大きく変更すると、電源が不安定となり、演算処理装置１０１内部の回路の動作が安定しなくなる。そのため、周波数及び電圧を変更する場合には、目標となる値に一気に変更するのではなく、段階的に変更していき、目標の値になるように制御する必要がある。
【００１８】
また、周波数及び電圧の変更は、１回の変更にμｓからｍｓオーダーの時間が必要となる。この処理を演算処理装置１０１上で動作するプログラムで行った場合には、周波数又は電圧の変更、そして変更の完了待ちの操作を繰り返し行うことになり、演算処理装置１０１の処理能力を無駄に消費する。また、１回にどの程度変更して良いかは、演算処理装置１０１と電源の設計に依存するため、変更対象である演算処理装置１０１のハードウェアに依存したプログラムになってしまう。
【００１９】
以下、上記の課題を解決するための実施形態を説明する。図２（Ａ）は、図１の周波数テーブル１２４の例を示す図であり、１６ステップで０．１ＧＨｚ単位の周波数を制御可能である。周波数テーブル１２４は、「０」〜「１５」の周波数識別子（周波数ＩＤ：Identification）と「０．１」ＧＨｚ〜「１．６」ＧＨｚの周波数パラメータ（周波数情報）とフラグとの複数の組みを周波数順かつ周波数識別子順に記憶する。周波数パラメータは、位相ロックループ回路１０２により生成されるクロック信号ＣＫの周波数を制御するためのデジタルコードである。例えば、周波数識別子の「０」は、０．１ＧＨｚの周波数の周波数パラメータ及び「０」のフラグに対応付けられて記憶され、周波数識別子の「１」は、０．２ＧＨｚの周波数の周波数パラメータ及び「１」のフラグに対応付けられて記憶される。以下同様に、周波数テーブル１２４の周波数パラメータは、「０」〜「１５」の周波数識別子順、かつ「０．１」ＧＨｚ〜「１．６」ＧＨｚの周波数順に記憶されている。その順番は、昇順でも降順でもよい。
【００２０】
図２（Ｂ）は、図１の電圧テーブル１２６の例を示す図であり、３２ステップで０．０５Ｖ単位の電圧を制御可能である。電圧テーブル１２６は、「０」〜「３１」の電圧識別子（電圧ＩＤ：Identification）及び「０．２０」Ｖ〜「１．７５」Ｖの電圧パラメータの複数の組みを電圧順かつ電圧識別子順に記憶する。電圧パラメータは、電圧レギュレータ１０３により生成される電圧Ｖ１の値を制御するためのデジタルコードである。例えば、電圧識別子の「０」は、０．２０Ｖの電圧の電圧パラメータに対応付けられて記憶され、電圧識別子の「１」は、０．２５Ｖの電圧の電圧パラメータに対応付けられて記憶される。以下同様に、電圧テーブル１２６の電圧パラメータは、「０」〜「３１」の電圧識別子順、かつ「０．２０」Ｖ〜「１．７５」Ｖの電圧順に記憶されている。その順番は、昇順でも降順でもよい。
【００２１】
上記の周波数テーブル１２４及び電圧テーブル１２６は、一部を変更可能なレジスタで構成し、その他の部分を電源電位ノード又はグランド電位ノード（接地ノード）への単純な接続による固定値になるように構成してもよい。変更することがない周波数テーブル１２４及び電圧テーブル１２６の一部の固定値を簡単な構成で実現でき、周波数及び電圧の変更範囲を広くしても、回路規模を小さくすることができる。
【００２２】
すなわち、周波数テーブル１２４の周波数識別子と周波数パラメータの関係及び電圧テーブル１２６の電圧識別子と電圧パラメータの関係は、演算処理装置１０１の設計段階で決定しており、位相ロックループ回路１０２に対する各周波数パラメータの具体的な値及び電圧レギュレータ１０３に対する各電圧パラメータの具体的な値に関しても設計段階で確定するものが多い。したがって、各周波数パラメータと各電圧パラメータの大部分を更新可能なレジスタでなく、電源電位ノード又はグランド電位ノードへの単純な接続によって構成し、製造後に調整が必要なパラメータのみを更新可能なレジスタで構成することによって、回路面積を削減することができる。
【００２３】
図１において、実行部１０４は、メモリ１０５に記憶されているプログラムを実行することにより、システム動作時における標準の動作周波数を１００％とした場合における周波数の増減率である速度レベルについて、要求する速度レベルを要求レベルレジスタ１１１に書き込む。実行部１０４は、要求レベルレジスタ１１１に速度レベルを書き込むだけで、位相ロックループ回路１０２の周波数パラメータ及び電圧レギュレータ１０３の電圧パラメータの制御が可能になる。
【００２４】
要求レベルレジスタ１１１は、実行部１０４により要求された速度レベルを記憶する。目標レベルレジスタ１１２は、制御部１１８がアイドル状態で、且つ要求レベルレジスタ１１１と現在レベルレジスタ１１３を比較器１１７で比較した結果、要求レベルレジスタ１１１に保持された速度レベルと現在レベルレジスタ１１３に保持された速度レベルが異なる場合に、制御部１１８をアイドル状態から制御状態に遷移させ、制御状態中の目標の速度レベルとして、制御を開始した時点の要求レベルレジスタ１１１の速度レベルを記憶する。制御部１１８がアイドル状態のとき、現在レベルレジスタ１１３は、現在の速度レベルを記憶する。
【００２５】
目標レベルレジスタ１１２は、現在、制御状態中の目標の速度レベルを記憶するので、制御途中であっても、実行部１０４は、制御部１１８による制御の完了を待つことなく、次の速度レベルを要求レベルレジスタ１１１に書き込むことができる。この書き込みがされても、制御部１１８による上記の制御は継続され、実行部１０４からの要求は要求レベルレジスタ１１１に保持される。制御部１１８による制御が完了すると現在レベルレジスタ１１３は目標レベルレジスタ１１２の速度レベルを記憶し、要求レベルレジスタ１１１に保持された要求レベルレジスタ１１１の速度レベルと現在レベルレジスタ１１３を比較器１１７で比較し、速度レベルが異なる場合には、要求レベルレジスタ１１１に保持した新たな速度レベルが目標レベルレジスタ１１２に書き込まれ、次の目標の速度レベルに向けた制御が開始される。この制御は、制御部１１８が行うため、実行部１０４が行わなくてよい。実行部１０４は、速度レベルを要求レベルレジスタ１１１に書き込むという簡単な処理で、周波数パラメータ及び電圧パラメータの制御を可能にする。
【００２６】
図３（Ａ）及び（Ｂ）は、図１の要求レベルレジスタ１１１を説明するための図である。図３（Ａ）は、要求レベルレジスタ１１１のビットフォーマット例を示す図である。要求レベルレジスタ１１１は、３ビットのレジスタであり、１ビットのエラー情報３０１及び２ビットの速度レベル３０２を記憶する。エラー情報３０１は、「０」がエラーなしを示し、「１」がエラーありを示す。エラーの内容は、後に図６を参照しながら説明する。速度レベル３０２は、図３（Ｂ）を参照しながら説明する。
【００２７】
図３（Ｂ）は、図３（Ａ）の速度レベル３０２を説明するための図である。速度レベル３０２は、例えば「０」〜「３」の４レベルであり、演算処理装置１０１の速度を示す。「１」の速度レベル３０２は、演算処理装置１０１のシステム動作時における標準の速度レベルであり、例えば、このレベルの周波数（処理性能）を１００％とする。「０」の速度レベル３０２は、「１」の速度レベル３０２よりも速い速度レベルであり、例えば、このレベルの周波数（処理性能）は１２０％である。「２」の速度レベル３０２は、「１」の速度レベル３０２よりも遅い速度レベルであり、例えば、このレベルの周波数（処理性能）は６０％である。「３」の速度レベル３０２は、「２」の速度レベル３０２よりも遅い速度レベルであり、例えば、このレベルの周波数（処理性能）は２０％である。図３（Ｂ）の例では、速度レベル３０２は、周波数を下げる（性能低下）方向に４０％刻みで２段階、周波数を上げる（性能向上）方向に２０％で１段階と定義している。実行部１０４は、高速処理モード、低速処理モード及びスリープモード等、処理内容に応じて、速度レベル３０２を要求レベルレジスタ１１１に書き込むことができる。
【００２８】
図４（Ａ）〜（Ｃ）は、図１の速度レベルテーブル１１４の例を示す図である。速度レベルテーブル１１４は、速度レベルに対応する周波数識別子及び電圧識別子の組みを複数記憶する。速度レベルは図３（Ｂ）の速度レベルに対応し、周波数識別子は図２（Ａ）の周波数識別子に対応し、電圧識別子は図２（Ｂ）の電圧識別子に対応する。
【００２９】
まず、図４（Ａ）の速度レベルテーブル１１４を説明する。速度レベルテーブル１１４においては、半導体回路の周波数が高くなるに従い、半導体回路が要求する電圧も高くなるという、半導体回路における周波数と電圧間の関係が規定される。「１」の速度レベルは、周波数識別子「９」及び電圧識別子「１８」に対応付けられている。周波数識別子「９」は、図２（Ａ）に示すように、例えば、「１．０」ＧＨｚの周波数パラメータに対応する。電圧識別子「１８」は、図２（Ｂ）に示すように、例えば、「１．１０」Ｖの電圧パラメータに対応する。このように、「１」の速度レベルは周波数が「１．０」ＧＨｚであり、この「１．０」ＧＨｚの周波数は、図３（Ｂ）に示すように、１００％の周波数（処理性能）を意味する。この演算処理装置１０１は、「１．０」ＧＨｚの周波数のクロック信号ＣＫで動作するには、「１．１０」Ｖの電圧Ｖ１が必要であることを意味する。
【００３０】
「０」の速度レベルは、周波数識別子「１１」及び電圧識別子「２８」に対応付けられている。周波数識別子「１１」は、図２（Ａ）に示すように、例えば、「１．２」ＧＨｚの周波数パラメータに対応する。電圧識別子「２８」は、図２（Ｂ）に示すように、例えば、「１．６０」Ｖの電圧パラメータに対応する。このように、「０」の速度レベルは周波数が「１．２」ＧＨｚであり、この「１．２」ＧＨｚの周波数は、図３（Ｂ）に示すように、１２０％の周波数（処理性能）を意味する。この演算処理装置１０１は、「１．２」ＧＨｚの周波数のクロック信号ＣＫで動作するには、「１．６０」Ｖの電圧Ｖ１が必要であることを意味する。
【００３１】
「２」の速度レベルは、周波数識別子「５」及び電圧識別子「１５」に対応付けられている。周波数識別子「５」は、図２（Ａ）に示すように、例えば、「０．６」ＧＨｚの周波数パラメータに対応する。電圧識別子「１５」は、図２（Ｂ）に示すように、例えば、「０．９５」Ｖの電圧パラメータに対応する。このように、「２」の速度レベルは周波数が「０．６」ＧＨｚであり、この「０．６」ＧＨｚの周波数は、図３（Ｂ）に示すように、６０％の周波数（処理性能）を意味する。この演算処理装置１０１は、「０．６」ＧＨｚの周波数のクロック信号ＣＫで動作するには、「０．９５」Ｖの電圧Ｖ１が必要であることを意味する。
【００３２】
「３」の速度レベルは、周波数識別子「１」及び電圧識別子「２」に対応付けられている。周波数識別子「１」は、図２（Ａ）に示すように、例えば、「０．２」ＧＨｚの周波数パラメータに対応する。電圧識別子「２」は、図２（Ｂ）に示すように、例えば、「０．３０」Ｖの電圧パラメータに対応する。このように、「３」の速度レベルは周波数が「０．２」ＧＨｚであり、この「０．２」ＧＨｚの周波数は、図３（Ｂ）に示すように、２０％の周波数（処理性能）を意味する。この演算処理装置１０１は、「０．２」ＧＨｚの周波数のクロック信号ＣＫで動作するには、「０．３０」Ｖの電圧Ｖ１が必要であることを意味する。
【００３３】
以上のように、速度レベルテーブル１１４では、速度レベルを大きくすれば、周波数も高くなる。その周波数のクロック信号ＣＫで動作させるためには、低消費電力の観点から、速度レベルテーブル１１４では、半導体回路が要求する最低限必要な適切な電圧が設定される。
【００３４】
図４（Ｂ）は、図４（Ａ）の演算処理装置１０１とは異なる演算処理装置１０１の速度レベルテーブル１１４の例を示す図である。図４（Ｂ）の演算処理装置１０１は、図４（Ａ）の演算処理装置１０１と同種類の演算処理装置である。したがって、図４（Ｂ）の速度レベルテーブル１１４は、図４（Ａ）の速度レベルテーブル１１４に対して、速度レベル及び周波数識別子が同様であり、電圧識別子が異なる。各周波数のクロック信号ＣＫで動作させるためには、演算処理装置１０１のチップ個体毎に適切な電圧が異なる。したがって、同種類の演算処理装置１０１であっても、チップ個体差により、演算処理装置１０１毎に、速度レベルテーブル１１４には異なる電圧識別子が記憶される。
【００３５】
図４（Ｃ）は、図４（Ａ）及び図４（Ｂ）の演算処理装置１０１とはさらに異なる演算処理装置１０１の速度レベルテーブル１１４の例を示す図である。図４（Ｃ）の演算処理装置１０１は、図４（Ａ）及び図４（Ｂ）の演算処理装置１０１に対して高性能の次世代の演算処理装置である。したがって、図４（Ｃ）の速度レベルテーブル１１４は、図４（Ａ）及び図４（Ｂ）の速度レベルテーブル１１４に対して、システム動作時における標準の周波数（速度レベル「１」）の設定値が高くなるため、速度テーブル全体の周波数識別子及び電圧識別子の対応関係が異なる。次世代の演算処理装置であるため製造ルール、製造過程などの差によって、その周波数に必要な電圧も異なる。その結果、速度レベルテーブル１１４は、同じ速度レベルであっても、周波数識別子及び電圧識別子が変わる。
【００３６】
図１において、不揮発性メモリ１１５は、例えばＲＯＭ（リードオンリーメモリ：Read Only Memory）やフラッシュメモリであり、図４（Ａ）〜（Ｃ）に示すような速度レベルテーブル１１４を記憶する。演算処理装置１０１の電源をオンにすると、初期化処理により、速度レベルテーブル１１４の記憶内容は、不揮発性メモリ１１５に記憶されている速度レベルテーブルの内容に初期化される。不揮発性メモリ１１５には、演算処理装置１０１毎に異なる速度レベルテーブルを記憶させることにより、速度レベルテーブル１１４を演算処理装置１０１毎に適した記憶内容に初期化することができる。これにより、試験結果により得られた演算処理装置１０１の個別の電圧に速度レベルテーブル１１４を初期化することができ、各速度レベルに対する周波数と電圧の関係を容易に変更することができる。また、不揮発性メモリ１１５は、図２（Ａ）の周波数テーブル１２４のフラグを記憶し、初期化処理により、周波数テーブル１２４のフラグは、不揮発性メモリ１１５に記憶されている周波数テーブルのフラグに初期化される。
【００３７】
制御部１１８は、ステートマシンを有し、ステートマシンにより状態遷移を制御する。制御部１１８のステートマシンの詳細を、後に図５を参照しながら説明する。再び図１を参照すると、比較器１１７は、要求レベルレジスタ１１１に記憶されている速度レベルと現在レベルレジスタ１１３に記憶されている速度レベルとを比較し、その比較結果を制御部１１８に出力する。具体的には、実行部１０４が要求レベルレジスタ１１１に速度レベルを書き込むことにより、要求レベルレジスタ１１１の速度レベルが現在レベルレジスタ１１３の速度レベルと異なるレベルになると、制御部１１８は周波数パラメータ及び電圧パラメータの制御を開始する。目標レベルレジスタ１１２には、要求レベルレジスタ１１１に記憶されている速度レベルが書き込まれる。
【００３８】
速度レベルセレクタ１１６は、速度レベルテーブル１１４の中で、目標レベルレジスタ１１２に記憶されている速度レベルに対応する周波数識別子及び電圧識別子を選択してそれぞれ周波数比較器１１９及び電圧比較器１２０に出力する。
【００３９】
周波数カウンタ１２２は、判定部１２１の制御により、目標の速度レベルに対応する速度レベルテーブル１１４の周波数識別子まで周波数識別子の値をカウントする。電圧カウンタ１２３は、判定部１２１の制御により、目標の速度レベルに対応する速度レベルテーブル１１４の電圧識別子まで電圧識別子の値をカウントする。
【００４０】
周波数比較器１１９は、周波数カウンタ１２２によりカウントされた周波数識別子が速度レベルセレクタ１１６により出力された周波数識別子より小さいときにはアップ信号ＵＰを判定部１２１に出力し、周波数カウンタ１２２によりカウントされた周波数識別子が速度レベルセレクタ１１６により出力された周波数識別子より大きいときにはダウン信号ＤＮを判定部１２１に出力する。
【００４１】
電圧比較器１２０は、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子より小さいときにはアップ信号ＵＰを判定部１２１に出力し、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子より大きいときにはダウン信号ＤＮを判定部１２１に出力する。
【００４２】
判定部１２１は、上記のアップ信号ＵＰ及びダウン信号ＤＮに応じて、周波数カウンタ１２２又は電圧カウンタ１２３にインクリメント信号ＩＮＣ又はデクリメント信号ＤＥＣを出力する。その詳細は、後に図６を参照しながら説明する。周波数カウンタ１２２は、インクリメント信号ＩＮＣを入力すると周波数識別子をインクリメントし、デクリメント信号ＤＥＣを入力すると周波数識別子をデクリメントする。電圧カウンタ１２３は、インクリメント信号ＩＮＣを入力すると電圧識別子をインクリメントし、デクリメント信号ＤＥＣを入力すると電圧識別子をデクリメントする。
【００４３】
電圧セレクタ１２７は、電圧カウンタ１２３によりカウントされた電圧識別子に対応する電圧テーブル１２６の電圧パラメータを選択し、電圧レギュレータ１０３に出力する。電圧レギュレータ１０３は、電圧セレクタ１２７により出力された電圧パラメータを入力し、その入力した電圧パラメータに応じた大きさの電圧Ｖ１を生成し、実行部１０４に出力する。
【００４４】
フラグセレクタ１２８は、周波数カウンタ１２２によりカウントされた周波数識別子に対応する周波数テーブル１２４のフラグを選択し、フラグチェック部１２９を介して制御部１１８に出力する。
【００４５】
周波数セレクタ１２５は、制御部１１８の制御の下、フラグチェック部１２９に入力されたフラグが「１」の場合、周波数カウンタ１２２によりカウントされた周波数識別子に対応する周波数テーブル１２４の周波数パラメータを選択し、位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、周波数セレクタ１２５により出力された周波数パラメータを入力し、その入力した周波数パラメータに応じた周波数のクロック信号ＣＫを生成し、クロック信号ＣＫを実行部１０４に出力する。
【００４６】
図５は、図１の制御部１１８が制御する状態遷移を示す図である。制御部１１８の状態遷移は、アイドル状態Ｓ１と、アイドル状態Ｓ１以外の制御状態とに分けることができる。初期時は、アイドル状態Ｓ１である。実行部１０４が要求レベルレジスタ１１１に速度レベルを書き込み、比較器１１７が要求レベルレジスタ１１１の速度レベルと現在レベルレジスタ１１３の速度レベルが異なる旨を制御部１１８に出力すると、制御部１１８は、アイドル状態Ｓ１から比較状態Ｓ２に遷移する。比較状態Ｓ２からは、アイドル状態Ｓ１、エラー状態Ｓ３、周波数カウント状態Ｓ４又は電圧カウント状態Ｓ５に遷移する。その詳細は、図６を参照しながら説明する。
【００４７】
図６は、図５の比較状態Ｓ２から次の状態への遷移を説明するための図である。比較状態Ｓ２では、周波数比較器１１９及び電圧比較器１２０が比較を行う。周波数比較器１１９は、周波数カウンタ１２２によりカウントされた周波数識別子が速度レベルセレクタ１１６により出力された周波数識別子と同じときには、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを出力する。また、周波数比較器１１９は、周波数カウンタ１２２によりカウントされた周波数識別子が速度レベルセレクタ１１６により出力された周波数識別子より小さいときには、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを出力する。また、周波数比較器１１９は、周波数カウンタ１２２によりカウントされた周波数識別子が速度レベルセレクタ１１６により出力された周波数識別子より大きいときには、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを出力する。
【００４８】
電圧比較器１２０は、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子と同じときには、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを出力する。また、電圧比較器１２０は、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子より小さいときには、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを出力する。また、電圧比較器１２０は、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子より大きいときには、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを出力する。
【００４９】
判定部１２１は、周波数比較器１１９のアップ信号ＵＰ及びダウン信号ＤＮ並びに電圧比較器１２０のアップ信号ＵＰ及びダウン信号ＤＮに応じて、次の状態への遷移を制御部１１８に指示する。
【００５０】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」であるときには、制御が終了し、目標の速度レベルに到達したので、比較状態Ｓ２からアイドル状態Ｓ１に遷移する。アイドル状態Ｓ１では、現在レベルレジスタ１１３に、目標レベルレジスタ１１２に記憶されている速度レベルが書き込まれる。
【００５１】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」であるときには、電圧を１段階下げるため、比較状態Ｓ２から電圧カウント状態Ｓ５に遷移する。判定部１２１は、デクリメント信号ＤＥＣを電圧カウンタ１２３に出力し、電圧カウンタ１２３は電圧識別子をデクリメントする。
【００５２】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」であるときには、電圧を１段階上げるため、比較状態Ｓ２から電圧カウント状態Ｓ５に遷移する。判定部１２１は、インクリメント信号ＩＮＣを電圧カウンタ１２３に出力し、電圧カウンタ１２３は電圧識別子をインクリメントする。
【００５３】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００５４】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」であるときには、周波数を１段階下げるため、比較状態Ｓ２から周波数カウント状態Ｓ４に遷移する。判定部１２１は、デクリメント信号ＤＥＣを周波数カウンタ１２２に出力し、周波数カウンタ１２２は周波数識別子をデクリメントする。
【００５５】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」であるときには、周波数のみを１段階下げるため、比較状態Ｓ２から周波数カウント状態Ｓ４に遷移する。判定部１２１は、デクリメント信号ＤＥＣを周波数カウンタ１２２に出力し、周波数カウンタ１２２は周波数識別子をデクリメントする。
【００５６】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００５７】
周波数比較器１１９のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００５８】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」であるときには、周波数を１段階上げるため、比較状態Ｓ２から周波数カウント状態Ｓ４に遷移する。判定部１２１は、インクリメント信号ＩＮＣを周波数カウンタ１２２に出力し、周波数カウンタ１２２は周波数識別子をインクリメントする。
【００５９】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６０】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」であるときには、電圧を１段階上げるため、比較状態Ｓ２から電圧カウント状態Ｓ５に遷移する。判定部１２１は、インクリメント信号ＩＮＣを電圧カウンタ１２３に出力し、電圧カウンタ１２３は電圧識別子をインクリメントする。
【００６１】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６２】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「０」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６３】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「０」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６４】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「０」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６５】
周波数比較器１１９のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」、電圧比較器１２０のアップ信号ＵＰが「１」、ダウン信号ＤＮが「１」であるときには、矛盾する状態であるので、比較状態Ｓ２からエラー状態Ｓ３に遷移する。
【００６６】
図５において、エラー状態Ｓ３では、ハードウェアにエラーが発生したとして、図３（Ａ）の要求レベルレジスタ１１１に、エラー情報３０１として「１」のエラーありの情報が書き込まれる。実行部１０４は、要求レベルレジスタ１１１に書き込まれたエラー情報３０１の内容を確認することによって制御回路にエラーが発生した旨を知ることができる。
【００６７】
電圧カウント状態Ｓ５では、次に電圧制御状態Ｓ８に遷移する。電圧制御状態Ｓ８では、電圧セレクタ１２７は、電圧カウンタ１２３によりカウントされた電圧識別子に対応する電圧テーブル１２６の電圧パラメータを選択し、電圧レギュレータ１０３に出力する。電圧レギュレータ１０３は、入力した電圧パラメータに応じた大きさの電圧Ｖ１を生成する。電圧制御状態Ｓ８の制御が終了すると、次に上記の比較状態Ｓ２に戻る。
【００６８】
周波数カウント状態Ｓ４では、次にフラグチェック状態Ｓ６に遷移する。フラグチェック状態Ｓ６では、フラグセレクタ１２８は、周波数カウンタ１２２によりカウントされた周波数識別子に対応する周波数テーブル１２４のフラグを選択し、フラグチェック部１２９を介して制御部１１８に出力する。制御部１１８が「０」のフラグを入力した場合には、フラグチェック状態Ｓ６から比較状態Ｓ２に戻る。制御部１１８が「１」のフラグを入力した場合には、フラグチェック状態Ｓ６から周波数制御状態Ｓ７に遷移する。
【００６９】
周波数制御状態Ｓ７では、周波数セレクタ１２５は、周波数カウンタ１２２によりカウントされた周波数識別子に対応する周波数テーブル１２４の周波数パラメータを選択し、位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、入力した周波数パラメータに応じた周波数のクロック信号ＣＫを生成する。周波数制御状態Ｓ７の制御が終了すると、次に上記の比較状態Ｓ２に戻る。
【００７０】
図７は、図１の演算処理装置１０１の制御例を示すタイムチャートである。周波数識別子７０１は、時間経過に対する周波数識別子の変化を示す。電圧識別子７０２は、時間経過に対する電圧識別子の変化を示す。周波数テーブル１２４は図２（Ａ）の内容を記憶し、電圧テーブル１２６は図２（Ｂ）の内容を記憶し、速度レベルテーブル１１４は図４（Ａ）の内容を記憶する例を説明する。
【００７１】
時刻「１」では、要求レベルレジスタ１１１、目標レベルレジスタ１１２及び現在レベルレジスタ１１３は、「２」の速度レベルに設定されている。図４（Ａ）に示すように、「２」の速度レベルは、「５」の周波数識別子及び「１５」の電圧識別子に対応する。したがって、周波数カウンタ１２２はカウント値の周波数識別子７０１が「５」であり、電圧カウンタ１２３はカウント値の電圧識別子７０２が「１５」である。位相ロックループ回路１０２は、「５」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「０．６」ＧＨｚの周波数のクロック信号ＣＫを生成する。電圧レギュレータ１０３は、「１５」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．９５」Ｖの電圧Ｖ１を生成する。
【００７２】
次に、時刻「３」では、実行部１０４が要求レベルレジスタ１１１に、「３」の速度レベルを書き込む。すると、目標レベルレジスタ１１２には、「３」の速度レベルが書き込まれる。すなわち、要求レベルレジスタ１１１に記憶されている速度レベルと現在レベルレジスタ１１３に記憶されている速度レベルとが同じである状態において、要求レベルレジスタ１１１に現在レベルレジスタ１１３に記憶されている速度レベルと異なる速度レベルが書き込まれると、要求レベルレジスタ１１１に書き込まれた速度レベルが目標の速度レベルとして目標レベルレジスタ１１２に書き込まれる。
【００７３】
以下、「２」の速度レベルから「３」の速度レベルへの変更制御を行う。速度レベルセレクタ１１６は、図４（Ａ）の速度レベルテーブル１１４を参照し、「３」の速度レベルに対応する「１」の周波数識別子及び「２」の電圧識別子を選択してそれぞれ周波数比較器１１９及び電圧比較器１２０に出力する。周波数比較器１１９は、周波数カウンタ１２２が出力する「５」の周波数識別子と速度レベルセレクタ１１６が出力する「１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「１５」の電圧識別子と速度レベルセレクタ１１６が出力する「２」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にデクリメント信号ＤＥＣを出力する。
【００７４】
次に、周波数カウンタ１２２は、周波数識別子７０１を「５」から「４」にデクリメントする。フラグセレクタ１２８は、「４」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。周波数比較器１１９は、周波数カウンタ１２２が出力する「４」の周波数識別子と速度レベルセレクタ１１６が出力する「１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「１５」の電圧識別子と速度レベルセレクタ１１６が出力する「２」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にデクリメント信号ＤＥＣを出力する。次に、周波数カウンタ１２２は、周波数識別子７０１を「４」から「３」にデクリメントする。フラグセレクタ１２８は、「３」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。上記と同様の処理を繰り返し、周波数識別子７０１が順次デクリメントされ、周波数識別子７０１が「１」になる。
【００７５】
次に、時刻「４」では、フラグセレクタ１２８は、「１」の周波数識別子７０１に対応する「１」のフラグを出力する。そのフラグは「１」であるので、周波数セレクタ１２５は、「１」の周波数識別子７０１に対応する周波数パラメータを位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、「１」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「０．２」ＧＨｚの周波数のクロック信号ＣＫを生成する。クロック信号ＣＫは、「５」の周波数識別子７０１の周波数から「１」の周波数識別子７０１の周波数に変化したことになる。
【００７６】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「１５」の電圧識別子と速度レベルセレクタ１１６が出力する「２」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、電圧カウンタ１２３にデクリメント信号ＤＥＣを出力する。
【００７７】
次に、時刻「５」では、電圧カウンタ１２３は、電圧識別子７０２を「１５」から「１４」にデクリメントする。電圧レギュレータ１０３は、「１４」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．９０」Ｖの電圧Ｖ１を生成する。
【００７８】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「１４」の電圧識別子と速度レベルセレクタ１１６が出力する「２」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「１」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、電圧カウンタ１２３にデクリメント信号ＤＥＣを出力する。
【００７９】
次に、時刻「６」では、電圧カウンタ１２３は、電圧識別子７０２を「１４」から「１３」にデクリメントする。電圧レギュレータ１０３は、「１３」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．８５」Ｖの電圧Ｖ１を生成する。
【００８０】
上記と同様の処理を繰り返し、電圧識別子７０２が順次デクリメントされる。時刻「１７」では、周波数カウンタ１２２の周波数識別子７０１が「１」になり、電圧カウンタ１２３の電圧識別子７０２が「２」になる。電圧レギュレータ１０３は、「２」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．３０」Ｖの電圧Ｖ１を生成する。
【００８１】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２」の電圧識別子と速度レベルセレクタ１１６が出力する「２」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、アイドル状態Ｓ１に遷移する。アイドル状態Ｓ１では、現在レベルレジスタ１１３に、「３」の速度レベルが書き込まれる。
【００８２】
以上で、「２」の速度レベルから「３」の速度レベルへの変更制御が終了する。速度レベルを「２」から「３」に遅くする場合には、上記のように、まず、周波数識別子７０１により周波数のみを０．６ＧＨｚから０．２ＧＨｚまで下げる。その後、電圧識別子７０２により電圧のみを０．９５Ｖから０．３０Ｖまで、０．０５Ｖずつ段階的に下げる。以上のように、速度レベルを遅くする場合には、まず、周波数識別子７０１による周波数を下げ、電圧を下げることが可能な状態にしてから、その後に、電圧識別子７０２による電圧を下げる必要がある。
【００８３】
具体的には、図６に示すように、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１の周波数が速度レベルセレクタ１１６により出力された周波数識別子の周波数より高い旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子７０２の電圧が速度レベルセレクタ１１６により出力された電圧識別子の電圧より高い旨の比較結果を出力した場合には、周波数カウンタ１２２は、周波数が低くなる方向に周波数識別子７０１をカウントし、電圧カウンタ１２３は、電圧識別子７０２のカウントを停止する。
【００８４】
また、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１が速度レベルセレクタ１１６により出力された周波数識別子と同じである旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子７０２の電圧が速度レベルセレクタ１１６により出力された電圧識別子の電圧より高い旨の比較結果を出力した場合には、周波数カウンタ１２２は、周波数識別子７０１のカウントを停止し、電圧カウンタ１２３は、電圧が低くなる方向に電圧識別子７０２をカウントする。
【００８５】
また、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１が速度レベルセレクタ１１６により出力された周波数識別子と同じである旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子７０２が速度レベルセレクタ１１６により出力された電圧識別子と同じである旨の比較結果を出力した場合には、周波数カウンタ１２２は、周波数識別子７０１のカウントを停止し、電圧カウンタ１２３は、電圧識別子７０２のカウントを停止する。
【００８６】
次に、速度レベルを「３」から「０」に速くする変更制御を説明する。時刻「２２」では、実行部１０４が要求レベルレジスタ１１１に「０」の速度レベルを書き込む。すると、目標レベルレジスタ１１２には、「０」の速度レベルが書き込まれる。速度レベルセレクタ１１６は、図４（Ａ）の速度レベルテーブル１１４を参照し、「０」の速度レベルに対応する「１１」の周波数識別子及び「２８」の電圧識別子を選択してそれぞれ周波数比較器１１９及び電圧比較器１２０に出力する。周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、電圧カウンタ１２３にインクリメント信号ＩＮＣを出力する。
【００８７】
次に、時刻「２３」では、電圧カウンタ１２３は、電圧識別子７０２を「２」から「３」にインクリメントする。電圧レギュレータ１０３は、「３」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．３５」Ｖの電圧Ｖ１を生成する。
【００８８】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「３」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、電圧カウンタ１２３にインクリメント信号ＩＮＣを出力する。
【００８９】
次に、時刻「２４」では、電圧カウンタ１２３は、電圧識別子７０２を「３」から「４」にインクリメントする。電圧レギュレータ１０３は、「４」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「０．４０」Ｖの電圧Ｖ１を生成する。
【００９０】
上記と同様の処理を繰り返し、電圧識別子７０２が順次インクリメントされる。時刻「４８」では、周波数カウンタ１２２の周波数識別子７０１が「１」になり、電圧カウンタ１２３の電圧識別子７０２が「２８」になる。電圧レギュレータ１０３は、「２８」の電圧識別子に対応する電圧パラメータを入力し、図２（Ｂ）に示すように、「１．６０」Ｖの電圧Ｖ１を生成する。
【００９１】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。
【００９２】
次に、周波数カウンタ１２２は、周波数識別子７０１を「１」から「２」にインクリメントする。フラグセレクタ１２８は、「２」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。周波数比較器１１９は、周波数カウンタ１２２が出力する「２」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。次に、周波数カウンタ１２２は、周波数識別子７０１を「２」から「３」にインクリメントする。フラグセレクタ１２８は、「３」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。上記と同様の処理を繰り返し、周波数識別子７０１が順次インクリメントされ、周波数識別子７０１が「５」になる。
【００９３】
次に、時刻「４９」では、フラグセレクタ１２８は、「５」の周波数識別子７０１に対応する「１」のフラグを出力する。そのフラグは「１」であるので、周波数セレクタ１２５は、「５」の周波数識別子７０１に対応する周波数パラメータを位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、「５」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「０．６」ＧＨｚの周波数のクロック信号ＣＫを生成する。クロック信号ＣＫは、「１」の周波数識別子７０１の周波数から「５」の周波数識別子７０１の周波数に変化したことになる。
【００９４】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「５」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。
【００９５】
次に、周波数カウンタ１２２は、周波数識別子７０１を「５」から「６」にインクリメントする。フラグセレクタ１２８は、「６」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。周波数比較器１１９は、周波数カウンタ１２２が出力する「６」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。次に、周波数カウンタ１２２は、周波数識別子７０１を「６」から「７」にインクリメントする。フラグセレクタ１２８は、「７」の周波数識別子７０１に対応する「０」のフラグを出力する。そのフラグは「０」であるので、比較状態Ｓ２に戻る。上記と同様の処理を繰り返し、周波数識別子７０１が順次インクリメントされ、周波数識別子７０１が「９」になる。
【００９６】
次に、時刻「５０」では、フラグセレクタ１２８は、「９」の周波数識別子７０１に対応する「１」のフラグを出力する。そのフラグは「１」であるので、周波数セレクタ１２５は、「９」の周波数識別子７０１に対応する周波数パラメータを位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、「９」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「１．０」ＧＨｚの周波数のクロック信号ＣＫを生成する。クロック信号ＣＫは、「５」の周波数識別子７０１の周波数から「９」の周波数識別子７０１の周波数に変化したことになる。
【００９７】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「９」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。
【００９８】
次に、時刻「５１」では、周波数カウンタ１２２は、周波数識別子７０１を「９」から「１０」にインクリメントする。フラグセレクタ１２８は、「１０」の周波数識別子７０１に対応する「１」のフラグを出力する。そのフラグは「１」であるので、周波数セレクタ１２５は、「１０」の周波数識別子７０１に対応する周波数パラメータを位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、「１０」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「１．１」ＧＨｚの周波数のクロック信号ＣＫを生成する。クロック信号ＣＫは、「９」の周波数識別子７０１の周波数から「１０」の周波数識別子７０１の周波数に変化したことになる。
【００９９】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１０」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「１」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、周波数カウンタ１２２にインクリメント信号ＩＮＣを出力する。
【０１００】
次に、時刻「５２」では、周波数カウンタ１２２は、周波数識別子７０１を「１０」から「１１」にインクリメントする。フラグセレクタ１２８は、「１１」の周波数識別子７０１に対応する「１」のフラグを出力する。そのフラグは「１」であるので、周波数セレクタ１２５は、「１１」の周波数識別子７０１に対応する周波数パラメータを位相ロックループ回路１０２に出力する。位相ロックループ回路１０２は、「１１」の周波数識別子に対応する周波数パラメータを入力し、図２（Ａ）に示すように、「１．２」ＧＨｚの周波数のクロック信号ＣＫを生成する。クロック信号ＣＫは、「１０」の周波数識別子７０１の周波数から「１１」の周波数識別子７０１の周波数に変化したことになる。
【０１０１】
次に、周波数比較器１１９は、周波数カウンタ１２２が出力する「１１」の周波数識別子と速度レベルセレクタ１１６が出力する「１１」の周波数識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。電圧比較器１２０は、電圧カウンタ１２３が出力する「２８」の電圧識別子と速度レベルセレクタ１１６が出力する「２８」の電圧識別子を比較し、「０」のアップ信号ＵＰ及び「０」のダウン信号ＤＮを判定部１２１に出力する。判定部１２１は、図６に示すように、アイドル状態Ｓ１に遷移する。アイドル状態Ｓ１では、現在レベルレジスタ１１３に、「０」の速度レベルが書き込まれる。
【０１０２】
以上で、「３」の速度レベルから「０」の速度レベルへの変更制御が終了する。速度レベルを「３」から「０」に速くする場合には、上記のように、まず、電圧識別子７０２により電圧のみを０．３０Ｖから１．６０Ｖまで、０．０５Ｖずつ段階的に上げる。その後、周波数識別子７０１により周波数のみを０．２ＧＨｚから１．２ＧＨｚまで段階的に上げる。以上のように、速度レベルを速くする場合には、まず、電圧識別子７０２による電圧を上げ、周波数を上げることが可能な状態にしてから、その後に、周波数識別子７０１による周波数を上げる必要がある。
【０１０３】
具体的には、図６に示すように、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１の周波数が速度レベルセレクタ１１６により出力された周波数識別子の周波数より低い旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子７０２の電圧が速度レベルセレクタ１１６により出力された電圧識別子の電圧より低い旨の比較結果を出力した場合には、電圧カウンタ１２３は、電圧が高くなる方向に電圧識別子７０２をカウントし、周波数カウンタ１２２は、周波数識別子７０１のカウントを停止する。
【０１０４】
また、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１の周波数が速度レベルセレクタ１１６により出力された周波数識別子の周波数より低い旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子が速度レベルセレクタ１１６により出力された電圧識別子と同じである旨の比較結果を出力した場合には、周波数カウンタ１２２は、周波数が高くなる方向に周波数識別子７０１をカウントし、電圧カウンタ１２３は、電圧識別子７０２のカウントを停止する。
【０１０５】
また、周波数比較器１１９が、周波数カウンタ１２２によりカウントされた周波数識別子７０１が速度レベルセレクタ１１６により出力された周波数識別子と同じである旨の比較結果を出力し、かつ、電圧比較器１２０が、電圧カウンタ１２３によりカウントされた電圧識別子７０２が速度レベルセレクタ１１６により出力された電圧識別子と同じである旨の比較結果を出力した場合には、周波数カウンタ１２２は、周波数識別子７０１のカウントを停止し、電圧カウンタ１２３は、電圧識別子７０２のカウントを停止する。
【０１０６】
本実施形態によれば、演算処理装置１０１毎に、周波数パラメータの種類及び値並びに電圧パラメータの種類及び値が異なっても、周波数テーブル１２４及び電圧テーブル１２６の内容を変えることで対応することができ、実行部１０４が速度レベルを要求レベルレジスタ１１１に書き込むプログラムの内容を変える必要がない。したがって、種々の演算処理装置１０１に対して、簡単に周波数パラメータ及び電圧パラメータの制御を行うことができる。
【０１０７】
図４（Ａ）〜（Ｃ）に示すように、速度レベルが遅くなるように速度レベルの変更が指示されると、クロック信号ＣＫの周波数が低くなるように制御され、その後に、電圧レギュレータ１０３が生成する電圧Ｖ１が低くなるように制御される。これに対し、速度レベルが速くなるように速度レベルの変更が指示されると、電圧レギュレータ１０３が生成する電圧Ｖ１が高くなるように制御され、その後に、クロック信号ＣＫの周波数が高くなるように制御される。
【０１０８】
上記の時刻「３」〜「４」では、現在の「５」の周波数識別子７０１から目標の「１」の周波数識別子７０１への低い周波数範囲で周波数識別子７０１が変更されるので、電源ノイズの影響は小さい。そこで、時刻「３」〜「４」では、周波数識別子７０１を「５」から「１」に一気に変更する。この場合、電源ノイズはほとんど発生しない。
【０１０９】
また、上記の時刻「４８」〜「５２」では、周波数識別子７０１が「１」から「１１」へ段階的に変更される。その際、現在の「１」の周波数識別子７０１から目標の「１１」の周波数識別子７０１までのうちの「１」の周波数識別子７０１から「９」の周波数識別子７０１までの第１の周波数範囲では、「０．４ＧＨｚ」の第１の変化量でクロック信号ＣＫの周波数を変化させる。これに対し、現在の「１」の周波数識別子７０１から目標の「１１」の周波数識別子７０１までのうちの「９」の周波数識別子７０１から「１１」の周波数識別子７０１までの第２の周波数範囲では、「０．１ＧＨｚ」の第２の変化量でクロック信号ＣＫの周波数を変化させる。
【０１１０】
第１の周波数範囲は、第２の周波数範囲に対して低い周波数の範囲であるので、電源ノイズの影響が小さい。そこで、「１」の周波数識別子７０１から「９」の周波数識別子７０１までの第１の周波数範囲では、「０．４ＧＨｚ」の大きい変化量でクロック信号ＣＫの周波数を変化させる。この場合、電源ノイズはほとんど発生しない。
【０１１１】
第２の周波数範囲は、第１の周波数範囲に対して高い周波数の範囲であるので、電源ノイズの影響が大きい。そこで、「９」の周波数識別子７０１から「１１」の周波数識別子７０１までの第２の周波数範囲では、「０．１ＧＨｚ」の小さい変化量でクロック信号ＣＫの周波数を変化させる。これにより、電源ノイズを低減することができる。
【０１１２】
これに対し、電圧レギュレータ１０３の現在の電圧識別子７０２から電圧レギュレータ１０３の目標の電圧識別子７０２まで同じ変化量で、電圧レギュレータ１０３の電圧識別子７０２は段階的に変化する。
【０１１３】
次に、周波数識別子を「１１」から「１」に下げる場合を説明する。現在、位相ロックループ回路１０２は、「１１」の周波数識別子に対応する周波数のクロック信号ＣＫを生成している。次に、「１０」の周波数識別子に対応するフラグは「１」であるので、位相ロックループ回路１０２は、「１０」の周波数識別子に対応する周波数のクロック信号ＣＫを生成する。次に、「９」の周波数識別子に対応するフラグは「１」であるので、位相ロックループ回路１０２は、「９」の周波数識別子に対応する周波数のクロック信号ＣＫを生成する。次に、「８」〜「６」の周波数識別子に対応するフラグは「０」であり、「５」の周波数識別子に対応するフラグは「１」であるので、位相ロックループ回路１０２は、「５」の周波数識別子に対応する周波数のクロック信号ＣＫを生成する。次に、「４」〜「２」の周波数識別に対応するフラグは「０」であり、「１」の周波数識別子に対応するフラグは「１」であるので、位相ロックループ回路１０２は、「１」の周波数識別子に対応する周波数のクロック信号ＣＫを生成する。
【０１１４】
次に、図７の本実施形態は、高速に周波数の変更及び速度レベルの変更を行うことができることを、図８と比較しながら説明する。
【０１１５】
図８は、図２（Ａ）の周波数テーブル１２４のフラグがすべて「１」である場合の演算処理装置１０１の制御例を示すタイムチャートである。時刻「３」〜「２０」では、速度レベルが「２」から「３」に変更される。まず、時刻「３」〜「７」では、周波数識別子８０１は、「５」から「１」まで、「１」ずつ変更される。次に、時刻「７」〜「２０」では、電圧識別子８０２は、「１５」から「２」まで、「１」ずつ変更される。この場合、図７の速度レベルを「２」から「３」に変更するための時間７０３は、図８の速度レベルを「２」から「３」に変更するための時間８０３より短いことが分かる。すなわち、図７の本実施形態は、周波数識別子７０１を「５」から「１」に変更する時の変動量を大きくすることにより、速度レベルの変更時間７０３を短くすることができる。その結果、図７では、速度レベルを「３」に下げるまでの時間を短くすることができるので、早期に、演算処理装置１０１の消費電力を低減することができる利点がある。
【０１１６】
また、時刻「２２」〜「５８」では、速度レベルが「３」から「０」に変更される。まず、時刻「２２」〜「４８」では、電圧識別子８０２は、「２」から「２８」まで、「１」ずつ変更される。次に、時刻「４８」〜「５８」では、周波数識別子８０１は、「１」から「１１」まで、「１」ずつ変更される。この場合、図７の速度レベルを「３」から「０」に変更するための時間７０４は、図８の速度レベルを「３」から「０」に変更するための時間８０４より短いことが分かる。すなわち、図７の本実施形態は、周波数識別子７０１を「１」から「９」に変更する時の変動量を「９」から「１１」に変更する時の変動量より大きくすることにより、速度レベルの変更時間７０４を短くすることができる。その結果、図７では、速度レベルを「０」に上げるまでの時間を短くことができるので、早期に、演算処理装置１０１の高速演算が可能になる利点がある。
【０１１７】
以上のように、クロック信号ＣＫの周波数を高周波数範囲で急激に大きく変更すると、急激な負荷変動となり、大きな電源ノイズとなる。また、急激な大きな電圧の変更は、電源が不安定となり、動作が安定しなくなる。本実施形態によれば、高周波数範囲ではクロック信号ＣＫの周波数を０．１ＧＨｚずつ小さい変動量で変更し、低周波数範囲ではクロック信号ＣＫの周波数を０．４ＧＨｚずつ大きい変動量で変更する。また、電圧Ｖ１は、現在の電圧から目標の電圧まで０．０５Ｖずつ段階的に変更する。これにより、電源ノイズを防止し、動作を安定化させることができ、高速に速度レベルを変更することができる。
【０１１８】
また、目標レベルレジスタ１１２は、現在、制御中の目標の速度レベルを記憶するので、制御途中であっても、実行部１０４は、制御の完了を待つことなく、次の速度レベルを要求レベルレジスタ１１１に書き込むことができる。この書き込みがされても、制御部１１８による制御が継続され、実行部１０４からの要求は要求レベルレジスタ１１１に保持される。制御部１１８による制御が完了すると現在レベルレジスタ１１３は目標レベルレジスタ１１２の速度レベルを保持し、先ほど保持した要求レベルレジスタ１１１の速度レベルと現在レベルレジスタ１１３を比較器１１７で比較し、要求レベルレジスタ１１１に保持された速度レベルの値と現在レベルレジスタ１１３に保持された速度レベルの値とが異なる場合には、要求レベルレジスタ１１１に保持した新たな速度レベルが目標レベルレジスタ１１２に書き込まれ、次の目標の速度レベルに向けた制御が開始される。この制御は、制御部１１８が行うため、実行部１０４が行わなくてよい。実行部１０４は、速度レベルを要求レベルレジスタ１１１に書き込むという簡単な処理で、周波数パラメータ及び電圧パラメータの制御を可能にする。本実施形態によれば、目標の速度レベルを与えるだけで、周波数パラメータ及び電圧パラメータを制御することができるので、周波数パラメータ及び電圧パラメータの制御を簡単に行うことができる。
【０１１９】
（第２の実施形態）
図９は、第２の実施形態による半導体装置の構成例を示す図である。図９は、図１に対して、セッティング部９０１を追加したものである。以下、本実施形態が第１の実施形態と異なる点を説明する。セッティング部９０１は、速度レベルセレクタ１１６が出力する周波数識別子及び周波数カウンタ１２２が出力する周波数識別子に応じて、周波数テーブル１２４のフラグを変更する。具体的には、セッティング部９０１は、速度レベルセレクタ１１６が出力する周波数識別子及び周波数カウンタ１２２が出力する周波数識別子に応じて、周波数テーブル１２４にフラグを設定する。
【０１２０】
図１０は、本実施形態による図９の制御部１１８が制御する状態遷移を示す図である。図１０は、図５に対し、セッティング状態Ｓ９を追加したものである。初期時は、アイドル状態Ｓ１である。実行部１０４が要求レベルレジスタ１１１に速度レベルを書き込み、比較器１１７が要求レベルレジスタ１１１の速度レベルと現在レベルレジスタ１１３の速度レベルが異なる旨を制御部１１８に出力すると、制御部１１８は、アイドル状態Ｓ１からセッティング状態Ｓ９に遷移する。セッティング状態Ｓ９では、セッティング部９０１は、速度レベルセレクタ１１６が出力する周波数識別子及び周波数カウンタ１２２が出力する周波数識別子に応じて、周波数テーブル１２４にフラグを設定する。その後、制御部１１８は、セッティング状態Ｓ９から比較状態Ｓ２に遷移する。
【０１２１】
図１１は、セッティング部９０１が設定する周波数テーブル１２４のフラグを示す図である。セッティング部９０１は、周波数カウンタ１２２が出力する現在の周波数識別子と、速度レベルセレクタ１１６が出力する目標の周波数識別子に応じて、周波数テーブル１２４の適切なフラグを設定する。位相ロックループ回路１０２は、第１の実施形態と同様に、周波数テーブル１２４のフラグが「１」である周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２２】
まず、現在の周波数識別子が「１１」であり、目標の周波数識別子が「９」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２３】
次に、現在の周波数識別子が「１１」であり、目標の周波数識別子が「５」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２４】
次に、現在の周波数識別子が「１１」であり、目標の周波数識別子が「１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２５】
次に、現在の周波数識別子が「９」であり、目標の周波数識別子が「１１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２６】
次に、現在の周波数識別子が「９」であり、目標の周波数識別子が「５」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「８」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「７」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２７】
次に、現在の周波数識別子が「９」であり、目標の周波数識別子が「１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「８」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「７」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２８】
次に、現在の周波数識別子が「５」であり、目標の周波数識別子が「１１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１２９】
次に、現在の周波数識別子が「５」であり、目標の周波数識別子が「９」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「７」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「８」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１３０】
次に、現在の周波数識別子が「５」であり、目標の周波数識別子が「１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「４」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「３」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１３１】
次に、現在の周波数識別子が「１」であり、目標の周波数識別子が「１１」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「１０」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「１１」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１３２】
次に、現在の周波数識別子が「１」であり、目標の周波数識別子が「９」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「７」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「８」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「９」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１３３】
次に、現在の周波数識別子が「１」であり、目標の周波数識別子が「５」である場合を説明する。その場合、現在、位相ロックループ回路１０２は、「１」の周波数識別子の周波数のクロック信号ＣＫを生成している。次に、位相ロックループ回路１０２は、「３」の周波数識別子の周波数のクロック信号ＣＫを生成する。次に、位相ロックループ回路１０２は、「４」の周波数識別子の周波数のクロック信号ＣＫを生成する。最後に、位相ロックループ回路１０２は、「５」の周波数識別子の周波数のクロック信号ＣＫを生成する。
【０１３４】
以上のように、目標の周波数識別子が現在の周波数識別子より大きい場合、現在の周波数識別子から目標の周波数識別子までのうちの高周波数側の３個の周波数識別子のフラグを「１」にし、それ以外の周波数識別子のフラグを「０」にする。また、目標の周波数識別子が現在の周波数識別子より小さい場合、現在の周波数識別子から目標の周波数識別子までのうちの高周波数側の３個の周波数識別子のフラグを「１」にし、目標の周波数識別子のフラグを「１」にし、それ以外の周波数識別子のフラグを「０」にする。
【０１３５】
また、現在の周波数識別子から目標の周波数識別子までのうちの低周波数範囲では第１の変化量でクロック信号ＣＫの周波数を変化させ、現在の周波数識別子から目標の周波数識別子までのうちの高周波数範囲では第２の変化量でクロック信号ＣＫの周波数を変化させる。低周波数範囲は高周波数範囲に比べて電源ノイズの影響が小さいので、第１の変化量は第２の変化量より大きくする。これにより、周波数の変更及び速度レベルの変更を高速に行うことができる。上記の低周波数範囲及び高周波数範囲は、現在の周波数識別子及び目標の周波数識別子に応じて変化する。
【０１３６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１３７】
１０１  演算処理装置
１０２  位相ロックループ回路
１０３  電圧レギュレータ
１０４  実行部
１０５  メモリ
１１１  要求レベルレジスタ
１１２  目標レベルレジスタ
１１３  現在レベルレジスタ
１１４  速度レベルテーブル
１１５  不揮発性メモリ
１１６  速度レベルセレクタ
１１７  比較器
１１８  制御部
１１９  周波数比較器
１２０  電圧比較器
１２１  判定部
１２２  周波数カウンタ
１２３  電圧カウンタ
１２４  周波数テーブル
１２５  周波数セレクタ
１２６  電圧テーブル
１２７  電圧セレクタ
１２８  フラグセレクタ
１２９  フラグチェック部
【図１】
0006492969.tif 000002
【図２】
0006492969.tif 000003
【図３】
0006492969.tif 000004
【図４】
0006492969.tif 000005
【図５】
0006492969.tif 000006
【図６】
0006492969.tif 000007
【図７】
0006492969.tif 000008
【図８】
0006492969.tif 000009
【図９】
0006492969.tif 000010
【図１０】
0006492969.tif 000011
【図１１】
0006492969.tif 000012