(57)【要約】【課題】ＣＰＵの作動方法を提供する。【解決手段】ロードトラッカ及びブースタを保存するメモリと、ロードトラッカ及びブースタを実行するコアと、を含むＣＰＵの作動方法は、ロードトラッカが、コアでアイドルタスクが実行されるか否かを判断する段階と、ロードトラッカが、判断の結果に該当するイベントを生成する段階と、ロードトラッカが、生成されたイベントをブースタにブロードキャストする段階と、ブースタが、イベントに基づいてコアのＱｏＳ最小値を設定する段階と、を含む。【選択図】図１
2017049999.tif 000002
【特許請求の範囲】
【請求項１】
第１ロードトラッカ及びブースタを保存する第１メモリと、前記第１ロードトラッカ及び前記ブースタを実行する第１コアと、を含むＣＰＵの作動方法において、
前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、
前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、
前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、
前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、
を含むＣＰＵの作動方法。
【請求項２】
前記ＣＰＵの作動方法は、
前記ＣＰＵが初期化される時、前記第１ロードトラッカが、アイドル開始ワーカーコールバックとアイドル終了ワーカーコールバックとをアイドルモジュールに登録する段階と、
前記ＣＰＵが初期化される時、前記第１ロードトラッカが、アイドル開始ワーカーとアイドル終了ワーカーとを生成する段階と、
をさらに含む請求項１に記載のＣＰＵの作動方法。
【請求項３】
前記ＣＰＵの作動方法は、前記ＣＰＵが初期化される時、前記ブースタが、前記アイドル開始ワーカーの第１満了時間と前記アイドル終了ワーカーの第２満了時間とを設定する段階をさらに含む請求項２に記載のＣＰＵの作動方法。
【請求項４】
前記第１アイドルタスクが実行される時、前記アイドルモジュールが、前記アイドル開始ワーカーコールバックを呼び出す段階と、
前記第１アイドルタスクが終了する時、前記アイドルモジュールが、前記アイドル終了ワーカーコールバックを呼び出す段階と、
をさらに含む請求項３に記載のＣＰＵの作動方法。
【請求項５】
前記第１アイドルタスクが実行される時、前記アイドル開始ワーカーコールバックが、前記アイドル開始ワーカーをスケジュールする段階と、
前記第１アイドルタスクが終了する時、前記アイドル終了ワーカーコールバックが、前記アイドル終了ワーカーをスケジュールする段階と、
をさらに含む請求項４に記載のＣＰＵの作動方法。
【請求項６】
前記第１アイドルタスクが実行される時、前記アイドル開始ワーカーコールバックが、ワークキューに存在する以前アイドル終了ワーカーのスケジュールを取り消す段階をさらに含む請求項５に記載のＣＰＵの作動方法。
【請求項７】
前記第１ロードトラッカが、前記判断の結果に対応する前記第１イベントを生成する段階は、
前記第１満了時間が満了すれば、前記アイドル開始ワーカーが、前記ＱｏＳ最小値の減少を指示する前記第１イベントを生成する段階と、
前記第２満了時間が満了すれば、前記アイドル終了ワーカーが、前記アイドル開始ワーカーのスケジュールを取り消し、前記ＱｏＳ最小値の増加を指示する前記第１イベントを生成する段階と、のうち何れか１つを含む請求項５に記載のＣＰＵの作動方法。
【請求項８】
前記ＣＰＵの作動方法は、
前記ブースタが設定されたＱｏＳ最小値に基づいて、前記第１コアのＤＶＦＳのための制御信号をＱｏＳコントローラに出力する段階と、
前記ＱｏＳコントローラが、前記制御信号に応答して、前記第１コアの作動クロック信号の周波数の制御に関連した周波数制御信号と前記第１コアの作動電圧のレベルの制御に関連した電圧制御信号とを生成する段階と、
をさらに含む請求項１に記載のＣＰＵの作動方法。
【請求項９】
前記ＣＰＵは、第２ロードトラッカを保存する第２メモリと、前記第２ロードトラッカを実行する第２コアと、をさらに含み、前記ＣＰＵの作動方法は、
前記第２ロードトラッカが、前記第２コアで第２アイドルタスクが実行されるか否かを判断する段階と、
前記第２ロードトラッカが、判断の結果に該当する第２イベントを生成する段階と、
前記第２ロードトラッカが、生成された第２イベントを前記第１コアで実行される前記ブースタにブロードキャストする段階と、
前記ブースタが、前記第１イベントと前記第２イベントとに基づいて、前記第１コアのＱｏＳ最小値と前記第２コアのＱｏＳ最小値とを設定する段階と、
をさらに含む請求項１に記載のＣＰＵの作動方法。
【請求項１０】
前記ＣＰＵの作動方法は、前記ブースタは、設定された第１コアのＱｏＳ最小値と設定された第２コアのＱｏＳ最小値とに基づいて、前記第１コアに割り当てられたタスクを前記第２コアに強制に割り当てる段階をさらに含む請求項９に記載のＣＰＵの作動方法。
【請求項１１】
第１ロードトラッカ、ブースタ、及びＱｏＳコントローラを保存する第１メモリと、前記第１ロードトラッカ、前記ブースタ、及び前記ＱｏＳコントローラを実行する第１コアと、を含むＣＰＵ；クロック管理ユニット；及び電力管理ユニットを含むシステム・オン・チップの作動方法において、
前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、
前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、
前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、
前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、
前記ＱｏＳコントローラが、設定されたＱｏＳ最小値に基づいて周波数制御信号と電圧制御信号とを生成する段階と、
前記クロック管理ユニットが、前記周波数制御信号に応答して、前記第１コアに供給される第１クロック信号の第１周波数を制御し、前記電力管理ユニットが、前記電圧制御信号に応答して、前記第１コアに第１作動電圧を供給する電力管理ＩＣを制御する制御信号を生成する段階と、
を含むシステム・オン・チップの作動方法。
【請求項１２】
前記システム・オン・チップの作動方法は、
前記ＣＰＵが初期化される時、前記第１ロードトラッカが、アイドル開始ワーカーコールバックとアイドル終了ワーカーコールバックとをアイドルモジュールに登録する段階と、
前記ＣＰＵが初期化される時、前記第１ロードトラッカが、アイドル開始ワーカーとアイドル終了ワーカーとを生成する段階と、
をさらに含む請求項１１に記載のシステム・オン・チップの作動方法。
【請求項１３】
前記第１アイドルタスクが実行される時、前記アイドルモジュールが、前記アイドル開始ワーカーコールバックを呼び出す段階と、
前記第１アイドルタスクが終了する時、前記アイドルモジュールが、前記アイドル終了ワーカーコールバックを呼び出す段階と、
をさらに含む請求項１２に記載のシステム・オン・チップの作動方法。
【請求項１４】
前記第１アイドルタスクが実行される時、前記アイドル開始ワーカーコールバックが、ワークキューに存在する以前アイドル終了ワーカーのスケジュールを取り消す段階と、
前記アイドル開始ワーカーコールバックが、前記アイドル開始ワーカーのスケジュール前提条件を判断する段階と、
前記スケジュール前提条件が満足される時、前記アイドル開始ワーカーコールバックが、前記アイドル開始ワーカーをスケジュールする段階と、
をさらに含む請求項１３に記載のシステム・オン・チップの作動方法。
【請求項１５】
前記スケジュール前提条件は、前記アイドル開始ワーカーと前記アイドル終了ワーカーがいずれも係留中ではない場合と、前記アイドル開始ワーカーが係留中ではなく、前記第１コアがブーストされた場合と、を含む請求項１４に記載のシステム・オン・チップの作動方法。
【請求項１６】
前記第１アイドルタスクが終了する時、前記アイドル終了ワーカーコールバックが、前記アイドル終了ワーカーのスケジュール前提条件を判断する段階と、
前記スケジュール前提条件が満足される時、前記アイドル終了ワーカーコールバックが、前記アイドル終了ワーカーをスケジュールする段階と、
をさらに含む請求項１３に記載のシステム・オン・チップの作動方法。
【請求項１７】
前記スケジュール前提条件は、前記アイドル終了ワーカーが係留中ではなく、前記アイドル開始ワーカーが係留中である場合と、前記アイドル終了ワーカーが係留中ではなく、前記第１コアがブーストされていない場合と、を含む請求項１６に記載のシステム・オン・チップの作動方法。
【請求項１８】
前記システム・オン・チップの作動方法は、前記アイドル終了ワーカーの満了時間が満了すれば、前記アイドル終了ワーカーは、前記アイドル開始ワーカーのスケジュールを取り消す段階をさらに含む請求項１６に記載のシステム・オン・チップの作動方法。
【請求項１９】
前記ＣＰＵは、第２ロードトラッカを保存する第２メモリと、前記第２ロードトラッカを実行する第２コアと、をさらに含み、前記システム・オン・チップの作動方法は、
前記第２ロードトラッカが、前記第２コアで第２アイドルタスクが実行されるか否かを判断する段階と、
前記第２ロードトラッカが、判断の結果に該当する第２イベントを生成する段階と、
前記第２ロードトラッカが、生成された第２イベントを前記第１コアで実行される前記ブースタにブロードキャストする段階と、
前記ブースタが、前記第１イベントと前記第２イベントとに基づいて、前記第１コアの設定ＱｏＳ最小値と前記第２コアの設定ＱｏＳ最小値とを設定する段階と、
前記ＱｏＳコントローラが、前記第１コアの設定ＱｏＳ最小値と前記第２コアの設定ＱｏＳ最小値とに基づいて、前記周波数制御信号と前記電圧制御信号とを生成する段階と、
前記クロック管理ユニットが、前記周波数制御信号に応答して、前記第１コアに供給される前記第１クロック信号の第１周波数と前記第２コアに供給される第２クロック信号の第２周波数とを制御する段階と、
前記電力管理ユニットが、前記電圧制御信号に応答して、前記第１コアに第１作動電圧と前記第２コアに第２作動電圧とを供給する前記電力管理ＩＣを制御する前記制御信号を生成する段階と、
を含む請求項１１に記載のシステム・オン・チップの作動方法。
【請求項２０】
第１ロードトラッカ、ブースタ、及びＱｏＳコントローラを保存する第１メモリと、前記第１ロードトラッカ、前記ブースタ、及び前記ＱｏＳコントローラを実行する第１コアと、を含むＣＰＵ；クロック管理ユニット；電力管理ユニット；及び電力管理ＩＣを含むコンピューティングシステムの作動方法において、
前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、
前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、
前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、
前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、
前記ＱｏＳコントローラが、設定されたＱｏＳ最小値に基づいて第１周波数制御信号と第１電圧制御信号とを生成する段階と、
前記クロック管理ユニットが、前記第１周波数制御信号に応答して、前記第１コアに供給される第１クロック信号の第１周波数を制御する段階と、
前記電力管理ユニットが、前記第１電圧制御信号に応答して、第１制御信号を前記電力管理ＩＣに出力する段階と、
前記電力管理ＩＣが、前記第１電圧制御信号に応答して、前記第１コアに供給される第１作動電圧を制御する段階と、
を含むコンピューティングシステムの作動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の作動方法に係り、特に、該ＣＰＵのＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を調節することができる該ＣＰＵの作動方法と、該ＣＰＵを含むシステムの作動方法と、に関する。
【背景技術】
【０００２】
マイクロプロセッサ、特に、モバイルアプリケーションプロセッサは、性能要求と低電力要求とをいずれも満足させるために、動的に作動周波数を変更する技術、例えば、ＤＦＳ（Ｄｙｎａｍｉｃ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）技術またはＤＶＦＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）技術を使用している。マイクロプロセッサは、作動クロック信号の周波数を調節するために、さまざまな施策を使う。
【０００３】
モバイル環境は、使える電力の量に制限があり、発熱に脆弱なので、前記施策は、マイクロプロセッサの性能を制約し、マイクロプロセッサは、消費電力と発熱とを最小化するように設計されている。従来のマイクロプロセッサで使われるＤＶＦＳのＤＶＦＳガバナ（ｇｏｖｅｒｎｏｒ）は、マイクロプロセッサでの消費電力に最適化されているので、或るタスク（ｔａｓｋ）が、マイクロプロセッサの可用な性能を引き続き最大に使うとしても、マイクロプロセッサに供給される作動周波数は、即座に最大作動周波数には増加しない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１３／００７４０８５号明細書
【特許文献２】米国特許第８５６０８６９号明細書
【特許文献３】特開２００７−３３４４９７号公報
【特許文献４】米国特許第８３８１００４号明細書
【特許文献５】米国特許第８３２１６１４号明細書
【特許文献６】米国特許第７８８２３７９号明細書
【特許文献７】米国特許出願公開第２０１１／０１４５６１５号明細書
【特許文献８】米国特許出願公開第２０１４／０１７３３１１号明細書
【特許文献９】米国特許出願公開第２０１４／０１１５３６８号明細書
【特許文献１０】米国特許出願公開第２０１５／０１０６６４２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的な課題は、高性能が急に必要な場合を自動で感知し、該感知の結果によって、ＱｏＳ最小値を自動で設定することができるＣＰＵの作動方法と、該ＣＰＵを含むシステムの作動方法と、を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の実施形態によると、第１ロードトラッカ及びブースタを保存する第１メモリと、前記第１ロードトラッカ及び前記ブースタを実行する第１コアと、を含むＣＰＵの作動方法は、前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、を含む。
【０００７】
本発明の実施形態によると、第１ロードトラッカ、ブースタ、及びＱｏＳコントローラを保存する第１メモリと、前記第１ロードトラッカ、前記ブースタ、及び前記ＱｏＳコントローラを実行する第１コアと、を含むＣＰＵ；クロック管理ユニット；及び電力管理ユニットを含むシステム・オン・チップの作動方法は、前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、前記ＱｏＳコントローラが、設定されたＱｏＳ最小値に基づいて周波数制御信号と電圧制御信号とを生成する段階と、前記クロック管理ユニットが、前記周波数制御信号に応答して、前記第１コアに供給される第１クロック信号の第１周波数を制御し、前記電力管理ユニットが、前記電圧制御信号に応答して、前記第１コアに第１作動電圧を供給するＰＭＩＣを制御する制御信号を生成する段階と、を含む。
【０００８】
本発明の実施形態によると、第１ロードトラッカ、ブースタ、及びＱｏＳコントローラを保存する第１メモリと、前記第１ロードトラッカ、前記ブースタ、及び前記ＱｏＳコントローラを実行する第１コアと、を含むＣＰＵ；クロック管理ユニット；電力管理ユニット；及び電力管理ＩＣを含むコンピューティングシステムの作動方法は、前記第１ロードトラッカが、前記第１コアで第１アイドルタスクが実行されるか否かを判断する段階と、前記第１ロードトラッカが、判断の結果に該当する第１イベントを生成する段階と、前記第１ロードトラッカが、生成された第１イベントを前記ブースタにブロードキャストする段階と、前記ブースタが、前記第１イベントに基づいて前記第１コアのＱｏＳ最小値を設定する段階と、前記ＱｏＳコントローラが、設定されたＱｏＳ最小値に基づいて第１周波数制御信号と第１電圧制御信号とを生成する段階と、前記クロック管理ユニットが、前記第１周波数制御信号に応答して、前記第１コアに供給される第１クロック信号の第１周波数を制御する段階と、前記電力管理ユニットが、前記第１電圧制御信号に応答して、第１制御信号を前記電力管理ＩＣに出力する段階と、前記電力管理ＩＣが、前記第１制御信号に応答して、前記第１コアに供給される第１作動電圧を制御する段階と、を含む。
【発明の効果】
【０００９】
本発明の実施形態によるＣＰＵの作動方法は、高性能が急に必要な場合を自動で感知し、該感知の結果によって、ＱｏＳ最小値を自動で設定することができる。
本発明の実施形態によるＣＰＵの作動方法は、ＣＰＵのロードを周期的にポーリング（ｐｏｌｌｉｎｇ）せずとも、ロードが発生した時、発生をインタラプト基盤で検出することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態によるコンピュータシステムのブロック図。
【図２】図１に示されたＣＰＵの実施形態を示す図。
【図３】図１に示されたＣＰＵによって実行されるソフトウェアコンポーネントを示す。図
【図４】本発明の実施形態によるブースティングを説明する概念図。
【図５】図３に示されたソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャート。
【図６】図３に示された本発明の実施形態によるソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャート。
【図７】図３に示された本発明の実施形態によるソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャート。
【図８】図３に示された本発明の実施形態によるソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャート。
【図９】図２に示されたＱｏＳコントローラの実施形態を示す図。
【図１０】図１に示されたＣＰＵの実施形態を示す図。
【図１１】図１０に示されたＣＰＵを用いて行われるブースティングレベルを制御する方法を説明する概念図。
【図１２】図１０に示されたＣＰＵを用いて行われるブースティングレベルを制御する方法を説明する概念図。
【図１３】図１０に示されたＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明する概念図。
【図１４】図１０に示された本発明の実施形態によるＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明するフローチャート。
【図１５】図１０に示された本発明の実施形態によるＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明するフローチャート。
【図１６】図１０に示された本発明の実施形態によるＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明するフローチャート。
【図１７】図３に示されたアイドルモジュールに、アイドルワーカーコールバックを登録する過程を説明するプログラムコードの実施形態を示す図。
【図１８】図３に示されたアイドルモジュールに登録されたアイドルワーカーコールバックでアイドル開始ワーカーとアイドル終了ワーカーのスケジュールと取り消しとを説明するプログラムコードの実施形態を示す図。
【発明を実施するための形態】
【００１１】
本発明の実施形態は、ＣＰＵの性能（ｐｅｒｆｏｒｍａｎｃｅ）を向上させる方法に関するものである。実施形態によると、ＣＰＵは、１つまたはそれ以上のコア（ｃｏｒｅｓ）を含みうる。実施形態によると、コアのそれぞれは、１つの半導体基板（または、１つの半導体チップ）を共有することもでき、互いに異なる半導体チップとして具現可能である。ここで、コアは、プロセッサまたはプロセッサコアを意味する。
【００１２】
本明細書で、アイドルタスク（ｉｄｌｅ  ｔａｓｋ）の実行如何によって、ＣＰＵまたはＣＰＵを含むコンピュータシステムのＱｏＳ最小値を設定するということは、ＣＰＵまたはコンピュータシステムの性能を高めるための作動を意味する。本明細書で、ＱｏＳ最小値の設定は、ＣＰＵまたはＣＰＵを含むコンピュータシステムのブースティングレベル（ｂｏｏｓｔｉｎｇ  ｌｅｖｅｌ）の設定を含みうる。ここで、設定は、特定の値のプログラムまたは特定の値の変更を含みうる。スケジューラが呼び出さ（ｃａｌｌ）れた時、準備状態のタスクが１つもなければ、アイドルタスクが実行可能である。
ここで、ＱｏＳは、ＤＶＦＳを意味し、ＱｏＳ最小値は、ＤＶＦＳの最小作動周波数と最小作動電圧とのうちの少なくとも１つを意味する。
【００１３】
ＤＶＦＳガバナは、ＣＰＵ（または、コア）の作動周波数を変更するモジュール（例えば、ソフトウェアまたはソフトウェアコンポーネント）であって、運用体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；ＯＳ）によって実行可能である。ブースティングは、ＤＶＦＳガバナの管理またはＤＶＦＳガバナの基本値を無視し、ＣＰＵ（または、コア）の作動周波数及び／または作動電圧を急激に増加させる作動を意味する。したがって、ブーストされたコアは、ＤＶＦＳの最大作動周波数（または、最大作動周波数に準する作動周波数）及び／または最大作動電圧（または、最大作動周波数に準する作動電圧）で作動することができる。例えば、ＣＰＵがベンチマークプログラムを実行する時、ＣＰＵに対するブースティングは必要である。
【００１４】
本明細書で、ブースティングは、スケジューラブースティングとＨＭＰ（Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  ａｒｃｈｉｔｅｃｔｕｒｅｓ）ブースティングとを含みうる。スケジューラブースティングは、スケジューラのパラメータを変更してＣＰＵの処理量（ｔｈｒｏｕｇｈｐｕｔ）を最大化する作動を意味する。例えば、スケジューラの少なくとも１つのパラメータは、ｎｉｃｅ、ｂａｌａｎｃｅ  ｉｎｔｅｒｖａｌ、及びＨＺを含みうるが、これに限定されるものではない。例えば、ｎｉｃｅは、修正されたスケジューリング優先権を有するプログラムを実行すること（ｒｕｎ  ａ  ｐｒｏｇｒａｍ  ｗｉｔｈ  ｍｏｄｉｆｉｅｄ  ｓｃｈｅｄｕｌｉｎｇ  ｐｒｉｏｒｉｔｙ）を意味し、ｂａｌａｎｃｅ  ｉｎｔｅｒｖａｌは、ＣＰＵまたはコアの間でタスク再割り当てを通じてロードバランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）を行う周期を意味し、ＨＺは、秒当たりクロックティックスの個数（ｔｈｅ  ｎｕｍｂｅｒ  ｏｆ  ｃｌｏｃｋ  ｔｉｃｋｓ  ｐｅｒ  ｓｅｃｏｎｄ）を意味する。
ＨＭＰブースティングは、低電力コア（例えば、リトルコア（ｌｉｔｔｌｅ  ｃｏｒｅ））に割り当てられたタスクを高性能コア（例えば、ビッグコア（ｂｉｇ  ｃｏｒｅ））に強制に割り当てる作動を意味する。
【００１５】
本発明の実施形態によるブースタは、少なくとも１つのロードトラッカ（ｌｏａｄ  ｔｒａｃｋｅｒ）から出力されたイベント（ｅｖｅｎｔ）を受信し、該受信されたイベントに基づいてブースティング作動の開始と終了、ブースティングレベルの変更、及び／またはブーストに関連したプロセッサ（または、プロセッサで実行されるＯＳ）に従属的な（ｄｅｐｅｎｄｅｎｔ）作動を制御することができる。
本明細書で、スケジュール（ｓｃｈｅｄｕｌｅ）は、ワークキュー（ｗｏｒｋ  ｑｕｅｕｅ）にタイムアウト値と開始アドレスをライト（ｗｒｉｔｅ）する作動を意味し、スケジュールの取り消し（ｃａｎｃｅｌ）は、ワークキューにライトされたタイムアウト値と開始アドレスをイレーズ（ｅｒａｓｅ）する作動を意味する。
【００１６】
図１は、本発明の実施形態によるコンピュータシステムのブロック図である。図１を参照すれば、コンピュータシステム１００は、制御回路２００、電力管理ＩＣ２７０、第１メモリ装置２８０、及び第２メモリ装置２９０を含みうる。
コンピュータシステム１００は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）またはモバイル装置として具現可能である。例えば、モバイル装置は、ラップトップコンピュータ、携帯電話、スマートフォン、タブレットＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＥＤＡ（Ｅｎｔｅｒｐｒｉｓｅ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルスチルカメラ（Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）、デジタルビデオカメラ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｃａｍｅｒａ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、ＰＮＤ（Ｐｅｒｓｏｎａｌ  Ｎａｖｉｇａｔｉｏｎ  ＤｅｖｉｃｅまたはＰｏｒｔａｂｌｅ  Ｎａｖｉｇａｔｉｏｎ  Ｄｅｖｉｃｅ）、携帯用ゲームコンソール（ｈａｎｄｈｅｌｄ  ｇａｍｅ  ｃｏｎｓｏｌｅ）、モバイルインターネット装置（Ｍｏｂｉｌｅ  Ｉｎｔｅｒｎｅｔ  Ｄｅｖｉｃｅ；ＭＩＤ）、ウェアラブル（ｗｅａｒａｂｌｅ）コンピュータ、モノのインターネット（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ；ＩｏＴ）装置、万物のインターネット（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｅｖｅｒｙｔｈｉｎｇ；ＩｏＥ）装置、ドローン（ｄｒｏｎｅ）、または電子ブック（ｅ−ｂｏｏｋ）として具現可能であるが、これに限定されるものではない。
【００１７】
制御回路２００は、電力管理ＩＣ２７０、第１メモリ装置２８０、及び第２メモリ装置２９０の作動を制御することができる。制御回路２００は、集積回路（ＩＣ）、マザーボード、システム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ；ＳｏＣ）、マイクロプロセッサ、アプリケーションプロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ；ＡＰ）、モバイルＡＰ、チップセット（Ｃｈｉｐ  Ｓｅｔ）、または半導体チップのセットとして具現可能であるが、これに限定されるものではない。
【００１８】
制御回路２００は、バス２０１、ＣＰＵ２１０、クロック制御ユニット（Ｃｌｏｃｋ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ；ＣＭＵ）２２０、電力制御ユニット（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ；ＰＭＵ）２３０、グラフィックスプロセッシングユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；ＧＰＵ）２４０、第１メモリインターフェース２５０、第２メモリインターフェース２６０、及び入出力インターフェース２６５を含みうる。
【００１９】
各構成要素２１０、２４０、２５０、２６０、及び２６５は、バス２０１を通じてデータを送受信することができる。バス２０１は、ＡＭＢＡ（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＡＨＢ（Ａｄｖａｎｃｅｄ  Ｈｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）、ＡＰＢ（Ａｄｖａｎｃｅｄ  Ｐｅｒｉｐｈｅｒａｌ  Ｂｕｓ）、ＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）、ＡＳＢ（Ａｄｖａｎｃｅｄ  Ｓｙｓｔｅｍ  Ｂｕｓ）、ＡＣＥ（ＡＸＩ  Ｃｏｈｅｒｅｎｃｙ  Ｅｘｔｅｎｓｉｏｎｓ）、またはこれらの結合として具現可能であるが、これに限定されるものではない。
【００２０】
ＣＰＵ２１０は、１つまたはそれ以上のコアを含みうる。ＣＰＵ２１０は、第１作動電圧ＰＷ１と第１クロック信号ＣＬＫ１とを用いて作動することができる。ＣＰＵ２１０は、本明細書で説明されるソフトウェアコンポーネント、例えば、ロードトラッカ、ブースタ、及びＱｏＳコントローラを実行することができる。実施形態によると、ロードトラッカ、ブースタ、及びＱｏＳコントローラは、ハードウェアコンポーネントとして具現可能である。実施形態によると、ロードトラッカ、ブースタ及びＱｏＳコントローラは、ＣＰＵ２１０のメモリ（例えば、命令キャッシュ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｃａｃｈｅ））に保存することができる。
【００２１】
ＣＰＵ２１０は、ソフトウェアコンポーネント（または、ハードウェアコンポーネント）を用いてクロック制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを生成し、クロック制御信号ＣＴＲ＿ＣをＣＭＵ２２０に出力し、電力制御信号ＣＴＲ＿ＰをＰＭＵ２３０に出力することができる。電力制御信号ＣＴＲ＿Ｐは、電圧制御信号とも呼ばれる。
ＣＭＵ２２０は、クロック制御信号ＣＴＲ＿Ｃを用いて、各クロック信号ＣＬＫ１〜ＣＬＫ５の周波数を制御することができる。各クロック信号ＣＬＫ１〜ＣＬＫ５の周波数は、互いに同一または異なりうる。
【００２２】
ＰＭＵ２３０は、電力制御信号ＣＴＲ＿Ｐを用いて制御信号ＣＴＲを生成し、制御信号ＣＴＲをＰＭＩＣ２７０に出力することができる。ＰＭＩＣ２７０は、制御信号ＣＴＲを用いて、各作動電圧ＰＷ１〜ＰＷ６のレベルを制御することができる。各作動電圧ＰＷ１〜ＰＷ６のレベルは、互いに同一または異なりうる。ＰＭＩＣ２７０は、制御信号ＣＴＲを用いて、各構成要素２００、２８０、及び２９０に供給される作動電圧のレベルを制御することができる。周波数の制御またはレベルの制御は、増加、保持、または減少を含みうる。各制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐ、及びＣＴＲは、１つまたはそれ以上の信号（例えば、アナログ信号またはデジタル信号）を含みうる。
【００２３】
ＣＭＵ２２０とＰＭＵ２３０との制御によって、コンピュータシステム１００に対するＤＶＳ（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  Ｓｃａｌｉｎｇ）、ＤＦＳ（Ｄｙｎａｍｉｃ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）またはＤＶＦＳは、遂行（または、制御）される。
ＧＰＵ２４０は、第２作動電圧ＰＷ２と第２クロック信号ＣＬＫ２とを用いて、グラフィックスデータを処理することができる。グラフィックスデータは、２Ｄグラフィックスデータまたは３Ｄグラフィックスデータを含みうる。
【００２４】
第１メモリインターフェース２５０は、第３作動電圧ＰＷ３と第３クロック信号ＣＬＫ３とを用いて、バス２０１と第１メモリ装置２８０との間で送受信するデータを処理（または、インターフェース）することができる。第１メモリインターフェース２５０は、メモリコントローラの機能を行うことができる。第１メモリ装置２８０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）またはＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）として具現可能であるが、これに限定されるものではない。
【００２５】
第２メモリインターフェース２６０は、第４作動電圧ＰＷ４と第４クロック信号ＣＬＫ４とを用いて、バス２０１と第２メモリ装置２９０との間で送受信するデータを処理（または、インターフェース）することができる。第２メモリインターフェース２６０は、メモリコントローラの機能を行うことができる。第２メモリ装置２９０は、不揮発性メモリ装置として具現可能である。
【００２６】
不揮発性メモリ装置は、フラッシュベースストレージ（ｆｌａｓｈ  ｂａｓｅｄ  ｓｔｏｒａｇｅ）として具現可能であるが、これに限定されるものではない。例えば、フラッシュベースストレージは、ＳＳＤ（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｒｉｖｅ  ｏｒ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｉｓｋ）、エンベデッドＳＳＤ（ｅｍｂｅｄｄｅｄ  ＳＳＤ；ｅＳＳＤ）、ユニバーサルフラッシュストレージ（Ｕｎｉｖｅｒｓａｌ  Ｆｌａｓｈ  Ｓｔｏｒａｇｅ；ＵＦＳ）、マルチメディアカード（ＭｕｌｔｉＭｅｄｉａ  Ｃａｒｄ；ＭＭＣ）、エンベデッドＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭＭＣ；ｅＭＭＣ）またはマネージド（ｍａｎａｇｅｄ）ＮＡＮＤとして具現可能であるが、これに限定されるものではない。
【００２７】
入出力インターフェース２６５は、第５作動電圧ＰＷ５と第５クロック信号ＣＬＫ５とを用いて、外部装置とデータを送受信することができる。入出力インターフェース２６５は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）、Ｉ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）、ＳＡＴＡｅ（ＳＡＴＡ  ｅｘｐｒｅｓｓ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ；ＳＣＳＩ）、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）またはＭＩＰＩ（登録商標）（Ｍｏｂｉｌｅ  Ｉｎｄｕｓｔｒｙ  Ｐｒｏｃｅｓｓｏｒ  Ｉｎｔｅｒｆａｃｅ）を支援することができるインターフェースとして具現可能であるが、これに限定されるものではない。
【００２８】
図２は、ＣＰＵを示す。図２に示されたＣＰＵ２１０Ａは、図１に示されたＣＰＵ２１０の実施形態を示す。図１に示されたＣＰＵ２１０の実施形態によるＣＰＵ２１０Ａは、１つのコア２１１、第１メモリ装置２１３及び第２メモリ装置２１５を含みうる。コア２１１は、第１メモリ装置２１３と第２メモリ装置２１５のそれぞれの作動を制御することができる。第１メモリ装置２１３は、命令キャッシュ２１３を含み、第２メモリ装置２１５は、データキャッシュ（ｄａｔａ  ｃａｃｈｅ）２１５を含みうる。たとえ、図２では、レベル−１キャッシュ２１３、２１５が示されているが、キャッシュ２１３、２１５のそれぞれは、レベル−２キャッシュとして具現可能である。
【００２９】
図２には、ＱｏＳ制御モジュール３００が示されている。本発明の実施形態によるＱｏＳ制御モジュール３００は、ロードトラッカ３１０、ブースタ３３０及びＱｏＳコントローラ３４０を含みうる。ＱｏＳ制御モジュール３００は、図３に示された構成要素３３７、３５０、及び３８０をさらに含みうる。
【００３０】
ＱｏＳ制御モジュール３００は、ベンチマークプログラムが実行されるときのように高性能が急激に必要な場合、ベンチマークプログラムの実行を自動で感知して、ＣＰＵ２１０、制御回路２００またはコンピュータシステム１００の性能を高めて、パワー最適化されているＤＦＳ施策またはＤＶＦＳ施策を修正せずとも、ＣＰＵ２１０ＡのＱｏＳを調節することができる。前記施策は、ガバナを意味する。
ＱｏＳ制御モジュール３００は、周期的なポーリングに依存せず、ロード（ｌｏａｄ）またはタスクの発生をインタラプト基盤で感知することができる。インタラプト（ｉｎｔｅｒｒｕｐｔ）は、コンピュータシステム１００のユーザの入力、タイマの出力、及び他のコアから出力された信号に生成されうる。ＱｏＳ制御モジュール３００は、コア２１１が休まず、作動する時と休む時とをポーリングなしにインタラプト基盤で感知することができる。
【００３１】
図３は、図１に示されたＣＰＵによって実行されるソフトウェアコンポーネントを示す。図１から図３を参照すれば、ＱｏＳ制御モジュール３００は、ロードトラッカ３１０、ブースタ３３０、及びＱｏＳコントローラ３４０を含みうる。実施形態によって、ＱｏＳ制御モジュール３００は、ＱｏＳ関連ファイルシステム３３７、アイドルモジュール３５０、及びワークキュー３８０をさらに含みうる。
ロードトラッカ３１０は、コア２１１でアイドルタスク３７０が実行されるか否かを判断し、該判断の結果に該当するイベントＥＶＥＮＴ１またはＥＶＥＮＴ２を生成し、イベントＥＶＥＮＴ１またはＥＶＥＮＴ２をブースタ３３０にブロードキャスト（ｂｒｏａｄｃａｓｔ）することができる。ブースタ３３０は、イベントＥＶＥＮＴ１またはＥＶＥＮＴ２に基づいてコア２１１のＱｏＳ最小値を設定することができる。
【００３２】
図４は、本発明の実施形態によるブースティングを説明する概念図である。図４を参照すれば、番号３０１は、ブースティングが必要ないタスクを意味し、番号３０３は、ブースティングが必要なタスクを意味する。ブースティングの観点から、ＳＴＨは、ブースティング開始スレショルド時間（ｂｏｏｓｔｉｎｇ  ｓｔａｒｔ  ｔｈｒｅｓｈｏｌｄ  ｔｉｍｅ）を示し、ＥＴＨは、ブースティング終了スレショルド時間（ｂｏｏｓｔｉｎｇ  ｅｎｄ  ｔｈｒｅｓｈｏｌｄ  ｔｉｍｅ）を示す。アイドルタスクの観点から、ＳＴＨは、アイドル終了ワーカー（ｉｄｌｅ  ｅｎｄ  ｗｏｒｋｅｒ）のタイムアウト時間またはアイドル終了ワーカーの満了時間（ｅｘｐｉｒｅ  ｔｉｍｅ）を示し、ＥＴＨは、アイドル開始ワーカー（ｉｄｌｅ  ｓｔａｒｔ  ｗｏｒｋｅｒ）のタイムアウト時間またはアイドル開始ワーカーの満了時間を示す。
【００３３】
図４に示したように、コア２１１が、ブースティングが必要ないタスクを実行する時、コア２１１はブースティングされない。しかし、コア２１１がアイドル（ｉｄｌｅ）に進入しても、アイドル時間が短い時（例えば、時間がＳＴＨよりも短い時）、コア２１１のブースティングは保持されうる。すなわち、ＱｏＳ制御モジュール３００は、コア２１１がブースティングされる時、ＱｏＳ最小値を設定することができる。
【００３４】
図５は、図３に示されたソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャートである。図３から図５を参照すれば、コア２１１によって実行されるＱｏＳ制御モジュール３００、例えば、ロードトラッカ３１０は、アイドルタスク３７０が実行されるか否かを判断することができる（ステップＳ１１０）。
【００３５】
アイドルタスク３７０が実行されれば（図３の３７１またはステップＳ１１０のＹＥＳ）、ロードトラッカ３１０は、ブースティング終了またはブースティングレベルの減少を指示する減少指示イベントＥＶＥＮＴ１を生成することができる（ステップＳ１１２）。アイドルタスク３７０が実行されなければ（ステップＳ１１０のＮＯ）、例えば、アイドルタスク３７０が終了すれば（図３の３７５）、ロードトラッカ３１０は、ブースティング開始またはブースティングレベルの増加を指示する増加指示イベントＥＶＥＮＴ２を生成することができる（ステップＳ１１４）。
【００３６】
ＱｏＳ制御モジュール３００、例えば、ブースタ３３０は、減少指示イベントＥＶＥＮＴ１または増加指示イベントＥＶＥＮＴ２に応答して、ブースティング（または、ブースティングレベル）を制御するためのブースティング制御値またはＱｏＳ最小値を設定することができる（ステップＳ１１６）。すなわち、ブースタ３３０は、減少指示イベントＥＶＥＮＴ１または増加指示イベントＥＶＥＮＴ２をパージング（ｐａｒｓｉｎｇ）し、該パージングの結果に該当する値をＱｏＳ関連ファイルシステム３３７に保存することができる。ＱｏＳコントローラ３４０は、ＱｏＳ関連ファイルシステム３３７に保存されたブースティング制御値またはＱｏＳ最小値に基づいて、ブースティング制御またはＱｏＳ最小値制御のための制御信号を生成することができる（ステップＳ１１８）。例えば、前記制御信号は、周波数制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを含みうる。ＱｏＳ関連ファイルシステム３３７は、性能関連パラメータまたはパージングの結果に該当する値を保存するコンピュータファイル（ｃｏｍｐｕｔｅｒ  ｆｉｌｅ）を意味する。
【００３７】
図６は、図３に示されたソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャートである。図３と図６とを参照すれば、ロードトラッカ３１０は、アイドルタスク３７０が始まるか否かを判断することができる（ステップＳ２１０）。
【００３８】
アイドルタスク３７０が始まれば（図３の３７１またはステップＳ２１０のＹＥＳ）、アイドルモジュール３５０に保存されたアイドル開始ワーカーコールバック３５１が、ワークキュー３８０に保存された以前（ｐｒｅｖｉｏｕｓ）アイドル終了ワーカーのスケジュール（または、タイマのタイムアウト時間または満了時間）を取り消すことができる（ステップＳ２２０）。しかし、ワークキュー３８０に以前アイドル終了ワーカーが存在しない時、過程（ステップＳ２２０）は省略（または、スキップ（ｓｋｉｐ））されうる。
【００３９】
アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１をスケジュールすることができる（ステップＳ２２２）。したがって、ワークキュー３８０には、アイドル開始ワーカー３１１に該当するアイドル開始ワーカー３８１がスケジュールまたはキューイング（ｑｕｅｕｉｎｇ）されうる。例えば、アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１または３８１のタイマのタイムアウト時間または満了時間を設定することができる。
【００４０】
ワークキュー３８０は、アイドル開始ワーカー３８１に設定された満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ２２４）。満了時間が満了していなければ（ステップＳ２２４のＮＯ）、ワークキュー３８０は、過程（ステップＳ２２４）を繰り返すか、相次いで（ｃｏｎｔｉｎｕｏｕｓｌｙ）実行することができる。しかし、満了時間が満了すれば（ステップＳ２２４のＹＥＳ）、アイドル開始ワーカー３１１または３８１は、ブースティング終了またはブースティングレベルの減少を指示する減少指示イベントＥＶＥＮＴ１を生成し、減少指示イベントＥＶＥＮＴ１をブースタ３３０にブロードキャストすることができる（ステップＳ２２６）。
【００４１】
ブースタ３３０は、減少指示イベントＥＶＥＮＴ１に応答して、ブースティング（または、ブースティングレベル）を制御するためのブースティング制御値またはＱｏＳ最小値を設定することができる（ステップＳ２４０）。すなわち、ブースタ３３０は、減少指示イベントＥＶＥＮＴ１をパージングし、該パージングの結果に該当する値をＱｏＳ関連ファイルシステム３３７に保存することができる。ＱｏＳコントローラ３４０は、ＱｏＳ関連ファイルシステム３３７に保存されたブースティング制御値またはＱｏＳ最小値に基づいて、ブースティング制御またはＱｏＳ最小値制御のための制御信号を生成することができる（ステップＳ２４２）。例えば、制御信号は、周波数制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを含みうる。
【００４２】
アイドル状態３７３のアイドルタスク３７０が終了すれば（図３の３７５またはステップＳ２１０のＮＯ）、アイドルモジュール３５０に保存されたアイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３１３をスケジュールすることができる（ステップＳ２３０）。したがって、ワークキュー３８０には、アイドル終了ワーカー３１３に該当するアイドル終了ワーカー３８３がスケジュールまたはキューイングされうる。例えば、アイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３８３のタイマのタイムアウト時間または満了時間を設定することができる。
【００４３】
ワークキュー３８０は、アイドル終了ワーカー３８３に設定された満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ２３２）。満了時間が満了していなければ（ステップＳ２３２のＮＯ）、ワークキュー３８０は、過程（ステップＳ２３２）を繰り返すか、相次いで実行することができる。
しかし、満了時間が満了すれば（ステップＳ２３２のＹＥＳ）、アイドル終了ワーカー３１１または３８３は、アイドル開始ワーカー３１１または３８１のスケジュール（または、タイマのタイムアウト値または満了時間）を取り消すことができる（ステップＳ２３４）。アイドル終了ワーカー３１３または３８３は、ブースティング開始またはブースティングレベルの増加を指示する増加指示イベントＥＶＥＮＴ２を生成し、増加指示イベントＥＶＥＮＴ２をブースタ３３０にブロードキャストすることができる（ステップＳ２３６）。
【００４４】
ブースタ３３０は、増加指示イベントＥＶＥＮＴ２に応答して、ブースティング（または、ブースティングレベル）を制御するためのブースティング制御値またはＱｏＳ最小値を設定することができる（ステップＳ２４０）。すなわち、ブースタ３３０は、増加指示イベントＥＶＥＮＴ２をパージングし、該パージングの結果に該当する値をＱｏＳ関連ファイルシステム３３７に保存することができる。ＱｏＳコントローラ３４０は、ＱｏＳ関連ファイルシステム３３７に保存されたブースティング制御値またはＱｏＳ最小値に基づいて、ブースティング制御またはＱｏＳ最小値制御のための制御信号を生成することができる（ステップＳ２４２）。例えば、前記制御信号は、周波数制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを含みうる。
【００４５】
図７及び図８は、図３に示されたソフトウェアコンポーネントによって行われるＱｏＳ最小値を制御する方法を説明するフローチャートである。
図１、図３、図７、及び図８を参照すれば、コンピュータシステム１００が初期化される時、またはブーティング（ｂｏｏｔ）時に（ステップＳ３１０）、ロードトラッカ３１０は、アイドルコールバック（例えば、アイドル開始ワーカーコールバック３５１とアイドル終了ワーカーコールバック３５３）をアイドルモジュール３５０に登録することができる（ステップＳ３１２）。ブーティング時に（ステップＳ３１０）、ロードトラッカ３１０は、アイドル開始ワーカー３１１とアイドル終了ワーカー３１３とを生成することができる。ブーティング時に（ステップＳ３１０）、ブースタ３３０は、ロードトラッカ３１０によって生成されたアイドル開始ワーカー３１１とアイドル終了ワーカー３１３のそれぞれのタイムアウト時間または満了時間を設定することができる。
【００４６】
アイドルタスク３７０が実行される時（図３の３７１または図７のステップＳ３１４）、アイドルモジュール３５０は、アイドルタスク３７０の実行３７１によって生成されたインタラプトＩＮＴ１を感知し、アイドル開始ワーカーコールバック３５１を呼び出すことができる（ステップＳ３１６）。
【００４７】
アイドル開始ワーカーコールバック３５１は、ワークキュー３８０にキューされた（ｑｕｅｕｅｄ）アイドル終了ワーカーが存在する時、アイドル終了ワーカーのスケジュール（または、タイマに設定されたタイムアウト時間または満了時間）を取り消すか、削除することができる（ステップＳ３１８）。アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１または３８１のスケジュール前提条件を判断し（ステップＳ３２０）、前提条件が満足される時、アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１または３８１をスケジュールすることができる（ステップＳ３２２）。
【００４８】
例えば、（１）アイドル開始ワーカーがワークキュー３８０に係留（ｐｅｎｄｉｎｇ）されておらず、アイドル終了ワーカーがワークキュー３８０に係留されていない時、または（２）アイドル開始ワーカーがワークキュー３８０に係留されておらず、コア２１１がブーストされている時、アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１または３８１をスケジュールすることができる（ステップＳ３２２）。
【００４９】
ワークキュー３８０は、アイドル開始ワーカー３８１に設定された満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ３２４）。満了時間が満了していなければ（ステップＳ３２４のＮＯ）、ワークキュー３８０は、過程（ステップＳ３２４）を繰り返すか、相次いで実行することができる。
しかし、満了時間が満了すれば（ステップＳ３２４のＹＥＳ）、アイドル開始ワーカー３１１または３８１は、ブースティング終了またはブースティングレベルの減少を指示する減少指示イベントＥＶＥＮＴ１を生成し、減少指示イベントＥＶＥＮＴ１をブースタ３３０にブロードキャストすることができる（ステップＳ３２６）。
【００５０】
ブースタ３３０のイベント受信器３３１は、減少指示イベントＥＶＥＮＴ１に応答してブースティングエンダ３３５を呼び出すことができる（ステップＳ３２８）。例えば、ブースタ３３０は、減少指示イベントＥＶＥＮＴ１をパージングし、該パージングの結果によって、ブースティングエンダ３３５を呼び出すことができる（ステップＳ３２８）。ブースティングエンダ３３５は、予め定義されたとおりにＱｏＳと関連したパラメータをＱｏＳ関連ファイルシステム３３７に設定することができる（ステップＳ３３０）。ＱｏＳコントローラ３４０は、ＱｏＳ関連ファイルシステム３３７に保存されたブースティング制御値またはＱｏＳ最小値に基づいて、ブースティング制御またはＱｏＳ最小値制御のための制御信号を生成することができる（ステップＳ３３２）。例えば、制御信号は、周波数制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを含みうる。
【００５１】
アイドルタスク３７０が実行されることによって、コンピュータシステム１００は、アイドル（または、アイドル状態）を保持することができる（図３の３７３）。アイドルタスク３７０が終了する時（図３の３７５または図７のステップＳ３４０）、アイドルモジュール３５０は、アイドルタスク３７０の終了（図３の３７５）によって生成されたインタラプトＩＮＴ２を感知し、アイドル終了ワーカーコールバック３５３を呼び出すことができる（ステップＳ３４２）。
【００５２】
アイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３１３または３８３のスケジュール前提条件を判断し（ステップＳ３４４）、前提条件が満足される時、アイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３１３または３８３をスケジュールすることができる（ステップＳ３４６）。
例えば、（１）アイドル終了ワーカーがワークキュー３８０に係留されておらず、アイドル開始ワーカーがワークキュー３８０に係留されている時、または（２）アイドル終了ワーカーがワークキュー３８０に係留されておらず、コア２１１がブーストされない時、アイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３１３または３８３をスケジュールすることができる（ステップＳ３４６）。
【００５３】
ワークキュー３８０は、アイドル終了ワーカー３８３に設定された満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ３４８）。満了時間が満了していなければ（ステップＳ３４８のＮＯ）、ワークキュー３８０は、過程（ステップＳ３４８）を行うことができる。
しかし、満了時間が満了すれば（ステップＳ３４８のＹＥＳ）、アイドル終了ワーカー３１３または３８３は、ワークキュー３８０にキューされたアイドル開始ワーカーが存在する時、アイドル開始ワーカーのスケジュール（または、タイマに設定されたタイムアウト時間または満了時間）を取り消すか、削除することができる（ステップＳ３５０）。アイドル終了ワーカー３１３は、ブースティング開始またはブースティングレベルの増加を指示する増加指示イベントＥＶＥＮＴ２を生成し、増加指示イベントＥＶＥＮＴ２をブースタ３３０にブロードキャストすることができる（ステップＳ３５２）。
【００５４】
ブースタ３３０のイベント受信器３３１は、増加指示イベントＥＶＥＮＴ２に応答してブースティングスタータ３３３を呼び出すことができる（ステップＳ３２８）。例えば、ブースタ３３０は、増加指示イベントＥＶＥＮＴ２をパージングし、該パージングの結果によって、ブースティングスタータ３３３を呼び出すことができる（ステップＳ３２８）。ブースティングスタータ３３３は、予め定義されたとおりにＱｏＳと関連したパラメータをＱｏＳ関連ファイルシステム３３７に設定することができる（ステップＳ３３０）。ＱｏＳコントローラ３４０は、ＱｏＳ関連ファイルシステム３３７に保存されたブースティング制御値またはＱｏＳ最小値に基づいて、ブースティング制御またはＱｏＳ最小値制御のための制御信号を生成することができる（ステップＳ３３２）。例えば、制御信号は、周波数制御信号ＣＴＲ＿Ｃと電力制御信号ＣＴＲ＿Ｐとを含みうる。
【００５５】
図９は、図２に示されたＱｏＳコントローラの実施形態を示す。図２のＱｏＳコントローラ３４０の実施形態によるＱｏＳコントローラ３４０Ａは、ＤＶＦＳプログラムとして具現可能である。ＱｏＳコントローラ３４０Ａは、ＤＶＦＳガバナ３４１、ＣＭＵドライバ３４３、及びＰＭＵドライバ３４５を含みうる。
ＤＶＦＳガバナ３４１は、ＱｏＳ関連システムファイル３３７からブースティング制御値またはＱｏＳ最小値をリード（ｒｅａｄ）し、解析し（ａｎａｌｙｚｅ）、該解析の結果に該当する解析値をＣＭＵドライバ３４３とＰＭＵドライバ３４５とに伝送しうる。ＣＭＵドライバ３４３は、解析値に基づいて周波数制御信号ＣＴＲ＿Ｃを生成し、周波数制御信号ＣＴＲ＿ＣをＣＭＵ２２０に伝送しうる。ＰＭＵドライバ３４５は、解析値に基づいて電力制御信号ＣＴＲ＿Ｐを生成し、電力制御信号ＣＴＲ＿ＰをＰＭＵ２３０に伝送しうる。
【００５６】
図１０は、図１に示されたＣＰＵの実施形態を示す。図１０を参照すれば、ＣＰＵ２１０Ｂは、４個のコア、第１コア２１０−１、第２コア２１０−２、第３コア２１０−３及び第４コア２１０−４を含むと仮定する。しかし、本発明の技術的思想が、ＣＰＵ２１０Ｂに含まれたコアの個数に限定されるものではない。ＣＰＵ２１０Ｂは、各コア２１０−１、２１０−２、２１０−３、及び２１０−４に関連した命令キャッシュ（Ｉ−Ｃａｃｈｅ）とデータキャッシュ（Ｄ−Ｃａｃｈｅ）とを含むと仮定する。命令キャッシュ（Ｉ−Ｃａｃｈｅ）とデータキャッシュ（Ｄ−Ｃａｃｈｅ）は、ＣＰＵ２１０Ｂのメモリを含みうる。
【００５７】
第１コア２１０−１は、第１ロードトラッカ３１０−１、ブースタ３３０、ＱｏＳ関連システムファイル３３７、ＱｏＳコントローラ３４０、アイドルモジュール３５０−１、及びワークキュー３８０−１を含み（または、実行）うる。第１コア２１０−１は、クロック信号ＣＬＫ１＿１と作動電圧ＰＷ１＿１とを用いて作動することができる。例えば、図１０に示したように、各構成要素３１０−１、３３０、３３７、３４０、３５０−１、及び３８０−１は、第１コア２１０−１の命令キャッシュ（Ｉ−Ｃａｃｈｅ）に保存され、各構成要素３１０−１、３３０、３３７、３４０、３５０−１、及び３８０−１は、第１コア２１０−１によって実行可能である。
【００５８】
コンピュータシステム１００が初期化（または、ブーティング）される時、第１ロードトラッカ３１０−１は、第１コア２１０−１に対する第１アイドル開始ワーカーコールバックと第１アイドル終了ワーカーコールバックとを第１アイドルモジュール３５０−１に登録し、第１コア２１０−１に対する第１アイドル開始ワーカーと第１アイドル終了ワーカーとを生成することができる。コンピュータシステム１００が初期化される時、ブースタ３３０は、第１アイドル開始ワーカーと第１アイドル終了ワーカーのそれぞれの満了時間を設定することができる。
【００５９】
第１コア２１０−１で第１アイドルタスクが実行される時、第１アイドルモジュール３５０−１は、第１アイドルモジュール３５０−１に登録された第１アイドル開始ワーカーコールバックを呼び出すことができる。第１コア２１０−１で第１アイドルタスクが実行されれば、第１アイドル開始ワーカーコールバックは、第１ワークキュー３８０−１に既に存在するアイドル開始ワーカーのスケジュールを取り消すことができる。
【００６０】
（１）第１ワークキュー３８０−１にアイドル開始ワーカーが係留中ではなく、第１ワークキュー３８０−１にアイドル終了ワーカーが係留中ではない時、または（２）第１ワークキュー３８０−１にアイドル開始ワーカーが係留中ではなく、第１コア２１０−１がブースティング中であれば、第１アイドル開始ワーカーコールバックは、第１アイドル開始ワーカーをスケジュールすることができる。
【００６１】
第１ワークキュー３８０−１は、第１アイドル開始ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第１アイドル開始ワーカーの満了時間が満了（または、経過）した後、第１アイドル開始ワーカーは、第１コア２１０−１に対するビジーコアカウントを１だけ減少させ、減少指示イベントＥＶＥＮＴＡをブースタ３３０に伝送しうる。
【００６２】
第１コア２１０−１で第１アイドルタスクの実行が終了する時、第１アイドルモジュール３５０−１は、第１アイドルモジュール３５０−１に登録された第１アイドル終了ワーカーコールバックを呼び出すことができる。
（１）第１ワークキュー３８０−１にアイドル終了ワーカーが係留中ではなく、第１ワークキュー３８０−１にアイドル開始ワーカーが係留中である時、または（２）第１ワークキュー３８０−１にアイドル終了ワーカーが係留中ではなく、第１コア２１０−１がブースティング中ではない時、第１アイドル終了ワーカーコールバックは、第１アイドル終了ワーカーをスケジュールすることができる。
【００６３】
第１ワークキュー３８０−１は、第１アイドル終了ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第１アイドル終了ワーカーの満了時間が満了（または、経過）した後、第１アイドル終了ワーカーは、第１ワークキュー３８０−１にスケジュールされたアイドル開始ワーカーのスケジュールを取り消し、第１コア２１０−１に対するビジーコアカウントを１だけ増加させ、増加指示イベントＥＶＥＮＴＡをブースタ３３０に伝送しうる。
【００６４】
第２コア２１０−２は、第２ロードトラッカ３１０−２、アイドルモジュール３５０−２、及びワークキュー３８０−２を含み（または、実行）うる。第２コア２１０−２は、クロック信号ＣＬＫ１＿２と作動電圧ＰＷ１＿２とを用いて作動することができる。例えば、図１０に示したように、各構成要素３１０−２、３５０−２、及び３８０−２は、第２コア２１０−２の命令キャッシュ（Ｉ−Ｃａｃｈｅ）に保存され、各構成要素３１０−２、３５０−２、及び３８０−２は、第２コア２１０−２によって実行可能である。
【００６５】
コンピュータシステム１００が初期化（または、ブーティング）される時、第２ロードトラッカ３１０−２は、第２コア２１０−２に対する第２アイドル開始ワーカーコールバックと第２アイドル終了ワーカーコールバックとを第２アイドルモジュール３５０−２に登録し、第２コア２１０−２に対する第２アイドル開始ワーカーと第２アイドル終了ワーカーとを生成することができる。コンピュータシステム１００が初期化される時、第１コア２１０−１のブースタ３３０は、第２アイドル開始ワーカーと第２アイドル終了ワーカーのそれぞれの満了時間を設定することができる。
【００６６】
第２コア２１０−２で第２アイドルタスクが実行される時、第２アイドルモジュール３５０−２は、第２アイドルモジュール３５０−２に登録された第２アイドル開始ワーカーコールバックを呼び出すことができる。第２コア２１０−２で第２アイドルタスクが実行されれば、第２アイドル開始ワーカーコールバックは、第２ワークキュー３８０−２に既に存在するアイドル開始ワーカーのスケジュールを取り消すことができる。
【００６７】
（１）第２ワークキュー３８０−２にアイドル開始ワーカーが係留中ではなく、第２ワークキュー３８０−２にアイドル終了ワーカーが係留中ではない時、または（２）第２ワークキュー３８０−２にアイドル開始ワーカーが係留中ではなく、第２コア２１０−２がブースティング中であれば、第２アイドル開始ワーカーコールバックは、第２アイドル開始ワーカーをスケジュールすることができる。
【００６８】
第２ワークキュー３８０−２は、第２アイドル開始ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第２アイドル開始ワーカーの満了時間が満了（または、経過）した後、第２アイドル開始ワーカーは、第２コア２１０−２に対するビジーコアカウントを１だけ減少させ、減少指示イベントＥＶＥＮＴＢをブースタ３３０に伝送しうる。
第２コア２１０−２で第２アイドルタスクの実行が終了する時、第２アイドルモジュール３５０−２は、第２アイドルモジュール３５０−２に登録された第２アイドル終了ワーカーコールバックを呼び出すことができる。
【００６９】
（１）第２ワークキュー３８０−２にアイドル終了ワーカーが係留中ではなく、第２ワークキュー３８０−２にアイドル開始ワーカーが係留中である時、または（２）第２ワークキュー３８０−２にアイドル終了ワーカーが係留中ではなく、第２コア２１０−２がブースティング中ではない時、第２アイドル終了ワーカーコールバックは、第２アイドル終了ワーカーをスケジュールすることができる。
【００７０】
第２ワークキュー３８０−２は、第２アイドル終了ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。前記第２アイドル終了ワーカーの満了時間が満了（または、経過）した後、第２アイドル終了ワーカーは、第２ワークキュー３８０−２にスケジュールされたアイドル開始ワーカーのスケジュールを取り消し、第２コア２１０−２に対するビジーコアカウントを１だけ増加させ、増加指示イベントＥＶＥＮＴＢをブースタ３３０に伝送しうる。
【００７１】
第３コア２１０−３は、第３ロードトラッカ３１０−３、アイドルモジュール３５０−３、及びワークキュー３８０−３を含み（または、実行）うる。第３コア２１０−３は、クロック信号ＣＬＫ１＿３と作動電圧ＰＷ１＿３とを用いて作動することができる。例えば、図１０に示したように、各構成要素３１０−３、３５０−３、及び３８０−３は、第３コア２１０−３の命令キャッシュ（Ｉ−Ｃａｃｈｅ）に保存され、各構成要素３１０−３、３５０−３、及び３８０−３は、第３コア２１０−３によって実行可能である。
【００７２】
コンピュータシステム１００が初期化（または、ブーティング）される時、第３ロードトラッカ３１０−３は、第３コア２１０−３に対する第３アイドル開始ワーカーコールバックと第３アイドル終了ワーカーコールバックとを第３アイドルモジュール３５０−３に登録し、第３コア２１０−３に対する第３アイドル開始ワーカーと第３アイドル終了ワーカーとを生成することができる。コンピュータシステム１００が初期化される時、ブースタ３３０は、第３アイドル開始ワーカーと第３アイドル終了ワーカーのそれぞれの満了時間を設定することができる。
【００７３】
第３コア２１０−３で第３アイドルタスクが実行される時、第３アイドルモジュール３５０−３は、第３アイドルモジュール３５０−３に登録された第３アイドル開始ワーカーコールバックを呼び出すことができる。第３コア２１０−３で第３アイドルタスクが実行されれば、第３アイドル開始ワーカーコールバックは、第３ワークキュー３８０−３に既に存在するアイドル開始ワーカーのスケジュールを取り消すことができる。
【００７４】
（１）第３ワークキュー３８０−３にアイドル開始ワーカーが係留中ではなく、第３ワークキュー３８０−３にアイドル終了ワーカーが係留中ではない時、または（２）第３ワークキュー３８０−３にアイドル開始ワーカーが係留中ではなく、第３コア２１０−３がブースティング中であれば、第３アイドル開始ワーカーコールバックは、第３アイドル開始ワーカーをスケジュールすることができる。
【００７５】
第３ワークキュー３８０−３は、第３アイドル開始ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第３アイドル開始ワーカーの満了時間が満了（または、経過）した後、第３アイドル開始ワーカーは、第３コア２１０−３に対するビジーコアカウントを１だけ減少させ、減少指示イベントＥＶＥＮＴＢをブースタ３３０に伝送しうる。
第３コア２１０−３で第３アイドルタスクの実行が終了する時、第３アイドルモジュール３５０−３は、第３アイドルモジュール３５０−３に登録された第３アイドル終了ワーカーコールバックを呼び出すことができる。
【００７６】
（１）第３ワークキュー３８０−３にアイドル終了ワーカーが係留中ではなく、第３ワークキュー３８０−３にアイドル開始ワーカーが係留中である時、または（２）第３ワークキュー３８０−３にアイドル終了ワーカーが係留中ではなく、第３コア２１０−３がブースティング中ではない時、第３アイドル終了ワーカーコールバックは、第３アイドル終了ワーカーをスケジュールすることができる。
【００７７】
第３ワークキュー３８０−３は、第３アイドル終了ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。前記第３アイドル終了ワーカーの満了時間が満了（または、経過）した後、第３アイドル終了ワーカーは、第３ワークキュー３８０−３にスケジュールされたアイドル開始ワーカーのスケジュールを取り消し、第３コア２１０−３に対するビジーコアカウントを１だけ増加させ、増加指示イベントＥＶＥＮＴＣをブースタ３３０に伝送しうる。
【００７８】
第４コア２１０−４は、第４ロードトラッカ３１０−４、アイドルモジュール３５０−４、及びワークキュー３８０−４を含み（または、実行）うる。第４コア２１０−４は、クロック信号ＣＬＫ１＿４と作動電圧ＰＷ１＿４とを用いて作動することができる。例えば、図１０に示したように、各構成要素３１０−４、３５０−４、及び３８０−４は、第４コア２１０−４の命令キャッシュ（Ｉ−Ｃａｃｈｅ）に保存され、各構成要素３１０−４、３５０−４、及び３８０−４は、第４コア２１０−４によって実行可能である。
【００７９】
コンピュータシステム１００が初期化（または、ブーティング）される時、第４ロードトラッカ３１０−４は、第４コア２１０−４に対する第４アイドル開始ワーカーコールバックと第４アイドル終了ワーカーコールバックとを第４アイドルモジュール３５０−４に登録し、第４コア２１０−４に対する第４アイドル開始ワーカーと第４アイドル終了ワーカーとを生成することができる。コンピュータシステム１００が初期化される時、ブースタ３３０は、第４アイドル開始ワーカーと第４アイドル終了ワーカーのそれぞれの満了時間を設定することができる。
【００８０】
第４コア２１０−４で第４アイドルタスクが実行される時、第４アイドルモジュール３５０−４は、第４アイドルモジュール３５０−４に登録された第４アイドル開始ワーカーコールバックを呼び出すことができる。第４コア２１０−４で第４アイドルタスクが実行されれば、第４アイドル開始ワーカーコールバックは、第４ワークキュー３８０−４に既に存在するアイドル開始ワーカーのスケジュールを取り消すことができる。
【００８１】
（１）第４ワークキュー３８０−４にアイドル開始ワーカーが係留中ではなく、第４ワークキュー３８０−４にアイドル終了ワーカーが係留中ではない時、または（２）第４ワークキュー３８０−４にアイドル開始ワーカーが係留中ではなく、第４コア２１０−４がブースティング中であれば、第４アイドル開始ワーカーコールバックは、第４アイドル開始ワーカーをスケジュールすることができる。
【００８２】
第４ワークキュー３８０−４は、第４アイドル開始ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第４アイドル開始ワーカーの満了時間が満了（または、経過）した後、第４アイドル開始ワーカーは、第４コア２１０−４に対するビジーコアカウントを１だけ減少させ、減少指示イベントＥＶＥＮＴＤをブースタ３３０に伝送しうる。
【００８３】
第４コア２１０−４で第４アイドルタスクの実行が終了する時、第４アイドルモジュール３５０−４は、第４アイドルモジュール３５０−４に登録された第４アイドル終了ワーカーコールバックを呼び出すことができる。
（１）第４ワークキュー３８０−４にアイドル終了ワーカーが係留中ではなく、第４ワークキュー３８０−４にアイドル開始ワーカーが係留中である時、または（２）第４ワークキュー３８０−４にアイドル終了ワーカーが係留中ではなく、第４コア２１０−４がブースティング中ではない時、第４アイドル終了ワーカーコールバックは、第４アイドル終了ワーカーをスケジュールすることができる。
【００８４】
第４ワークキュー３８０−４は、第４アイドル終了ワーカーの満了時間が満了（または、経過）したか否かを判断することができる。第４アイドル終了ワーカーの満了時間が満了（または、経過）した後、第４アイドル終了ワーカーは、第４ワークキュー３８０−４にスケジュールされたアイドル開始ワーカーのスケジュールを取り消し、第４コア２１０−２に対するビジーコアカウントを１だけ増加させ、増加指示イベントＥＶＥＮＴＤをブースタ３３０に伝送しうる。
【００８５】
イベントＥＶＥＮＴＡ、ＥＶＥＮＴＢ、ＥＶＥＮＴＣ、及びＥＶＥＮＴＤのうちの少なくとも１つがブースタ３３０にブロードキャストされれば、カーネルシステムコール（ｋｅｒｎｅｌ  ｓｙｓｔｅｍ  ｃａｌｌ）ＡＰＩによって待機状態のスレッド（ｔｈｒｅａｄ）がアウェイクし、ブースタ３３０は、受信された少なくとも１つのイベントをパージングすることができる。少なくとも１つのイベントがパージングされれば、ブースタ３３０は、各コア２１０−１、２１０−２、２１０−３、及び２１０−４に対するビジーコアカウントを確認（または、判断）することができる。ブースタ３３０は、確認の結果に該当する全体ビジーコアカウントに該当するＱｏＳ最小値をＱｏＳ関連システムファイル３３７に設定（または、ライト）することができる。ＱｏＳコントローラ３４０は、ＱｏＳ関連システムファイル３３７から出力されたＱｏＳ最小値に基づいて、各コア２１０−１、２１０−２、２１０−３、及び２１０−４に対するＱｏＳ最小値を制御することができる制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを生成することができる。
【００８６】
第１クロック信号ＣＬＫ１は、クロック信号ＣＬＫ１＿１〜ＣＬＫ１＿４を集合的（ｃｏｌｌｅｃｔｉｖｅｌｙ）に表わし、第１作動電圧ＰＷ１は、作動電圧ＰＷ１＿１〜ＰＷ１＿４を集合的に表わす。しかし、ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに基づいてクロック信号ＣＬＫ１＿１〜ＣＬＫ１＿４のそれぞれの周波数を制御することができる。また、ＰＭＵ２３０は、電力制御信号ＣＴＲ＿Ｐに基づいて、作動電圧ＰＷ１＿１〜ＰＷ１＿４のそれぞれのレベルを制御することができる制御信号ＣＴＲを生成し、制御信号ＣＴＲをＰＭＩＣ２７０に出力することができる。
各イベントＥＶＥＮＴＡ、ＥＶＥＮＴＢ、ＥＶＥＮＴＣ、及びＥＶＥＮＴＤは、図３を参照して説明された減少指示イベントＥＶＥＮＴ１または増加指示イベントＥＶＥＮＴ２を表わすことができる。
【００８７】
各コア２１０−１、２１０−２、２１０−３、及び２１０−４の各ロードトラッカ３１０−１、３１０−２、３１０−３、及び３１０−４の構成と機能は、図３から図９を参照して説明されたロードトラッカ３１０の構造と機能と同一または類似している。各コア２１０−１、２１０−２、２１０−３、及び２１０−４の各アイドルモジュール３５０−１、３５０−２、３５０−３、及び３５０−４の構成と機能は、図３から図９を参照して説明されたアイドルモジュール３５０の機能と同一または類似している。各コア２１０−１、２１０−２、２１０−３、及び２１０−４の各ワークキュー３８０−１、３８０−２、３８０−３、及び３８０−４の構成と機能は、図３から図９を参照して説明されたワークキュー３８０の構成と機能と同一または類似している。
【００８８】
図１１は、図１０に示されたＣＰＵを用いて行われるブースティングレベルを制御する方法を説明する概念図である。図１０と図１１とを参照すれば、各コア２１０−１、２１０−２、２１０−３、及び２１０−４のロードトラッカ３１０−１、３１０−２、３１０−３、及び３１０−４のアイドル開始ワーカーは、ビジーコアカウントを減少させる作動を行い、各ロードトラッカ３１０−１、３１０−２、３１０−３、及び３１０−４のアイドル終了ワーカーは、ビジーコアカウントを増加させる作動を行うことができる。ここで、ビジーコアカウントは、ブーストされるコアの個数を表わす。
【００８９】
例えば、各コア２１０−１、２１０−２、２１０−３、及び２１０−４でアイドルタスクが実行されれば、各コア２１０−１、２１０−２、２１０−３、及び２１０−４に対するビジーコアカウントは減少し、各コア２１０−１、２１０−２、２１０−３、及び２１０−４でアイドルタスクが終了すれば、各コア２１０−１、２１０−２、２１０−３、及び２１０−４に対するビジーコアカウントは増加する。
第１コア２１０−１で実行されるブースタ３３０は、各イベントＥＶＥＮＴＡ、ＥＶＥＮＴＢ、ＥＶＥＮＴＣ、及びＥＶＥＮＴＤをパージングし、該パージングの結果によって、ＣＰＵ２１０Ｂに対する全体ビジーコアカウントを計算することができる。
【００９０】
図１１に示したように、第１時点Ｔ１で、第３コアＣＯＲＥ３２１０−３のみがブースティングが必要なタスクを行う時、第３コアＣＯＲＥ３２１０−３の第３ロードトラッカ３１０−３は、増加指示イベント（ＥＶＥＮＴＣ＝ＥＶＥＮＴ２）をブースタ３３０に伝送するので、ブースタ３３０によって計算された全体ビジーコアカウントは、１である。
第２時点Ｔ２で、第１コアＣＯＲＥ１２１０−１がブースティングが必要なタスクを行う時、第１コアＣＯＲＥ１２１０−１の第１ロードトラッカ３１０−１は、増加指示イベント（ＥＶＥＮＴＡ＝ＥＶＥＮＴ２）をブースタ３３０に伝送するので、ブースタ３３０によって計算された全体ビジーコアカウントは、２である。
【００９１】
第３時点Ｔ３で、第２コアＣＯＲＥ２２１０−２がブースティングが必要なタスクを行う時、第２コアＣＯＲＥ２２１０−２の第２ロードトラッカ３１０−２は、増加指示イベント（ＥＶＥＮＴＢ＝ＥＶＥＮＴ２）をブースタ３３０に伝送するので、ブースタ３３０によって計算された全体ビジーコアカウントは、３である。
第４時点Ｔ４で、ブースタ３３０によって計算された全体ビジーコアカウントは、３である。
第５時点Ｔ５で、第２コアＣＯＲＥ２２１０−２がブースティングが必要なタスクを終了しても、図４を参照して説明したように、ＥＴＨが満了しなければ、ブースタ３３０によって計算された全体ビジーコアカウントは、３を保持することができる。
【００９２】
第６時点Ｔ６で、ＥＴＨが満了した後に、第２コアＣＯＲＥ２２１０−２の第２ロードトラッカ３１０−２は、減少指示イベント（ＥＶＥＮＴＢ＝ＥＶＥＮＴ１）をブースタ３３０に伝送する。これにより、ブースタ３３０によって計算された全体ビジーコアカウントは、３から２に減少する。
第７時点Ｔ７で、すなわち、第３コアＣＯＲＥ３がブースティングが必要なタスクを終了し、ＥＴＨが経過した後、第３コアＣＯＲＥ３の第３ロードトラッカ３１０−３は、減少指示イベント（ＥＶＥＮＴＣ＝ＥＶＥＮＴ１）をブースタ３３０に伝送するので、ブースタ３３０によって計算された全体ビジーコアカウントは、２から１に減少する。
【００９３】
第８時点Ｔ８で、すなわち、第１コアＣＯＲＥ１がブースティングが必要なタスクを終了し、ＥＴＨが経過した後、第１コアＣＯＲＥ１の第１ロードトラッカ３１０−１は、減少指示イベント（ＥＶＥＮＴＡ＝ＥＶＥＮＴ１）をブースタ３３０に伝送するので、ブースタ３３０によって計算された全体ビジーコアカウントは、１から０に減少する。図１１に示されたＳＴＨとＥＴＨのそれぞれは、図４を参照して説明されたＳＴＨとＥＴＨのそれぞれと同一である。
【００９４】
図１２は、図１０に示されたＣＰＵを用いて行われるブースティングレベルを制御する方法を説明する概念図である。図４、図１０、図１１、及び図１２を参照すれば、全体ビジーコアカウントが１または２である時のブースティングレベルは、レベル−１（ＬＶ１）であると仮定し、全体ビジーコアカウントが３または４である時のブースティングレベルは、レベル−２（ＬＶ２）であると仮定する。
【００９５】
図１０に示された第１コア２１０−１と第２コア２１０−２のそれぞれは、リトルコアであり、第３コア２１０−３と第４コア２１０−４のそれぞれは、ビッグコアであると仮定する。ＭＩＦは、図１に示されたメモリインターフェース２５０、２６０のうちの少なくとも１つであり、ＩＮＴは、図１に示された入出力インターフェース２６５であると仮定する。図１０と図１１とを参照して説明したように、第１コア２１０−１で実行されるブースタ３３０は、各コア２１０−１、２１０−２、２１０−３、及び２１０−４から出力された各イベントＥＶＥＮＴＡ、ＥＶＥＮＴＢ、ＥＶＥＮＴＣ、及びＥＶＥＮＴＤに基づいて全体ビジーコアカウントを計算することができる。
【００９６】
第１コア２１０−１のブースタ３３０は、計算された全体ビジーコアカウントに基づいてＱｏＳ最小値をＱｏＳ関連システムファイル３３７に設定することができる。したがって、ＱｏＳコントローラ３４０は、ＱｏＳ最小値を制御することができる制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを生成することができる。ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに応答して、クロック信号ＣＬＫ１＿１、ＣＬＫ１＿２、ＣＬＫ１＿３、ＣＬＫ１＿４、ＣＬＫ２、ＣＬＫ３、ＣＬＫ５、及びＣＬＫ５のうちの少なくとも１つのクロック信号の周波数を制御することができる。
【００９７】
例えば、ブースティングレベルがレベル−１（ＬＶ１）である時、ＣＭＵ２２０は、ビッグコアに供給されるクロック信号の周波数を１．５ＧＨｚに調節し、リトルコアに供給されるクロック信号の周波数を１．５ＧＨｚに調節し、ＩＮＴに供給されるクロック信号の周波数を５００ＭＨｚに調節し、ＭＩＦに供給されるクロック信号の周波数を１．５ＧＨｚに調節し、ＨＭＰブーストをオン（ｏｎ）させることができる。ＨＭＰブーストがオンになれば、リトルコアに割り当てられたタスクは、ビッグコアに強制に割り当てられる。
【００９８】
例えば、ブースティングレベルがレベル−２（ＶＬ２）である時、ＣＭＵ２２０は、ビッグコアに供給されるクロック信号の周波数を２．０ＧＨｚに調節し、リトルコアに供給されるクロック信号の周波数を１．５ＧＨｚに調節し、ＩＮＴに供給されるクロック信号の周波数を６００ＭＨｚに調節し、ＭＩＦに供給されるクロック信号の周波数を１．６ＧＨｚに調節し、ＨＭＰブーストをオンさせることができる。
【００９９】
図１３は、図１０に示されたＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明する概念図であり、図１４、図１５、及び図１６は、図１０に示されたＣＰＵで実行されるソフトウェアコンポーネントを用いてＱｏＳ最小値を制御する方法を説明するフローチャートである。
【０１００】
図１から図３、図１０、及び図１３から図１６を参照すれば、コンピュータシステム１００が初期化（または、ブーティング）される時（ステップＳ４１０）、ロードトラッカ３１０、３１０−１、３１０−２、３１０−３、または３１０−４（集合的に３１０Ａ）は、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４に対するアイドルワーカーコールバック、例えば、アイドル開始ワーカーコールバック３５１とアイドル終了ワーカーコールバック３５３とをアイドルモジュール３５０、３５０−１、３５０−２、３５０−３、または３５０−４（集合的に３５０Ａ）に登録することができる（ステップＳ４１２）。
ロードトラッカ３１０Ａは、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４に対するアイドル開始ワーカー３１１とアイドル終了ワーカー３１３とを生成することができる（ステップＳ４１４）。
【０１０１】
コンピュータシステム１００が初期化される時、ブースタ３３０は、環境設定ファイル３８２を第２メモリ装置２９０からリードし（ステップＳ４１６）、ビジーコアカウント別に、または全体ビジーコアカウント別に、ＤＶＦＳ（または、ＤＦＳ）及び／またはスケジューラ３８４に設定するパラメータ３３０−３をシステムファイル３３０−２を通じてメモリ装置２１５または２８０にロードすることができる（ステップＳ４１８）。例えば、環境設定ファイル３８２は、図１２に例示的に示されたブースティングレベル環境設定であり得るが、これに限定されるものではない。図１３に示されたブースタ３３０は、メインループ３３０−１を含み、メインループ３３０−１は、イベント受信器３３１、ブースティングスタータ３３３、及びブースティングエンダ３３５を含むブースタ３３０Ａを含みうる。例えば、ブースタ３３０は、ブースタ３３０Ａと共にデータフローを含むが、ブースタ３３０の機能は、ブースタ３３０Ａの機能と同一であり得る。
【０１０２】
ブースタ３３０は、ロードトラッカ３１０Ａによって生成されたアイドル開始ワーカー３１１とアイドル終了ワーカー３１３のそれぞれの満了時間を設定することができる（ステップＳ４２０）。例えば、ブースタ３３０は、図４に示された満了時間ＳＴＨ、ＥＴＨのそれぞれを設定することができる。
ブースタ３３０は、カーネル（ｋｅｒｎｅｌ）またはカーネル領域からイベントＥＶＥＮＴ１、ＥＶＥＮＴ２、ＥＶＥＮＴＡ、ＥＶＥＮＴＢ、ＥＶＥＮＴＣ、及び／またはＥＶＥＮＴＤ（集合的にＥＶＥＮＴ）を受信または聴取（ｌｉｓｔｅｎｉｎｇ）するための通信応用プログラミングインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ；ＡＰＩ）をオープン（ｏｐｅｎ）することができる（ステップＳ４２２）。通信ＡＰＩは、ソケット（ｓｏｃｋｅｔ）を意味する。通信ＡＰＩまたはソケットは、ビジーコアカウントを含むイベントＥＶＥＮＴを送受信する通信チャネル（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｃｈａｎｎｅｌ）を意味する。
ブースタ３３０は、通信ＡＰＩを開き、通信ＡＰＩに対してカーネルシステムコールＡＰＩを呼び出し、待機状態に進入することができる（ステップＳ４２４）。
【０１０３】
アイドルタスク３７０が始まれば（ステップＳ５１０）、アイドルモジュール３５０Ａは、アイドル開始ワーカーコールバック３５１を呼び出すことができる（ステップＳ５１２）。
アイドル開始ワーカーコールバック３５１は、ワークキュー３８０、３８０−１、３８０−２、３８０−３、及び／または３８０−４（集合的に３８０）に存在するアイドル終了ワーカーのスケジュール（または、タイマの満了時間）を取り消すことができる（ステップＳ５１４）。前述したように、取り消されるアイドル終了ワーカーがワークキュー３８０に存在しない時、過程（ステップＳ５１４）は、省略またはスキップされうる。
【０１０４】
ワークキュー３８０にアイドル開始ワーカーが係留中ではなく、前記ワークキューにアイドル終了ワーカーが係留中ではない時、または（２）ワークキュー３８０にアイドル開始ワーカーが係留中ではなく、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４がブースティング中であれば（ステップＳ５１６）、アイドル開始ワーカーコールバック３５１は、アイドル開始ワーカー３１１をスケジュールすることができる（ステップＳ５１８）。
【０１０５】
ワークキュー３８０は、アイドル開始ワーカーの満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ５２０）。アイドル開始ワーカーの満了時間が満了（または、経過）すれば（ステップＳ５２０のＹＥＳ）、アイドル開始ワーカー３１１は、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４に対するビジーコアカウントを１だけ減少させ、ブースティング終了またはブースティングレベルの減少を指示する減少指示イベントＥＶＥＮＴをブースタ３３０にブロードキャストすることができる（ステップＳ５２２）。
【０１０６】
減少指示イベントＥＶＥＮＴがブースタ３３０にブロードキャストされれば、ブースタ３３０のカーネルシステムコールＡＰＩ（例えば、ｅｐｏｌｌ）によって待機状態のスレッドがアウェイクすることができる（ステップＳ５２４）。例えば、メインループ３３０−１のイベント受信器３３１は、ロードトラッカ３１０Ａから伝送された減少指示イベントＥＶＥＮＴを受信し、減少指示イベントＥＶＥＮＴをパージングし（ステップＳ５２６）、該パージングの結果によって、ブースティングエンダ３３５を呼び出すことができる。
【０１０７】
ブースティングエンダ３３５は、パージングの結果によって、ＱｏＳと関連したシステムファイル３３７にＱｏＳ最小値に該当するパラメータをライトすることができる（ステップＳ５２８）。ＱｏＳコントローラ３４０は、ＱｏＳと関連したシステムファイル３３７からＱｏＳ最小値に該当するパラメータをリードし、パラメータを用いて当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４のＱｏＳと関連した制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを生成し、制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを出力することができる（ステップＳ５３０）。
【０１０８】
制御回路２００は、制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐに基づいて作動するＣＭＵ２２０とＰＭＵ２３０との制御によって、制御回路２００のＱｏＳまたはＱｏＳ最小値を制御することができる（ステップＳ５３２）。すなわち、ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに基づいて、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４、及びＣＬＫ５のうちの少なくとも１つの周波数を調節することができる。ＰＭＩＣ２７０は、電力制御信号ＣＴＲ＿Ｐと関連した制御信号ＣＴＲに基づいて、作動電圧ＰＷ１、ＰＷ２、ＰＷ３、ＰＷ４、ＰＷ５、及びＰＷ６のうちの少なくとも１つのレベルを調節することができる。
【０１０９】
図１０を参照して説明したように、ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに基づいて、クロック信号ＣＬＫ１＿１、ＣＬＫ１＿２、ＣＬＫ１＿３、及びＣＬＫ１＿４のうちの少なくとも１つの周波数を調節することができる。ＰＭＩＣ２７０は、電力制御信号ＣＴＲ＿Ｐと関連した制御信号ＣＴＲに基づいて、作動電圧ＰＷ１＿１、ＰＷ１＿２、ＰＷ１＿３、及びＰＷ１＿４のうちの少なくとも１つのレベルを調節することができる。
引き続き、図１３、図１４、及び図１６を参照すれば、アイドルタスク３７０の実行が終了すれば（ステップＳ６１０）、アイドルモジュール３５０Ａは、アイドル終了ワーカーコールバック３５３を呼び出すことができる（ステップＳ６１２）。
【０１１０】
ワークキュー３８０にアイドル終了ワーカーが係留中ではなく、ワークキュー３８０にアイドル開始ワーカーが係留中である時、または（２）ワークキュー３８０にアイドル終了ワーカーが係留中ではなく、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４がブースティング中ではなければ（ステップＳ６１４）、アイドル終了ワーカーコールバック３５３は、アイドル終了ワーカー３１３をスケジュールすることができる（ステップＳ６１５）。
【０１１１】
ワークキュー３８０は、アイドル終了ワーカー３１３の満了時間が満了（または、経過）したか否かを判断することができる（ステップＳ６１６）。アイドル終了ワーカー３１３の満了時間が満了（または、経過）すれば（ステップＳ６１６のＹＥＳ）、アイドル終了ワーカー３１３は、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４に対するアイドル開始ワーカーのスケジュール（または、タイマの満了時間）を取り消しまたは削除することができる（ステップＳ６１８）。
アイドル終了ワーカー３１３は、当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４に対するビジーコアカウントを１だけ増加させ、ブースティング開始またはブースティングレベルの増加を指示する増加指示イベントＥＶＥＮＴをブースタ３３０にブロードキャストすることができる（ステップＳ６２０）。
【０１１２】
増加指示イベントＥＶＥＮＴがブースタ３３０にブロードキャストされれば、ブースタ３３０のカーネルシステムコールＡＰＩ（例えば、ｅｐｏｌｌ）によって待機状態のスレッドがアウェイクすることができる（ステップＳ５２４）。例えば、メインループ３３０−１のイベント受信器３３１は、ロードトラッカ３１０Ａから伝送された増加指示イベントＥＶＥＮＴを受信し、増加指示イベントＥＶＥＮＴをパージングし（ステップＳ５２６）、該パージングの結果によって、ブースティングスタータ３３３を呼び出すことができる。
【０１１３】
ブースティングスタータ３３３は、パージングの結果によって、ＱｏＳと関連したシステムファイル３３７にＱｏＳ最小値に該当するパラメータをライトすることができる（ステップＳ５２８）。ＱｏＳコントローラ３４０は、ＱｏＳと関連したシステムファイル３３７からＱｏＳ最小値に該当するパラメータをリードし、パラメータを用いて当該コア２１１、２１０−１、２１０−２、２１０−３、または２１０−４のＱｏＳと関連した制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを生成し、制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐを出力することができる（ステップＳ５３０）。
【０１１４】
制御回路２００は、制御信号ＣＴＲ＿Ｃ、ＣＴＲ＿Ｐに基づいて作動するＣＭＵ２２０とＰＭＵ２３０との制御によって、制御回路２００のＱｏＳまたはＱｏＳ最小値を制御することができる（ステップＳ５３２）。すなわち、ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに基づいて、クロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４、及びＣＬＫ５のうちの少なくとも１つの周波数を調節することができる。ＰＭＩＣ２７０は、電力制御信号ＣＴＲ＿Ｐと関連した制御信号ＣＴＲに基づいて、作動電圧ＰＷ１、ＰＷ２、ＰＷ３、ＰＷ４、ＰＷ５、及びＰＷ６のうちの少なくとも１つのレベルを調節することができる。図１０を参照して説明したように、ＣＭＵ２２０は、周波数制御信号ＣＴＲ＿Ｃに基づいて、クロック信号ＣＬＫ１＿１、ＣＬＫ１＿２、ＣＬＫ１＿３、及びＣＬＫ１＿４のうちの少なくとも１つの周波数を調節することができる。ＰＭＩＣ２７０は、電力制御信号ＣＴＲ＿Ｐと関連した制御信号ＣＴＲに基づいて、作動電圧ＰＷ１＿１、ＰＷ１＿２、ＰＷ１＿３、及びＰＷ１＿４のうちの少なくとも１つのレベルを調節することができる。
【０１１５】
図１７は、図３に示されたアイドルモジュールに、アイドルワーカーコールバックを登録する過程を説明するプログラムコードの実施形態である。図１７を参照すれば、図１７に例示的に示されたプログラムコードは、アイドルモジュールにアイドルワーカーコールバック、例えば、アイドル開始ワーカーコールバックとアイドル終了ワーカーコールバックとを登録するためのコードの部分を示す。
【０１１６】
図１８は、図３に示されたアイドルモジュールに登録されたアイドルワーカーコールバックでアイドル開始ワーカーとアイドル終了ワーカーのスケジュールと取り消しとを説明するプログラムコードの実施形態である。図１８を参照すれば、図１８に例示的に示されたプログラムコードは、アイドル開始ワーカーコールバックがアイドル開始ワーカーをスケジュールし、取り消すコードの部分とアイドル終了ワーカーコールバックがアイドル終了ワーカーをスケジュールし、取り消すコードの部分とを示す。
【０１１７】
図１から図１８を参照して説明したように、コアが作動しない時、アイドルタスクが実行されるＣＰＵ２１０またはＣＰＵ２１０を含むコンピュータシステム１００で、アイドルタスクが実行される時には、アイドル開始ワーカーがスケジュールされ、アイドルタスクの実行が終了する時には、アイドル終了ワーカーがスケジュールされる。
【０１１８】
アイドルタスクが実行される時、アイドル終了ワーカーのスケジュールは取り消される。スケジュールされたアイドル開始ワーカーとスケジュールされたアイドル終了ワーカーのそれぞれのスケジュールが取り消されず、スケジュールされたアイドル開始ワーカーとスケジュールされたアイドル終了ワーカーのそれぞれの満了時間が経てば、スケジュールされたアイドル開始ワーカーとスケジュールされたアイドル終了ワーカーのそれぞれに指定された作動が行われる。
【０１１９】
アイドル開始ワーカーに指定された作動は、ブースティングレベルを低めよとのイベントをブースタ３３０にブロードキャストすることであり、アイドル終了ワーカーに指定された作動は、ブースティングレベルを高めよとのイベントをブースタ３３０にブロードキャストすることである。ブースタ３００は、イベンドをリアルタイムで聴取している。ブースタ３００が、イベントを受信した時、ブースタ３００は、受信されたイベントに対して既に定義された作動を行う。既に定義された作動は、ブースティングの開始、ブースティングの終了、ブースティングレベルの変更、ブースティングに関連した周辺装置２４０、２６０、２６０、及び２６５のうちの少なくとも１つの作動の制御、及び／またはコンピュータシステム１００で実行されるＯＳに従属的な作動を含みうる。
【産業上の利用可能性】
【０１２０】
本発明は、第１ロードトラッカ及びブースタを保存する第１メモリと、該第１ロードトラッカ及び該ブースタを実行する第１コアと、を含むＣＰＵに利用可能である。
【符号の説明】
【０１２１】
１００：コンピュータシステム
２００：制御回路
２１０：ＣＰＵ
２２０：クロック管理ユニット
２３０：電力管理ユニット
２４０：グラフィックスプロセッシングユニット
２５０：第１メモリインターフェース
２６０：第２メモリインターフェース
２６５：入出力インターフェース
２７０：電力管理ＩＣ
２８０：第１メモリ装置
２９０：第２メモリ装置
３００：ＱｏＳ制御モジュール
３１０、３１０Ａ、３１０−１、３１０−２、３１０−３、及び３４０−４：ロードトラッカ
３３０、３３０Ｂ：ブースタ（ｂｏｏｓｔｅｒ）
３３７：ＱｏＳ関連システムファイル
３４０：ＱｏＳコントローラ
３５０、３５０−１、３５０−２、３５０−３、及び３５０−４：アイドルモジュール
３８０、３８０−１、３８０−２、３８０−３、及び３８０−４：ワークキュー
【図１】
2017049999.tif 000003
【図２】
2017049999.tif 000004
【図３】
2017049999.tif 000005
【図４】
2017049999.tif 000006
【図５】
2017049999.tif 000007
【図６】
2017049999.tif 000008
【図７】
2017049999.tif 000009
【図８】
2017049999.tif 000010
【図９】
2017049999.tif 000011
【図１０】
2017049999.tif 000012
【図１１】
2017049999.tif 000013
【図１２】
2017049999.tif 000014
【図１３】
2017049999.tif 000015
【図１４】
2017049999.tif 000016
【図１５】
2017049999.tif 000017
【図１６】
2017049999.tif 000018
【図１７】
2017049999.tif 000019
【図１８】
2017049999.tif 000020