JP2009157909A - 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法 - Google Patents

消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法 Download PDF

Info

Publication number
JP2009157909A
JP2009157909A JP2008203095A JP2008203095A JP2009157909A JP 2009157909 A JP2009157909 A JP 2009157909A JP 2008203095 A JP2008203095 A JP 2008203095A JP 2008203095 A JP2008203095 A JP 2008203095A JP 2009157909 A JP2009157909 A JP 2009157909A
Authority
JP
Japan
Prior art keywords
power consumption
instruction
module
execution
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008203095A
Other languages
English (en)
Other versions
JP5277781B2 (ja
Inventor
Toshiki Obara
俊樹 小原
Makiko Ito
真紀子 伊藤
Yasuki Nakamura
泰基 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008203095A priority Critical patent/JP5277781B2/ja
Publication of JP2009157909A publication Critical patent/JP2009157909A/ja
Application granted granted Critical
Publication of JP5277781B2 publication Critical patent/JP5277781B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】設計の初期段階において、プロセッサの消費電力を高速に見積もること。
【解決手段】仮想プロセッサ向けの命令レベルシミュレータを利用して対象アプリを動作させる。そして、対象アプリの動作時に実行される各命令の実行順序を表わす命令シーケンスS1を取得する。このあと、ターゲットプロセッサのアーキテクチャ情報Aに基づいて、仮想プロセッサの命令シーケンスS1をターゲットプロセッサの命令シーケンスS2に変更する。そして、その命令シーケンスS2に基づいて、変更後の各命令の実行時に消費される消費電力をモジュールごとに見積もる。
【選択図】図2

Description

この発明は、プロセッサの消費電力を見積もる消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法に関する。
近年、組み込み向けプロセッサでは、対象となるアプリケーションに応じて、適切なアーキテクチャのプロセッサをカスタマイズして利用することが多くなっている。一方で、組み込み向けプロセッサでは、消費電力に対する制約が厳しいため、実際にLSIを製造する前段階において消費電力を見積もりたいという要求が高くなっている。
従来より、プロセッサの消費電力を見積もる手法として、命令レベルシミュレータ(ISS:Instruction Set Simulator)を利用して見積もる手法が知られている(たとえば、下記特許文献1〜3参照。)。命令レベルシミュレータは、命令単位でのシミュレーションを実行し、プロセッサで動作するアプリケーションの動きを模擬するシミュレータである。
具体的には、まず、命令レベルシミュレータを利用してアプリケーションを動作させ、各命令の実行順序を表わす実行ログを得る。このあと、この実行ログに含まれる各命令の実行時に消費される電力を測定する。そして、測定された命令ごとの消費電力を積算することによってプロセッサの消費電力を見積もることができる。
特開平8−235228号公報 特開平11−161692号公報 特開2000−293557号公報
しかしながら、上述した従来技術によれば、見積もり対象となるプロセッサのアーキテクチャが変更されると、その都度、命令レベルシミュレータを新たに開発して、各命令の実行時に消費される電力を測定する必要がある。これら命令レベルシミュレータの開発作業および消費電力の測定作業には、非常に大きな工数がかかってしまう。
このため、多くの種類のアーキテクチャのプロセッサの消費電力を見積もることが難しくなり、プロセッサをカスタマイズする際における消費電力に対する制約を満たすアーキテクチャの選択を困難なものにさせていた。この結果、制約違反にともなう設計作業の手戻りが多発してしまい、作業負担の増大化および設計期間の長期化を招くという問題があった。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法は、上述した従来技術による問題点を解消するため、プロセッサの消費電力を高速でかつ高精度に見積もることを目的とする。
上述した課題を解決し、目的を達成するため、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法は、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得し、取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更し、変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出し、算出された算出結果を出力することを要件とする。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、任意のアプリケーションを動作させる命令シーケンスを、見積もり対象となるプロセッサのアーキテクチャに応じて変更し、変更後の命令シーケンスの各実行サイクルでの消費電力をモジュールごとに見積もることができる。
また、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法において、変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を、消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリから抽出し、抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することとしてもよい。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、見積もり対象となるプロセッサを構成するモジュールの性能と関連付けて保持されている電力値を用いて、変更後の各命令の実行時に消費される消費電力を見積もることができる。
また、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法において、さらに、変更後の各命令の実行時に消費される電力値を積算することにより、前記アプリケーションの動作時に消費される前記プロセッサの電力値を算出することとしてもよい。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、アプリケーションの動作させたときに消費されるプロセッサ全体の消費電力を見積もることができる。
また、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法において、前記実行命令情報に基づいて、前記プロセッサ内のキャッシュメモリにアクセスする命令の実行時における前記キャッシュメモリのミス/ヒットを判断し、判断された判断結果および変更後の実行順序に基づいて、前記キャッシュメモリにアクセスする命令の実行時に消費されるモジュールごとの電力値を前記消費電力ライブラリから抽出することとしてもよい。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、キャッシュメモリのミス/ヒットに応じた電力値を用いて、キャッシュメモリにアクセスする命令の実行時に消費される消費電力を見積もることができる。
また、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法において、前記実行命令情報は、前記見積もり対象となるプロセッサの命令レベルシミュレータを利用して前記アプリケーションを動作させたときに実行される各命令の実行順序を表わす情報であり、前記実行命令情報から特定される前記第1実行順序に基づいて、前記アプリケーションの動作時に実行される各命令の実行時に消費される電力値を算出することとしてもよい。
この消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、消費電力の見積もり精度を向上させることができる。
本発明にかかる消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、プロセッサの消費電力を高速でかつ高精度に見積もることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
(消費電力見積装置のハードウェア構成)
まず、実施の形態1にかかる消費電力見積装置のハードウェア構成について説明する。図1は、実施の形態1にかかる消費電力見積装置のハードウェア構成を示すブロック図である。
図1において、消費電力見積装置100は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)107と、ディスプレイ108と、I/F(インターフェース)109と、キーボード110と、マウス111と、スキャナ112と、プリンタ113とを備えている。また、各構成部は、バス120によってそれぞれ接続されている。
ここで、CPU101は、消費電力見積装置100の全体の制御を司る。ROM102は、ブートプログラムなどのプログラムを記録している。RAM103は、CPU101のワークエリアとして使用される。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御で書き込まれたデータを記憶する。
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御で書き込まれたデータを記憶したり、FD107に記憶されたデータを消費電力見積装置100に読み取らせたりする。
また、着脱可能な記録媒体として、FD107のほか、CD−ROM(CD−R、CD−RW)、MO、DVD(Digital Versatile Disk)、メモリカードなどであってもよい。ディスプレイ108は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ108には、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
I/F109は、通信回線を通じてインターネットなどのネットワーク114に接続され、このネットワーク114を介して他の装置に接続される。そして、I/F109は、ネットワーク114と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F109には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード110は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス111は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
スキャナ112は、画像を光学的に読み取り、装置内に画像データを読み込む。なお、スキャナ112は、OCR機能を持たせてもよい。また、プリンタ113は、画像データや文書データを印刷する。プリンタ113には、たとえば、レーザプリンタやインクジェットプリンタなどを採用することができる。
(実施の形態1の概要)
つぎに、実施の形態1の概要について説明する。図2は、実施の形態1の概要を示す説明図である。実施の形態1では、ある特定のアプリケーションを動作させたときに消費されるプロセッサの電力値を見積もる。図2において、まず、仮想的なプロセッサを定義して、その仮想プロセッサ向けの命令レベルシミュレータ(ISS)を開発する(1)。
仮想プロセッサは、特定のアプリケーションを動作させたときに実行される各命令の実行順序を検出するためのプロセッサである。この仮想プロセッサは、上記アプリケーションを正常に動作させる機能を備えていればよく、ユーザによって任意に選択されたものであってもよい。
このあと、仮想プロセッサの命令レベルシミュレータを利用して、上記アプリケーションを動作させ、実行される各命令の実行順序を表わす命令シーケンスS1を取得する(2)。つぎに、この命令シーケンスS1に基づいて、消費電力ライブラリ210を作成する(3)。なお、消費電力ライブラリ210を作成する具体的な処理内容は後述する。
上記(1)〜(3)の作業を、見積もり対象となるプロセッサ(以下、「ターゲットプロセッサ」という)の消費電力を見積もる前に予めおこなう。このあと、ターゲットプロセッサのアーキテクチャ情報Aを取得すると(4)、そのアーキテクチャ情報Aに基づいて、仮想プロセッサの命令シーケンスS1をターゲットプロセッサの命令シーケンスS2に変更する(5)。
そして、ターゲットプロセッサの命令シーケンスS2に基づいて、変更後の各命令の実行時に消費されるモジュールごとの電力値を消費電力ライブラリ210から抽出する(6)。最後に、抽出された電力値を積算することにより、上記アプリケーションを動作させたときのターゲットプロセッサの消費電力を見積もる(7)。
これにより、非常に工数のかかるターゲットプロセッサ向けの命令レベルシミュレータの開発作業および各命令の実行時に消費される電力値の測定作業が不要となる。すなわち、ターゲットプロセッサのアーキテクチャの変更にともなって、新たに上記(1)〜(3)に相当する作業をおこなう必要がなくなるため、消費電力の見積もり作業の高速化を図ることができる。
何らかの命令を実行したときに、プロセッサを構成するモジュールで消費される消費電力は、個々のモジュールの性能に依存している。つまり、互いに異なるプロセッサのモジュールであっても、それらの性能が同じであれば、消費電力も同様の値となる。ここでは、プロセッサを特徴的な機能を実現するモジュールによって区分けして、モジュールごとの消費電力に着目し、ターゲットプロセッサの消費電力を見積もる。
また、仮想プロセッサとしてターゲットプロセッサ、またはターゲットプロセッサと同種類のアーキテクチャのプロセッサを定義することにより、消費電力の見積もり精度を向上させることができる。この場合、上記(5)の作業が不要となり、ターゲットプロセッサの命令シーケンスS1を用いて消費電力を見積もることとなる。
(消費電力ライブラリの記憶内容)
つぎに、消費電力ライブラリ210について説明する。図3は、消費電力ライブラリの記憶内容を示す説明図(その1)である。図3において、消費電力ライブラリ210は、命令ごとに、その命令の実行時に消費される電力値を示す消費電力情報300−1〜300−nを格納している。消費電力情報300−1〜300−nは、消費電力値を命令とモジュールの性能と関連付けて保持している。
モジュールとは、プロセッサの機能を実現するためのものであり、I(インストラクション)キャッシュモジュール、D(データ)キャッシュモジュール、フェッチモジュールおよび演算器(ユニット)モジュールである。また、演算器としては、たとえば、加算器、乗算器、ロードユニットおよびストアユニットなどがある。
ここで、消費電力情報300−1を例に挙げると、加算命令「ADD」の実行時に消費される電力値が、各モジュールの性能ごとに示されている。たとえば、「ADD」が実行されると、容量が64[KB]のIキャッシュモジュールでは4[mW]の電力が消費され、また、加算器1の演算器モジュールでは3[mW]の電力が消費される。
(消費電力見積装置100の機能的構成)
つぎに、実施の形態1にかかる消費電力見積装置100の機能的構成について説明する。図4は、実施の形態1にかかる消費電力見積装置の機能的構成を示すブロック図である。図4において、消費電力見積装置100は、取得部401と、変更部402と、算出部403と、抽出部404と、判断部405と、出力部406と、を含む構成である。
この制御部となる機能(取得部401〜出力部406)は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記憶領域に記憶されたプログラムをCPU101に実行させることにより、または、I/F109により、その機能を実現する。また、図4中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPU101に実行させるものとする。
まず、取得部401は、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する機能を有する。ここで、アーキテクチャ情報は、プロセッサを構成する各機能部の機能を実現するモジュールの性能を表わす情報である。
モジュールは、たとえば、Iキャッシュモジュール、Dキャッシュモジュール、フェッチモジュール、コントロールモジュール、レジスタモジュールおよび演算器モジュールなどである。モジュールの性能は、たとえば、IキャッシュおよびDキャッシュの容量やデータ幅、フェッチの命令発行幅、コントロールモジュールの実行並列数、演算器モジュールの演算器数、演算種類、パイプライン段数などによって表現される。
また、実行命令情報は、任意のプロセッサ(図2に示した仮想プロセッサ)の命令レベルシミュレータ(ISS)を利用して、任意のアプリケーション(以下、「対象アプリ」という)を動作させたときに得られるシミュレーション結果である。この実行命令情報には、対象アプリの動作時に実行される各命令の実行順序を表わす命令シーケンスが含まれている。なお、アーキテクチャ情報、実行命令情報は、不図示の外部装置から取得することとしてもよく、また、ユーザの操作入力、不図示のデータベースやライブラリからの抽出によって取得することとしてもよい。
ここで、プロセッサを構成する各機能部について説明する。図5は、プロセッサのアーキテクチャ構成の一例を示す説明図である。図5において、プロセッサモデル500は、命令取出部501と、命令解釈部502と、実行制御部503と、メモリアクセス部504と、演算部505と、から構成されている。
命令取出部501は、実行対象となる命令のソースコード(命令コード)をキャッシュから取り出す。具体的には、たとえば、I(インストラクション)キャッシュモジュールM1によって、その機能を実現する。命令解釈部502は、命令取出部501によって取り出された命令コードを解釈する。具体的には、たとえば、フェッチモジュールM2によって、その機能を実現する。
実行制御部503は、プロセッサの全体を制御する。具体的には、たとえば、不図示のコントロールモジュールによって、その機能を実現する。メモリアクセス部504は、キャッシュメモリにアクセスする。具体的には、たとえば、D(データ)キャッシュモジュールM3によって、その機能を実現する。演算部505は、命令解釈部502によって解釈された命令に従って演算をおこなう。具体的には、たとえば、演算器モジュールM4によって、その機能を実現する。
上記各モジュールM1〜M4の性能は、各プロセッサのアーキテクチャ情報から特定することができる。図6は、アーキテクチャ情報の具体例を示す説明図(その1)である。図6において、アーキテクチャ情報A1は、見積もり対象となるプロセッサ(ターゲットプロセッサ)を構成するモジュールM1〜M4の性能を表わす電子データである。
このアーキテクチャ情報Aから、各モジュールM1〜M4の性能を特定することができる。具体的には、IキャッシュモジュールM1の容量が16[KB]、DキャッシュモジュールM3の容量が16[KB]である。また、フェッチモジュールM2の並列数が2並列である。また、演算器モジュールM4として、加算器(ADD)を1個、乗算器(MUL)を1個、ロードユニットを1個、ストアユニットを1個、有している。
このため、ターゲットプロセッサでは、1並列で「ADD」、「MUL」、「LD」および「ST」の実行が可能となり、さらに、2並列で「ADD−MUL」、「ADD−LD」、「ADD−ST」、「MUL−LD」および「MUL−ST」の同時実行が可能となる。ただし、「ADD」は加算命令、「MUL」は乗算命令、「LD」はロード命令および「ST」はストア命令を示している。なお、各演算器は1つずつしか有していないため、同種類の命令(たとえば、「ADD−ADD」)の同時実行は不可能である。
図4の説明に戻り、変更部402は、取得部401によって取得されたアーキテクチャ情報に基づいて、実行命令情報から特定される実行順序を、モジュールの性能に応じた実行順序に変更する機能を有する。具体的には、たとえば、アーキテクチャ情報Aから特定されるモジュールM1〜M4の性能に応じて、実行命令情報から特定される実行順序を変更する。
ここで、各命令の実行順序を表わす命令シーケンスについて説明する。図7は、命令シーケンスの具体例を示す説明図である。図7において、命令シーケンスS1は、仮想プロセッサの命令レベルシミュレータを利用して対象アプリを動作させたときの各命令の実行順序を表わしている。命令シーケンスS1によれば、「ADD」→「ADD」→「MUL」→「LD」→・・・→「ADD」の順に各命令が実行される。
ここで、変更部402による変更処理の具体例を説明する。変更部402は、ターゲットプロセッサを構成するモジュールM1〜M4の性能に応じて、対象アプリを動作させるときに実行される各命令のスケジューリングをおこなう。具体的には、たとえば、フェッチモジュールM2の並列数から複数命令の同時実行の可否を判断する。
ここで、複数命令の同時実行が可能であると判断された場合、演算器モジュールM4の性能、すなわち、演算種類、演算器数を判断して、同時実行可能な命令の組み合わせを判断する。ここでは、2並列で「ADD−MUL」、「ADD−LD」、「ADD−ST」、「MUL−LD」および「MUL−ST」の同時実行が可能であると判断する。
そして、同時実行可能な命令の組み合わせに基づいて、対象アプリを動作させたときに実行される各命令の最適な実行順序をスケジューリングする。たとえば、市販のスケジューラーソフトを利用して、並列性の向上および実行時間の短縮化などを考慮したスケジューリングをおこなう。なお、命令の実行順序を最適化するスケジューリングについては、公知技術のため詳細な説明を省略する。
図8は、変更後の命令シーケンスを示す説明図である。図8において、命令シーケンスS2は、ターゲットプロセッサを構成するモジュールM1〜M4の性能に応じて変更された各命令の実行順序を示すシーケンスである。命令シーケンスS2によれば、「ADD」→「ADD−MUL」→「LD」→「ADD−ST」→・・・→「ADD」の順に各命令が実行される。
算出部403は、変更部402によって変更された実行順序に基づいて、変更後の各命令の実行時に消費されるモジュールごとの電力値を算出する機能を有する。具体的には、たとえば、命令シーケンスS2の各命令を実行したときに消費されるモジュールM1〜M4ごとの電力値を算出する。
各モジュールM1〜M4は、様々な電気的な特性を有している。IキャッシュモジュールM1およびフェッチモジュールM2の消費電力は、ターゲットプロセッサで実行される命令数に依存する。このため、モジュールM1およびM2の消費電力は、たとえば、実行サイクルごとの命令数で決まる値と、ターゲットプロセッサのアーキテクチャで決まる値との足し算によって、それぞれ算出することができる。
また、DキャッシュモジュールM3の消費電力は、キャッシュメモリに対するアクセス数に依存する。このため、モジュールM3の消費電力は、たとえば、実行サイクルごとのアクセス数で決まる値と、ターゲットプロセッサのアーキテクチャで決まる値との足し算によって算出することができる。
また、演算器モジュールM4の消費電力は、ターゲットプロセッサで実行される命令の種類に依存する。このため、モジュールM4の消費電力は、たとえば、実行サイクルごとの命令の種類で決まる値と、ターゲットプロセッサのアーキテクチャで決まる値との足し算によって算出することができる。上記の各値は、たとえば、消費電力ライブラリ210に保持されている。
抽出部404は、変更部402によって変更された実行順序に基づいて、変更後の各命令の実行時に消費されるモジュールごとの電力値を、消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリから抽出する機能を有する。具体的には、たとえば、命令シーケンスS2の各実行サイクルで消費されるモジュールM1〜M4ごとの電力値を消費電力ライブラリ210から抽出する。
ここで、命令シーケンスS2の1サイクル目を例に挙げると、「ADD」が実行される。このため、消費電力ライブラリ210から消費電力情報300−1を抽出し、その消費電力情報300−1から各モジュールM1〜M4の性能に応じた電力値を抽出することとなる。
ここでは、IキャッシュモジュールM1の電力値:2[mW]、フェッチモジュールM2の電力値:1[mW]、DキャッシュモジュールM3の電力値:2[mW]を抽出する。また、演算器モジュールM4の電力値として、加算器1の電力値:3[mW]、乗算器の電力値:1[mW]、ロードユニットの電力値:1[mW]、ストアユニットの電力値:1[mW]を抽出する。
また、命令シーケンスS2の2サイクル目を例に挙げると、「ADD−MUL」が実行される。このため、消費電力ライブラリ210から消費電力情報300−8を抽出し、その消費電力情報300−8から各モジュールM1〜M4の性能に応じた電力値を抽出することとなる。
ここでは、IキャッシュモジュールM1の電力値:2[mW]、フェッチモジュールM2の電力値:2[mW]、DキャッシュモジュールM3の電力値:2[mW]を抽出する。また、演算器モジュールM4の電力値として、加算器1の電力値:3[mW]、乗算器の電力値:3[mW]、ロードユニットの電力値:1[mW]、ストアユニットの電力値:1[mW]を抽出する。
また、算出部403は、抽出部404によって抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出する機能を有する。具体的には、命令シーケンスS2の1サイクル目を例に挙げると、抽出部404によって抽出されたモジュールM1〜M4ごとの電力値:2[mW],1[mW],2[mW],3[mW],1[mW],1[mW],1[mW]を積算する。この結果、変更後の「ADD」の実行時(1サイクル目)に消費される電力値は『2+1+2+3+1+1+1=11[mW]』となる。
また、キャッシュメモリに対するアクセス時のミス/ヒットを考慮して電力値を算出することとしてもよい。判断部405は、取得部401によって取得された実行命令情報に基づいて、プロセッサ内のキャッシュメモリにアクセスする命令の実行時におけるキャッシュメモリのミス/ヒットを判断する機能を有する。具体的には、たとえば、キャッシュメモリに保持される命令の実行に必要となるデータの存否から、キャッシュメモリのミス/ヒットを判断する。
また、抽出部404は、判断部405によって判断された判断結果および変更部402による変更後の実行順序に基づいて、キャッシュメモリにアクセスする命令の実行時に消費されるモジュールごとの電力値を消費電力ライブラリから抽出する機能を有する。
具体的には、たとえば、ターゲットプロセッサのキャッシュモデルに基づいて、命令シーケンスS1を、キャッシュメモリのミス/ヒットを表わすアクセスシーケンスに変更する。このあと、このアクセスシーケンスおよび命令シーケンスS2に基づいて、「LD」または「ST」の実行時に消費されるモジュールごとの電力値を消費電力ライブラリ210から抽出する。
図9は、アクセスシーケンスの具体例を示す説明図である。図9において、アクセスシーケンスS3は、キャッシュメモリにアクセスする命令の実行時におけるキャッシュメモリのミス/ヒットを表わしている。具体的には、命令シーケンスS1の3サイクル目の「LD」の実行時にはヒット(hit)となっており、4サイクル目の「ADD−ST」の実行時にはミス(miss)となっている。
この場合、抽出部404は、命令シーケンスS2およびアクセスシーケンスS3を統合した命令シーケンスS4に基づいて、「LD」または「ST」の実行時に消費されるモジュールごとの電力値を消費電力ライブラリ210から抽出することとなる。ここで、3サイクル目を例に挙げると、「LD」の実行時にキャッシュメモリがヒットとなっているため、消費電力ライブラリ210から消費電力情報300−3を抽出し、各モジュールM1〜M4の性能に応じた電力値を抽出することとなる。
また、算出部403は、変更後の各命令の実行時に消費される電力値を積算することにより、任意のアプリケーションの動作時に消費される見積もり対象となるプロセッサの電力値を算出する機能を有する。具体的には、たとえば、命令シーケンスS4に基づく実行サイクルごとの消費電力値を積算することにより、対象アプリの動作時に消費されるターゲットプロセッサの電力値を算出する。
図10は、算出結果の具体例を示す説明図である。図10において、1010には、命令シーケンスS4に基づく実行サイクルごとに、各モジュールM1〜M4で消費される電力値が示されている。また、1020には、各モジュールM1〜M4の電力値が積算された、実行サイクルごとの消費電力値が示されている。
たとえば、命令シーケンスS4の1サイクル目に消費される電力値は11[mW]であり、また、2サイクル目に消費される電力値は16[mW]である。なお、実行サイクルごとの消費電力値(1020)を積算することにより、ターゲットプロセッサ全体での消費電力を見積もることができる。
出力部406は、算出部403によって算出された算出結果を出力する機能を有する。具体的には、たとえば、変更後の各命令の実行時に消費されるモジュールM1〜M4ごとの消費電力値を出力してもよく、また、対象アプリの動作が完了(全実行サイクル終了)したときのモジュールM1〜M4ごとの消費電力値を出力してもよい。
さらに、各モジュールM1〜M4の消費電力値を積算することにより、各命令の実行時(1サイクル)に消費される消費電力値を出力してもよく、また、各命令の実行時に消費される消費電力値を積算することにより、プロセッサ全体の消費電力値を出力してもよい。なお、出力部406による出力形式は、ディスプレイ108での画面表示、プリンタ113での印刷出力、メモリへのデータ出力(保存)、外部のコンピュータ装置への送信のいずれであってもよい。
図11は、出力結果の具体例を示す説明図である。図11において、出力結果1100には、命令シーケンスS4に基づく実行サイクルごとの消費電力値が示されている。具体的には、実行時間[t]の経過とともに、実行サイクルごとの消費電力値『11[mW],16[mW],13[mW],18[mW],18[mW],…』が示されている。
(消費電力ライブラリの作成処理)
ここで、消費電力ライブラリ210の作成処理の具体例を説明する。まず、既存のプロセッサを用いて、命令シーケンスS1に含まれる各命令の実行時に消費される電力値を測定する。具体的には、たとえば、一般的な電力見積もりツールを用いて、プロセッサA,Bのトランジスタレベルのシミュレーションをおこなう。
これにより、各命令の実行時におけるモジュールM1〜M4ごとの消費電力値を測定することができる。このあと、その測定結果を、各モジュールM1〜M4の性能と関連付けて消費電力ライブラリ210に格納する。以下、既存のプロセッサA,Bを例に挙げて、消費電力ライブラリ210の作成処理の具体例を説明する。
図12は、既存のプロセッサのアーキテクチャ情報を示す説明図である。図12おいて、アーキテクチャ情報1210は、既存のプロセッサAを構成するモジュールM1〜M4の性能を表わしている。また、アーキテクチャ情報1220は、既存のプロセッサBを構成するモジュールM1〜M4の性能を表わしている。
これらアーキテクチャ情報1210,1220から特定される既存のプロセッサA,Bを用いて、命令シーケンスS1に含まれる各命令の実行時に消費される電力値を測定する。そして、その測定結果を、プロセッサA,Bの各モジュールM1〜M4の性能と関連付けて消費電力ライブラリ210に格納する。
図13および図14は、既存のプロセッサの測定結果を示す説明図である。図13において、測定結果1300には、命令ごとに、その命令の実行時に消費されるプロセッサAの各モジュールM1〜M4の電力値が示されている。また、図14において、測定結果1400には、命令ごとに、その命令の実行時に消費されるプロセッサBの各モジュールM1〜M4の電力値が示されている。
このようにして得られた測定結果1300,1400を、ライブラリに保持していくことにより、消費電力ライブラリ210を作成することができる。このとき、様々なアプリケーションを動作させることを考慮して、様々な種類の命令セットおよびアーキテクチャのプロセッサを用いて測定することが望ましい。
なお、上述した取得部401、変更部402、算出部403、抽出部404、判断部405、および出力部406は、具体的には、たとえば、図1に示したROM102、RAM103、HD105などの記録媒体に記録されたプログラムを、CPU101が実行することによって、またはI/F109によって、その機能を実現する。
(消費電力見積装置の消費電力見積処理手順)
つぎに、実施の形態1にかかる消費電力見積装置100の消費電力見積処理手順について説明する。図15は、実施の形態1にかかる消費電力見積装置の消費電力見積処理手順を示すフローチャートである。
図15のフローチャートにおいて、まず、取得部401により、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得したか否かを判断する(ステップS1501)。
ここで、アーキテクチャ情報および実行命令情報を取得するのを待って(ステップS1501:No)、取得した場合(ステップS1501:Yes)、変更部402により、取得部401によって取得されたアーキテクチャ情報に基づいて、実行命令情報から特定される実行順序を、モジュールの性能に応じた実行順序に変更する(ステップS1502)。
このあと、判断部405により、実行命令情報に基づいて、プロセッサ内のキャッシュメモリにアクセスする命令の実行時におけるキャッシュメモリのミス/ヒットを判断する(ステップS1503)。そして、抽出部404により、変更部402によって変更された実行順序および判断部405によって判断された判断結果に基づいて、変更後の各命令の実行時に消費されるモジュールごとの消費電力値を消費電力ライブラリ210から抽出する(ステップS1504)。
このあと、算出部403により、抽出部404によって抽出されたモジュールごとの消費電力値を積算することにより、変更後の各命令の実行時に消費される電力値、すなわち実行サイクルごとの消費電力値を算出する(ステップS1505)。さらに、算出部403により、変更後の各命令の実行時に消費される電力値を積算することにより、アプリケーションの動作時に消費されるプロセッサの消費電力値を算出する(ステップS1506)。
最後に、出力部406により、算出部403によって算出された算出結果を出力して(ステップS1507)、本フローチャートによる一連の処理を終了する。このとき出力される出力結果は、ステップS1505またはステップS1506において算出される算出結果のいずれであってもよい。
以上説明した実施の形態1によれば、対象アプリを動作させる命令シーケンスを、見積もり対象となるプロセッサのアーキテクチャに応じて変更し、変更後の命令シーケンスの各実行サイクルでの消費電力をモジュールごとに見積もることができる。これにより、見積もり対象となるプロセッサ向けの命令レベルシミュレータが未開発であっても、命令シーケンスの変更をおこなうだけで、そのプロセッサの消費電力を見積もることができる。
このため、見積もり対象となるプロセッサのアーキテクチャが変更された場合であっても、その都度、命令レベルシミュレータの開発作業および消費電力の測定作業をおこなう必要がなくなり、消費電力の見積もり作業の高速化を実現することができる。
これにより、多くの種類のアーキテクチャのプロセッサの消費電力を見積もることができるようになり、プロセッサをカスタマイズする際における消費電力に対する制約を満たすアーキテクチャの選択を容易にさせる。この結果、LSI設計にかかる作業負担を削減し、設計期間の短縮化を図ることができる。
また、仮想プロセッサとして見積もり対象となるプロセッサ、またはそのプロセッサと同種類のアーキテクチャのプロセッサを定義することにより、消費電力の見積もり精度をさらに向上させることができる。
(実施の形態2)
つぎに、実施の形態2について説明する。実施の形態1では、消費電力の見積もり対象となるプロセッサの動作環境下での温度条件を考慮することなく消費電力を見積もる手法について説明したが、実施の形態2では、プロセッサの動作環境下における温度条件を考慮した消費電力の見積もり手法について説明する。
一般に、プロセッサを流れる電流は、温度に依存して変化することが知られている。このため、プロセッサの動作環境下での温度条件が変化するとプロセッサを流れる電流が変化し、プロセッサの消費電力が変化する。そこで、実施の形態2では、この温度条件を考慮した消費電力を見積もることで、より精度の高い消費電力見積もりを実現する。
(消費電力ライブラリの記憶内容)
まず、実施の形態2にかかる消費電力ライブラリ1600について説明する。図16は、消費電力ライブラリの記憶内容を示す説明図(その2)である。図16において、消費電力ライブラリ1600は、温度t1〜tmごとに、各命令の実行時に消費されるモジュールM1〜M5ごとの電力値を示す消費電力情報リスト1600−1〜1600−mを格納している。
ここで、消費電力情報リスト1600−2を例に挙げると、温度t2における各命令の実行時に消費されるモジュールM1〜M5ごとの消費電力値が記憶されている。このように、消費電力ライブラリ1600には、実施の形態1で説明した消費電力情報300−1〜300−n(図3参照)に相当する情報が、温度t1〜tmごとに保持されている。
なお、モジュールM1〜M5は、たとえば、各種容量(16[KB]、64[KB]など)のIキャッシュモジュール、Dキャッシュモジュールやフェッチモジュール、演算器モジュールなどである。また、図16では、簡単化のため各モジュールM1〜M5の性能を不図示としている。
(アーキテクチャ情報)
ここで、プロセッサの温度特定に用いるアーキテクチャ情報について説明する。図17は、アーキテクチャ情報の具体例を示す説明図(その2)である。図17において、アーキテクチャ情報A2には、見積もり対象となるプロセッサ(ターゲットプロセッサ)を構成するモジュールM1〜M5の性能を表わす情報とともに、ターゲットプロセッサの温度が示されている。このアーキテクチャ情報A2によれば、モジュールM1〜M5の性能1〜5とともに、ターゲットプロセッサの温度t2[℃]を特定することができる。
(消費電力見積装置1800の機能的構成)
つぎに、実施の形態2にかかる消費電力見積装置1800の機能的構成について説明する。なお、実施の形態1において説明した箇所と同一箇所については、同一符号を付して説明を省略する。図18は、実施の形態2にかかる消費電力見積装置の機能的構成を示すブロック図である。図18において、消費電力見積装置1800は、取得部401と、変更部402と、算出部403と、抽出部404と、判断部405と、出力部406と、電力補正部1801と、を含む構成である。
この制御部となる機能(取得部401〜出力部406、電力補正部1801)は、具体的には、たとえば、図1に示したROM102、RAM103、HD105、FD107などの記憶領域に記憶されたプログラムをCPU101に実行させることにより、または、I/F109により、その機能を実現する。また、図18中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをCPU101に実行させるものとする。
抽出部404は、取得部401によって取得されたアーキテクチャ情報に含まれるプロセッサの温度下での変更部402による変更後の各命令の実行時に消費されるモジュールごとの電力値を、複数通りの温度下での消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリ(たとえば、消費電力ライブラリ1600)から抽出する機能を有する。
ここで、プロセッサの温度は、プロセッサの動作環境下での予測温度であり、具体的には、たとえば、プロセッサを搭載するLSI(Large Scale Integration)の密度や集積度などから決まるプロセッサ全体またはプロセッサ表面の平均温度であってもよく、また、プロセッサの局所的な温度であってもよい。
図17に示したアーキテクチャ情報A2を例に挙げると、抽出部404は、アーキテクチャ情報A2からターゲットプロセッサの温度t2を特定し、その温度t2における、変更後の各命令の実行時に消費されるモジュールM1〜M5ごとの電力値を消費電力ライブラリ1600(消費電力情報リスト1600−2)から抽出する。
また、算出部403は、抽出部404によって抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出する。上述の例では、モジュールM1〜M5ごとの電力値を積算することにより、ターゲットプロセッサの温度t2における変更後の各命令の実行時に消費される電力値を算出することとなる。
このように、アーキテクチャ情報から特定されるターゲットプロセッサの温度下での各モジュールの電力値を抽出して積算することにより、ターゲットプロセッサの動作環境下における温度条件を考慮した消費電力を見積もることが可能となり、見積もり精度を向上させることができる。
また、プロセッサの温度条件に適合するモジュールの電力値が消費電力ライブラリに保持されていない場合には、消費電力ライブラリに保持されている任意の第1および第2の温度下でのモジュールの電力値から、プロセッサの温度下でのモジュールの電力値を補間することとしてもよい。
このとき、プロセッサの温度に近似する第1および第2の温度におけるモジュールの電力値を用いて補間することとしてもよい。具体的には、抽出部404は、複数通りの温度下での消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリから、プロセッサの温度に近似する第1および第2の温度下でのモジュールごとの電力値を抽出する。
そして、電力補正部1801は、抽出部404によって抽出された第1および第2の温度下でのモジュールごとの電力値を用いて、プロセッサの温度下でのモジュールごとの電力値を補正する。具体的には、たとえば、第1および第2の温度下でのモジュールごとの電力値を線形補間することにより、プロセッサの温度下でのモジュールごとの電力値を算出することができる。
より詳細に説明すると、第1の温度をx、第2の温度をy、プロセッサの温度をzとする(ただし、x<z<y)。さらに、温度x、y、zにおけるモジュールMの電力値をそれぞれEP(x)、EP(y)、EP(z)とする。この場合、プロセッサの温度zにおけるモジュールMの電力値EP(z)は『EP(z)=EP(x)+{EP(y)−EP(x)}×(z−x)/(y−x)』となる。
このように、ターゲットプロセッサの温度下での各モジュールの電力値が消費電力ライブラリに保持されていない場合には、任意の第1および第2の温度におけるモジュールごとの電力値を用いて、ターゲットプロセッサの温度におけるモジュールの電力値を求めることができる。
以上説明した実施の形態2によれば、ターゲットプロセッサの動作環境下における温度条件を考慮して、各命令の実行時に消費されるターゲットプロセッサの消費電力を見積もることが可能となり、見積もり精度を向上させることができる。
(実施の形態3)
つぎに、実施の形態3について説明する。実施の形態2では、消費電力ライブラリ1600に複数通りの温度{t1,t2,…,tm}でのモジュールM1〜M5ごとの電力値を保持することとしたが、実施の形態3では、特定温度下での電力値のみが保持されている場合に、プロセッサの動作環境下における温度条件を考慮した消費電力を見積もる手法を提案する。なお、実施の形態1,2において説明した箇所と同一箇所については、同一符号を付して説明を省略する。
具体的には、消費電力値と温度との関係を表現する関数モデルを用いて、特定温度下での各モジュールの電力値を、プロセッサの温度下での各モジュールの電力値に補正する。これにより、プロセッサの動作環境下における温度条件を考慮した消費電力見積もりを実現するとともに、各命令の実行時に消費されるモジュールごとの電力値を保持する消費電力ライブラリの記憶容量を低減させる。
(消費電力ライブラリの記憶内容)
まず、実施の形態3にかかる消費電力ライブラリ1900について説明する。図19は、消費電力ライブラリの記憶内容を示す説明図(その3)である。図19において、消費電力ライブラリ1900には、命令ごとに、温度t1における各命令の実行時に消費されるモジュールM1〜M5ごとの電力値を示す消費電力情報1900−1〜1900−nが保持されている。
このように、消費電力ライブラリ1900には、実施の形態2で説明した消費電力ライブラリ1600のように複数通りの温度{t1,t2,…,tm}でのモジュールM1〜M5ごとの電力値が保持されているのではなく、特定の温度下(ここでは、温度t1)でのモジュールM1〜M5ごとの電力値のみが保持されている。
(電力補正部1801の具体的処理内容)
つぎに、電力補正部1801による具体的な処理内容について説明する。まず、抽出部404は、変更部402による変更後の各命令の実行時に消費される特定の温度下でのモジュールごとの電力値を消費電力ライブラリ(たとえば、消費電力ライブラリ1900)から抽出する。
電力補正部1801は、消費電力と温度との関係を表現するプロセッサ固有の関数モデルに、抽出部404によって抽出された特定の温度下でのモジュールごとの電力値とプロセッサの温度とを与えることにより、プロセッサの温度下でのモジュールごとの電力値を補正する。なお、プロセッサの温度は、アーキテクチャ情報(たとえば、アーキテクチャ情報A2)から特定される温度である。
具体的には、たとえば、消費電力と温度との関係を表現する下記式(1)を用いて、特定の温度下でのモジュールの電力値を、プロセッサの温度下でのモジュールの電力値に補正することができる。ただし、特定の温度をt、プロセッサの温度をTとする。また、EP(t),EP(T)は温度t,Tにおけるモジュールの電力値であり、P(t),P(T)は温度t,Tにおける電力指標である。
EP(T)=EP(t)×P(T)/P(t) ・・・(1)
また、上記式(1)の電力指標P(t),P(T)は、たとえば、下記式(2)を用いて求めることができる。ただし、a,bは係数であり、Xは温度(tまたはT)である。
P(X)=a+b×X ・・・(2)
上記式(2)を用いると、電力指標P(t)は『P(t)=a+b×t』、電力指標P(T)は『P(T)=a+b×T』となる。上記式(1)および(2)は、たとえば、単一命令を連続実行したときのプロセッサの平均消費電力、または、割込み待ち状態のときのプロセッサの平均消費電力から定めることができる。
「単一命令を連続実行したときの平均消費電力」または「割込み待ち状態のときの平均消費電力」のいずれを採用するのかは、プロセッサが搭載される電子機器の使用形態に応じて選択することとしてもよい。たとえば、携帯電話機にプロセッサが搭載される場合、割込み待ち状態が多くなることが想定されるため、「割込み待ち状態のときの平均消費電力」から上記式(1)および(2)を定めることとしてもよい。
なお、上記式(1)、(2)および係数a,bは、たとえば、RAM103、HD105、FD107などの記憶領域に予め記憶されているものを読み出すこととしてもよく、また、図1に示したキーボード110やマウス111をユーザが操作することで入力することとしてもよい。
また、上述した例では、電力指標P(t),P(T)は上記式(2)を用いて求めることとしたが、温度ごとの電力指標を記憶する電力指標テーブルから抽出することとしてもよい。ここで、電力指標テーブルの具体例について説明する。図20は、電力指標テーブルの記憶内容を示す説明図(その1)である。
図20において、電力指標テーブル2000には、温度t1〜tmごとの電力指標P1〜Pmが記憶されている。この電力指標テーブル2000を参照することで、各温度t1〜tmでの電力指標P(t1)〜P(tm)を認識することができる。これにより、電力補正時に、その都度、上記式(2)を用いて電力指標P(t),P(T)を求める必要がなくなる。
なお、電力指標テーブル2000は、たとえば、図1に示したキーボード110やマウス111をユーザが操作することで入力することとしてもよく、また、データベースやライブラリからの抽出により取得することとしてもよい。
ここで、特定の温度tをt1、プロセッサの温度Tをt2とし、電力補正部1801により「ADD」の実行時に消費されるモジュールM1の電力値を補正する場合を例に挙げて説明する。この場合、電力補正部1801は、まず、上記式(1)に特定の温度t1におけるモジュールM1の電力値EP(t1)(=2.0[mW])とプロセッサの温度t2とを与えることで下記式(3)を得る。
EP(t2)=2.0[mW]×P(t2)/P(t1) ・・・(3)
このあと、電力指標テーブル2000から温度t1,t2での電力指標P1,P2を抽出し、それら電力指標P1,P2を上記式(3)に与えることで下記式(4)を得る。
EP(t2)=2.0[mW]×P2/P1 ・・・(4)
これにより、「ADD」の実行時における特定の温度t1におけるモジュールM1の電力値EP(t1)を、上記式(4)に示すプロセッサの温度t2における電力値EP(t2)に補正することができる。
また、算出部403は、電力補正部1801によって補正された補正後のモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することとなる。
このように、消費電力値と温度との関係を表現する上記式(1)および(2)を用いて、特定の温度下での各モジュールの電力値を、プロセッサの温度下での各モジュールの電力値に補正することができる。この結果、ターゲットプロセッサの動作環境下における温度条件を考慮した消費電力を見積もることが可能となり、見積もり精度を向上させることができる。
なお、図19に示した消費電力ライブラリ1900では、各命令の実行時に消費されるモジュールM1〜M5ごとの電力値の計測時における温度はすべて共通の温度t1としたが、これに限らない。たとえば、命令ごとに計測時の温度がそれぞれ異なる場合には、各命令の計測時の温度を特定の温度tとして、各命令の実行時に消費されるモジュールM1〜M5ごとの電力値を補正することができる。
また、上述した例では、プロセッサ固有の関数モデル(上記式(1)および(2))を用いて、各モジュールの電力値を補正することとしたが、「モジュール固有の関数モデル」または「モジュール種別固有の関数モデル」を用いて、各モジュールの電力値を補正することとしてもよい。
ここで、モジュール固有の関数モデルについて説明する。モジュール固有の関数モデルとは、たとえば、Iキャッシュモジュール、Dキャッシュモジュール、フェッチモジュールおよび演算器モジュールにそれぞれ固有の関数モデルである。具体的には、たとえば、上記式(2)にモジュールごとの係数a,bを与えることで、モジュール固有の関数モデルを実現することとしてもよい。
ここで、係数a,bをモジュールごとに記憶する係数テーブルの具体例について説明する。図21は、係数テーブルの具体例を示す説明図(その1)である。図21において、係数テーブル2100には、モジュールM1〜M5ごとの係数a1〜a5,b1〜b5が記憶されている。この係数テーブル2100を参照することで、各モジュールM1〜M5の係数a,bを認識することができる。
たとえば、特定の温度tにおけるモジュールM1の電力値をプロセッサの温度Tにおける電力値に補正する場合、電力補正部1801は、係数テーブル2100の中からモジュールM1の係数a1,b2を抽出し、それら係数a1,b2を上記式(2)に与えることで、モジュールM1固有の関数モデルを実現することができる。
また、モジュールごとに各温度における電力指標を記憶する電力指標テーブルを与えることで、モジュール固有の関数モデルを実現することとしてもよい。ここで、電力指標テーブルの具体例について説明する。図22は、電力指標テーブルの記憶内容を示す説明図(その2)である。
図22において、電力指標テーブル2200には、モジュールM1〜M5ごとに、各温度t1〜tmにおける電力指標P11〜P1m,・・・,P51〜P5mが記憶されている。この電力指標テーブル2200を参照することで、モジュールM1〜M5ごとの各温度t1〜tmでの電力指標P(t1)〜P(tm)を認識することができる。
たとえば、特定の温度t1におけるモジュールM1の電力値をプロセッサの温度t2における電力値に補正する場合、電力補正部1801は、電力指標テーブル2200の中からモジュールM1の温度t1,t2での電力指標P11,P12を抽出し、それら電力指標P11,P12を上記式(1)に与えることで、モジュールM1固有の関数モデルを実現することができる。
上述した係数テーブル2100および電力指標テーブル2200の記憶内容は、単一命令を連続実行したときの各モジュールの平均消費電力、または、割込み待ち状態のときの各モジュールの平均消費電力から定めることとなる。このため、モジュールの種別、性能が反映された関数モデルを用いて電力値を補正することが可能となり、プロセッサ固有の関数モデルを用いる場合に比べて見積もり精度を向上させることができる。
なお、係数テーブル2100または電力指標テーブル2200は、たとえば、図1に示したキーボード110やマウス111をユーザが操作することで入力することとしてもよく、また、データベースやライブラリからの抽出により取得することとしてもよい。
つぎに、モジュール種別固有の関数モデルについて説明する。モジュール種別とは、機能や回路構成などによってモジュールを分類する種別である。具体的には、たとえば、複数のモジュールをロジック回路とメモリ回路とに分類することができる。この場合、Iキャッシュモジュール、Dキャッシュモジュールおよびフェッチモジュールは、メモリ回路に分類され、演算器モジュールはロジック回路に分類される。
ここで、モジュールとモジュール種別とを対応付ける対応テーブルの具体例について説明する。図23は、対応テーブルの具体例を示す説明図である。図23において、対応テーブル2300には、モジュールM1〜M5とモジュール種別C1,C2とがそれぞれ対応付けて示されている。この対応テーブル2300を参照することで、各モジュールM1〜M5のモジュール種別C1,C2を認識することができる。
モジュール種別固有の関数モデルは、たとえば、上述したモジュール固有の関数モデルと同様に、上記式(2)にモジュール種別ごとの係数a,bを与えることで実現することとしてもよい。
ここで、係数a,bをモジュール種別ごとに記憶する係数テーブルの具体例について説明する。図24は、係数テーブルの具体例を示す説明図(その2)である。図24において、係数テーブル2400には、モジュール種別C1,C2ごとの係数aC1,aC2,bC1,bC2が記憶されている。この係数テーブル2400を参照することで、各モジュール種別C1,C2の係数a,bを認識することができる。
たとえば、特定の温度tにおけるモジュールM1の電力値をプロセッサの温度Tにおける電力値に補正する場合、電力補正部1801は、まず、対応テーブル2300を参照してモジュールM1のモジュール種別C1を特定する。そして、係数テーブル2400の中からモジュール種別C1の係数aC1,bC1を抽出し、それら係数aC1,bC1を上記式(2)に与えることで、モジュール種別C1固有の関数モデルを実現することができる。
また、モジュール種別ごとに各温度における電力指標を記憶する電力指標テーブルを与えることで、モジュール種別固有の関数モデルを実現することとしてもよい。ここで、電力指標テーブルの具体例について説明する。図25は、電力指標テーブルの記憶内容を示す説明図(その3)である。
図25において、電力指標テーブル2500には、モジュール種別C1,C2ごとに、各温度t1〜tmにおける電力指標PC11〜PC1m,PC21〜PC2mが記憶されている。この電力指標テーブル2500を参照することで、モジュール種別C1,C2ごとの各温度t1〜tmでの電力指標P(t1)〜P(tm)を認識することができる。
たとえば、特定の温度t1におけるモジュールM1の電力値をプロセッサの温度t2における電力値に補正する場合、電力補正部1801は、まず、対応テーブル2300を参照してモジュールM1のモジュール種別C1を特定する。そして、電力指標テーブル2500の中からモジュール種別C1の温度t1,t2での電力指標PC11,PC12を抽出し、それら電力指標PC11,PC12を上記式(1)に与えることで、モジュール種別C1固有の関数モデルを実現することができる。
上述した係数テーブル2400および電力指標テーブル2500の記憶内容は、モジュール種別ごとに、単一命令を連続実行したときのモジュールの平均消費電力、または、割込み待ち状態のときのモジュールの平均消費電力から定めることとなる。このため、モジュールの種別が反映された関数モデルを用いて電力値を補正することが可能となり、プロセッサ固有の関数モデルを用いる場合に比べて見積もり精度を向上させることができる。
なお、対応テーブル2300、係数テーブル2400または電力指標テーブル2500は、たとえば、図1に示したキーボード110やマウス111をユーザが操作することで入力することとしてもよく、また、データベースやライブラリからの抽出により取得することとしてもよい。
さらに、プロセッサの動作環境下での温度条件を考慮して消費電力を見積もる手法として、算出部403により各命令の実行時に消費されるプロセッサの電力値を算出したあとに、電力補正部1801により各命令の実行時に消費されるプロセッサの電力値を補正することとしてもよい。
具体的には、たとえば、電力補正部1801は、消費電力ライブラリ1900から抽出される各モジュールの電力値の替わりに、算出部403によって算出された各命令の実行時に消費されるプロセッサの電力値をプロセッサ固有の関数モデルに与えることにより、各命令の実行時に消費されるプロセッサの電力値を補正することができる。これによれば、電力補正部1801による電力補正処理をモジュールごとに実行する必要がないため、電力補正処理にかかる処理負荷を低減させることができる。
(消費電力見積装置の消費電力見積処理手順)
つぎに、実施の形態3にかかる消費電力見積装置1800の消費電力見積処理手順について説明する。図26は、実施の形態3にかかる消費電力見積装置の消費電力見積処理手順を示すフローチャートである。
図26のフローチャートにおいて、まず、取得部401により、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能とプロセッサの温度とを表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得したか否かを判断する(ステップS2601)。
ここで、アーキテクチャ情報および実行命令情報を取得するのを待って(ステップS2601:No)、取得した場合(ステップS2601:Yes)、変更部402により、取得部401によって取得されたアーキテクチャ情報に基づいて、実行命令情報から特定される実行順序を、モジュールの性能に応じた実行順序に変更する(ステップS2602)。
このあと、判断部405により、実行命令情報に基づいて、プロセッサ内のキャッシュメモリにアクセスする命令の実行時におけるキャッシュメモリのミス/ヒットを判断する(ステップS2603)。そして、抽出部404により、変更部402によって変更された実行順序および判断部405によって判断された判断結果に基づいて、変更後の各命令の実行時に消費されるモジュールごとの消費電力値を消費電力ライブラリ1900から抽出する(ステップS2604)。
このあと、電力補正部1801により、消費電力値と温度との関係を表現する関数モデルに、抽出部404によって抽出された特定の温度におけるモジュールごとの電力値とアーキテクチャ情報に含まれるプロセッサの温度とを与えることにより、プロセッサの温度におけるモジュールごとの消費電力値を補正する(ステップS2605)。
そして、算出部403により、電力補正部1801によって補正された補正後のモジュールごとの消費電力値を積算することにより、変更後の各命令の実行時に消費される電力値、すなわち実行サイクルごとの消費電力値を算出する(ステップS2606)。さらに、算出部403により、変更後の各命令の実行時に消費される電力値を積算することにより、アプリケーションの動作時に消費されるプロセッサの消費電力値を算出する(ステップS2607)。
最後に、出力部406により、算出部403によって算出された算出結果を出力して(ステップS2608)、本フローチャートによる一連の処理を終了する。このとき出力される出力結果は、ステップS2606またはステップS2607において算出される算出結果のいずれであってもよい。
以上説明した実施の形態3によれば、消費電力と温度との関係を表現する関数モデルを用いて、特定の温度下での各モジュールの電力値を、プロセッサの温度下での各モジュールの電力値に補正することができる。この結果、ターゲットプロセッサの動作環境下における温度条件を考慮した消費電力を見積もることが可能となり、見積もり精度を向上させることができる。また、複数通りの温度下でのモジュールごとの電力値を予め保持しておく必要がないため消費電力ライブラリの記憶容量を低減させることができる。
以上説明したように、消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法によれば、プロセッサの消費電力を高速でかつ高精度に見積もることができる。
なお、本実施の形態で説明した消費電力見積方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
また、本実施の形態で説明した消費電力見積装置100,1800は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した消費電力見積装置100の機能的構成401〜406をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、消費電力見積装置100を製造することができる。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得手段、
前記取得手段によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更手段、
前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出手段、
前記算出手段によって算出された算出結果を出力する出力手段、
として機能をさせることを特徴とする消費電力見積プログラム。
(付記2)前記コンピュータを、
前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を、消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリから抽出する抽出手段として機能させ、
前記算出手段は、
前記抽出手段によって抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することを特徴とする付記1に記載の消費電力見積プログラム。
(付記3)前記算出手段は、
さらに、変更後の各命令の実行時に消費される電力値を積算することにより、前記アプリケーションの動作時に消費される前記プロセッサの電力値を算出することを特徴とする付記2に記載の消費電力見積プログラム。
(付記4)前記コンピュータを、
前記実行命令情報に基づいて、前記プロセッサ内のキャッシュメモリにアクセスする命令の実行時における前記キャッシュメモリのミス/ヒットを判断する判断手段として機能させ、
前記抽出手段は、
前記判断手段によって判断された判断結果および変更後の前記第2実行順序に基づいて、前記キャッシュメモリにアクセスする命令の実行時に消費されるモジュールごとの電力値を前記消費電力ライブラリから抽出することを特徴とする付記2または3に記載の消費電力見積プログラム。
(付記5)前記変更手段は、
前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される前記第1実行順序を、並列に実行可能な並列数に応じた前記第2実行順序に変更することを特徴とする付記1〜4のいずれか一つに記載の消費電力見積プログラム。
(付記6)前記算出手段は、
変更後の各命令の実行命令数に基づいて、当該各命令の実行時に消費される前記モジュールごとの電力値を算出することを特徴とする付記1に記載の消費電力見積プログラム。
(付記7)前記算出手段は、
変更後の各命令の演算種類に基づいて、当該各命令の実行時に消費される前記モジュールごとの電力値を算出することを特徴とする付記1に記載の消費電力見積プログラム。
(付記8)前記実行命令情報は、前記見積もり対象となるプロセッサの命令レベルシミュレータを利用して前記アプリケーションを動作させたときに実行される各命令の実行順序を表わす情報であり、
前記算出手段は、
前記実行命令情報から特定される前記第1実行順序に基づいて、前記アプリケーションの動作時に実行される各命令の実行時に消費される電力値を算出することを特徴とする付記1〜7のいずれか一つに記載の消費電力見積プログラム。
(付記9)前記アーキテクチャ情報は、前記プロセッサの動作環境下における当該プロセッサの温度を表わす情報を含んでおり、
前記消費電力ライブラリは、複数通りの温度における消費電力値を各命令とモジュールの性能と関連付けて保持しており、
前記抽出手段は、
前記アーキテクチャ情報に含まれる前記プロセッサの温度における変更後の各命令の実行時に消費される前記モジュールごとの電力値を、前記消費電力ライブラリから抽出することを特徴とする付記1〜8のいずれか一つに記載の消費電力見積プログラム。
(付記10)前記コンピュータを、
前記モジュールごとの電力値を補正する電力補正手段として機能させ、
前記抽出手段は、
前記プロセッサの温度に近似する第1および第2の温度における前記モジュールごとの電力値を前記消費電力ライブラリから抽出し、
前記電力補正手段は、
前記抽出手段によって抽出された第1および第2の温度における前記モジュールごとの電力値を用いて、前記プロセッサの温度における前記モジュールごとの電力値を補正し、
前記算出手段は、
前記電力補正手段によって補正された補正後のモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することを特徴とする付記9に記載の消費電力見積プログラム。
(付記11)前記アーキテクチャ情報は、前記プロセッサの動作環境下における前記プロセッサの温度を表わす情報を含んでおり、
前記消費電力ライブラリは、特定の温度における消費電力値を各命令とモジュールの性能と関連付けて保持しており、
前記コンピュータを、
前記モジュールごとの電力値を補正する電力補正手段として機能させ、
前記抽出手段は、
前記変更手段による変更後の各命令の実行時に消費される前記モジュールごとの電力値を、前記消費電力ライブラリから抽出し、
前記電力補正手段は、
消費電力値と温度との関係を表現する前記プロセッサ固有の関数モデルに、前記抽出手段によって抽出された特定の温度におけるモジュールごとの電力値と前記アーキテクチャ情報に含まれる前記プロセッサの温度とを与えることにより、前記プロセッサの温度における前記モジュールごとの電力値を補正し、
前記算出手段は、
前記電力補正手段によって補正された補正後のモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することを特徴とする付記1〜8のいずれか一つに記載の消費電力見積プログラム。
(付記12)前記電力補正手段は、
前記特定の温度における各モジュールの電力値と前記プロセッサの温度とを、消費電力値と温度との関係を表現する前記モジュール固有の関数モデルにそれぞれ与えることにより、前記プロセッサの温度における前記モジュールごとの電力値を補正することを特徴とする付記11に記載の消費電力見積プログラム。
(付記13)前記電力補正手段は、
前記特定の温度における各モジュールの電力値と前記プロセッサの温度とを、消費電力値と温度との関係を表現する前記モジュールを分類するモジュール種別固有の関数モデルにそれぞれ与えることにより、前記プロセッサの温度における前記モジュールごとの電力値を補正することを特徴とする付記11に記載の消費電力見積プログラム。
(付記14)前記算出手段は、
前記抽出手段によって抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出し、
前記電力補正手段は、
前記算出手段によって算出された各命令の実行時に消費される電力値と前記プロセッサの温度とを前記プロセッサ固有の関数モデルに与えることにより、前記プロセッサの温度における各命令の実行時に消費される電力値を補正し、
前記出力手段は、
前記電力補正手段によって補正された補正後の各命令の実行時に消費される電力値を出力することを特徴とする付記11に記載の消費電力見積プログラム。
(付記15)付記1〜14のいずれか一つに記載の消費電力見積プログラムを記録したコンピュータに読み取り可能な記録媒体。
(付記16)消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得手段と、
前記取得手段によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更手段と、
前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出手段と、
前記算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする消費電力見積装置。
(付記17)制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得工程と、
前記制御手段により、前記取得工程によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更工程と、
前記制御手段により、前記変更工程によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出工程と、
前記制御手段により、前記算出工程によって算出された算出結果を出力する出力工程と、
を実行することを特徴とする消費電力見積方法。
実施の形態1にかかる消費電力見積装置のハードウェア構成を示すブロック図である。 実施の形態1の概要を示す説明図である。 消費電力ライブラリの記憶内容を示す説明図(その1)である。 実施の形態1にかかる消費電力見積装置の機能的構成を示すブロック図である。 プロセッサのアーキテクチャ構成の一例を示す説明図である。 アーキテクチャ情報の具体例を示す説明図(その1)である。 命令シーケンスの具体例を示す説明図である。 変更後の命令シーケンスを示す説明図である。 アクセスシーケンスの具体例を示す説明図である。 算出結果の具体例を示す説明図である。 出力結果の具体例を示す説明図である。 既存のプロセッサのアーキテクチャ情報を示す説明図である。 既存のプロセッサの測定結果を示す説明図(その1)である。 既存のプロセッサの測定結果を示す説明図(その2)である。 実施の形態1にかかる消費電力見積装置の消費電力見積処理手順を示すフローチャートである。 消費電力ライブラリの記憶内容を示す説明図(その2)である。 アーキテクチャ情報の具体例を示す説明図(その2)である。 実施の形態2にかかる消費電力見積装置の機能的構成を示すブロック図である。 消費電力ライブラリの記憶内容を示す説明図(その3)である。 電力指標テーブルの記憶内容を示す説明図(その1)である。 係数テーブルの具体例を示す説明図(その1)である。 電力指標テーブルの記憶内容を示す説明図(その2)である。 対応テーブルの具体例を示す説明図である。 係数テーブルの具体例を示す説明図(その2)である。 電力指標テーブルの記憶内容を示す説明図(その3)である。 実施の形態3にかかる消費電力見積装置の消費電力見積処理手順を示すフローチャートである。
符号の説明
100,1800 消費電力見積装置
210 消費電力ライブラリ
300−1〜300−n 消費電力情報
401 取得部
402 変更部
403 算出部
404 抽出部
405 判断部
406 出力部
501 命令取出部
502 命令解釈部
503 実行制御部
504 メモリアクセス部
505 演算部
1100 出力結果
1210,1220,A アーキテクチャ情報
1300,1400 測定結果
1801 電力補正部
M1 Iキャッシュモジュール
M2 フェッチモジュール
M3 Dキャッシュモジュール
M4 演算器モジュール
S1,S2,S4 命令シーケンス
S3 アクセスシーケンス

Claims (9)

  1. コンピュータを、
    消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得手段、
    前記取得手段によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更手段、
    前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出手段、
    前記算出手段によって算出された算出結果を出力する出力手段、
    として機能をさせることを特徴とする消費電力見積プログラム。
  2. 前記コンピュータを、
    前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を、消費電力値を各命令とモジュールの性能と関連付けて保持する消費電力ライブラリから抽出する抽出手段として機能させ、
    前記算出手段は、
    前記抽出手段によって抽出されたモジュールごとの電力値を積算することにより、変更後の各命令の実行時に消費される電力値を算出することを特徴とする請求項1に記載の消費電力見積プログラム。
  3. 前記算出手段は、
    さらに、変更後の各命令の実行時に消費される電力値を積算することにより、前記アプリケーションの動作時に消費される前記プロセッサの電力値を算出することを特徴とする請求項2に記載の消費電力見積プログラム。
  4. 前記コンピュータを、
    前記実行命令情報に基づいて、前記プロセッサ内のキャッシュメモリにアクセスする命令の実行時における前記キャッシュメモリのミス/ヒットを判断する判断手段として機能させ、
    前記抽出手段は、
    前記判断手段によって判断された判断結果および変更後の前記第2実行順序に基づいて、前記キャッシュメモリにアクセスする命令の実行時に消費されるモジュールごとの電力値を前記消費電力ライブラリから抽出することを特徴とする請求項2または3に記載の消費電力見積プログラム。
  5. 前記実行命令情報は、
    前記見積もり対象となるプロセッサの命令レベルシミュレータを利用して前記アプリケーションを動作させたときに実行される各命令の実行順序を表わす情報であり、
    前記算出手段は、
    前記実行命令情報から特定される前記第1実行順序に基づいて、前記アプリケーションの動作時に実行される各命令の実行時に消費される電力値を算出することを特徴とする請求項1〜4のいずれか一つに記載の消費電力見積プログラム。
  6. 前記アーキテクチャ情報は、前記プロセッサの動作環境下における当該プロセッサの温度を表わす情報を含んでおり、
    前記消費電力ライブラリは、複数通りの温度における消費電力値を各命令とモジュールの性能と関連付けて保持しており、
    前記抽出手段は、
    前記アーキテクチャ情報に含まれる前記プロセッサの温度における変更後の各命令の実行時に消費される前記モジュールごとの電力値を、前記消費電力ライブラリから抽出することを特徴とする請求項2〜5のいずれか一つに記載の消費電力見積プログラム。
  7. 請求項1〜6のいずれか一つに記載の消費電力見積プログラムを記録したコンピュータに読み取り可能な記録媒体。
  8. 消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得手段と、
    前記取得手段によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更手段と、
    前記変更手段によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出手段と、
    前記算出手段によって算出された算出結果を出力する出力手段と、
    を備えることを特徴とする消費電力見積装置。
  9. 制御手段および記憶手段を備えるコンピュータが、
    前記制御手段により、消費電力の見積もり対象となるプロセッサを構成するモジュールの性能を表わすアーキテクチャ情報、および任意のアプリケーションの動作時に実行される各命令の実行順序を表わす実行命令情報を取得する取得工程と、
    前記制御手段により、前記取得工程によって取得された前記アーキテクチャ情報に基づいて、前記実行命令情報から特定される第1実行順序を、前記モジュールの性能に応じた第2実行順序に変更する変更工程と、
    前記制御手段により、前記変更工程によって変更された前記第2実行順序に基づいて、変更後の各命令の実行時に消費される前記モジュールごとの電力値を算出する算出工程と、
    前記制御手段により、前記算出工程によって算出された算出結果を出力する出力工程と、
    を実行することを特徴とする消費電力見積方法。
JP2008203095A 2007-12-05 2008-08-06 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法 Expired - Fee Related JP5277781B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008203095A JP5277781B2 (ja) 2007-12-05 2008-08-06 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007314951 2007-12-05
JP2007314951 2007-12-05
JP2008203095A JP5277781B2 (ja) 2007-12-05 2008-08-06 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法

Publications (2)

Publication Number Publication Date
JP2009157909A true JP2009157909A (ja) 2009-07-16
JP5277781B2 JP5277781B2 (ja) 2013-08-28

Family

ID=40961801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008203095A Expired - Fee Related JP5277781B2 (ja) 2007-12-05 2008-08-06 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法

Country Status (1)

Country Link
JP (1) JP5277781B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198288A (ja) * 2010-03-23 2011-10-06 Fuji Xerox Co Ltd 情報処理装置、情報処理システム、及び情報処理プログラム
JP2011242825A (ja) * 2010-05-14 2011-12-01 Fujitsu Ltd 消費電力情報算出プログラム、消費電力情報算出方法、及び消費電力情報算出装置
JP2013540295A (ja) * 2010-07-13 2013-10-31 アルゴトゥチップ コーポレーション アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187384A (ja) * 1991-02-26 1994-07-08 Texas Instr Inc <Ti> 設計方法及び設計支援装置
JPH0916642A (ja) * 1995-06-09 1997-01-17 Sharp Corp データ処理装置のアーキテクチャ評価方法
JPH09218731A (ja) * 1996-02-08 1997-08-19 Toshiba Corp マイクロプロセッサのパワーエスティメータ
JPH11161692A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP2000293557A (ja) * 1999-04-05 2000-10-20 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP2002108958A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP2006244354A (ja) * 2005-03-07 2006-09-14 Fujitsu Ltd 半導体集積回路の最適化方法および最適化プログラム
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187384A (ja) * 1991-02-26 1994-07-08 Texas Instr Inc <Ti> 設計方法及び設計支援装置
JPH0916642A (ja) * 1995-06-09 1997-01-17 Sharp Corp データ処理装置のアーキテクチャ評価方法
JPH09218731A (ja) * 1996-02-08 1997-08-19 Toshiba Corp マイクロプロセッサのパワーエスティメータ
JPH11161692A (ja) * 1997-11-28 1999-06-18 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP2000293557A (ja) * 1999-04-05 2000-10-20 Matsushita Electric Ind Co Ltd 消費電力のシミュレーション方法
JP2002108958A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 回路設計システム、回路設計方法および回路設計プログラムを格納したコンピュータ読取り可能な記録媒体
JP2006244354A (ja) * 2005-03-07 2006-09-14 Fujitsu Ltd 半導体集積回路の最適化方法および最適化プログラム
JP2007213556A (ja) * 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198288A (ja) * 2010-03-23 2011-10-06 Fuji Xerox Co Ltd 情報処理装置、情報処理システム、及び情報処理プログラム
JP2011242825A (ja) * 2010-05-14 2011-12-01 Fujitsu Ltd 消費電力情報算出プログラム、消費電力情報算出方法、及び消費電力情報算出装置
JP2013540295A (ja) * 2010-07-13 2013-10-31 アルゴトゥチップ コーポレーション アーキテクチャ・レベルの省電力指向の最適化およびリスク軽減

Also Published As

Publication number Publication date
JP5277781B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
JP4696051B2 (ja) 消費電力解析方法及びプログラム
US8065643B2 (en) Verification support apparatus, verification support method, and computer product
US11636246B2 (en) Systems and methods for predicting and managing power and energy use of semiconductor devices
JP5098970B2 (ja) リーク電流分布検証支援プログラム、リーク電流分布検証支援装置およびリーク電流分布検証支援方法
JP5277781B2 (ja) 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法
US8024685B2 (en) Delay analysis support apparatus, delay analysis support method and computer product
US10387600B2 (en) Dynamic power reduction in circuit designs and circuits
JP5370256B2 (ja) 解析支援プログラム、解析支援装置および解析支援方法
US20110283131A1 (en) Computer-readable recording medium, method, and apparatus for calculating power consumption information
JP5262442B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
KR102545171B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템에서 회로 설계에 대한 검증을 수행하는 방법
US8234613B2 (en) Program, design apparatus, and design method for dynamic reconfigurable circuit
JP4471794B2 (ja) タイミング解析装置、タイミング解析方法、タイミング解析プログラムおよび記録媒体
US7788643B2 (en) Method and apparatus for supporting verification of hardware and software, and computer product
JP5374937B2 (ja) 電力指標算出プログラム、電力指標算出装置、および電力指標算出方法
JP4924130B2 (ja) 消費電力解析支援プログラム、該プログラムを記録した記録媒体、および消費電力解析支援装置
JP6089627B2 (ja) 消費電力見積り装置および消費電力見積り方法
JP2007272288A (ja) 消費電力算出プログラム、記録媒体、消費電力算出方法、および消費電力算出装置
JP6175637B2 (ja) 電力見積支援プログラム、電力見積支援装置および電力見積支援方法
CN117744546B (zh) 数字电路评估方法、系统、设备及存储介质
US20230044581A1 (en) Learning-based power modeling of a processor core and systems with multiple processor cores
US9268898B1 (en) Estimating power consumption of a circuit design
JP5262403B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP5664274B2 (ja) 解析支援プログラム、解析支援装置、および解析支援方法
JP2006221473A (ja) 論理検証装置、論理検証方法および論理検証プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees