(57)【要約】【課題】  データに基づいて電力を管理するプロセッシング装置を提供する。【解決手段】  一実施形態に係るプロセッシング装置は、プロセッサからメモリへのアクセス信号に反応し、当該アクセス信号によってアクセスリクエストされるデータに対応する電力情報を取得し、当該電力情報に基づいてプロセッサの電力モードを制御する。【選択図】      図１
2014225263.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサから特定データを要求するアクセスリクエストに応答して、前記プロセッサが前記特定データを処理する場合に、前記プロセッサに提案される電力モードを示す予め決定された電力情報が存在するか否かを判断する電力情報管理部と、
前記予め決定された電力情報が存在すると判断された場合において、前記プロセッサが前記予め決定された電力情報に基づいて前記特定データを処理する場合に、前記プロセッサの現在の電力モードを制御する電力コントローラと、
を含むことを特徴とするプロセッシング装置。
【請求項２】
前記予め決定された電力情報は、
前記プロセッサがデータを処理するとき前記プロセッサのために提案される複数の電力モードのうちの１つを指示し、
前記提案される複数の電力モードは、低電力モードと、高電力モードと、前記低電力モード及び前記高電力モードの間の電力モードとを含むことを特徴とする請求項１に記載のプロセッシング装置。
【請求項３】
前記電力情報管理部は、
前記予め決定された電力情報が電力情報テーブルに存在するか否かを判断し、
前記電力情報テーブルは、相異なるデータそれぞれのためにアドレス情報及び電力情報を含むことを特徴とする請求項２に記載のプロセッシング装置。
【請求項４】
前記電力情報管理部は、前記特定データの処理のための実行コードに関連する電力情報コードを分析することによって前記電力情報テーブルを生成することを特徴とする請求項３に記載のプロセッシング装置。
【請求項５】
前記電力情報コードは、コンパイリングシステムのコンパイラによってソースコードから抽出され、実行ファイルを生成するために前記コンパイリングシステムのリンカーによって前記実行コードと共にリンクされることを特徴とする請求項４に記載のプロセッシング装置。
【請求項６】
前記電力情報コードは、前記ソースコード内に電力情報が存在するとの前記コンパイラによって識別されたデータそれぞれのアドレス情報及び電力モード情報を含むことを特徴とする請求項５に記載のプロセッシング装置。
【請求項７】
前記電力情報管理部は、前記アクセスリクエストに含まれたデータアドレスと前記電力情報テーブルに含まれた複数のアドレス範囲を比較することによって、前記予め決定された電力情報が前記電力情報テーブルに存在するか否かを判断することを特徴とする請求項４に記載のプロセッシング装置。
【請求項８】
前記電力情報管理部は、
前記予め決定された電力情報が電力情報テーブルに存在するか否かを判断し、
前記電力情報テーブルは、メモリに格納された複数のデータのうち電力情報が存在するデータのアドレス情報を含むことを特徴とする請求項２に記載のプロセッシング装置。
【請求項９】
前記電力情報管理部は、前記アクセスリクエストに含まれたデータアドレスと前記電力情報テーブルに含まれた複数のアドレス範囲を比較することによって、前記予め決定された電力情報が存在するか否かを判断することを特徴とする請求項８に記載のプロセッシング装置。
【請求項１０】
前記アクセスリクエストに含まれたデータアドレスに基づいて前記メモリから前記特定データを読み出す（ｒｅａｄ）メモリ管理部をさらに含み、
前記電力情報管理部は、前記特定データに対応する電力情報が読み出されると、前記電力情報テーブルに前記特定データのアドレス情報が含まれるように前記電力情報テーブルを生成またはアップデートすることを特徴とする請求項８に記載のプロセッシング装置。
【請求項１１】
前記電力情報管理部は、前記電力情報テーブルに前記特定データに対応する電力情報が含まれるように前記電力情報テーブルを生成またはアップデートすることを特徴とする請求項１０に記載のプロセッシング装置。
【請求項１２】
前記特定データを格納するメモリをさらに含むことを特徴とする請求項１−１１の何れか一項に記載のプロセッシング装置。
【請求項１３】
前記電力情報管理部は、
前記メモリ内の前記特定データのための前記アクセスリクエストに含まれたメモリアドレスを取得するアドレス取得部と、
前記取得されたメモリアドレスと電力情報テーブル内の複数のアドレス情報を比較することによって、前記予め決定された電力情報が存在するか否かを判断する電力情報判断部と、
前記予め決定された電力情報が存在すると判断される場合、前記予め決定された電力情報を前記電力コントローラに提供する電力情報提供部と、
を含むことを特徴とする請求項１２に記載のプロセッシング装置。
【請求項１４】
前記電力情報テーブルは複数の電力情報タプルを含み、
前記複数の電力情報タプルそれぞれは、
前記メモリ内に電力情報が存在するデータの開始アドレスと、
前記電力情報が存在するデータの長さと、
前記電力情報が存在するデータに対応する電力モードを指示する要素のうち少なくとも１つを含むことを特徴とする請求項１３に記載のプロセッシング装置。
【請求項１５】
前記複数の電力情報タプルそれぞれは、
前記電力情報が存在するデータに対応する加重値をさらに含み、
前記電力コントローラは、前記プロセッサの電力モードを制御するために前記加重値を用いることを特徴とする請求項１４に記載のプロセッシング装置。
【請求項１６】
前記電力コントローラは、前記プロセッサの以前電力モードを格納し、前記以前電力モード及び前記特定データに対応する加重値に基づいて前記プロセッサのための現在の電力モードを判断することを特徴とする請求項１５に記載のプロセッシング装置。
【請求項１７】
前記電力コントローラは、
前記予め決定された電力情報に基づいて、前記プロセッサが前記特定データを処理するとき前記プロセッサのための電力モードを決定する電力モード決定部と、
前記決定された電力モードに基づいて前記プロセッサの現在の電力モードを制御する電力モード制御部と、
を含むことを特徴とする請求項１２に記載のプロセッシング装置。
【請求項１８】
実行ファイルを取得し、前記実行ファイルに含まれた実行コード及び電力情報コードを抽出する実行ファイル処理部と、
前記実行コードを前記メモリに含めるメモリ積載部と、
をさらに含み、
前記電力情報管理部は、前記電力情報コードに基づいて電力情報テーブルを生成またはアップデートすることを特徴とする請求項１２に記載のプロセッシング装置。
【請求項１９】
前記電力情報管理部は、前記電力情報コードと前記メモリ積載部による処理結果とに基づいて前記電力情報テーブルを生成またはアップデートすることを特徴とする請求項１８に記載のプロセッシング装置。
【請求項２０】
前記電力情報テーブルは、前記特定データが前記メモリに含められた物理アドレス、前記実行ファイル内の前記特定データの仮想アドレス、及び前記仮想アドレスが前記物理アドレスに変換される情報のうち少なくとも１つに基づいて生成またはアップデートされることを特徴とする請求項１９に記載のプロセッシング装置。
【請求項２１】
前記実行ファイルは、コンパイリングシステムのコンパイラ及びリンカーによって生成され、
前記コンパイラは、ソースコードに含まれた電力情報指示子に基づいて前記電力情報コード及び前記実行コードを生成し、
前記リンカーは、前記生成された電力情報コード及び前記生成された実行コードをリンクすることを特徴とする請求項１８に記載のプロセッシング装置。
【請求項２２】
複数のプロセッサと、
前記複数のプロセッサのうち選択されたプロセッサから特定データをリクエストするアクセスリクエストに反応し、前記選択されたプロセッサが前記特定データを処理するとき前記選択されたプロセッサのために提案される電力モードを指示する予め決定された電力情報が存在するか否かを判断する電力情報管理部と、
前記予め決定された電力情報が存在すると判断される場合、前記選択されたプロセッサが前記予め決定された電力情報に基づいて前記特定データを処理するとき前記選択されたプロセッサの現在の電力モードを制御する電力コントローラと、
を含むことを特徴とするプロセッシング装置。
【請求項２３】
前記特定データを格納するメモリをさらに含むことを特徴とする請求項２２に記載のプロセッシング装置。
【請求項２４】
前記電力情報管理部は、前記複数のプロセッサのうちどのプロセッサが前記特定データをリクエストするかに関係なく、前記複数のプロセッサのいずれか１つのプロセッサから前記特定データをリクエストするアクセスリクエストに反応し、前記予め決定された電力情報を前記電力コントローラに提供することを特徴とする請求項２２又は２３に記載のプロセッシング装置。
【請求項２５】
前記複数のプロセッサのうち第１プロセッサ及び第２プロセッサが同一の電力情報に対応するデータにアクセスする場合、前記電力コントローラは、前記同一の電力情報に基づいて前記第１プロセッサの電力モード及び前記第２プロセッサの電力モードを互いに異なるように制御することを特徴とする請求項２２−２４の何れか一項に記載のプロセッシング装置。
【請求項２６】
プロセッサと、
前記プロセッサから特定データをリクエストするアクセスリクエストに反応し、メモリから選択されたデータを読み出し、前記選択されたデータに含まれた前記特定データを前記プロセッサに提供するメモリコントローラと、
前記選択されたデータに前記特定データに対応する電力情報が含まれるか否かに応じて、前記電力情報に基づいて前記プロセッサの現在の電力モードを制御する電力コントローラと、
を含むことを特徴とするプロセッシング装置。
【請求項２７】
相異なるデータを含むメモリをさらに含み、
前記相異なるデータは、前記プロセッサの電力モードを制御するための電力情報が存在するデータ、及び前記プロセッサの電力モードを制御するための電力情報が存在しないデータを含むことを特徴とする請求項２６に記載のプロセッシング装置。
【請求項２８】
前記選択されたデータに含まれた前記電力情報は、他のデータに含まれた異なる電力情報と区別されることを特徴とする請求項２６又は２７に記載のプロセッシング装置。
【請求項２９】
前記メモリコントローラは、前記選択されたデータに前記電力情報が含まれる場合、前記プロセッサが前記特定データを処理するとき前記プロセッサの電力モードを制御するために前記電力情報を前記電力コントローラに提供することを特徴とする請求項２６−２８の何れか一項に記載のプロセッシング装置。
【請求項３０】
プロセッサから特定データをリクエストするアクセスリクエストに反応し、前記プロセッサが前記特定データを処理するとき前記プロセッサのために提案される電力モードを指示する予め決定された電力情報が存在するか否かを判断するステップと、
前記予め決定された電力情報が存在すると判断される場合、前記プロセッサが前記予め決定された電力情報に基づいて前記特定データを処理するとき前記プロセッサの現在の電力モードを制御するステップと、
を含むことを特徴とするプロセッシング方法。
【請求項３１】
前記特定データのための前記アクセスリクエストを検出するステップをさらに含むことを特徴とする請求項３０に記載のプロセッシング方法。
【請求項３２】
前記アクセスリクエストは、メモリに格納された複数のデータのうち前記特定データをリクエストすることを特徴とする請求項３１に記載のプロセッシング方法。
【請求項３３】
前記アクセスリクエストを検出するステップは、
前記アクセスリクエストに含まれたメモリアドレスを取得するステップと、
前記取得されたメモリアドレス及び電力情報テーブルを比較することによって、前記特定データに対応する前記予め決定された電力情報が存在するか否かを判断するステップと、
を含むことを特徴とする請求項３２に記載のプロセッシング方法。
【請求項３４】
前記特定データに対応する前記予め決定された電力情報が存在すると判断される場合、前記特定データに対応する前記予め決定された電力情報が前記電力情報テーブルから取得されることを特徴とする請求項３３に記載のプロセッシング方法。
【請求項３５】
前記電力情報テーブルは複数の電力情報タプルを含み、
前記複数の電力情報タプルそれぞれは、
前記メモリ内に電力情報が存在するデータの開始アドレスと、
前記電力情報が存在するデータの長さと、
前記電力情報が存在するデータに対応する電力モードを指示する元素のうち少なくとも１つを含むことを特徴とする請求項３３に記載のプロセッシング方法。
【請求項３６】
前記複数の電力情報タプルそれぞれは、前記電力情報が存在するデータに対応する加重値をさらに含み、
前記制御するステップは、前記プロセッサの電力モードを制御するために前記加重値を用いるステップを含むことを特徴とする請求項３５に記載のプロセッシング方法。
【請求項３７】
前記プロセッサの以前電力モードを格納するステップと、
前記以前電力モード及び前記特定データに対応する加重値に基づいて前記プロセッサのための現在の電力モードを判断するステップと、
をさらに含むことを特徴とする請求項３６に記載のプロセッシング方法。
【請求項３８】
前記制御するステップは、
前記予め決定された電力情報に基づいて、前記プロセッサが前記特定データを処理するとき前記プロセッサのための電力モードを決定するステップと、
前記決定された電力モードに基づいて前記プロセッサの現在の電力モードを制御するステップと、
を含むことを特徴とする請求項３２に記載のプロセッシング方法。
【請求項３９】
実行ファイルを取得し、前記実行ファイルに含まれた実行コード及び電力情報コードを抽出するステップと、
前記実行コードを前記メモリに含めるステップと、
前記電力情報コードに基づいて電力情報テーブルを生成またはアップデートするステップと、
をさらに含むことを特徴とする請求項３２に記載のプロセッシング方法。
【請求項４０】
前記電力情報テーブルを生成またはアップデートするステップは、前記電力情報コードと前記メモリに含める処理の結果とに基づいて前記電力情報テーブルを生成またはアップデートするステップを含むことを特徴とする請求項３９に記載のプロセッシング方法。
【請求項４１】
前記電力情報テーブルは、前記特定データが前記メモリに含められた物理アドレス、前記実行ファイル内の前記特定データの仮想アドレス、及び前記仮想アドレスが前記物理アドレスに変換される情報のうち少なくとも１つに基づいて生成またはアップデートされることを特徴とする請求項４０に記載のプロセッシング方法。
【請求項４２】
前記実行ファイルは、コンパイリングシステムのコンパイラ及びリンカーによって生成され、
前記コンパイラは、ソースコードに含まれた電力情報指示子に基づいて前記電力情報コード及び前記実行コードを生成し、
前記リンカーは、前記生成された電力情報コード及び前記生成された実行コードをリンクすることを特徴とする請求項３９に記載のプロセッシング方法。
【請求項４３】
請求項３０〜４２の何れか一項に記載のプロセッシング方法をプロセッシング装置に実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施形態は、モバイル装置、マルチメディア装置、埋め込みシステム等において、電力管理が必要な分野に適用できるプロセッシング装置及びプロセッシング方法等に関する。
【背景技術】
【０００２】
性能が優れた１つのプロセッサの代わりに、相対的に性能は落ちるものの数個のプロセッサを用いるマルチプロセッサシステムは、現在のモバイル装置及び様々な埋め込みシステムで多く用いられている。性能が優れたプロセッサを製造することは工程上に困難でありかつ電力消費が大きいため、その代案としてマルチプロセッサシステムが使用されている。
【０００３】
マルチプロセッサシステムの電力消費は同程度の性能のシングルプロセッサよりも少ないが、依然として電力消費を減らす必要があり、そのような電力消費を減らす要請はモバイル装置はもちろんのこと、高性能スーパーコンピュータでも要請される問題である。
【０００４】
マルチプロセッサシステムでは同じプロセッサを数個使用する場合があるが、他のプロセッサを数個使用する異機種マルチプロセッサシステム（Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｍｕｌｔｉｃｏｒｅ  ｓｙｓｔｅｍ）を構築する場合もある。これは用途に適するよう数個の異なるプロセッサを用いることによって不要なリソースの無駄遣いを減らすと共に電力を節減するためである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態の目的は、データに基づく電力管理技術を提供することにある。
【課題を解決するための手段】
【０００６】
一側面に係るプロセッシング装置は、プロセッサと、前記プロセッサから特定データをリクエストするアクセスリクエストに反応し、前記プロセッサが前記特定データを処理するとき前記プロセッサのために提案される電力モードを指示する予め決定された電力情報が存在するか否かを判断する電力情報管理部と、前記予め決定された電力情報が存在すると判断される場合、前記プロセッサが前記予め決定された電力情報に基づいて前記特定データを処理するとき前記プロセッサの現在の電力モードを制御する電力コントローラとを含む。
【０００７】
前記予め決定された電力情報は、前記プロセッサがデータを処理するとき前記プロセッサのために提案される複数の電力モードのうちの１つを指示し、前記提案される複数の電力モードは、低電力モード、高電力モード、及び前記低電力モードと前記高電力モードとの間の電力モードを含んでもよい。
【０００８】
前記電力情報管理部は、前記予め決定された電力情報が電力情報テーブルに存在するか否かを判断し、前記電力情報テーブルは、相異なるデータそれぞれのためにアドレス情報及び電力情報を含んでもよい。
【０００９】
前記電力情報管理部は、前記特定データの処理のための実行コードに関連する電力情報コードを分析することによって前記電力情報テーブルを生成してもよい。
【００１０】
前記電力情報コードは、コンパイリングシステムのコンパイラによってソースコードから抽出され、実行ファイルを生成するために前記コンパイリングシステムのリンカーによって前記実行コードと共にリンクされてもよい。
【００１１】
前記電力情報コードは、前記ソースコード内に電力情報が存在するとの前記コンパイラによって識別されたデータそれぞれのアドレス情報及び電力モード情報を含んでもよい。
【００１２】
前記電力情報管理部は、前記アクセスリクエストに含まれたデータアドレスと前記電力情報テーブルに含まれた複数のアドレス範囲を比較することによって、前記予め決定された電力情報が前記電力情報テーブルに存在するか否かを判断してもよい。
【００１３】
前記電力情報管理部は、前記予め決定された電力情報が電力情報テーブルに存在するか否かを判断し、前記電力情報テーブルは、メモリに格納された複数のデータのうち電力情報が存在するデータのアドレス情報を含んでもよい。
【００１４】
前記電力情報管理部は、前記アクセスリクエストに含まれたデータアドレスと前記電力情報テーブルに含まれた複数のアドレス範囲を比較することによって、前記予め決定された電力情報が存在するか否かを判断してもよい。
【００１５】
前記プロセッシング装置は、前記アクセスリクエストに含まれたデータアドレスに基づいて前記メモリから前記特定データを読み出す（ｒｅａｄ）メモリ管理部をさらに含み、前記電力情報管理部は、前記特定データに対応する電力情報が読み出されると、前記電力情報テーブルに前記特定データのアドレス情報が含まれるように前記電力情報テーブルを生成またはアップデートしてもよい。
【００１６】
前記電力情報管理部は、前記電力情報テーブルに前記特定データに対応する電力情報が含まれるように前記電力情報テーブルを生成またはアップデートしてもよい。
【００１７】
前記プロセッシング装置は、前記特定データを格納するメモリをさらに含んでもよい。
【００１８】
前記電力情報管理部は、前記メモリ内の前記特定データのための前記アクセス信号に含まれたメモリアドレスを取得するアドレス取得部と、前記取得されたメモリアドレスと電力情報テーブル内の複数のアドレス情報を比較することによって、前記予め決定された電力情報が存在するか否かを判断する電力情報判断部と、前記予め決定された電力情報が存在すると判断される場合、前記予め決定された電力情報を前記電力コントローラに提供する電力情報提供部とを含んでもよい。
【００１９】
前記電力情報テーブルは複数の電力情報タプルを含み、前記複数の電力情報タプルそれぞれは、前記メモリ内に電力情報が存在するデータの開始アドレスと、前記電力情報が存在するデータの長さと、前記電力情報が存在するデータに対応する電力モードを指示する要素（ｅｌｅｍｅｎｔ）のうち少なくとも１つを含んでもよい。
【００２０】
前記複数の電力情報タプルそれぞれは、前記電力情報が存在するデータに対応する加重値をさらに含み、前記電力コントローラは、前記プロセッサの電力モードを制御するために前記加重値を用いてもよい。
【００２１】
前記電力コントローラは、前記プロセッサの以前電力モードを格納し、前記以前電力モード及び前記特定データに対応する加重値に基づいて前記プロセッサのための現在の電力モードを判断してもよい。
【００２２】
前記電力コントローラは、前記予め決定された電力情報に基づいて、前記プロセッサが前記特定データを処理するとき前記プロセッサのための電力モードを決定する電力モード決定部と、前記決定された電力モードに基づいて前記プロセッサの現在の電力モードを制御する電力モード制御部とを含んでもよい。
【００２３】
前記プロセッシング装置は、実行ファイルを取得し、前記実行ファイルに含まれた実行コード及び電力情報コードを抽出する実行ファイル処理部と、前記実行コードを前記メモリに積載するメモリ積載部とをさらに含み、前記電力情報管理部は、前記電力情報コードに基づいて電力情報テーブルを生成またはアップデートしてもよい。
【００２４】
前記電力情報管理部は、前記電力情報コード及び前記メモリ積載結果に基づいて前記電力情報テーブルを生成またはアップデートしてもよい。
【００２５】
前記電力情報テーブルは、前記特定データが前記メモリに積載された物理アドレス、前記実行ファイル内の前記特定データの仮想アドレス、及び前記仮想アドレスが前記物理アドレスに変換される情報のうち少なくとも１つに基づいて生成またはアップデートされてもよい。
【００２６】
前記実行ファイルは、コンパイリングシステムのコンパイラ及びリンカーによって生成され、前記コンパイラは、ソースコードに含まれた電力情報指示子に基づいて前記電力情報コード及び前記実行コードを生成し、前記リンカーは、前記生成された電力情報コード及び前記生成された実行コードをリンクしてもよい。
【００２７】
他の一側面に係るプロセッシング装置は、複数のプロセッサと、前記複数のプロセッサのうち選択されたプロセッサから特定データをリクエストするアクセスリクエストに反応し、前記選択されたプロセッサが前記特定データを処理するとき前記選択されたプロセッサのために提案される電力モードを指示する予め決定された電力情報が存在するか否かを判断する電力情報管理部と、前記予め決定された電力情報が存在すると判断される場合、前記選択されたプロセッサが前記予め決定された電力情報に基づいて前記特定データを処理するとき前記選択されたプロセッサの現在の電力モードを制御する電力コントローラとを含む。
【００２８】
前記プロセッシング装置は、前記特定データを格納するメモリをさらに含んでもよい。
【００２９】
前記電力情報管理部は、前記複数のプロセッサのうちどのプロセッサが前記特定データをリクエストするかに関係なく、前記複数のプロセッサのいずれか１つのプロセッサから前記特定データをリクエストするアクセスリクエストに反応し、前記予め決定された電力情報を前記電力コントローラに提供してもよい。
【００３０】
前記複数のプロセッサのうち第１プロセッサ及び第２プロセッサが同一の電力情報に対応するデータにアクセスする場合、前記電力コントローラは、前記同一の電力情報に基づいて前記第１プロセッサの電力モード及び前記第２プロセッサの電力モードを互いに異なるように制御してもよい。
【００３１】
他の一側面に係るプロセッシング装置は、プロセッサと、前記プロセッサから特定データをリクエストするアクセスリクエストに反応し、メモリから選択されたデータを読み出し、前記選択されたデータに含まれた前記特定データを前記プロセッサに提供するメモリコントローラと、前記選択されたデータに前記特定データに対応する電力情報が含まれるか否かに応じて、前記電力情報に基づいて前記プロセッサの現在の電力モードを制御する電力コントローラとを含む。
【００３２】
前記プロセッシング装置は、相異なるデータを含むメモリをさらに含み、前記相異なるデータは、前記プロセッサの電力モードを制御するための電力情報が存在するデータ、及び前記プロセッサの電力モードを制御するための電力情報が存在しないデータを含んでもよい。
【００３３】
前記選択されたデータに含まれた前記電力情報は、他のデータに含まれた異なる電力情報と区別されてもよい。
【００３４】
前記メモリコントローラは、前記選択されたデータに前記電力情報が含まれる場合、前記プロセッサが前記特定データを処理するとき前記プロセッサの電力モードを制御するために前記電力情報を前記電力コントローラに提供してもよい。
【００３５】
他の一側面に係るプロセッシング方法は、プロセッサから特定データをリクエストするアクセスリクエストに反応し、前記プロセッサが前記特定データを処理するとき前記プロセッサのために提案される電力モードを指示する予め決定された電力情報が存在するか否かを判断するステップと、前記予め決定された電力情報が存在すると判断される場合、前記プロセッサが前記予め決定された電力情報に基づいて前記特定データを処理するとき前記プロセッサの現在の電力モードを制御するステップとを含む。
【００３６】
前記プロセッシング方法は、前記特定データのための前記アクセスリクエストを検出するステップをさらに含んでもよい。
【００３７】
前記アクセスリクエストは、メモリに格納された複数のデータのうち前記特定データをリクエストしてもよい。
【００３８】
前記アクセスリクエストを検出するステップは、前記アクセスリクエストに含まれたメモリアドレスを取得するステップと、前記取得されたメモリアドレス及び電力情報テーブルを比較することによって、前記特定データに対応する前記予め決定された電力情報が存在するか否かを判断するステップとを含んでもよい。
【００３９】
前記特定データに対応する前記予め決定された電力情報が存在すると判断される場合、前記特定データに対応する前記予め決定された電力情報が前記電力情報テーブルから取得されてもよい。
【００４０】
前記電力情報テーブルは複数の電力情報タプルを含み、前記複数の電力情報タプルそれぞれは、前記メモリ内に電力情報が存在するデータの開始アドレスと、前記電力情報が存在するデータの長さと、前記電力情報が存在するデータに対応する電力モードを指示する元素のうち少なくとも１つを含んでもよい。
【００４１】
前記複数の電力情報タプルそれぞれは、前記電力情報が存在するデータに対応する加重値をさらに含み、前記制御するステップは、前記プロセッサの電力モードを制御するために前記加重値を用いるステップを含んでもよい。
【００４２】
前記プロセッシング方法は、前記プロセッサの以前電力モードを格納するステップと、前記以前電力モード及び前記特定データに対応する加重値に基づいて前記プロセッサのための現在の電力モードを判断するステップとをさらに含んでもよい。
【００４３】
前記制御するステップは、前記予め決定された電力情報に基づいて、前記プロセッサが前記特定データを処理するとき前記プロセッサのための電力モードを決定するステップと、前記決定された電力モードに基づいて前記プロセッサの現在の電力モードを制御するステップとを含んでもよい。
【００４４】
前記プロセッシング方法は、実行ファイルを取得し、前記実行ファイルに含まれた実行コード及び電力情報コードを抽出するステップと、前記実行コードを前記メモリに積載するステップと、前記電力情報コードに基づいて電力情報テーブルを生成またはアップデートするステップとをさらに含んでもよい。
【００４５】
前記電力情報テーブルを生成またはアップデートするステップは、前記電力情報コード及び前記メモリ積載結果に基づいて前記電力情報テーブルを生成またはアップデートするステップを含んでもよい。
【００４６】
前記電力情報テーブルは、前記特定データが前記メモリに積載された物理アドレス、前記実行ファイル内の前記特定データの仮想アドレス、及び前記仮想アドレスが前記物理アドレスに変換される情報のうち少なくとも１つに基づいて生成またはアップデートされてもよい。
【００４７】
前記実行ファイルは、コンパイリングシステムのコンパイラ及びリンカーによって生成され、前記コンパイラは、ソースコードに含まれた電力情報指示子に基づいて前記電力情報コード及び前記実行コードを生成し、前記リンカーは、前記生成された電力情報コード及び前記生成された実行コードをリンクしてもよい。
【発明の効果】
【００４８】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、ハードウェアのレベルでデータ中心の電力管理を行うことができる。
【００４９】
データは電力情報を有し、プロセッサは当該データを処理するときその情報を用いて電力管理を行う。これによって、ユーザはデータに電力情報のみを記述すると、全てのプロセッサが自ら電力管理を行う。
【００５０】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、既に全てのプロセッサの電力管理することに比べて、データの電力タイプを記述するだけでも電力管理が可能であるため、ユーザの便宜性が向上される。
【００５１】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、一般的にユーザが直接電力管理する場合のＣｏａｒｓｅ−ｇｒａｉｎｅｄ電力管理に比べて細分化された電力管理が可能である。
【図面の簡単な説明】
【００５２】
【図１】一実施形態に係る複数のプロセッサを含むプロセッシング装置を示すブロック図である。
【図２】一実施形態に係るプロセッシング装置を用いるデータに基づく電力管理方式を説明するための図である。
【図３】一実施形態に係るデータに基づく電力情報技術方法を説明するための図である。
【図４】一実施形態に係るデータに基づく電力情報生成方法を説明するための図である。
【図５】一実施形態に係る電力情報テーブルを説明するための図である。
【図６】一実施形態に係るプロセッシング装置を示すブロック図である。
【図７】一実施形態に係るデータに基づく電力情報を積載する方法を示した動作フローチャートである。
【図８】一実施形態に係るデータに基づく電力管理のための電力コントローラの動作方法を示す動作フローチャートである。
【図９】一実施形態に係るデータに基づく電力管理のためのメモリコントローラの動作方法を示す動作フローチャートである。
【発明を実施するための形態】
【００５３】
以下、実施形態を添付する図面を参照しながら詳細に説明する。
【００５４】
実施形態の説明おいて、関連する公知機能または構成に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合にその詳細な説明を省略する。そして、本明細書で用いられる用語（ｔｅｒｍｉｎｏｌｏｇｙ）は、実施形態を適切に表現するために用いられる用語であり、これはユーザ、運用者の意図、または当該技術が属する分野の慣例などによって変わり得る。したがって、用語に対する定義は、本明細書全般にわたった内容に基づいて下されなければならないのであろう。各図面に提示された同一の参照符号は同一の部材を示す。
【００５５】
図１は、一実施形態に係る複数のプロセッサを含むプロセッシング装置を示すブロック図である。
【００５６】
図１を参照すると、一実施形態に係るプロセッシング装置１００は、データ中心の電力管理を行う。一実施形態に係るプロセッシング装置１００のデータに対応する電力情報を有し、プロセッサは当該データを処理する時その情報を用いて電力管理を行う。これにより、ユーザによってソースコードのデータに電力情報のみが記述されれば、全てのプロセッサは自動で電力管理を行うことができる。
【００５７】
したがって、一実施形態に係るプロセッシング装置１００を利用すると、ユーザの便宜性が向上されるだけではなく、一実施形態に係るプロセッシング装置１００を利用すると、細分化された（ｆｉｎｅ−ｇｒａｉｎｅｄ）電力管理が可能である。
【００５８】
シングルコアシステムに比べてマルチプロセッサシステムでは、メモリの大きさやアクセス速度などがシステム性能に決定的な役割を果たす。これはマルチプロセッサシステムにおいて、性能の中心が算出ではないデータにあることを意味し、一実施形態に係るプロセッシング装置１００を利用すると、マルチプロセッサシステムに適する電力管理技術を提供することができる。
【００５９】
また、一実施形態に係るプロセッシング装置１００はマルチメディア応用に適する。例えば、マルチメディア応用としてパイプライン（Ｐｉｐｅｌｉｎｅ）などのようにデータがストリーム（ｓｔｒｅａｍ）のように流れる方式で処理されてもよい。このように、データ中心に演算が行われる場合、電力管理もデータによって変わることが好ましい。
【００６０】
そのために、一実施形態に係るプロセッシング装置１００は、メモリ１１０、メモリコントローラ１２０、プロセッサ１４０、電力コントローラ１３０、及び電力情報管理部（図示せず）を含んでもよい。
【００６１】
一実施形態に係るプロセッサ１４０は複数の電力モードを用いて動作してもよく、一実施形態に係るメモリ１１０は、プロセッサ１４０の動作のためのデータを格納してもよい。
【００６２】
一実施形態に係る電力情報管理部（図示せず）は、プロセッサ１４０からメモリ１１０へのアクセス信号に反応し、アクセス信号によってアクセスリクエストされるデータに対応する電力情報が存在するか否かを判断する。電力情報管理部（図示せず）は、実現如何に応じてメモリコントローラ１２０に含まれてもよいし、或いは電力コントローラ１３０に含まれてもよい。もちろん、電力情報管理部（図示せず）は、メモリコントローラ１２０及び電力コントローラ１３０と別に備えられてもよい。
【００６３】
以下、説明の便宜のために電力情報管理部（図示せず）がメモリコントローラ１２０に含まれる場合を仮定する。ただし、上述したように電力情報管理部（図示せず）の実現は、メモリコントローラ１２０に含まれる場合に限定されることはない。
【００６４】
一実施形態に係る電力コントローラ１３０は、プロセッサ１４０のアクセス信号によってアクセスリクエストされるデータに対応する電力情報が存在する場合、電力情報に基づいてプロセッサ１４０の電力モードを制御する。
【００６５】
一実施形態に係るプロセッサ１４０は、メモリ１１０に格納されているデータを演算するなどの処理を行う。プロセッサ１４０は、中央処理ユニット（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ）１４１、グラフィック処理ユニット（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＧＰＵ）１４２、ハードウェア加速器（Ｈａｒｄｗａｒｅ  Ａｃｃｅｌｅｒａｔｏｒ：ＨＷＡ）１４３、デジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：ＤＳＰ）１４４などの複数の異種プロセッサを含むマルチプロセッサとして解釈されてもよい。もちろん、場合に応じてプロセッサ１４０は、複数の同種プロセッサを含むマルチプロセッサを含んでもよい。
【００６６】
ここで、プロセッサ１４０はアクセス可能なメモリ１１０が存在し、プロセッサ１４０に含まれる下位プロセッサはメモリコントローラ１２０を介してメモリ１１０にアクセスしてもよい。
【００６７】
ここで、各モジュールの構成、個数、接続構造は変わり得る。
【００６８】
一実施形態に係るメモリコントローラ１２０は、アクセスリクエストする下位プロセッサのタイプに関係なく、アクセスリクエストされる特定データに対応する同一の電力情報を電力コントローラ１３０に提供してもよい。
【００６９】
例えば、中央処理ユニット１４１とグラフィック処理ユニット１４２が同一のアドレスに格納されたデータにアクセスをリクエストした場合を仮定しよう。この場合、メモリコントローラ１２０は、中央処理ユニット１４１とグラフィック処理ユニット１４２に同じ電力情報を提供してもよい。
【００７０】
ただし、電力コントローラ１３０は、同一の電力情報に基づいて中央処理ユニット１４１の電力モードとグラフィック処理ユニット１４２の電力モードを互いに異なるように制御してもよい。
【００７１】
より具体的に、電力コントローラ１３０は同じ電力情報を受信する場合にも、内部ポリシーにより中央処理ユニット１４１の電力モードとグラフィック処理ユニット１４２の電力モードを互いに異なるように制御してもよい。
【００７２】
他の実施形態によると、メモリ１１０は、使用電力タイプが区分されたデータを格納してこれを保持してもよい。例えば、メモリ１１０は、データを格納するときデータの電力情報を含むタグ（ｔａｇ）などをともに格納してもよい。
【００７３】
メモリ１１０にアクセスする時メモリコントローラ１２０は電力コントローラ１３０に信号を与え、当該メモリ１１０のアクセスに対応する電力制御が必要な場合、電力コントローラ１２０を用いてプロセッサ１４０の電力を調節してもよい。
【００７４】
メモリコントローラ１２０は、プロセッサ１４０からデータに対する処理リクエストを受信し、受信された処理リクエストに応答してメモリ１１０からデータを読み出してプロセッサ１４０に提供してもよい。
【００７５】
ここで、一実施形態に係るメモリコントローラ１２０は、読み出されたデータに使用電力タイプが含まれているかを確認する。確認の結果、使用電力タイプが含まれる場合、メモリコントローラ１２０は確認された使用電力タイプを電力コントローラ１３０に提供してもよい。電力コントローラ１３０は、メモリコントローラ１２０から伝えられた使用電力タイプに応じてプロセッサ１４０の電力を制御してもよい。
【００７６】
電力コントローラ１３０は、読み出されたデータに含まれている使用電力タイプに基づいてプロセッサ１４０の電力を制御してもよい。
【００７７】
図２は、一実施形態に係るプロセッシング装置を用いるデータに基づく電力管理方式を説明するための図である。
【００７８】
図２を参照すると、一実施形態に係るデータ２２０は電力情報を有し、プロセッサ２１０はデータ２２０に処理又はオペレーション（Operation）を行うとき、そのデータ２２０の電力情報（Power  ctrl.）を用いて処理を行ってもよい。
【００７９】
ここでは、電力管理がコンピュータの過程に含まれているため、電力管理がコンピュータと別個ではないコンピュータの一部となる。
【００８０】
ユーザは、プログラムコード２３０を記述するとき各データに電力タイプ２３１を記述することにより電力管理できる。
【００８１】
例えば、プログラムコード２３０に電力タイプ２３１が記述されれば、各プロセッサは、プログラムコード２３０の実行中に当該データを処理するとき当該データに対応する電力タイプに基づいて電力管理を行ってもよい。
【００８２】
図３は、一実施形態に係るデータに基づく電力情報技術方法を説明するための図である。
【００８３】
図３は、ユーザがデータの電力タイプをプログラミングによって記述することで、型限定子（Ｔｙｐｅ  ｑｕａｌｉｆｉｅｒ）３１０、３２０、３３０、３４０のような電力情報指示子を介して記述してもよい。
【００８４】
一実施形態によると、型限定子として低電力（Ｌｏｗ  Ｐｏｗｅｒ：ＬＰ）、中電力（Ｍｉｄｄｌｅ  Ｐｏｗｅｒ：ＭＰ）、高電力（Ｈｉｇｈ  Ｐｏｗｅｒ：ＨＰ）などの電力モードに対応する使用電力タイプが予め定義されてもよい。
【００８５】
また、関数の因子として用いられる汎用電力（Ｇｅｎｅｒｉｃ  ｔｅｍｐｌａｔｅ  Ｐｏｗｅｒ：ＧＰ）の型限定子も定義されてもよく、汎用電力の型限定子として宣言された因子は低電力、中電力、高電力などの電力モードに対応する使用電力タイプのデータを全て受け入れてもよい。
【００８６】
型限定子は、データタイプ及び属性（ａｔｔｒｉｂｕｔｅ）などに応じて記述されてもよく、プログラミング言語に応じて異なってもよい。
【００８７】
より具体的に、全体コード３００のうちデータに該当する部分は予め使用電力タイプが定義されてもよい。
【００８８】
例えば、図面符号３１０のように整数（ｉｎｔｅｇｅｒ）に区分される変数「ａ」には使用電力タイプとして「＿ｌｐ＿」が挿入されて低電力（ｌｏｗ  ｐｏｗｅｒ）モードで動作するものとして電力モードを定義してもよい。
【００８９】
また、図面符号３２０のように、キャラクターで区分される配列変数ｂ［１０］には使用電力タイプとして「＿ｍｐ＿」が挿入されて中電力（ｍｉｄｄｌｅ  ｐｏｗｅｒ）モードで動作するものとして電力モードを定義してもよい。
【００９０】
また、図面符号３３０では関数「ＩＳＲ０」の定義において使用電力タイプとして「＿ｈｐ＿」が挿入されて関数「ＩＳＲ０」が高電力（ｈｉｇｈ  ｐｏｗｅｒ）モードで動作するものとして電力モードを定義してもよい。
【００９１】
また、図面符号３４０のように、関数「ｄｅｃｏｄｅ」の因子のうちｉｎｐｕｔＤａｔａに使用電力タイプとして「＿ｇｐ＿」を挿入して関数「ｄｅｃｏｄｅ」が汎用電力（ｇｅｎｅｒｉｃ  ｐｏｗｅｒ）モードで動作するものとして電力モードを定義してもよい。
【００９２】
従来には電力管理の中心はコードにあった。すなわち、コードの一部分を低電力区間に設定して管理する。
【００９３】
一方、一実施形態に係るデータに基づく電力管理装置は、電力管理の中心はコードではないデータと見なす。すなわち、使用電力タイプを挿入することによってデータに電力モードを設定し、演算装置は前記データが処理されるとき挿入された使用電力タイプに該当する電力モードに動作させ得る。
【００９４】
したがって、当該データを用いる部分を探して電力管理区間と見なして管理することができる。
【００９５】
データの処理による電力モードを設定する方法として、新しいデータタイプを導入してもよいし、或いは既存データタイプに使用電力タイプを挿入することによって実現されてもよい。
【００９６】
一実施形態に係るメモリコントローラはメモリに格納され、プロセッサがリクエストするデータの全体コードとして「＿ｌｐ＿」、「＿ｍｐ＿」、「＿ｈｐ＿」、及び「＿ｇｐ＿」などの電力タイプが挿入されている少なくとも１つ以上のコードセグメントを検索することができる。
【００９７】
検索されれば、電力コントローラは、当該データに対して当該電力タイプの電力モードに動作されるようにプロセッサを制御することができる。
【００９８】
図４は、一実施形態に係るデータに基づく電力情報生成方法を説明するための図である。
【００９９】
図４は、電力情報が含まれた実行ファイルを生成する過程を示す。従来には、ソースコードをコンパイラがオブジェクトコードに変更し、当該オブジェクトをリンカーが実行ファイルに作ることができる。
【０１００】
一実施形態によると、コンパイラ４２０がソースファイル４１０に含まれた電力情報指示子に基づいてオブジェクトファイル４３０などの実行コードと共に電力情報４５０を含む電力情報コードを生成してもよい。
【０１０１】
この場合、リンカー４４０は、生成された電力情報コード及び生成された実行コードを含む実行ファイルを生成してもよい。例えば、リンカー４４０は、リンキング作業によってオブジェクトファイル４３０に対するバイナリ４６０を作りながら、バイナリ４６０に電力情報４５０を含ませてもよい。
【０１０２】
図５は、一実施形態に係る電力情報テーブルを説明するための図である。
【０１０３】
図５を参照すると、一実施形態に係るプロセッシング装置は、データの開始位置及び長さを格納し、プロセッサによってアクセスするメモリアドレスがこの範囲に含むか否かを判断する。
【０１０４】
一実施形態に係るプロセッシング装置は、複数の電力情報タプルを含む予め備えられた電力情報テーブル５００を用いてもよい。
【０１０５】
ここで、開始位置及び長さとして決定される範囲を電力領域（ｐｏｗｅｒ  ｒｅｇｉｏｎ）と定義し、当該電力領域はそれぞれ電力情報及び加重値（ｗｅｉｇｈｔ）を有する。電力情報はユーザが記述したものであるが、プログラムが実行されるランタイムに再構成された電力情報であってもよい。図５においては、低電力（Low  Power）及び高電力（High  power）の電力情報が示されている。加重値は、当該データが用いられるコードの特性を反映し、同様にランタイムに決定されてもよい。
【０１０６】
電力情報テーブル５００は、図４で生成されたバイナリ４６０に含まれてもよい。もちろん、場合に応じて電力情報テーブル５００が格納される位置及び電力情報テーブル５００の構成は変わり得る。
【０１０７】
図６は、一実施形態に係るプロセッシング装置を示すブロック図である。
【０１０８】
図６を参照すると、一実施形態に係るプロセッシング装置６００は、プロセッサ６１０がアクセスするメモリ６３０のデータ（Data）に対応する電力情報が存在するか否かを判断する。この場合において、プロセッサ６１０はメモリコントローラ６２０にアドレス（Address）を通知し、メモリコントローラ６２０はメモリ６３０内のそのアドレスを確認し、プロセッサ６１０にデータが返される。
【０１０９】
判断の結果、メモリ６３０に対応する電力情報が存在する場合、メモリコントローラ６２０は電力コントローラ６４０に電力情報（Power  information）を提供してもよい。電力コントローラ６４０は、当該電力情報を用いてプロセッサ６１０の電力モードを制御してもよい（Power  Control）。ここで、メモリコントローラ６２０はアドレス変換などを行ってもよく、電力コントローラ６４０は特定ポリシーによりプロセッサ６１０の電力を調節してもよい。
【０１１０】
メモリコントローラ６２０や電力コントローラ６４０の数及び構成は変わってもよく、メモリ６３０の種類及び位置に応じてメモリコントローラ６２０の位置及び構成が変わってもよい。
【０１１１】
図７は、一実施形態に係るデータに基づく電力情報を積載する又は含める方法を示した動作フローチャートである。
【０１１２】
図７を参照すると、応用バイナリには、実際応用を動作させ得るプログラムとデータに基づく電力情報が共に存在する。データに基づく電力管理方法として、プログラムとデータに基づく電力情報を分割する（Ｓ７０１）。
【０１１３】
一実施形態に係るデータに基づく電力管理方法は、プログラムに対して一般ロード過程を行う（Ｓ７０２）。ロード過程の結果、プログラムのアドレスが決定されれば、データに基づく電力管理方法はデータに基づく電力情報をアップデートする（Ｓ７０３）。
【０１１４】
一実施形態に係るデータに基づく電力管理方法は、データに基づく電力情報をメモリコントローラにロードさせる（又は担わせる又は包含させる）（Ｓ７０４）。
【０１１５】
メモリコントローラにロードされたデータに基づく電力情報は、プロセッサがアクセスするデータが電力情報の所有しているか否かを判断するために使用されてもよい。メモリコントローラが電力情報積載及び判断を担当しているが、他の装置が担当してもよい。例えば、プロセッサに新しいモジュールが追加されてもよく、電力コントローラで全て担当してもよい。
【０１１６】
図示していないが、他の実施形態に係る図１に示すプロセッシング装置１００は、実行ファイル処理部及びメモリ積載部をさらに含んでもよい。
【０１１７】
実行ファイル処理部は実行ファイルを取得し、実行ファイルに含まれた実行コード及び電力情報コードを抽出してもよい。ここで、実行ファイルは応用バイナリを含み、実行コードはプログラムを含み、電力情報コードはデータに基づく電力情報を含んでもよい。また、実行コードは、命令語コード及びデータコードを含んでもよい。
【０１１８】
メモリ積載部は抽出された実行コードをメモリに積載してもよく（包含させてもよく）、図１に示すメモリコントローラ１２０に含まれた電力情報管理部は、メモリに包含させる処理の結果（メモリ積載結果）及び電力情報コードに基づいて図５に示す電力情報テーブル５００をアップデートしてもよい。
【０１１９】
図８は、一実施形態に係るデータに基づく電力管理のための電力コントローラの動作方法を示す動作フローチャートである。
【０１２０】
図８を参照すると、一実施形態に係るデータに基づく電力管理方法は、メモリによって使用電力タイプが区分されたデータを格納し、これを保持してもよい。
【０１２１】
一実施形態に係るデータに基づく電力管理方法は、プロセッサによってデータを処理し、メモリコントローラによってプロセッサからデータに対する処理リクエストを受信し、受信された処理リクエストに応答してメモリからデータを読み出してプロセッサに提供してもよい。
【０１２２】
また、一実施形態に係るデータに基づく電力管理方法は、電力コントローラによって読み出されたデータに対応する電力情報に基づいてプロセッサの電力を制御してもよい。
【０１２３】
具体的に、メモリコントローラは、プロセッサからアクセス可能なメモリアドレスがリクエストされる。
【０１２４】
メモリコントローラは、このアドレスが電力情報を有するデータであるかを確認してもよい。ここで、電力情報を有するデータアドレス範囲を電力領域（ｐｏｗｅｒ  ｒｅｇｉｏｎ）という。もし、そのアドレスが電力領域中にあれば、当該電力情報を電力コントローラに伝達し、電力コントローラはメモリコントローラから電力情報を収集する（Ｓ８０１）。
【０１２５】
電力コントローラは、メモリコントローラから収集した電力情報に基づいて当該プロセッサの電力モードを決定する（Ｓ８０２）。電力コントローラの電力モード決定方法は多様である。電力コントローラは電力情報だけではなく、予め備えられた内部ポリシーに基づいてプロセッサの電力モードを決定してもよい。
【０１２６】
例えば、一実施形態に係る電力コントローラは、メモリコントローラから取得した電力情報を直ちに適用して電力モードを決定してもよい。それだけではなく、一実施形態に係る電力コントローラは、従来の電力情報をプロファイリングした結果を用いて電力モードを決定してもよい。
【０１２７】
一実施形態に係る電力コントローラは、メモリコントローラから様々な電力情報が交番に入力される場合に電力モードを毎回更新しない。このような場合、一実施形態に係る電力コントローラは、当該電力情報に基づいて平均値を取ることで電力モードを決定する。
【０１２８】
一実施形態に係る電力コントローラは、応用のコードによる加重値を与えて電力モード決定のための演算を行ってもよい。この場合、一実施形態に係る電力コントローラは、反復文に用いられるデータであれば、当該データが電力モード決定に及ぼす加重値を高く付与してもよい。
【０１２９】
電力コントローラは、決定された電力モードを用いてプロセッサの電力モードを変更するかを判断する（Ｓ８０３）。
【０１３０】
もし、プロセッサの電力モードを変更する場合、電力コントローラはプロセッサの電力モードを変更する手続を行う（Ｓ８０４）。もし、電力モードを変更する必要がなければ、電力コントローラは電力管理を終了する。
【０１３１】
電力モードを変更しない場合にも、使用された電力情報はプロファイリングのために別に管理されてもよい。場合に応じて、電力コントローラは数個のメモリコントローラから入力されてもよい。
【０１３２】
図示していないが、図１に示す電力コントローラ１３０は電力モード決定部及び電力モード制御部を含んでもよい。
【０１３３】
電力モード決定部は、電力情報に基づいて図１に示すプロセッサ１４０の電力モードを決定してもよい。ここで、電力モード決定部は、図１に示すプロセッサ１４０が使用する複数の電力モードのいずれか１つの電力モードを選択してもよい。
【０１３４】
電力モード制御部は、決定された電力モードに基づいてプロセッサの電力モードを制御してもよい。この場合、電力モード制御部は、決定された電力モードと現在のプロセッサの電力モードとを比較することで、プロセッサの電力モードを変更するか否かを決定してもよい。
【０１３５】
例えば、電力モード制御部は、決定された電力モードと現在のプロセッサの電力モードとが同一である場合、別途の制御信号を生成しないことがある。一方、電力モード制御部は、決定された電力モードと現在のプロセッサの電力モードとが相異なる場合、プロセッサの電力モードを変更する制御信号を生成してもよい。
【０１３６】
図９は、一実施形態に係るデータに基づく電力管理のためのメモリコントローラの動作方法を示す動作フローチャートである。
【０１３７】
図９を参照すると、メモリコントローラはプロセッサが要求するメモリアドレスを収集する（Ｓ９０１）。
【０１３８】
メモリコントローラは、収集されたメモリアドレスが電力領域内に位置するか否かを確認する（Ｓ９０２）。もし、電力領域内に位置すれば、メモリコントローラは電力コントローラに電力情報を送信する（Ｓ９０３）。
【０１３９】
また、メモリコントローラは、メモリアドレスを用いてメモリのデータをプロセッサに送信する（Ｓ９０４）。例えば、メモリコントローラは、データ処理のためにメモリから当該アドレスに対するデータをプロセッサに伝達する動作を行ってもよい。
【０１４０】
メモリコントローラは、収集されたメモリアドレスが電力領域内に位置するか否かを確認し、電力領域内に位置しない場合、ステップＳ９０４に分岐してメモリのデータをプロセッサに伝達してもよい。
【０１４１】
例えば、もし電力領域にあるデータでなければ、単なる一般データであるため、メモリコントローラはメモリから当該アドレスに対するデータをプロセッサに伝達する動作のみを行ってもよい。
【０１４２】
ここで、メモリコントローラはアドレスに対する変換を行ってもよい。一般的なプロセッサでは、仮想アドレスを物理アドレスに変換させるモジュールを使用したりもする。この変換過程で、追加的に電力領域探知ロジックを用いることによって、実行オーバーヘッドなしで電力管理を行ってもよい。すなわち、メモリコントローラは、アドレスに対する変換をハードウェア的に同時に行うことができるため、実行オーバーヘッドなしで電力管理を行ってもよい。
【０１４３】
電力領域を構成する単位は、メモリコントローラが保持するメモリの単位となる。メモリアドレスの最小単位及びページ（ｐａｇｅ）、キャッシュライン（ｃａｃｈｅ  ｌｉｎｅ）単位などになり得る。実際に、プロセッサが要求するメモリアドレスに適するようマッピング及び管理のみが可能であれば、いずれの単位も使用可能である。
【０１４４】
図示していないが、図１に示すメモリコントローラ１２０に含まれた電力情報管理部は、アドレス取得部、電力情報判断部、及び電力情報提供部を含んでもよい。
【０１４５】
アドレス取得部は、図１に示すプロセッサ１４０からのアクセス信号に含まれたメモリアドレスを取得し、電力情報判断部は予め備えられた図５に示す電力情報テーブル５００のうち、アクセスリクエストされたメモリアドレスに対応する電力情報が存在するか否かを判断してもよい。
【０１４６】
電力情報提供部は、アクセスリクエストされたメモリアドレスに対応する電力情報が存在する場合、当該電力情報を図１に示す電力コントローラ１３０に提供してもよい。
【０１４７】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、ハードウェアのレベルでデータ中心の電力管理を行うことができる。
【０１４８】
データは電力情報を有し、プロセッサは当該データを処理する時その情報を用いて電力管理を行う。これによって、ユーザはデータに電力情報のみを記述すると、全てのプロセッサが自ら電力管理を行う。
【０１４９】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、既に全てのプロセッサの電力管理することに比べて、データの電力タイプを記述するだけでも電力管理が可能であるため、ユーザの便宜性が向上される。
【０１５０】
一実施形態に係るデータに基づく電力管理装置及び方法を利用すると、一般的にユーザが直接電力管理する場合のＣｏａｒｓｅ−ｇｒａｉｎｅｄ電力管理に比べて細分化された電力管理が可能である。
【０１５１】
実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうちの１つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。
【０１５２】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【０１５３】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【０１５４】
１１０  メモリ
１２０  メモリコントローラ
１３０  電力コントローラ
１４０  プロセッサ
【図２】
2014225263.tif 000003
【図１】
2014225263.tif 000004
【図３】
2014225263.tif 000005
【図４】
2014225263.tif 000006
【図５】
2014225263.tif 000007
【図６】
2014225263.tif 000008
【図７】
2014225263.tif 000009
【図８】
2014225263.tif 000010
【図９】
2014225263.tif 000011