(57)【要約】【課題】マルチクラスタプロセシングシステムを提供する。【解決手段】マルチクラスタプロセシングシステムは、複数の第１タイプコアを含む第１クラスタと、複数の第１タイプコアより単位時間当りの演算量が大きい第２タイプコアを含む第２クラスタ、および第１イベントが発生すると、複数の第１タイプコアのうちディセーブル状態の第１タイプコアをイネーブル状態にし、第１イベントと異なる第２イベントが発生すると、複数の第１タイプコアのうちイネーブル状態の第１タイプコアをすべてディセーブル状態にして複数の第２タイプコアのうち一部をイネーブル状態にする制御部を含む。【選択図】図１
2014002740.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１タイプコアを含む第１クラスタと、
前記複数の第１タイプコアより単位時間当りの演算量が大きい第２タイプコアを含む第２クラスタと、
前記第１タイプコアと前記第２タイプコアの利用率（ｕｔｉｌｉｚａｔｉｏｎ）を検知する制御部を含み、
イネーブル状態の前記第１タイプコアのうち一部の利用率（ｕｔｉｌｉｚａｔｉｏｎ）が一定臨界利用率を超過する場合、前記制御部は、第１政策下で複数の前記第１タイプコアのうちディセーブル状態の第１タイプコアをイネーブル状態にし、第２政策下で前記複数の第１タイプコアのうちイネーブル状態の第１タイプコアをすべてディセーブル状態にし、複数の前記第２タイプコアのうち少なくとも一つをイネーブル状態にすることを特徴とするマルチクラスタプロセシングシステム。
【請求項２】
前記第２政策下で前記制御部は、前記複数の第１タイプコアのうちイネーブル状態の第１タイプコアをすべてディセーブル状態にし、前記第２タイプコアのうち一部のみをイネーブル状態にすることを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項３】
前記第１クラスタと前記第２クラスタは一つのチップ内に配置されることを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項４】
前記第１政策は低電力スケジューリング政策を含むことを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項５】
前記第２政策は高性能スケジューリング政策を含むことを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項６】
前記第２政策下で前記制御部は、前記複数の第２タイプコアのうち第１個数の第２タイプコアをイネーブル状態にし、前記複数の第１タイプコアのうち第２個数の第１タイプコアをディセーブル状態にし、
前記第１個数は前記第２個数より小さいことを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項７】
前記第２政策下で前記制御部は、前記複数の第２タイプコアのうち第１個数の第２タイプコアをイネーブル状態にし、前記複数の第１タイプコアのうち第２個数の第１タイプコアをディセーブル状態にし、
前記第１個数と前記第２個数は同一であることを特徴とする請求項１に記載のマルチクラスタプロセシングシステム。
【請求項８】
政策決定部が前記低電力スケジューリング政策を決定すると、低電力スケジューリング政策信号が前記制御部に提供されることを特徴とする請求項４に記載のマルチクラスタプロセシングシステムの駆動方法。
【請求項９】
政策決定部が前記高性能スケジューリング政策を決定すると、高性能スケジューリング政策信号が前記制御部に提供されることを特徴とする請求項５に記載のマルチクラスタプロセシングシステムの駆動方法。
【請求項１０】
前記制御部は、第１タイプコアの遊休時間（ｉｄｌｅ  ｔｉｍｅ）が臨界遊休時間を超過するのかを検知し、前記イネーブル状態の第１タイプコアのうち、遊休時間が臨界遊休時間を超過した少なくとも一つの第１タイプコアをディセーブル状態にすることを特徴とする請求項１に記載のマルチクラスタプロセシングシステムの駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチクラスタプロセシングシステムおよびその駆動方法に関するものである。
【背景技術】
【０００２】
近年、電子機器の携帯性および性能の発達につれ、電子機器の電力消費を減らし、性能を向上させるためにマルチクラスタを有するプロセッサが登場した。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このようなマルチクラスタを使用するための技法としては、例えば、スイッチングモデルがあるが、このようなスイッチングモデルは、スイッチングの際クラスタに含まれたマルチコアにすべての電力を供給する場合、電力消費が過度になり得る。
【０００４】
本発明が解決しようとする技術的課題は、駆動時の電力消費を低減したマルチクラスタプロセシングシステムを提供するものである。
【０００５】
本発明が解決しようとする他の技術的課題は、駆動時の電力消費を低減したマルチクラスタプロセシングシステムの駆動方法を提供するものである。
【０００６】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は、次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【０００７】
前記技術的課題を達成するための本発明の一実施形態によるマルチクラスタプロセシングシステムは、複数の第１タイプコアを含む第１クラスタと、複数の第１タイプコアより単位時間当りの演算量が大きい第２タイプコアを含む第２クラスタと、前記第１タイプコアと前記第２タイプコアの利用率（ｕｔｉｌｉｚａｔｉｏｎ）を検知する制御部を含み、前記イネーブル状態の第１タイプコアのうち一部の利用率（ｕｔｉｌｉｚａｔｉｏｎ）が一定臨界利用率を超過する場合、第１政策下で複数の前記第１タイプコアのうちディセーブル状態の第１タイプコアをイネーブル状態にし、第２政策下で、複数の前記第１タイプコアのうちイネーブル状態の第１タイプコアをすべてディセーブル状態にして複数の第２タイプコアのうち少なくとも一つをイネーブル状態にする制御部と、を含む。
【０００８】
前記第２政策下で前記制御部は、前記複数の第１タイプコアのうちイネーブル状態の第１タイプコアをすべてディセーブル状態にし、前記第２タイプコアのうち一部のみをイネーブル状態にすることができる。
【０００９】
前記第１クラスタと前記第２クラスタは一つのチップ内に配置され得る。
【００１０】
前記第１政策は低電力スケジューリング政策を含むことができる。
【００１１】
前記第２政策は高性能スケジューリング政策を含むことができる。
【００１２】
前記第２政策下で前記制御部は、前記複数の第２タイプコアのうち第1個数の第２タイプコアをイネーブル状態にし、前記複数の第１タイプコアのうち第２個数の第1タイプコアをディセーブル状態にし、
前記第1個数は前記第２個数より小さいことができる。
【００１３】
前記第２政策下で前記制御部は、前記複数の第２タイプコアのうち第1個数の第２タイプコアをイネーブル状態にし、前記複数の第1タイプコアのうち第２個数の第1タイプコアをディセーブル状態にし、
前記第１個数と前記第２個数は同一であることができる。
【００１４】
政策決定部が前記低電力スケジューリング政策を決定すると、低電力スケジューリング政策信号が前記制御部に提供されることができる。
【００１５】
政策決定部が前記高性能スケジューリング政策を決定すると、高性能スケジューリング政策信号が前記制御部に提供されることができる。
【００１６】
前記制御部は、第１タイプコアの遊休時間(idle time)が臨界遊休時間を超過するのかを検知し、前記イネーブル状態の第1タイプコアのうち、遊休時間が臨界遊休時間を超過した少なくとも一つの第1タイプコアをディセーブル状態にすることができる。
【００１７】
その他実施形態の具体的な内容は詳細な説明および図面に含まれている。
【発明の効果】
【００１８】
本発明によると、駆動時の電力消費を低減したマルチクラスタプロセシングシステムの駆動方法を提供できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるマルチクラスタプロセシングシステムの概念ブロック図である。
【図２】図１のマルチクラスタプロセシングシステムの動作を示す順序図である。
【図３】図１のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図４】図１のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図５】図１のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図６】図１のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図７】本発明の他の実施形態によるマルチクラスタプロセシングシステムの概念ブロック図である。
【図８】図７のマルチクラスタプロセシングシステムの動作を示す順序図である。
【図９】図７のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図１０】図７のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図１１】図７のマルチクラスタプロセシングシステムの動作を説明するための図である。
【図１２】本発明の実施形態によるマルチクラスタプロセシングシステムが適用される電子システムを示すブロック図である。
【発明を実施するための形態】
【００２０】
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範囲によってのみ定義される。図面に表示する構成要素のサイズ及び相対的なサイズは説明を明瞭するため、誇張したものであり得る。明細書全体にかけて同一参照符号は同一構成要素を指称し、「及び／または」は、言及されたアイテムのそれぞれ及び一つ以上のすべての組合せを含む。
【００２１】
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型で記載されたものは特に言及しない限り複数型も含む。明細書で使用される「含む（ｃｏｍｐｒｉｓｅｓ）」及び／または「含む（ｃｏｍｐｒｉｓｉｎｇ）」は言及された構成要素以外の一つ以上の他の構成要素の存在または追加を排除しない。
【００２２】
第１、第２などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために用いるものである。したがって、以下で言及される第１素子または構成要素は本発明の技術的思想内で第２素子または構成要素であり得ることは勿論である。
【００２３】
本実施形態で使用される「部」または「モジュール」という用語は、ソフトウェア、ＦＰＧＡまたはＡＳＩＣのようなハードウェア構成要素を意味し、「部」または「モジュール」はある役割を果たす。しかし、「部」または「モジュール」はソフトウェアまたはハードウェアに限定される意味ではない。「部」または「モジュール」は、アドレッシングできる保存媒体にあるように構成され得、一つまたはそれ以上のプロセッサを再生させるように構成され得る。したがって、一例として「部」または「モジュール」は、ソフトウェアの構成要素、オブジェクト指向ソフトウェアの構成要素、クラスの構成要素およびタスクの構成要素のように構成要素と、プロセス、関数、属性、プロシーザ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、および変数を含み得る。構成要素と「部」または「モジュール」から提供される機能はさらに小さい数の構成要素および「部」または「モジュール」に結合されたり、追加的な構成要素と「部」または「モジュール」にさらに分離できる。
【００２４】
他に定義されなければ、本明細書で使用されるすべての用語（技術及び科学的用語を含む）は、本発明が属する技術分野で通常の知識を有する者が共通に理解できる意味として使用され得る。また一般に使用される辞典に定義されている用語は明白に特別に定義されていない限り理想的にまたは過度に解釈しない。
【００２５】
図１は、本発明の一実施形態によるマルチクラスタプロセシングシステムの概念ブロック図である。
【００２６】
図１を参照すると、マルチクラスタプロセシングシステムは第１クラスタ２００、第２クラスタ３００、および制御部４００を含む。
【００２７】
第１クラスタ２００は、プロセッサ１００の内部に配置され、第１クラスタ２００はｎ（ここでｎは自然数）個の第１コア２５０を含む。本明細書では説明の便宜上、第１クラスタ２００が４個（すなわち、ｎ＝４）の第１コア（２１０、２２０、２３０、２４０）を含む場合を例示して本実施形態によるマルチクラスタプロセシングシステムについて説明するが、本発明はこれに制限されるものではない。
【００２８】
第２クラスタ３００も同様にプロセッサ１００の内部に配置され、第２クラスタ３００もｎ個の第２コア３５０を含む。このような第２クラスタ３００は図示したように第１クラスタ２００と互いに区分して配置できる。ここでも説明の便宜上、第２クラスタ３００が４個（すなわち、ｎ＝４）の第２コア（３１０、３２０、３３０、３４０）を含む場合を例示しているが、本発明はこれに制限されるものではない。
【００２９】
一方、図１は第１クラスタ２００に含まれた第１コア２５０の個数と第２クラスタ３００に含まれた第２コア３５０の個数が互いに同一のものを示すが、本発明はこれに制限されるものではない。本発明のいくつかの実施例で、第１クラスタ２００に含まれた第１コア２５０の個数と第２クラスタ３００に含まれた第２コア３５０の個数は図示するものとは異なり互いに異なる場合もある。
【００３０】
また、図１はプロセッサ１００の内部に第１クラスタ２００と第２クラスタ３００のみの配置を示しているが、本発明はこれに制限されるものではない。必要に応じてプロセッサ１００の内部には第１および第２クラスタ（２００、３００）とは別に、第３コア（図示せず）を含む第３クラスタ（図示せず）を追加的に配置できる。
【００３１】
本実施形態で、第１クラスタ２００は例えば、小クラスタ（ｌｉｔｔｌｅ  ｃｌｕｓｔｅｒ）であり、第２クラスタ３００は大クラスタ（ｂｉｇ  ｃｌｕｓｔｅｒ）である。すなわち、第１クラスタ２００に含まれた第１コア２５０の単位時間当りの演算量は第２クラスタ３００に含まれた第２コア３５０の単位時間当りの演算量より小さい。したがって、第１クラスタ２００に含まれたすべての第１コア２５０がイネーブル状態となり、演算を遂行する場合の単位時間当りの演算量は第２クラスタ３００に含まれたすべての第２コア３５０がイネーブル状態となって演算を遂行する場合の単位時間当りの演算量に比べて小さい。
【００３２】
一方、本実施形態で、第１クラスタ２００に含まれた第１−１ないし第１−４コア（２１０、２２０、２３０、２４０）間の単位時間当りの演算量は互いに同一であり、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）間の単位時間当りの演算量も互いに同一である。すなわち、例えば、第１−１ないし第１−４コア（２１０、２２０、２３０、２４０）各々の単位時間当りの演算量を１０と仮定すると、第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）各々の単位時間当りの演算量は４０である。以下では、このような仮定に基づき本実施形態によるマルチクラスタプロセシングシステムの動作について説明するが、本発明はこのような例示に制限されるものではない。本技術分野の通常の知識を有する者が容易に変形できる事項は以下の説明に含まれないものであっても本発明の範疇に含まれ得る。
【００３３】
第1クラスタ２００と第２クラスタ３００は図示するように一つのチップ内に配置される。
【００３４】
制御部４００は、第１クラスタ２００と第２クラスタ３００を必要に応じてイネーブル（ｅｎａｂｌｅ）状態にしたり、ディセーブル（ｄｉｓａｂｌｅ）状態にできる。具体的には、制御部４００は、第１クラスタ２００による演算が必要な場合、第１クラスタ２００をイネーブル状態にし、第２クラスタ３００をディセーブル状態にする。逆に、第２クラスタ３００による演算が必要な場合、第２クラスタ３００をイネーブル状態にし、第１クラスタ２００をディセーブル状態にする。また、制御部４００は、遂行すべき演算量が第１クラスタ２００に含まれた第１−１コア２１０により十分処理可能な場合、第１クラスタ２００はイネーブル状態にし、第２クラスタ３００はディセーブル状態にするが、第１クラスタ２００の内でも、第１−１コア２１０はイネーブル状態にし、第１−２ないし第１−４コア（２２０、２３０、２４０）はディセーブル状態にする。すなわち、本実施形態による制御部４００は第１および第２クラスタ（２００、３００）の全体に対するイネーブルの可否を決定でき、第１クラスタ２００に含まれた第１−１ないし第１−４コア（２１０、２２０、２３０、２４０）の各々と、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）の各々に対するイネーブルの可否を決定できる。
【００３５】
本発明のいくつかの実施形態で、このような制御部４００は例えば、電力管理部（ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）である。すなわち、本実施形態による制御部４００が第１および第２クラスタ（２００、３００）および／またはこれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）をイネーブル状態にすることは、第１および第２クラスタ（２００、３００）および／またはこれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）に電源を供給してこれらを動作させることであり、第１および第２クラスタ（２００、３００）および／またはこれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）をディセーブル状態にすることは、第１および第２クラスタ（２００、３００）および／またはこれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）に供給する電源を遮断し、これらの動作を中断させることである。以下では、本実施形態による制御部４００がこのような電力管理部である場合を例えて説明するが、本発明はこれに制限されるものではなく、制御部４００の構成は多様に変更できる。図示していないが、本発明のいくつかの実施形態で、制御部４００は前述した内容とは異なって第１および第２クラスタ（２００、３００）および／またはそれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）に別途のイネーブル信号またはディセーブル信号を印加してこれらをイネーブル状態にするか、又は、ディセーブル状態にする。
【００３６】
以下、図２ないし図６を参照して本発明の一実施形態によるマルチクラスタプロセシングシステムの動作について説明する。
【００３７】
図２は、図１のマルチクラスタプロセシングシステムの動作を示す順序図である。図３ないし図６は図１のマルチクラスタプロセシングシステムの動作について説明するための図である。
【００３８】
以下では本実施形態によるマルチクラスタプロセシングシステムの動作特性についてより容易に説明するため、マルチクラスタプロセシングシステムの初期状態を第１クラスタ２００に含まれた第１−１コア２１０と第１−２コア２２０がイネーブル状態になり、第１クラスタ２００に含まれた第１−３コア２３０と第１−４コア２４０および、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）がディセーブル状態の場合であると仮定する。しかし、これは一つの例示に他ならず、本技術分野の通常の知識を有する者が以下で説明する本発明の技術的思想を理解する場合、この場合とは異なる多様な形態に変形して実施できる。
【００３９】
先に図２を参照すると、処理対象スレッド（ｔｈｒｅａｄ）の個数とイネーブル状態の第１コア（ｃｏｒｅ１）の個数を比較する（Ｓ１００）。その結果、処理対象スレッドの個数がイネーブル（ｅｎａｂｌｅ）状態の第１コアの個数より多ければ、第１コアを追加的にイネーブル状態にする（Ｓ１１０）。
【００４０】
具体的には図３を参照すると、カーネル５００から提供された処理対象スレッド５１０の個数が２個であり、イネーブル状態の第１コア２５０の個数も２個（第１−１コア２１０、第１−２コア２２０）である場合（左側参照）、イネーブル状態の第１−１コア２１０、第１−２コア２２０が各処理対象スレッド５１０を処理できるので、制御部４００はいかなる動作を遂行しない。しかし、カーネル５００から提供された処理対象スレッド５１０の個数が３個である場合（右側参照）、イネーブル状態の第１コア２５０の個数が処理対象スレッド５１０に比べて少ないので、制御部４００は第１クラスタ２００に含まれた第１−３コア２３０を追加的にイネーブル状態にしてこれを処理する。この際、図３には第１−３コア２３０がイネーブル状態であるものを示すが、本発明は図示したものに制限されるものではなく、必要に応じて制御部４００は第１−３コア２３０ではない第１−４コア２４０をイネーブル状態にできるのはもちろんである。
【００４１】
再び図２を参照すると、処理対象スレッドの個数とイネーブル状態の第１コアの個数を比較した結果（Ｓ１００）、処理対象スレッドの個数がイネーブル状態の第１コアの個数より小さければ、不必要なｎイネーブル状態の第１コアをディセーブル（ｄｉｓａｂｌｅ）状態にする（Ｓ１２０）。
【００４２】
具体的には図４を参照すると、カーネル５００から提供された処理対象スレッド５１０の個数が２個であり、イネーブル状態の第１コア２５０の個数も２個（第１−１コア２１０、第１−２コア２２０）の場合（左側参照）、イネーブル状態の第１−１コア２１０、第１−２コア２２０が各処理対象スレッド５１０を処理できるので、制御部４００はいかなる動作を遂行しない。しかし、カーネル５００から提供された処理対象スレッド５１０の個数が減り、１個になると（右側参照）、イネーブル状態の第１コア２５０の個数が処理対象スレッド５１０に比べて多いため、制御部４００はイネーブル状態の第１−１コア２１０と第１−２コア２２０のうち不必要なイネーブル状態の第１−２コア２２０をディセーブル状態にする。この際、図４には第１−２コア２２０がディセーブル状態のものを示しているが、本発明は図示したものに制限されるものではなく、必要に応じて制御部４００は第１−２コア２２０ではない第１−１コア２１０をディセーブル状態にできるのはもちろんである。
【００４３】
再び図２を参照すると、第１コア各々の遊休時間（ｉｄｌｅ  ｔｉｍｅ）が一定臨界時間を超過するのかを検知する（Ｓ１３０）。検知結果、遊休時間が一定臨界時間を超過する第１コアが存在すると、それに該当する第１コアをディセーブル状態にする（Ｓ１４０）。
【００４４】
具体的には図５を参照すると、第１−１コア２１０の遊休時間（ＩＴ）が臨界時間（ＴＴ）を超過する区間が存在するが、第１−２コア２２０は遊休時間（ＩＴ）がこのような臨界時間（ＴＴ）を超過する区間がないことが分かる（左側参照）。これは処理すべき演算量が、第１−１コア２１０と第１−２コア２２０をすべてイネーブル状態にして処理するほど多くないことを意味する。したがって、制御部４００はこのように遊休時間（ＩＴ）が臨界時間（ＴＴ）を超過する区間が存在する第１−１コア２１０をディセーブル状態にできる（右側参照）。この際、第１−１コア２１０で遂行されていた演算は例えば、イネーブル状態の第１−２コア２２０で遂行される。
【００４５】
次に、図２を参照すると、イネーブル状態の第１コア各々の利用率（ｕｔｉｌｉｚａｔｉｏｎ）が一定の臨界利用率を超過するのかを検知する（Ｓ１５０）。
本発明のいくつかの実施形態で、第1コア２５０と第２コア３５０の利用率（ｕｔｉｌｉｚａｔｉｏｎ）を検知することには制御部４００が利用される。
検知結果、利用率が一定の臨界利用率を超過する第１コアが存在すると、第２クラスタをイネーブル状態にする（Ｓ１６０）。
【００４６】
具体的には図６を参照すると、イネーブル状態の第１−１コア２１０の利用率は臨界利用率（ＴＵ）を超過しないが、イネーブル状態の第１−２コア２２０の利用率は臨界利用率（ＴＵ）を超過することが分かる（左側参照）。この場合、制御部４００は第１クラスタ２００をディセーブル状態にし、第２クラスタ３００をイネーブル状態にして第１クラスタ２００で遂行されていた演算を第２クラスタ３００で継続して遂行するように制御する。具体的には、制御部４００は第１クラスタ２００のイネーブル状態の第１−１コア２１０、および第１−２コア２２０をディセーブル状態にし、第２クラスタ３００の第２−１コア３１０、および第２−２コア３２０をイネーブル状態にする。その結果、第１クラスタ２００はディセーブル状態になり、第２クラスタ３００はイネーブル状態になる。
【００４７】
本実施形態で、制御部４００は第２クラスタ３００をイネーブル状態にする際、イネーブル状態の第１コア２５０の個数分だけの第２コア３５０をイネーブル状態にする。すなわち、制御部４００は第２クラスタ３００に含まれたすべての第２コア３５０をイネーブル状態にするのではなく、イネーブル状態の第１コア２５０の個数に対応する第２コア３５０のみをイネーブル状態にする。図示した例では、第１クラスタ２００の第１−１コア２１０と第１−２コア２２０がイネーブル状態になり、演算を遂行していたので、制御部４００は第１−１コア２１０と第１−２コア２２０をディセーブル状態にし、第２クラスタ３００の第２−３コア３３０と第２−４コア３４０がディセーブル状態になった状態で第２−１コア３１０と第２−２コア３２０のみをイネーブル状態にする。本実施例で、第２−１コア３１０と第２−２コア３２０の単位時間当りの演算量は各々第１−１コア２１０と第１−２コア２２０の単位時間当りの演算量より大きいため（例えば、４倍）、第２−１コア３１０と第２−２コア３２０の利用率は臨界利用率を超過しないことが分かる。
【００４８】
整理すると、本実施形態によるマルチクラスタプロセシングシステムの制御部４００は、処理対象スレッドの個数と、イネーブル状態の第１コア２５０の遊休時間を考慮して第１クラスタ２００に含まれた第１コア２５０のイネーブルまたはディセーブルの可否を決定する。そして、制御部４００は、イネーブル状態の第１コア２５０の利用率を考慮して第１クラスタ２００と第２クラスタ３００のイネーブルまたはディセーブルの可否を決定し、第１クラスタ２００をディセーブル状態にして第２クラスタ３００をイネーブル状態にする際、イネーブル状態の第１コア２５０の個数に該当する分だけの第２コア３５０のみをイネーブル状態にする。したがって、本実施形態によるマルチクラスタプロセシングシステムは処理すべき演算量に対応して必要な第１コア２５０または第２コア３５０のみがイネーブル状態になり、駆動するため、不必要な電力浪費がないため、駆動時の電力消費が低減され得る。
【００４９】
次に図７を参照して本発明の他の実施形態によるマルチクラスタプロセシングシステムについて説明する。
【００５０】
図７は、本発明の他の実施形態によるマルチクラスタプロセシングシステムの概念ブロック図である。
【００５１】
図７を参照すると、マルチクラスタプロセシングシステムは第１クラスタ２００、第２クラスタ３００、制御部４００、および政策決定部６００を含む。
【００５２】
第１クラスタ２００は、プロセッサ１００の内部に配置され、第１クラスタ２００はｎ（ここでｎは自然数）個の第１コア２５０を含む。ここでも説明の便宜上、第１クラスタ２００が４個（すなわち、ｎ＝４）の第１コア（２１０、２２０、２３０、２４０）を含む場合を例示して説明する。
【００５３】
第２クラスタ３００も同様にプロセッサ１００の内部に配置され、第２クラスタ３００もｎ個の第２コア３５０を含む。このような第２クラスタ３００は図示したように第１クラスタ２００と互いに区分して配置される。ここでも説明の便宜上、第２クラスタ３００が４個（すなわち、ｎ＝４）の第２コア（３１０、３２０、３３０、３４０）を含む場合を例示して説明する。しかし、本発明のいくつかの実施例で、第１クラスタ２００に含まれた第１コア２５０の個数と第２クラスタ３００に含まれた第２コア３５０の個数が互いに異なってもよいのはもちろんである。
【００５４】
本実施形態で、第１クラスタ２００は前述したように例えば、小クラスタであり、第２クラスタ３００は大クラスタである。したがって、第１クラスタ２００に含まれた第１コア２５０各々の単位時間当りの演算量は第２クラスタ３００に含まれた第２コア３５０各々の単位時間当りの演算量より小さい。この際、第１クラスタ２００に含まれた第１−１ないし第１−４コア（２１０、２２０、２３０、２４０）間の単位時間当りの演算量は互いに同一であり、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）間の単位時間当りの演算量も互いに同一である。
【００５５】
制御部４００は第１クラスタ２００と第２クラスタ３００を必要に応じてイネーブル状態にするか、又は、ディセーブル状態にする。具体的には、制御部４００は、第１および第２クラスタ（２００、３００）の全体に対するイネーブルの可否を決定し、第１クラスタ２００に含まれた第１−１ないし第１−４コア（２１０、２２０、２３０、２４０）の各々と、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）の各々に対するイネーブルの可否を決定する。本実施形態でも制御部４００は例えば、電力管理部であり得るが、本発明の他のいくつかの実施形態で、制御部４００は第１および第２クラスタ（２００、３００）および／またはそれに含まれた複数のコア（２１０、２２０、２３０、２４０、３１０、３２０、３３０、３４０）に別途のイネーブル信号またはディセーブル信号を印加し、これらをイネーブル状態にしたりディセーブル状態にするように変形できるのはもちろんである。
【００５６】
一方、本実施形態による制御部４００は政策決定部６００から決定された政策に応じて第１クラスタ２００と第２クラスタ３００に対する制御方法を異なるようにできる。すなわち、政策決定部６００が決定した政策が電力消費を最小化する低電力スケジューリング政策（ＬＯＷ  ＰＯＷＥＲ）である場合の制御部４００の動作と、政策決定部６００が決定した政策がシステムの性能を極大化する高性能スケジューリング政策（ＨＩＧＨ  ＳＰＥＥＤ）である場合の制御部４００の動作は互いに異なってもよい。これについてより具体的な説明は後述する。
【００５７】
政策決定部６００はマルチクラスタプロセシングシステムの政策を決定する。具体的には、政策決定部６００は、マルチクラスタプロセシングシステムの電力消費を最小化する低電力スケジューリング政策（ＬＯＷ  ＰＯＷＥＲ）と、マルチクラスタプロセシングシステムの性能を極大化する高性能スケジューリング政策（ＨＩＧＨ  ＳＰＥＥＤ）のうち何れか一つを決定する。このような政策決定部６００の決定は、システム運用環境に応じてリアルタイムでその政策が変更されるように実現され、又は、ユーザなどによってシステム駆動初期からその政策が固定されるように実現される。
【００５８】
以下、図８ないし図１１を参照して本発明の一実施形態によるマルチクラスタプロセシングシステムの動作について説明する。
【００５９】
図８は、図７のマルチクラスタプロセシングシステムの動作を示す順序図である。図９ないし図１１は、図７のマルチクラスタプロセシングシステムの動作を説明するための図である。
【００６０】
以下でも、本実施形態によるマルチクラスタプロセシングシステムの動作特性をより容易に説明するため、マルチクラスタプロセシングシステムの初期状態を第１クラスタ２００に含まれた第１−１コア２１０と第１−２コア２２０がイネーブル状態になり、第１クラスタ２００に含まれた第１−３コア２３０と第１−４コア２４０および、第２クラスタ３００に含まれた第２−１ないし第２−４コア（３１０、３２０、３３０、３４０）がディセーブル状態の場合であると仮定する。しかし、これは一つの例示に過ぎず、本技術分野の通常の知識を有する者が以下で説明する本発明の技術的思想を理解する場合、これとは異なる形態に多様に変形して実施できるであろう。
【００６１】
先に図８を参照すると、処理対象スレッドの個数とイネーブル状態の第１コアの個数を比較する（Ｓ２００）。その結果、仮に処理対象スレッドの個数がイネーブル状態の第１コアの個数より多ければ、第１コアを追加的にイネーブル状態にして（Ｓ２１０）、逆に処理対象スレッドの個数がイネーブル状態の第１コアの個数より小さければ、不必要なイネーブル状態の第１コアをディセーブル状態にする（Ｓ１２０）。これについては先立って本発明の一実施形態によるマルチクラスタプロセシングシステムの動作について説明する際に詳細に説明したので、重複する説明は省略する。
【００６２】
さらに図８を参照すると、第１コア各々の遊休時間（ｉｄｌｅ  ｔｉｍｅ）が一定臨界時間を超過するのかを検知し（Ｓ２３０）、遊休時間が一定臨界時間を超過する第１コアが存在するとそれに該当する第１コアをディセーブル状態にする（Ｓ２４０）。これについても先立って本発明の一実施形態によるマルチクラスタプロセシングシステムの動作について説明する際に詳細に説明したので、重複する説明は省略する。
【００６３】
さらに図８を参照すると、イネーブル状態の第１コア各々の利用率（ｕｔｉｌｉｚａｔｉｏｎ）が一定の臨界利用率を超過するのかを検知する（Ｓ２５０）。検知結果、利用率が一定の臨界利用率を超過する第１コアが存在すると、決定された政策が何かを確認する（Ｓ２６０）。仮に、決定された政策が低電力スケジューリング政策であれば、一定の臨界利用率を超過する利用率を有する第１コアの利用率を減らすために追加的に第１コアをイネーブル状態にする（Ｓ２７０）。
【００６４】
具体的には図９を参照すると、イネーブル状態の第１−１コア２１０の利用率は臨界利用率（ＴＵ）を超過しないが、イネーブル状態の第１−２コア２２０の利用率は臨界利用率（ＴＵ）を超過することが分かる。そして、この際、政策決定部６００から決定された政策は低電力スケジューリング政策（ＬＯＷ  ＰＯＷＥＲ）であることがわかる（左側参照）。
【００６５】
この場合、本実施形態による制御部４００は第１クラスタ２００をディセーブル状態にしたり、第２クラスタ３００をイネーブル状態にせず、第１クラスタ２００に含まれた第１コア２５０を追加的にイネーブル状態にする。図９では第１−３コア２３０が追加的にイネーブル状態になることが示されている（右側参照）。イネーブル状態の第１−３コア２３０は第１−２コア２２０が遂行していた演算の一部を分けて遂行するようになり、その結果、第１−２コア２２０の利用率は臨界利用率（ＴＵ）を超過しなくなる。
【００６６】
すなわち、システムの駆動政策が低電力スケジューリング政策であるため、制御部４００は第２コア３５０に比べて単位時間当りの演算量が小さいため、少ない電力を消費する第１コア２５０を追加的にイネーブル状態にし、システムを駆動する。
【００６７】
また、再び図８を参照すると、決定された政策が何かを確認した結果（Ｓ２６０）、決定された政策が高性能スケジューリング政策であれば、一定の臨界利用率を超過する利用率を有する第１コアの利用率を減らすために第１クラスタをディセーブル状態にして第２クラスタをイネーブル状態にする（Ｓ２８０）。
【００６８】
具体的には図１０を参照すると、イネーブル状態の第１−１コア２１０の利用率は臨界利用率（ＴＵ）を超過しないが、イネーブル状態の第１−２コア２２０の利用率は臨界利用率（ＴＵ）を超過することが分かる。また、この際、政策決定部６００から決定された政策は高性能スケジューリング政策（ＨＩＧＨ  ＳＰＥＥＤ）であることが分かる（左側参照）。この場合、本実施形態による制御部４００は第１クラスタ２００をディセーブル状態にし、第２クラスタ３００をイネーブル状態にして第１クラスタ２００で遂行されていた演算が第２クラスタ３００で継続して遂行されるように制御する。すなわち、第１クラスタ２００のイネーブル状態の第１−１コア２１０、および第１−２コア２２０がディセーブル状態になり、第２クラスタ３００の第２−３コア３３０と第２−４コア３４０がディセーブル状態になった状態で第２−１コア３１０および第２−２コア３２０がイネーブル状態となる。すなわち、制御部４００は第２クラスタ３００をイネーブル状態にする際、イネーブル状態の第１コア２５０の個数分だけの第２コア３５０をイネーブル状態にする。このように、システムの駆動政策が高性能スケジューリング政策である場合、制御部４００は第１コア２５０に比べて単位時間当りの演算量が大きいので、高速動作が可能な第２コア３５０をイネーブル状態にしてシステムを駆動する。
【００６９】
一方、本発明のいくつかの実施例で、制御部４００の動作は図１０に示すものと異なる方式を実現する。具体的には図１１を参照すると、図１０のようにイネーブル状態の第１−２コア２２０の利用率が臨界利用率（ＴＵ）を超過し、政策決定部６００から決定された政策が高性能スケジューリング政策（ＨＩＧＨ  ＳＰＥＥＤ）である状況で（左側参照）、制御部４００は第１クラスタ２００をディセーブル状態にし、第２クラスタ３００をイネーブル状態にするが、第１クラスタ２００で遂行されていた演算量を処理できる分だけの第２コア３５０のみをイネーブル状態にする（右側参照）。
【００７０】
仮に図示したように第１−１コア２１０と第１−２コア２２０で遂行されていた演算量が第２−１コア３１０の単独で遂行可能な程度であると判断すると（すなわち、第２−１コア３１０の単位時間当りの演算量が第１−１コア２１０の単位時間当りの演算量と第１−２コア２２０の単位時間当りの演算量の和より大きいと判断すると）、制御部４００は第１クラスタ２００のイネーブル状態の第１−１コア２１０と第１−２コア２２０をディセーブル状態にし、第２クラスタ３００の第２−２コア３２０、第２−３コア３３０、および第２−４コア３４０がディセーブル状態にした状態で第２−１コア３１０をイネーブル状態にする。
【００７１】
このように、本実施形態によるマルチクラスタプロセシングシステムでは、決定されたシステム政策に合致し、かつ処理すべき演算に必要な第１コア２５０または第２コア３５０のみイネーブル状態になり、駆動するので、不必要な電力浪費がなく、駆動時電力消費を低減できる。
【００７２】
図１２は、本発明の実施形態によるマルチクラスタプロセシングシステムが適用される電子システムを示すブロック図である。
【００７３】
図１２を参照すると、電子システム９００はモバイル機器やコンピュータなどを含む。例えば、電子システム９００はメモリ９１２、プロセッサ９１４、ＲＡＭ９１６、およびユーザーインターフェース９１８を含み得、これらはバス（Ｂｕｓ、９２０）を利用してデータ通信する。
【００７４】
プロセッサシステム９１４はプログラムを実行して電子システム９００を制御する役割を果たす。前述した本発明の実施形態によるマルチクラスタプロセシングシステムはこのようなプロセッサシステム９１４に採用される。
【００７５】
ＲＡＭ９１６はプロセッサシステム９１４の動作メモリとして使用される。本発明のいくつかの実施形態で、プロセッサシステム９１４とＲＡＭ９１６は一つのパッケージに含まれ得る。
【００７６】
ユーザーインターフェース９１８は電子システム９００にデータを入力または出力することに利用される。プロセッサシステム９１４に前述した本発明の実施形態によるマルチクラスタプロセシングシステムが採用される場合、ユーザはこのようなユーザーインターフェース９１８を介してマルチクラスタプロセシングシステムの政策（例えば、低電力スケジューリング政策または高性能スケジューリング政策など）を決定する。
【００７７】
メモリシステム９１２はプロセッサシステム９１４の動作のためのコード、プロセッサシステム９１４により処理されたデータまたは外部から入力されたデータを保存する。メモリシステム９１２は制御器およびメモリを含み、メモリカードで構成され得る。
【００７８】
このような電子システム９００は多様な電子機器の電子制御装置に適用できる。例えば、電子システム９００はモバイルシステム、個人用コンピュータ、産業用コンピュータまたは多様な機能を遂行するロジックシステムなどに適用される。例えば、モバイルシステムは個人用携帯情報端末機（ＰＤＡ、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯用のコンピュータ、ウェブタブレット（ｗｅｂ  ｔａｂｌｅｔ）、携帯電話（ｍｏｂｉｌｅ  ｐｈｏｎｅ）、移動電話（ｗｉｒｅｌｅｓｓ  ｐｈｏｎｅ）、ラップトップコンピュータ（ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）、メモリカード、デジタルミュージックシステム（ｄｉｇｉｔａｌ  ｍｕｓｉｃ  ｓｙｓｔｅｍ）また情報伝送／受信システムのうち何れか一つである。電子システム９００が無線通信を遂行できる装置である場合に、電子システム９００はＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＧＳＭ(登録商標)（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎ）、ＮＡＤＣ（Ｎｏｒｔｈ  Ａｍｅｒｉｃａｎ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ）、Ｅ−ＴＤＭＡ（Ｅｎｈａｎｃｅｄ−Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＷＣＤＡＭ（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＣＤＭＡ２０００のような通信システムで使用できる。
【００７９】
以上添付する図面を参照して本発明の実施形態について説明したが、本発明は前記実施形態に限定されるものではなく、互いに異なる多様な形態で製造され得、本発明が属する技術分野で通常の知識を有する者は、本発明の技術思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解できる。したがって、上記実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。
【符号の説明】
【００８０】
１００    プロセッサ
２００    第１クラスタ
２１０、２２０、２３０、２４０、２５０    第１コア
３００    第２クラスタ
３１０、３２０、３３０、３４０、３５０    第２コア
４００    制御部
５００    カーネル
６００    政策決定部
Ｓ１００、Ｓ１１０、Ｓ１２０、Ｓ１３０、Ｓ１４０、Ｓ１５０、Ｓ１６０、Ｓ２００、Ｓ２１０、Ｓ２２０、Ｓ２３０、Ｓ２４０、Ｓ２５０、Ｓ２６０、Ｓ２７０、Ｓ２８０    マルチクラスタプロセシングシステムの駆動方法
【図１】
2014002740.tif 000003
【図２】
2014002740.tif 000004
【図３】
2014002740.tif 000005
【図４】
2014002740.tif 000006
【図５】
2014002740.tif 000007
【図６】
2014002740.tif 000008
【図７】
2014002740.tif 000009
【図８】
2014002740.tif 000010
【図９】
2014002740.tif 000011
【図１０】
2014002740.tif 000012
【図１１】
2014002740.tif 000013
【図１２】
2014002740.tif 000014