(57)【要約】  電子装置を提供し、該電子装置は、クロック信号を供給するクロックデバイスと、前記クロック信号を受け取るクロックゲートであって、イネーブル状態またはディスエーブル状態で選択的に設けられるクロックゲートとを含む。該電子装置は、周波数遷移を判定し、判定された周波数遷移に基づいて前記クロックゲートを前記イネーブル状態またはディスエーブル状態になるように制御するコントローラを含んでも良い。
2019517062.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を供給するクロックデバイスと、
前記クロック信号を受け取るクロックゲートであって、イネーブル状態またはディスエーブル状態で選択的に設けられるクロックゲートと、
前記クロック信号の特定周波数を判定し、判定された特定周波数に基づいて前記クロックゲートを前記イネーブル状態またはディスエーブル状態になるように制御するコントローラとを有する、
電子装置。
【請求項２】
前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第１の論理ブロックをさらに有する、請求項１に記載の電子装置。
【請求項３】
前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られない、請求項２に記載の電子装置。
【請求項４】
前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行する、
請求項２に記載の電子装置。
【請求項５】
前記コントローラは判定された新しい周波数に基づいて前記クロックゲートの状態を変更する、請求項１に記載の電子装置。
【請求項６】
異なる複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶するメモリをさらに有する、請求項１に記載の電子装置。
【請求項７】
前記コントローラは、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定する、請求項１に記載の電子装置。
【請求項８】
クロック信号を供給するクロック手段と、
前記クロック信号を受け取るゲート手段であって、イネーブル状態またはディスエーブル状態で選択的に設けられるゲート手段と、
前記クロック信号の特定周波数を決定する制御手段であって、決定された特定周波数に基づいて前記ゲート手段をイネーブル状態またはディスエーブル状態に制御する制御手段とを有する、
電子装置。
【請求項９】
前記ゲート手段がイネーブル状態であるとき、前記クロック信号を受け取る第１の論理ブロックをさらに有する、請求項８に記載の電子装置。
【請求項１０】
前記ゲート手段がディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られない、請求項９に記載の電子装置。
【請求項１１】
前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行する、
請求項９に記載の電子装置。
【請求項１２】
前記制御手段は判定された新しい周波数に基づいて前記ゲート手段の状態を制御する、請求項９に記載の電子装置。
【請求項１３】
異なる複数の周波数に基づいて前記ゲート手段のイネーブルまたはディスエーブルに関する情報を記憶する記憶手段をさらに有する、請求項９に記載の電子装置。
【請求項１４】
前記制御手段は、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定する、請求項９に記載の電子装置。
【請求項１５】
特定周波数を決定する、少なくともその一部はハードウェアである第１のロジックと、
決定された特定周波数に基づいて、クロックゲートをイネーブル状態またはディスエーブル状態にするように制御する、少なくともその一部はハードウェアである第２のロジックとを有する、
電子装置。
【請求項１６】
前記クロックゲートがイネーブル状態であるとき、クロック信号を受け取る第１の論理ブロックをさらに有する、請求項１５に記載の電子装置。
【請求項１７】
前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られない、請求項１６に記載の電子装置。
【請求項１８】
前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行する、
請求項１６に記載の電子装置。
【請求項１９】
異なる複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶するメモリをさらに有する、請求項１５に記載の電子装置。
【請求項２０】
前記第１のロジックは、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定する、請求項１５に記載の電子装置。
【請求項２１】
前記第１のロジックは、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更する、請求項１５に記載の電子装置。
【請求項２２】
コントローラにより実行されると、前記コントローラに
クロック信号の特定の周波数を決定することと、
クロック信号の決定された特定の周波数に基づいて、イネーブル状態またはディスエーブル状態になるようクロックゲートを制御することとを実行させる、
コンピュータプログラム。
【請求項２３】
第１の論理ブロックは、前記クロックゲートがイネーブル状態であるときクロック信号を受け取る、請求項２２に記載のコンピュータプログラム。
【請求項２４】
前記コントローラに、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定することをさらに実行させる、
請求項２２に記載のコンピュータプログラム。
【請求項２５】
前記コントローラに、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更することをさらに実行させる、請求項２２に記載のコンピュータプログラム。
【請求項２６】
請求項２２ないし２５いずれか一項に記載のコンピュータプログラムを記憶した非一時的な機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
複数の実施形態には、クロック信号の特有の周波数に基づくクロックゲートの制御に関するものもある。
【背景技術】
【０００２】
クロックゲーティング（ｃｌｏｃｋ  ｇａｔｉｎｇ）は、アイドル状態の論理回路の電力消費を低減する技術である。クロックゲーティングは、電力を節約するために、実行すべき作業があるときにだけ、論理ブロックにおいてクロックをアクティブ化することを言う。しかし、クロックゲーティングはさらにタイミング制約を生じることがある。例えば、複雑な論理回路（ｌｏｇｉｃ）に、タイミングマージンが極端に狭いクロックゲーティングを含めることは難しい場合がある。
【図面の簡単な説明】
【０００３】
次の図面を参照して構成と実施形態を詳細に説明する。図中、同じ参照数字は同じ要素を指す。
【図１】例示的構成による電子システムを示すブロック図である。
【図２】例示的な実施形態によるクロック源とＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）とを示す図である。
【図３】例示的な実施形態によるクロック源とＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）とを示す図である。
【図４】例示的実施形態による動作を示すフローチャートである。
【図５】例示的構成による電子システムを示す図である。
【発明を実施するための形態】
【０００４】
以下の詳細な説明では、同じ数字及び文字を用いて、複数の異なる図中の同じ、対応する、及び／又は類似したコンポーネントを示す。さらに、以下の詳細な説明では、サイズ／モデル／値／範囲の例を与えるが、実施形態はそれらに限定されない。実施例を説明するために具体的な詳細事項を記載するが、当業者には言うまでもなく、実施形態はこれらの具体的な詳細事項が無くても実施することができる。
【０００５】
複数の実施形態は電子システムと、電子装置及び／又は電子デバイスとに応用可能である。電子システム及び／又は電子デバイスは、モバイル端末、モバイルデバイス、モバイル計算プラットフォーム、モバイルプラットフォーム、サーバ、ラップトップコンピュータ、タブレット、ウルトラモバイルパーソナルコンピュータ、モバイルインターネットデバイス、スマートフォン、パーソナルデジタルアシスタント、ディスプレイデバイス、テレビジョン（ＴＶ）などのうちどれであってもよい。
複数の実施形態は電子システム及び／又は電子デバイスに関するものであってもよい。これらはプラットフォームと呼ばれることもある。プラットフォームはハードウェア及びソフトウェアを含み得る。プロセッサはプラットフォームのコンポーネントであり得る。
【０００６】
図１は例示的構成による電子システムを示すブロック図である。他の構成（ｃｏｎｆｉｇｕｒａｔｉｏｎｓ  ａｎｄ  ａｒｒａｎｇｅｍｅｎｔｓ）を提供してもよい。
【０００７】
より具体的には、図１は、システムオンチップ（ＳＯＣ）１２０、システムメモリ１５０及びディスプレイ１６０を含む得る電子システム１００を示す。図１に示すコンポーネントは説明を容易にするための単なる例である。他のコンポーネントを設けてもよい。電子システム１００は電子装置及び／又は電子デバイスと呼ばれることもある。
【０００８】
一例として、システムオンチップ１２０はプロセッサ１２２、電力管理部（ＰＭＵ）１２４、メモリコントローラ１２６、ビデオコントローラ１２８及びクロックデバイス１４０を含んでいてもよい。これらの要素は単なる例として示したものであり、他のコンポーネントが設けられてもよい。
【０００９】
クロックデバイス１４０はＳＯＣ１２０が使用するクロック信号を提供する。クロック信号を用いてＳＯＣ１２０の論理回路を駆動してもよい。一例として、論理回路は機能ブロック（論理ブロック）として提供されてもよく、機能ブロックはクロック信号により駆動されてもよい。少なくとも１つの構成において、クロックデバイスはクロック信号を提供するフェーズロックループ（ＰＬＬ）を含んでもよい。クロック信号は単一周波数で供給されてもよい。しかし、クロック信号の周波数クロックデバイスで変更されてもよく、ＰＭＵ１２４のコンポーネントにより変更されてもよい。
【００１０】
電力管理部（ＰＭＵ）１２４はクロックデバイス１４０に結合され、それからクロック信号を受信してもよい。少なくとも１つの構成において、ＰＭＵ１２４は、クロック信号を管理し、プロセッサ１２２（及び／又はプロセッサ１２２の（複数の）機能ブロック）、メモリコントローラ１２６及びビデオコントローラ１２８などの各コンポーネントにクロック信号を提供してもよい。
【００１１】
プロセッサ１２２は、受信したクロック信号に基づいて動作することができる論理回路（ｌｏｇｉｃ）を含んでいてもよい。少なくとも１つの実施例では、（プロセッサ１２２の）論理回路は、少なくとも１つの機能ブロック（又は論理ブロック）を含んでいてもよい。少なくとも１つの実施例では、（プロセッサ１２２の）論理回路は、複数の機能ブロックを含んでいてもよい。各機能ブロックは、クロック信号を別々に受け取り、受け取ったクロック信号に基づいて特有の機能を実行することができる。
【００１２】
機能ブロックは異なる周波数で動作してもよい。例えば、機能ブロック（又は論理ブロック）は、（第１の周波数のクロック信号を用いる）第１のモードで動作してもよく、（第２の周波数のクロック信号を用いる）第２のモードで動作してもよい。換言すると、機能ブロックが第１のモード（すなわち、第１の動作モード）で動作するため、クロック信号は第１の周波数でそのブロックに供給されねばならず、そのブロックが第２のモード（すなわち、第２の動作モード）で動作するため、クロック信号は第２の周波数でそのブロックに供給されねばならない。
【００１３】
メモリコントローラ１２６は、ＳＯＣ１２０に設けられてもよく、システムメモリ１５０と通信してもよい。システムメモリ１５０はシステムメモリ１５０内に情報を格納してもよく、及び／又は情報はシステムメモリ１５０からＳＯＣ１２０に提供されてもよい。メモリコントローラ１２６はＰＭＵ１２４から信号及び／又は情報を受け取ることができる。
【００１４】
ビデオコントローラ１２８は、ＳＯＣ１２０に設けられてもよく、ディスプレイ１６０と動作して画像、オブジェクトなどを表示してもよい。ディスプレイ１６０はＳＯＣ１２０の外部にあってもよい。ビデオコントローラ１２８はディスプレイ１６０を制御できる。ビデオコントローラ１２８はＰＭＵ１２４から信号及び／又は情報を受け取ることができる。
【００１５】
図２は、例示的な構成によるクロック源とＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）とを示す図である。クロック源及びＩＰは電子デバイス、電子装置又は電子システムに設けられてもよい。１つの実施例として、クロック源とＩＰとが図１の電子システム１００に設けられてもよい。他の構成（ｃｏｎｆｉｇｕｒａｔｉｏｎｓ  ａｎｄ  ａｒｒａｎｇｅｍｅｎｔｓ）も可能である。
【００１６】
より具体的に、図２はクロックデバイス１４０とＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）２００とを示す。ＩＰ２００は複数の異なる論理回路、回路などのうちどれを含んでいてもよい。ＩＰは機能モジュール、プロセッサ、ビデオコントローラ、メモリコントローラ、インターコネクト（ｉｎｔｅｒｃｏｎｎｅｃｔ）などを指すことができる。
【００１７】
少なくとも１つの実施例では、ＩＰ２００はＳＯＣ１２０のプロセッサ１２２に対応してもよい。ＩＰ２００は、電子システム及び／又は電子デバイス／装置の他のコンポーネントに対応してもよい。少なくとも１つの構成において、ＩＰ２００はプロセッサ１２２及び／又はＰＭＵ１２４の一部であってもよい。ＩＰは論理回路を含んでいてもよい。論理回路は、所望のタスクや機能を実行するために、回路、ファームウェア、機能ブロックなどを含んでいてもよい。
【００１８】
ＩＰ２００のコンポーネント／要素は、複数の異なるやり方で提供及び／又は構成されてもよい。このように、図２は１つの構成を示すが、他の構成やコンポーネントが設けられてもよい。
【００１９】
図２に示すように、ＩＰ２００はクロックゲート２１０と論理ツリーとを含んでいてもよい。一例として、論理ツリー（ｌｏｇｉｃ  ｔｒｅｅ）は論理ブロック２２０、論理ブロック２３０及び論理ブロック２４０を含んでいてもよい。設けられる論理ブロックの数は異なっても良い。複数の異なる機能、動作及び／又はアプリケーションのどれかを実行する論理ブロックが設けられてもよい。各論理ブロックは論理ブロックの特有の機能を実行する論理回路及び／又は回路を含んでいてもよい。
【００２０】
一例として、論理ブロック２２０はクロック信号を受け取って第１の機能（又は動作又はアプリケーション）を実行するように設計されていてもよく、論理ブロック２３０はクロック信号を受け取って第２の機能（又は動作又はアプリケーション）を実行するように設計されていてもよく、論理ブロック２４０はクロック信号を受け取って第４の機能（又は動作又はアプリケーション）を実行するように設計されていてもよい。各論理ブロックは、クロック信号の受け取りに応じて、別の機能やアプリケーションを実行してもよい。
【００２１】
クロックデバイス１４０は特定周波数のクロック信号を供給してもよい。クロック信号はクロックデバイス１４０からＩＰ２００のクロックゲートに供給されてもよい。クロック信号の特定の周波数は、変化しても、変更されてもよい。
【００２２】
クロックゲート２１０は異なる２つの状態で、すなわち（１）イネーブル状態で、及び（２）ディスエーブル状態になってもよい。イネーブル状態はイネーブルモードまたはクローズモードと呼ばれることもある。ディスエーブル状態はディスエーブルモードまたはオープンモードと呼ばれることもある。
【００２３】
クロックゲート２１０がイネーブル状態にあるとき、クロック信号はクロックゲート２１０を通り、論理ツリーの各論理ブロック２２０、２３０、２４０に送られても良い。換言すると、クロック信号は、クロックゲートがイネーブル状態にあるとき、論理ブロックに供給される。一方、クロックゲート２１０がディスエーブル状態にあるとき、クロック信号はクロックゲート２１０を通らず、論理ツリーの各論理ブロック２２０、２３０、２４０に送られない。言い換えると、クロック信号は、クロックゲートがディスエーブル状態にあるとき、論理ツリーの論理ブロックに供給される（又は到達する）ことを阻止（又は拒絶）されてもよい。
【００２４】
少なくとも一例では、クロックゲート２１０は、オープンまたはクローズしてクロックゲートをそれぞれイネーブル状態またはディスエーブル状態にするスイッチを含み得る。例えば、（クロックゲート２１０の）スイッチがクローズされると、クロックゲートはイネーブル状態（またはクローズ状態）になると考えられる。クロックゲート１４０がイネーブル状態にあるとき、クロックデバイス１４０からのクロック信号はクロックゲート２１０（すなわちスイッチ）を通り、論理ツリーの各論理ブロック２２０、２３０、２４０に送られ得る。他方、（クロックゲート２１０の）スイッチがオープンされると、クロックゲートはディスエーブル状態（またはオープン状態）になると考えられる。クロックゲートがディスエーブル状態にあるとき、クロックデバイス１４０からのクロック信号は、クロックゲート２１０を通れず（拒絶され）、論理ブロックはクロック信号を受け取れない。よって、クロックゲート２１０がディスエーブル状態にあるとき、論理ブロック２２０、２３０、２４０は動作しない。
【００２５】
実施形態によっては、動的クロックゲーティング周波数スケーリング（Ｄｙｎａｍｉｃ  Ｃｌｏｃｋ  ｇａｔｉｎｇ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ（ＤＣＦＳ））を実装してもよい。実施形態によっては、ＩＰ（プロセッサ、チップなど）に、特定周波数のみで、クロックゲーティングを実装してもよい。ある周波数はクロックゲーティングパス（ｃｌｏｃｋ  ｇａｔｉｎｇ  ｐａｔｈ）のタイミングに合わず、一定の高周波ではクロックゲーティングがディスエーブルされるので、特定周波数が供給されてもよい。時間が長くなる低周波では、クロックゲーティングタイミングパス（ｃｌｏｃｋ  ｇａｔｉｎｇ  ｔｉｍｉｎｇ  ｐａｔｈ）により大きなタイミングマージンを設け、それにより低周波におけるクロックゲーティングをイネーブルしてもよい。実施形態によっては、特定の動作周波数を判定することと、クロックゲートをイネーブル状態またはディスエーブル状態にするか判定することとを含んでもよい。例えば、コントローラは周波数遷移（ｆｒｅｑｕｅｎｃｙ  ｔｒａｎｓｉｔｉｏｎ）を判定してもよい。周波数遷移はクロック信号の周波数が変化する時点である。コントローラは、判定された周波数（及び／又は周波数遷移）に基づいて、クロックゲートを制御してイネーブル状態またはディスエーブル状態にする。
【００２６】
少なくとも一例では、ＩＰの動作時間中に、ファームウェア（又はソフトウェア）がクロックデバイスの各周波数に基づいてクロックゲートを選択的にイネーブル及び／又はディスエーブルしてもよい。これにより、クロック信号が複数の論理ブロック（又は機能ブロック）の少なくとも１つに供給されるか制御される。このように、論理ブロックは特定周波数に基づき特定機能を実行することができる。クロックゲートを選択的にイネーブル及び／又はディスエーブルすることは、コントローラ、ファームウェア、論理回路及び／又は回路により実行されてもよい。選択的にイネーブルまたはディスエーブルすることは、特定の周波数及び／又は周波数遷移（クロック信号周波数の変更など）に基づいてもよい。
【００２７】
動作中、ＩＰ（又は電子装置）で利用される帯域幅が判定される。言い換えると、ＩＰ（又は電子装置／システム）で利用される（又は利用されている）帯域幅の大きさがモニタまたは判定されてもよい。電力を節約するため、利用されるデータ量に基づいて、異なる周波数を利用してもよい。一例として、アプリケーションが実行されてもよく、一定のデータ量を消費してもよい。アプリケーションは異なる複数の周波数のどれで動作してもよい。したがって、判定された帯域幅と可能性のある周波数とに基づいて、特定周波数（及びそれによる周波数遷移）を決定してもよい。周波数（及び／又は周波数遷移）に基づいて、ＩＰのクロックゲートは選択的にイネーブルまたはディスエーブルされてもよい。クロックゲート（及びクロック信号）のイネーブル及び／又はディスエーブルは、クロック信号が各論理ブロックに供給されるかどうかを制御することができる。言い換えると、論理ブロックは、クロックゲートの選択的にイネーブルまたはディスエーブルに基づき、クロック信号を受け取る（又はクロック信号を受け取らない）ことができる。選択的なイネーブルまたはディスエーブルは、特定の周波数（及び／又は周波数遷移）に基づいても良い。
【００２８】
少なくとも１つの実施形態では、コントローラは、帯域幅をモニタするために（Ｐコードなどの）ファームウェアを用いて動作してもよく、（クロック信号の）周波数を判定して、各論理ブロックにクロック信号を供給する（クロック信号を供給しない）ためにクロックゲートをイネーブル／ディスエーブルしてもよい。ファームウェア（又はＰコード）はＩＰのメモリなどのメモリに記憶されてもよい。
【００２９】
少なくとも１つの実施形態では、コントローラは（プロセッサ、チップ、ＳＯＣなどの）ＩＰで利用されているデータ量をモニタしてもよい。例えば、コントローラは、ＩＰの（論理ブロックにある）特定のアプリケーションが利用されている（又は利用される）ときに、データをモニタしてもよい。したがって、コントローラは利用されている（利用される）帯域幅の大きさを決定することができる。コントローラは、決定された帯域幅の大きさに基づいて、利用され得る異なる複数の周波数のうち少なくとも１つを決定してもよい。異なる複数の周波数は事前に記憶されていてもよい。一例として、新たに決定された周波数は、ＩＰ（又は電子装置／システム）による消費電力の点で、より効率的であり得る。新しい周波数に基づいて、コントローラはクロックゲートのイネーブル及び／又はディスエーブルを制御してもよい。
【００３０】
より具体的に、コントローラは（ファームウェア及び／又はソフトウェアを用いて）特定の動作周波数を決定してもよい。特定の動作周波数は、（周波数が異なるクロック信号を供給できる）クロックデバイスからのクロック信号の周波数に基づいてもよい。それゆえ、クロックゲートは、決定された新しい周波数に基づいて、選択的にイネーブルまたはディスエーブルされてもよい。
【００３１】
実施形態によっては、利用可能なタイミングマージンに基づき、適切な周波数でクロックゲーティングを選択的にイネーブル／ディスエーブルするサポートをファームウェアに追加して、特定周波数でのクロックゲーティングを実装してもよい。これにより、異なる周波数範囲にわたり、動作するワークロードにわたり、最適パワーが得られる。
【００３２】
上記の通り、異なる周波数など、異なるクロック信号がクロックデバイスから提供され得る。様々なクロック信号を、１つ又は複数のクロックデバイス（様々なフェーズロックループなど）及び／又はＰＭＵ１２０から供給してもよい。
【００３３】
図３は、例示的な実施形態によるクロック源とＩＰ（ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｙ）とを示す図である。クロック源及びＩＰは、電子装置、電子デバイス、電子装置又は電子システムに設けられてもよい。他の構成や実施形態も可能である。図３は、図２に示したコンポーネントも含んでいるかも知れない。説明を容易にするため、類似または同一のコンポーネントはこれ以上説明しない。
【００３４】
より具体的に、図３はクロックデバイス１４０とＩＰ２００とを示す。ＩＰ２００は例えばプラットフォームまたはＳＯＣであってもよい。図３は、ファームウェア（Ｐコードなど）に基づき動作し得るコントローラ３００（又は制御デバイス）も示す。ファームウェア（Ｐコードなど）は例えばメモリ３１０に設けられてもよい。メモリ３１０はメモリ帯域幅（ｍｅｍｏｒｙ  ｂａｎｄｗｉｄｔｈ）を提供する論理回路であってもよい。コントローラ３００は、クロックゲート２１０のイネーブルまたはディスエーブルを選択的に制御することができる。少なくとも１つの実施形態では、複数のクロックゲートを設けてもよく、各ゲートはコントローラ３００や他のデバイス（プロセッサなど）により別々に選択的に制御されてもよい。
【００３５】
クロックゲート２１０はブート中に統計的に設定されるレジスタ設定により制御されてもよい。これはハードウェア（ＨＷ）設定を制御するために行われてもよい。レジスタはブート中に値をプリセットする一組のフリップフロップであってもよい。
【００３６】
コントローラ３００はファームウェア（Ｐコードなど）に基づいてクロックゲート２１０の状態（イネーブルまたはディスエーブル）を制御することもできる。コントローラ３００は、ＩＰ周波数及び／又は（ＩＰのコンポーネントを作動させる）クロック信号の周波数に基づき、クロックゲーティングをイネーブル／ディスエーブルすることができる。一例として、メモリ（又は記憶部）はＩＰ周波数（またはクロック信号周波数）及びクロックゲーティングのイネーブル／ディスエーブルに関する情報を含んでいてもよい。この情報は後ほど表１の情報として参照する。（下に示す）ルックアップテーブルは、ＩＰ周波数と、クロックゲーティングのイネーブル／ディスエーブルとに関する表１のこの情報を含んでいてもよい。この情報は、事前に決定され、電子装置、デバイスまたはシステムに格納されてもよい。一例として、ルックアップテーブルの情報はＰコード（ｐ−ｃｏｄｅ）に予め格納されていてもよい。Ｐコード（ｐ−ｃｏｄｅ）はコントローラ（又はその他のデバイス）により実行されるソフトウェア（ＳＷ）コードである。表１の情報は、メモリ３１０及び／又はＳＯＣのその他のメモリに格納されてもよい。
【００３７】
【表１】
2019517062.tif 000003
（上に示した）表１の情報は、クロックゲート２１０がＩＰ周波数に基づき制御されてもよいことを示す。ＩＰ周波数はＩＰの論理ブロックを作動させるのに利用される特定周波数である。周波数は、決定され、利用されている（又は利用される）帯域幅に基づき決定されてもよい。上記の通り、決定は次のどれか、すなわちコントローラ３００、ファームウェア、Ｐコード（ｐ−ｃｏｄｅ）などにより行われ得る。
【００３８】
実施形態によっては、（特定周波数の）クロック信号をＩＰの論理回路（又は論理ブロック）に供給するか、クロックゲートが制御してもよい。この決定は表１に示したような事前に得られた情報に基づいて行われても良い。表１の情報は、特定のＩＰの各周波数で利用可能なタイミングマージンに基づくものであってもよい。
【００３９】
表１に示すように、クロックゲート２１０は、特定の周波数でのみイネーブル状態に選択的に設けられてもよい。例えば、クロック信号の特定の周波数が１．３５ＧＨｚまたは１．１ＧＨｚである場合、クロックゲート２１０を選択的にイネーブル状態（またはクローズ状態）にすることができる。したがって、クロック信号が１．３５ＧＨｚまたは１．１ＧＨｚで供給される場合、クロック信号はクロックゲート２１０を通過して論理ブロックに供給される。
【００４０】
一方、クロック信号の特定の周波数が１．６ＧＨｚまたは２．１ＧＨｚである場合、クロックゲート２１０を選択的にディスエーブル状態（またはオープン状態）にすることができる。したがって、クロック信号は、１．６ＧＨｚまたは２．１ＧＨｚで供給される場合、クロックゲート２１０を通過せず、（論理ブロックがクロック信号を受信しないので）それぞれの論理ブロックは動作しなくてもよい。
【００４１】
図４は、例示的実施形態による動作を示すフローチャートである。他の動作、動作順序、及び実施形態も使用できるだろう。説明を容易にするために、図４は、図３に示すような電子システム（図１の電子システムの構成要素であってもよい）の実施形態に関する動作を示す。図４は、電子システムの全ての動作を示すものではない。
【００４２】
図４のフローチャートは、少なくとも部分的に、コントローラ、ファームウェア、Ｐコードなどによって実行されてもよい。これは、ランタイムＩＰ周波数に基づいて、ＩＰのクロックゲーティングを動的に制御することができる。
【００４３】
より具体的には、図４は、電子装置、デバイスまたはシステムを制御する方法を示す。電子装置、デバイスまたはシステムは、最初に動作４０２で電源が投入されてもよい。動作４０４において、クロック信号が（クロック装置などから）供給されてもよい。最初のクロック信号は、例えばデフォルト設定であってもよい。
【００４４】
動作４０６では、クロックゲート（クロックゲート２１０など）でクロックゲーティングを選択的にイネーブル（またはイネーブル状態のままに）することができる。これは、クロック信号がＩＰの論理ブロックに供給されることを可能にする。クロックゲーティングは最初に、電子システムの最初の起動時にデフォルトでイネーブルにされてもよい。
【００４５】
動作４０８において、帯域幅は、例えば、コントローラによって監視（または決定）されてもよい。コントローラは、電子装置、デバイスまたはシステムがクロック信号の周波数で動作している間に、使用されている（または使用される）データの量を監視する（または決定する）ことができる。
【００４６】
監視に基づいて、コントローラ（またはファームウェア）は、新しい周波数が効率の目的のために使用され得ることを決定することができる。動作４１０において、コントローラは、（新しい周波数が使用されると判定されたとき）周波数遷移を決定することができる。例えば、周波数遷移点において、ファームウェア（またはＰコード）は、表１のような情報を参照することができる。この情報は、クロックゲーティングがイネーブルされるべきかディスエーブルされるべきかを決定するために使用され得る。
【００４７】
動作４１２において、クロックゲートをイネーブル状態またはディスエーブル状態に選択的に提供するかどうかに関する決定が行われる。この決定は、コントローラ、ファームウェア、Ｐコードなどに基づいて行うことができる。例えば、クロック信号の周波数に基づいて、クロックゲートをイネーブルまたはディスエーブルにするかどうかの決定を行うことができる。
【００４８】
動作４１４はクロックゲートのディスエーブルを伴う。この結果、論理ブロックにクロック信号が供給されなくなる。従って、論理ブロックは特定の機能を実行しない。例えば、ＩＰが新しい決定された周波数でクロックゲーティングをサポートできない場合、動作４１４でクロックゲートをディスエーブル（「０」）にすることができる。動作４２０に戻り、電子システム（または電子システムの一部）が再起動されてもよい。動作４１６はクロックゲートのイネーブルを伴う。これにより、論理ブロックに（特定の周波数で）クロック信号が供給されることになる。したがって、論理ブロック（または機能ブロック）はそれぞれ特定の機能を実行する。例えば、ＩＰが新しい決定された周波数でクロックゲーティングをサポートできる場合、動作４１６でクロックゲートをイネーブル（「１」）にすることができる。次に動作４０８に戻り、帯域幅を監視することができる。
【００４９】
図５は、例示的実施形態による電子システムを示す図である。他の実施形態及び構成を提供してもよい。電子システムは、上述のように動作し得るシステムのコンポーネントを示すために提供される。
【００５０】
図５は、プロセッサ５１０、電源５２０、ディスプレイ５２５およびメモリ５３０を含むシステム５００を示す。プロセッサ５１０は、例えば、算術論理ユニットおよび内部キャッシュを含むことができる。プロセッサ５１０は、非一時的なコンピュータ可読媒体（または機械可読媒体）を介して受け取った命令など、受け取った命令を使用することによって動作を実行することができる。プロセッサ５１０は、前述の任意のプロセッサに対応することができる。コントローラを設けてもよい。
上述の特徴は、図５に示す電気システム５００内に提供されてもよい。
【００５１】
またシステム５００は、グラフィカルインターフェース５４０、チップセット５５０、キャッシュ５６０、ネットワークインターフェース５７０および無線通信ユニット５８０を含むことができる。無線通信ユニット５８０はネットワークインターフェース５７０内に組み込まれていてもよい。代替的にまたは追加的に、無線通信ユニット５９０は、プロセッサ５１０に結合されてもよく、メモリ５３０とプロセッサ５１０との間には直接接続が存在してもよい。
【００５２】
プロセッサ５１０は、ＣＰＵ、マイクロプロセッサ、またはその他の任意のタイプの処理回路または演算回路であってもよく、残りの機能のすべてまたは任意の組み合わせを有するチップダイに含まれてもよく、または残りの機能の１つまたは複数は、既知の接続およびインターフェースを介してマイクロプロセッサダイと電気的に結合していてもよい。図示されている接続は単なる例示であり、例えばチッププラットフォーム、機能またはアプリケーション要件に応じて、図示されている要素間のその他の接続が存在する可能性がある。
【００５３】
少なくとも１つの実施形態では、プロセッサ５１０は、上述のようなシステムオンチップのようなチップ上に設けられてもよい。プロセッサは、メモリコントローラおよびグラフィックスデバイスなどのコンポーネントを含むことができ、および／またはそれらに結合されてもよい。
【００５４】
少なくとも１つの実施形態において、コンピュータ可読媒体（または機械可読媒体）は、クロックゲートを制御するためのプログラムを格納することができる。プログラムはシステムメモリに格納されてもよい。システムメモリは、例えば、プロセッサの内部にあっても外部にあってもよい。プログラムは命令またはコードを含むことができる。
【００５５】
プロセッサ（又はコントローラ）により実行される命令またはコードは、機械読み取り可能媒体、または一以上の電子的にアクセス可能な媒体などへのアクセスを提供するリモート接続（例えば、アンテナ及び／又はネットワークインターフェースを介してネットワークにより）を介してアクセスできる外部ストレージデバイスからメモリに提供されてもよい。機械読み取り可能媒体には、機械（例えば、コンピュータ）による読み取りが可能な形式で情報を提供（すなわち、格納及び／又は伝送）する任意のメカニズムが含まれる。例えば、機械読み取り可能媒体には、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、磁気または光記憶媒体、フラッシュメモリデバイス、電子的、光学的、音響的その他の形式の伝送信号（例えば搬送波、赤外線信号、デジタル信号等）などが含まれる。別の実施形態では、命令またはコードの替わりに、またはそれと組み合わせてハードワイヤード回路を用いてもよく、このように実施形態はハードウェア回路とソフトウェア命令との特定の組み合わせには限定されない。
【００５６】
プログラムは、前述の実施形態で実行される動作または機能のどれを実行するコードまたは命令を含み得る。
【００５７】
上記の実施形態の機能はタスクを実行するコードセグメントまたは命令で提供されてもよい。コードセグメントまたはタスクは、プロセッサ又はコントローラ可読媒体（または機械可読媒体）に記憶されても、または搬送波中の計算データ信号により伝送媒体または通信リンクを介して伝送されてもよい。プロセッサまたはコントローラ可読媒体、機械可読媒体、又はコンピュータ可読媒体は、情報を格納または伝送できる任意の媒体を含み得る。
【００５８】
以下の例はさらに別の実施形態に関する。
【００５９】
実施例１は、電子装置であって、クロック信号を供給するクロックデバイスと、前記クロック信号を受け取るクロックゲートであって、イネーブル状態またはディスエーブル状態で選択的に設けられるクロックゲートと、前記クロック信号の特定周波数を判定し、判定された特定周波数に基づいて前記クロックゲートを前記イネーブル状態またはディスエーブル状態になるように制御するコントローラとを有する。
【００６０】
実施例２において、実施例１の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第１の論理ブロックをさらに有してもよい。
【００６１】
実施例３において、実施例１及び実施例２の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第２の論理ブロックをさらに有してもよい。
【００６２】
実施例４において、実施例１及び実施例２の主題は任意的に、前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【００６３】
実施例５において、実施例１及び実施例２の主題は任意的に、前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行してもよい。
【００６４】
実施例６において、実施例１の主題は任意的に、前記コントローラは判定された新しい周波数に基づいて前記クロックゲートの状態を変更してもよい。
【００６５】
実施例７において、実施例１の主題は任意的に、異なる複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶するメモリをさらに有してもよい。
【００６６】
実施例８において、実施例１の主題は任意的に、前記コントローラは、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定してもよい。
【００６７】
実施例９において、実施例１の主題は任意的に、前記コントローラは、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更してもよい。
【００６８】
実施例１０は、電子装置であって、クロック信号を供給するクロック手段と、前記クロック信号を受け取るゲート手段であって、イネーブル状態またはディスエーブル状態で選択的に設けられるゲート手段と、前記クロック周波数の特定周波数を決定する制御手段であって、決定された特定周波数に基づいて前記ゲート手段をイネーブル状態またはディスエーブル状態に制御する制御手段とを有する。
【００６９】
実施例１１において、実施例１０の主題は任意的に、前記ゲート手段がイネーブル状態であるとき、前記クロック信号を受け取る第１の論理ブロックをさらに有してもよい。
【００７０】
実施例１２において、実施例１０及び実施例１１の主題は任意的に、前記ゲート手段がイネーブル状態であるとき、前記クロック信号を受け取る第２の論理ブロックをさらに有してもよい。
【００７１】
実施例１３において、実施例１０及び実施例１１の主題は任意的に、前記ゲート手段がディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【００７２】
実施例１４において、実施例１０及び実施例１１の主題は任意的に、前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行してもよい。
【００７３】
実施例１５において、実施例１０の主題は任意的に、前記制御手段は判定された新しい周波数に基づいて前記ゲート手段の状態を制御してもよい。
【００７４】
実施例１６において、実施例１０の主題は任意的に、異なる複数の周波数に基づいて前記ゲート手段のイネーブルまたはディスエーブルに関する情報を記憶する記憶手段をさらに有してもよい。
【００７５】
実施例１７において、実施例１０の主題は任意的に、前記制御手段は、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定してもよい。
【００７６】
実施例１８において、実施例１０の主題は任意的に、前記制御手段は、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更してもよい。
【００７７】
実施例１９は、電子装置を制御する方法であって、クロック信号を供給することと、前記クロック信号の特定の周波数を決定することと、決定された特定の周波数に基づいて、イネーブル状態またはディスエーブル状態になるようクロックゲートを制御することと、前記クロックゲートが選択的にイネーブル状態であるとき、前記クロック信号を第１の論理ブロックに供給することと、前記クロックゲートが前記ディスエーブル状態に選択的に設けられている場合、前記クロック信号が前記第１の論理ブロックに到達しないようにすることとを含む。
【００７８】
実施例２０において、実施例１９の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記第１の論理ブロックが、前記クロック信号を受け取ることをさらに含んでいてもよい。
【００７９】
実施例２１において、実施例１９及び実施例２０の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記第２の論理ブロックが、前記クロック信号を受け取ることをさらに含んでいてもよい。
【００８０】
実施例２２において、実施例１９及び実施例２０の主題は任意的に、前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【００８１】
実施例２３において、実施例１９及び実施例２０の主題は任意的に、前記第１の論理ブロックが前記クロック信号を受け取ることに応じて、特定機能を実行することを含んでも良い。
【００８２】
実施例２４において、実施例１９の主題は任意的に、前記クロックゲートを制御することは、決定された新しい周波数に基づいてもよい。
【００８３】
実施例２５において、実施例１９の主題は任意的に、異なる複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶することを含んでもよい。
【００８４】
実施例２６において、実施例１９の主題は任意的に、帯域幅の大きさを決定することと、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定することとを含んでもよい。
【００８５】
実施例２７において、実施例１９の主題は任意的に、新しい周波数を決定することと、決定された新しい周波数に基づいて前記クロックゲートの状態を変更することとを含んでもよい。
【００８６】
実施例２８は、電子装置であって、複数の周波数に関する情報を記憶するメモリと、クロック信号を供給するクロックデバイスと、イネーブル状態またはディスエーブル状態で選択的にもうけられるクロックゲートと、記憶された情報に基づいて特定周波数を判定し、判定された特定周波数に基づいて前記クロックゲートを前記イネーブル状態またはディスエーブル状態になるように制御するコントローラと、前記クロックゲートがイネーブル状態に設けられている場合、前記クロックゲートからクロック信号を受け取る第１の論理ブロックであって、受け取ったクロック信号に基づいて特定の機能を実行する第１の論理ブロックとを有してもよい。
【００８７】
実施例２９において、実施例２８の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第２の論理ブロックをさらに有してもよい。
【００８８】
実施例３０において、実施例２８の主題は任意的に、前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【００８９】
実施例３１において、実施例２８の主題は任意的に、前記メモリは、記憶された複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶してもよい。
【００９０】
実施例３２において、実施例２８の主題は任意的に、前記コントローラは、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定してもよい。
【００９１】
実施例３３において、実施例２８の主題は任意的に、前記コントローラは、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更してもよい。
【００９２】
実施例３４は、電子装置であって、特定周波数を決定する、その少なくとも一部はハードウェアである第１のロジックと、決定された特定周波数に基づいて、クロックゲートをイネーブル状態またはディスエーブル状態にするように制御する、少なくともその一部はハードウェアである第２のロジックとを有する。
【００９３】
実施例３５において、実施例３４の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第１の論理ブロックをさらに有してもよい。
【００９４】
実施例３６において、実施例３４及び実施例３５の主題は任意的に、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取る第２の論理ブロックをさらに有してもよい。
【００９５】
実施例３７において、実施例３４及び実施例３５の主題は任意的に、前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【００９６】
実施例３８において、実施例３４及び実施例３５の主題は任意的に、前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行してもよい。
【００９７】
実施例３９において、実施例３４の主題は任意的に、異なる複数の周波数に基づいて前記クロックゲートのイネーブルまたはディスエーブルに関する情報を記憶するメモリをさらに有してもよい。
【００９８】
実施例４０において、実施例３４の主題は任意的に、前記第１のロジックは、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定してもよい。
【００９９】
実施例４１において、実施例３４の主題は任意的に、前記第１のロジックは、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更する、
実施例４２は、１つまたは複数の命令を含む非一時的な機械可読媒体であって、実行されるとコントローラに１つまたは複数の動作を実行させて、クロック信号の特定の周波数を決定し、クロック信号の決定された特定の周波数に基づいて、イネーブル状態またはディスエーブル状態になるようクロックゲートを制御する。
【０１００】
実施例４３において、実施例４２の主題は任意的に、第１の論理ブロックは、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取ってもよい。
【０１０１】
実施例４４において、実施例４２及び実施例４３の主題は任意的に、第２の論理ブロックは、前記クロックゲートがイネーブル状態であるとき、前記クロック信号を受け取ってもよい。
【０１０２】
実施例４５において、実施例４２及び実施例４３の主題は任意的に、前記クロックゲートがディスエーブル状態にあるとき、前記クロック信号は前記第１の論理ブロックで受け取られなくてもよい。
【０１０３】
実施例４６において、実施例４２及び実施例４３の主題は任意的に、前記第１の論理ブロックは前記クロック信号の受け取りに応じて特定機能を実行してもよい。
【０１０４】
実施例４７において、実施例４２の主題は任意的に、前記１つまたは複数の動作は、帯域幅の大きさを決定し、決定された帯域幅の大きさに少なくとも部分的に基づいて特定周波数を決定してもよい。
【０１０５】
実施例４８において、実施例４２の主題は任意的に、前記１つまたは複数の動作は、新しい周波数を決定し、決定された新しい周波数に基づいて前記クロックゲートの状態を変更してもよい。
【０１０６】
本明細書において「一実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも１つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所でかかるフレーズを記載するが、必ずしも同じ実施形態を指すものではない。さらに、ある機能、構造、または特徴をある実施形態について説明した場合、他の実施形態に関するそれらの機能、構造、または特徴に影響が及ぶことは、当業者には自明である。
【０１０７】
多くの例示を参照して実施形態を説明したが、言うまでもなく、当業者にはその他の多数の修正や実施形態を工夫でき、それらは本開示の原理の精神と範囲内に含まれる。より具体的には、本開示、図面、及び特許請求の範囲において、主題の組み合わせ構成のコンポーネントパーツ及び／又は構成においてさまざまなバリエーション及び修正が可能である。また、コンポーネントパーツ及び／又は構成におけるバリエーションと修正に加えて、代替的利用も当業者には明らかである。
【図１】
2019517062.tif 000004
【図２】
2019517062.tif 000005
【図３】
2019517062.tif 000006
【図４】
2019517062.tif 000007
【図５】
2019517062.tif 000008
【国際調査報告】
2019517062.tif 000009
2019517062.tif 000010