[go: up one dir, main page]

JP2011164758A - Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 - Google Patents

Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 Download PDF

Info

Publication number
JP2011164758A
JP2011164758A JP2010024266A JP2010024266A JP2011164758A JP 2011164758 A JP2011164758 A JP 2011164758A JP 2010024266 A JP2010024266 A JP 2010024266A JP 2010024266 A JP2010024266 A JP 2010024266A JP 2011164758 A JP2011164758 A JP 2011164758A
Authority
JP
Japan
Prior art keywords
unit
program
vliw processor
usage information
computing
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.)
Pending
Application number
JP2010024266A
Other languages
English (en)
Inventor
Atsushi Tanaka
篤志 田中
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 JP2010024266A priority Critical patent/JP2011164758A/ja
Publication of JP2011164758A publication Critical patent/JP2011164758A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるVLIW型プロセッサ用プログラムを容易に開発できる開発システムの実現。
【解決手段】複数の演算器36AA,36AB,36AC,36BA,36BB,36BCをそれぞれ有する複数のスロット35A,35Bを備え、演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムであって、VLIW型プロセッサ用コンパイラ21と、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部38と、使用情報に基づいて電力制御コンパイルオプションを生成して出力する演算器使用情報出力部72と、を備え、コンパイラ21は、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。
【選択図】図10

Description

本発明は、VLIW型プロセッサ用コンパイラ、VLIW型プロセッサ用プログラム開発システムおよびVLIW型プロセッサ用プログラム開発方法に関する。
近年、携帯機器市場の拡大により、電池での動作時間を長くできる携帯機器用の低消費電力プロセッサシステムが要求されている。また、インターネットにおいてサービスを提供するために使用される高性能サーバにおいても、サーバ自体の電力やサーバを設置する部屋の温度管理に必要な電力が増加傾向にあり、サーバ用低消費電力プロセッサシステムが要求されている。このような要求を満たすための方法として、プロセッサシステム内部を複数のドメインに分け、少なくとも一部のドメインは低消費電力モードに設定可能とし、ドメインごとに電力制御を行う方法が知られている。
例えば、マルチプロセッサシステムは複数のプロセッサを備え、処理を複数のプロセッサで分散して行う。このような構成において、複数のプロセッサのそれぞれにおいて、命令実行制御部によって命令実行状態を監視する。そして、命令アイドルカウンタにより一定時間の連続した停止状態が検出された場合、クロック分配制御部は、停止状態の検出されたプロセッサへのクロック供給を停止する。これにより、クロック供給の停止されたプロセッサの消費電力が低減できる。
プロセッサの性能を向上する手法として、VLIW(Very Long Instruction Word set)型プロセッサが知られている。VLIW型プロセッサは、多数の命令入力端子を備え、複数の命令を同時に受け付けることが可能である。VLIW型プロセッサは、同時に受け付けた複数の命令を並列に実行する複数のスロットを備える。各スロットは、複数の演算器を備える。例えば、命令長が32ビットの命令を、8命令同時に受け付け可能なVLIW型プロセッサが実用化されている。
VLIW型プロセッサでプログラムを実行する場合、通常のプロセッサ用プログラムを並列に入力するようにしただけでは処理効率を十分に向上することは難しい。そこで、プログラムの内容に応じて各スロットで命令が効率的に実行できるように、デバッグおよび性能チューニングを行って実行形式プログラムを作成する。このデバッグおよび性能チューニングは、VLIW型プロセッサ用コンパイラを含むVLIW型プロセッサ用プログラム開発システムを使用して、プログラムソースコードおよびコンパイルオプションに基づいて行われる。
VLIW型プロセッサ用プログラム開発システムは、コンピュータにおいてソフトウエアにより実現される。図1は、広く知られているコンピュータのハードウエア構成を示す図である。図1に示すように、コンピュータは、CPU11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、外部メモリであるディスク装置17を駆動するドライブ装置16と、バス18と、を備える。コンピュータについての説明は省略する。
図2は、VLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。
図2に示すように、VLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、を備える。実行形式プログラム記憶部24に記憶された実行形式プログラムは、実物のVLIW型プロセッサ31または命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサ31で実行される。ここでは、実物または仮想のVLIW型プロセッサ31は、開発システム20に含まれるものとして説明する。
VLIW型プロセッサ31は、命令をフェッチするフェッチ部32と、命令をデコードするデコード部33と、命令を実行する実行部34と、電力制御部37と、を備える。実行部34は、複数のスロットを備える。上記のように8スロットを備え、8命令を随時に受け付け可能なVLIW型プロセッサ31も実現されているが、ここでは、第1スロット35Aと第2スロット35Bの2個のスロットを備えるVLIW型プロセッサ31を例として、以下の説明を行う。第1スロット35Aは、演算器A36AAと、演算器B36ABと、演算器C36ACと、を備える。第2スロット35Bは、演算器A36BAと、演算器B36BBと、演算器C36BCと、を備える。各スロットの演算器に関する構成は、各種の変形例があり、各スロットが備える演算器の個数および種類を同一であることも、異ならせることも可能である。例えば、第1スロットが5個の演算器を備え、第2スロットが3個の演算器を備え、3個の演算器は共通にすることが可能である。また、8個のスロットを備える場合、4個のスロットを整数演算用とし、残りの4個のスロットを浮動小数点演算用とし、整数演算用の4個のスロットは同じ構成を備え、浮動小数点演算用の4個のスロットは同じ構成を備えるように構成することも可能である。ここでは、第1スロット35Aおよび第2スロット35Bの演算器に関する構成は、同一であるとして以下の説明を行う。従って、演算器A36AAおよび演算器A36BAは同一の構成を備え、演算器B36ABおよび演算器B36BBは同一の構成を備え、演算器C36ACおよび演算器C36BCは同一の構成を備える。
図3は、VLIW型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。
図3に示すように、コンパイラ21は、プログラムソースコード記憶部22に記憶されたプログラムソースコードと、通常コンパイルオプション記憶部23に記憶された通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。
図4は、VLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。コンパイラ21は、図4に示すように、デバッグ処理51と性能チューニング処理52を繰り返して最適な実行形式プログラムを作成する。
VLIW型プロセッサを使用する場合にも、ドメインごとに電力制御を行う上記の方法を適用して、一定時間の連続した停止状態が検出された演算器を低消費電力モードにすることにより、VLIW型プロセッサの消費電力を低減することが考えられる。図2のVLIW型プロセッサ31に設けられた電力制御部37は、一定時間の連続した停止状態が検出された演算器を低消費電力モードにするように制御して、消費電力を低減する。
このような電力制御を行う場合、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加させることにより、消費電力をいっそう低減可能である。
しかし、これまで使用されているVLIW型プロセッサ用コンパイラは、処理効率を向上して処理速度を増加することを主眼としており、電力制御を考慮しないで実行形式プログラムを生成していた。そのため、各スロットの演算器の未使用時間が短く、一定時間連続して停止状態になる演算器の個数が少ないため、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加できなかった。従って、VLIW型プロセッサに上記の電力制御を適用する場合でも、VLIW型プロセッサの消費電力を十分に低減することはできなかった。
また、これまで使用されているVLIW型プロセッサコンパイラは、プログラムの内容解析などについて高い処理効率を実現するための複雑な処理を行っており、ユーザがスロットの変更や演算器の変更を行えるようには作られていなかった。
特開2000−181881号公報 特開2000−112559号公報
http://img.jp.fujitsu.com/download/jp/jmag/vol155-6/paper04.pdf
実施形態は、VLIW型プロセッサにおいて連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるVLIW型プロセッサ用プログラムの開発を、容易に行えるプログラム開発システムを記載する。
実施形態の第1の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムである。このVLIW型プロセッサ用開発システムは、VLIW型プロセッサ用コンパイラと、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。
また、実施形態の第2の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法である。このVLIW型プロセッサ用プログラム開発方法は、VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とする。
実施形態によれば、VLIW型プロセッサを使用してプログラムを実行する場合に、低消費電力モードに設定可能な演算器の個数および演算器を低消費電力モードにする期間を増加することができる実行形式プログラムを作成することが可能になり、VLIW型プロセッサを使用する場合の消費電力を低減できる。
また、実施形態によれば、このようなVLIW型プロセッサ用の実行形式プログラムを容易に作成できる。
図1は、VLIW型プロセッサ用プログラム開発システムがソフトウエアにより実現されるコンピュータのハードウエア構成を示す図である。 図2は、VLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 図3は、VLIW型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。 図4は、VLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。 図5は、第1実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 図6は、第1実施形態におけるVLIW型プロセッサ用コンパイラの内部構成を示す図である。 図7は、第1実施形態のVLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。 図8は、第1実施形態において、電力チューニング前の実行形式プログラムにおける演算器の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の使用例を示す。 図9は、第1実施形態において、電力チューニング前の実行形式プログラムにおける演算器の別の使用例および電力チューニング後の演算器使用数が削減された実行形式プログラムにおける演算器の別の使用例を示す。 図10は、第2実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 図11は、第2実施形態におけるプロセッサの内部構成を示す図である。 図12は、第2実施形態における演算器使用ログ生成器の内部構成を示す図である。 図13は、演算器使用ログの構成例を示す図である。 図14は、第2実施形態において、電力制御コンパイルオプション作成支援装置が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。
第1実施形態のVLIW型プロセッサ用プログラム開発システムは、図1に示したようなハードウエア構成を備えるコンピュータ上でソフトウエアにより実現され、図2に示したようなVLIW型プロセッサ31の実行形式プログラムが、この開発システムを使用して作成される。
図5は、第1実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。
図5に示すように、第1実施形態のVLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用情報生成部28と、演算器使用情報出力部29と、を備える。プログラムソースコード記憶部22、通常コンパイルオプション記憶部23および実行形式プログラム記憶部24は、図2に示したものと類似の構成および機能を備える。VLIW型プロセッサ用コンパイラ21は、図2に示したものと同様に、プログラムソースコードと、通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。
VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。更に、VLIW型プロセッサ用コンパイラ21は、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理を実行する。電力チューニング処理の結果作成された演算器使用数が削減された実行形式プログラムは、演算器使用数が削減された実行形式プログラム記憶部27に記憶される。
演算器使用情報生成部28は、実物または仮想のVLIW型プロセッサ31がVLIW型プロセッサ用コンパイラ21が出力したプログラムを実行する時の演算器に関する情報を受け、オペレータに提示する演算器使用情報を生成する。演算器使用情報生成部28は、ソフトウエアで実現される。演算器使用情報出力部92は、演算器使用情報生成部91の生成した使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報をオペレータに出力する部分で、表示装置14およびそのドライバプログラムなどで実現される。
図6は、第1実施形態におけるVLIW型プロセッサ用コンパイラ21の内部構成を示す図である。図3に示したのと同様に、VLIW型プロセッサ用コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。
更に、VLIW型プロセッサ用コンパイラ21は、インターフェース26を介して、電力制御向けコンパイルオプションを受け取る。電力制御向けコンパイルオプションは、プロセッサ内部の演算器の有効(使用)、無効(不使用)を示す情報であり、この情報に基づいて、VLIW型プロセッサ用コンパイラ21内部のプロセッサ演算器情報が更新(変更)される。プロセッサ演算器情報は、コンパイラにおけるコード最適化処理の入力になり、プロセッサ演算器情報により指示された有効(使用)な演算器を使用する場合に適したプログラムが作成される。
図7は、第1実施形態のVLIW型プロセッサ用プログラム開発システム20におけるプログラム開発処理を示すフローチャートである。図4で説明したように、デバッグ処理51と性能チューニング処理52を行って、実行形式プログラムが作成され、実行形式プログラム記憶部24に記憶される。第1実施形態では、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理53を実行する。電力チューニング処理53では、電力測定処理54と、電力制御コンパイルオプション作成処理55と、電力測定処理54および電力制御コンパイルオプション作成処理55を繰り返すかを判定する処理56と、を行う。そして、電力チューニング処理53の最後に、調査した情報の中から性能と消費電力を最適にする電力制御コンパイルオプションを選択する処理57を行う。
図8の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、電力チューニング前実行形式プログラムに電力チューニング処理を行って生成され、演算器使用数が削減された実行形式プログラム記憶部24に記憶された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。言い換えれば、図8の(A)は、これまでのVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、第1実施形態のVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。演算器使用情報生成部28は、このような演算器の使用情報に基づいて、オペレータに提示する演算器使用情報を生成する。
図8の(A)に示すように、実行ステップの順に、第1スロットでは演算器A、A、B、Cを使用する命令が実行され、第2スロットでは演算器B、C、A、Aを使用する命令が実行される。従って、第1スロットの3個の演算器A、B、Cおよび第2スロットの3個の演算器A、B、Cは、4つの実行ステップの間に、1回は使用される。
電力チューニングでは、2番目の実行ステップに着目する。2番目の実行ステップでは、演算器Aを使用する命令が第1スロットで実行され、演算器Cを使用する命令が第2スロットで実行される。ここで、図8の(B)に示すように、2番目の実行ステップで、演算器Aを使用する命令を第2スロットで実行し、演算器Cを使用する命令を第1スロットで実行するように変更する。これにより、第2スロットの演算器Cは、4つの実行ステップの間に1回も使用されない。従って、第2スロットの演算器Cは、連続して長時間使用されないので、低消費電力モードに設定されることになる。使用する演算器の変更は、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより行う。
図9の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の別の使用例を示す。図9の(B)は、図9の(A)の電力チューニング前実行形式プログラムに電力チューニング処理を行って生成された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。
図9の(A)に示すように、実行ステップの順に、第1スロットでは演算器A、C、B、Cを使用する命令が実行され、第2スロットでは演算器B、C、A、Aを使用する命令が実行される。2番目の実行ステップでは、演算器Cを使用する命令が第1スロットで実行され、演算器Cを使用する命令が第2スロットで実行される。言い換えれば、第1および第2スロットの両方で、演算器Cを使用する命令が実行される。この場合も、電力チューニングでは2番目の実行ステップに着目する。図9の(B)に示すように、図9の(A)の2番目の実行ステップで実行される演算器Cを使用する2つの命令を、第1スロットのみで実行するように変更する。この変更により、図9の(A)の例に比べて、実行ステップ数は1増加するが、第2スロットの演算器Cは、5つの実行ステップの間に1回も使用されない。このように、実行ステップ数の増加(実行速度の低下)が問題にならない範囲で、消費電力の低減を優先することも可能である。言い換えれば、実行ステップ数の増加と、連続して長時間使用されない演算器の出現による消費電力の低減は、トレードオフの関係にあり、性能を考慮して適宜決定することが望ましい。
以上説明したように、第1実施形態では、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより、使用する演算器の変更が可能である。これにより、連続して長時間使用されない演算器が存在するようにし、その演算器を低消費電力モードにすることにより消費電力を低減することが可能である。
図10は、第2実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。
図10に示すように、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用ログ記憶部71と、電力制御コンパイルオプション作成支援装置72と、オプション作成支援情報記憶部73と、プロセッサ31と、を備える。VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。
第2実施形態のVLIW型プロセッサ用プログラム開発システム70において、VLIW型プロセッサ用コンパイラ21、プログラムソースコード記憶部22、通常コンパイルオプション記憶部23、実行形式プログラム記憶部24、電力制御向けコンパイルオプション記憶部25および演算器使用数が削減された実行形式プログラム記憶部27は、第1実施形態と同じである。言い換えれば、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、演算器使用ログ記憶部71、電力制御コンパイルオプション作成支援装置72およびオプション作成支援情報記憶部73を加えたこと、およびプロセッサ31が演算器使用ログ生成器38をさらに備えることが、第1実施形態の開発システム20と異なる。プロセッサ31は、実物のハードウエアであっても、命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサであってもよい。
プロセッサ31は、実行形式プログラム記憶部24に記憶された実行形式プログラムを実行し、演算器使用ログ生成器38が、そのプログラムによる演算器の使用状況と命令アドレスをプロセッササイクルごとに出力する。ここで、演算器の使用状況と命令アドレスを演算器使用ログと称する。プロセッサ31から出力された演算器使用ログは、演算器使用ログ記憶部71に記憶される。
電力制御コンパイルオプション作成支援装置72は、演算器使用ログ記憶部71に記憶された演算器使用ログを入力として、演算器の使用状況を示す電力制御向けコンパイルオプション作成支援情報を生成する。したがって、第2実施形態では、電力制御コンパイルオプション作成支援装置72が、演算器使用情報生成部28に対応する。電力制御向けコンパイルオプション作成支援情報は、オプション作成支援情報記憶部73に記憶されると共に、オペレータに提示される。オペレータは、電力制御向けコンパイルオプション作成支援情報を参照しながら、電力制御向けコンパイルオプションを作成する。
図11は、第2実施形態におけるプロセッサ31の内部構成を示す図である。第2実施形態におけるプロセッサ31は、命令をフェッチするフェッチ部32と、命令をデコードするデコード部33と、命令を実行する実行部34と、電力制御部37と、演算器使用ログ生成器38と、を備える。図11に示す例でも、実行部34は、第1スロット35Aと第2スロット35Bの2個のスロットを備える。第1スロット35Aは、演算器A36AAと、演算器B36ABと、演算器C36ACと、を備える。第2スロット35Aは、演算器A36BAと、演算器B36BBと、演算器C36BCと、を備える。第1スロット35Aおよび第2スロット35Bの演算器に関する構成は、同一である。言い換えれば、第2実施形態におけるプロセッサ31は、演算器使用ログ生成器38を備えることが第1実施形態と異なる。演算器使用ログ生成器38は、VLIW型プロセッサ31の演算パイプラインの各部に接続されている。
図12は、第2実施形態における演算器使用ログ生成器38の内部構成を示す図である。プロセッサ31は、演算パイプライン80を備える。演算パイプライン80は、前述のフェッチ部32、デコード部33および実行部34に加えて、メモリアクセス部80およびレジスタアクセス部82を備える。演算器使用ログ生成器38は、フェッチ部32から命令アドレスを受け取り、そのアドレス値を演算パイプライン80での実行フェーズまで保持するために、デコード部PC(プログラムカウンタ)87および実行部PC(プログラムカウンタ)88を備え、さらに制御部86を備える。演算器使用ログ生成器38は、演算パイプライン80からパイプラインの動作に関する情報を受け取り、実行部で実際に実行された命令のPCを出力することが可能である。
演算器使用ログ生成器38は、このような構成を備えるので、分岐予測機構などにより投機的にプロセッサ31のパイプライン80に入力された命令、すなわち実行することが確定していない命令のうち、実行部34の演算器で実行されなかった命令はログ出力の対象外にすることが可能となり、実行部34の演算器で実行した命令のみをログ出力することができる。
演算器使用ログ生成器38が出力可能な情報は様々であるが、第2実施形態では、図13に示すような演算器使用ログを生成して、演算器使用ログ記憶部71に記憶する。図13に示すように、演算器使用ログは、実行ステップの順番に対応して記憶した、各スロットで使用した演算器およびその命令アドレスを含む。図13において、スロットのA、B、Cは、各スロットで使用する演算器を示し、「0」は演算器を使用しないことを示す。例えば、実行ステップ1では、第1スロットで演算器Bが使用され、第2スロットは演算器を使用せず、この時の命令アドレスは0である。実行ステップ2では、第1スロットで演算器Aが使用され、第2スロットで演算器Bが使用され、この時の命令アドレスは4である。従って、実行ステップ1から2で、命令アドレスは4進む。実行ステップ3では、第1スロットで演算器Aが使用され、第2スロットでも演算器Aが使用され、この時の命令アドレスは12である。従って、実行ステップ2から3で、命令アドレスは8進む。
図14は、第2実施形態において、電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。図14に示した例では、縦軸にスロットと演算器の種別を表示し、演算器ごとに演算器使用回数を表示している。演算器使用回数を表示することにより、使用頻度の低い演算器をオペレータに通知することが可能になる。演算器使用回数は、オペレータが電力制御コンパイルオプションを作成する上で、有益な情報になる。横軸は、実行ステップ数で、それぞれの演算器が使用されたステップ数を横棒グラフで表示している。いずれかの横棒グラフを選択すると、そのアドレス(例えば100番地)が表示される。これにより、オペレータは、横棒グラフが離散的に表示されている部分のアドレスを知ることが可能になり、演算器の使用頻度が低い箇所をプログラム中から特定することが可能になる。
第2実施形態における演算器使用数が削減された実行形式プログラムの作成処理は、図7に示した第1実施形態と同じフローで行われる。しかし、オペレータは電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報を利用できるので、電力測定と電力制御コンパイルオプション作成の繰り返し回数を、第1実施形態より低減することが可能になる。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以下、実施形態に関し、更に以下の付記を開示する。
(付記1)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用コンパイラであって、
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするVLIW型プロセッサ用コンパイラ。
(付記2)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムであって、
VLIW型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるVLIW型プロセッサ用プログラム開発システム。
(付記3)
前記演算器使用情報生成部は、前記VLIW型プロセッサである付記2に記載のVLIW型プロセッサ用プログラム開発システム。
(付記4)
前記演算器使用情報生成部は、前記VLIW型プロセッサでのプログラムの実行をシミュレートする命令レベルシミュレータである付記2に記載のVLIW型プロセッサ用プログラム開発システム。
(付記5)
前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する付記2から4のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記6)
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する付記2から5のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記7)
前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する付記2から6のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記8)
前記演算器使用情報出力部は、実行ステップごとに表示した使用状態の演算器を指示すると、命令アドレスを表示する付記7に記載のVLIW型プロセッサ用プログラム開発システム。
(付記9)
前記演算器使用情報生成部は、前記VLIW型プロセッサに投機的に入力されたが実行されなかった命令を識別し、
前記演算器使用情報出力部は、前記投機的に入力されたが実行されなかった命令を、前記演算器使用情報として出力しない付記2から8のいずれかに記載のVLIW型プロセッサ用プログラム開発システム。
(付記10)
複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法であって、
VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするVLIW型プロセッサ用プログラム開発方法。
20 VLIW型プロセッサ用プログラム開発システム
21 VLIW型プロセッサ用コンパイラ
22 プログラムソースコード記憶部
23 通常コンパイルオプション記憶部
24 実行形式プログラム記憶部
25 電力制御向けコンパイルオプション記憶部
26 インターフェース
27 演算器使用数が削減された実行形式プログラム記憶部
28 演算器使用情報生成部
29 演算器使用情報出力部

Claims (6)

  1. 複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用コンパイラであって、
    各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
    指示された演算器の使用変更に応じた最適化を行うことを特徴とするVLIW型プロセッサ用コンパイラ。
  2. 複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムであって、
    VLIW型プロセッサ用コンパイラと、
    前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
    前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
    前記VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるVLIW型プロセッサ用プログラム開発システム。
  3. 前記演算器使用情報生成部は、実行ステップ数と、各スロットで使用される演算器と、命令アドレスと、を備える前記演算器の使用情報を生成する請求項2に記載のVLIW型プロセッサ用プログラム開発システム。
  4. 前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用回数を表示する請求項2または3に記載のVLIW型プロセッサ用プログラム開発システム。
  5. 前記演算器使用情報出力部は、前記複数のスロットの前記複数の演算器の使用状況を、実行ステップごとに表示する請求項2から4のいずれか1項に記載のVLIW型プロセッサ用プログラム開発システム。
  6. 複数の演算器をそれぞれ有する複数のスロットを備え、前記複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法であって、
    VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
    前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
    前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするVLIW型プロセッサ用プログラム開発方法。
JP2010024266A 2010-02-05 2010-02-05 Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法 Pending JP2011164758A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010024266A JP2011164758A (ja) 2010-02-05 2010-02-05 Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010024266A JP2011164758A (ja) 2010-02-05 2010-02-05 Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法

Publications (1)

Publication Number Publication Date
JP2011164758A true JP2011164758A (ja) 2011-08-25

Family

ID=44595397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010024266A Pending JP2011164758A (ja) 2010-02-05 2010-02-05 Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法

Country Status (1)

Country Link
JP (1) JP2011164758A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042645B2 (en) 2015-05-12 2018-08-07 Fujitsu Limited Method and apparatus for compiling a program for execution by a plurality of processing units

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922318A (ja) * 1995-07-06 1997-01-21 Hitachi Ltd プロセッサ及びその制御方法
JPH11316690A (ja) * 1997-12-23 1999-11-16 Texas Instr Inc <Ti> データプロセッサおよびコンピュータプログラム最適化方法
JP2003296123A (ja) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2004234126A (ja) * 2003-01-28 2004-08-19 Matsushita Electric Ind Co Ltd コンパイラ装置およびコンパイル方法
JP2008269529A (ja) * 2007-04-25 2008-11-06 Toshiba Corp デバッグ支援装置
WO2008152790A1 (ja) * 2007-06-12 2008-12-18 Panasonic Corporation マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0922318A (ja) * 1995-07-06 1997-01-21 Hitachi Ltd プロセッサ及びその制御方法
JPH11316690A (ja) * 1997-12-23 1999-11-16 Texas Instr Inc <Ti> データプロセッサおよびコンピュータプログラム最適化方法
JP2003296123A (ja) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2004234126A (ja) * 2003-01-28 2004-08-19 Matsushita Electric Ind Co Ltd コンパイラ装置およびコンパイル方法
JP2008269529A (ja) * 2007-04-25 2008-11-06 Toshiba Corp デバッグ支援装置
WO2008152790A1 (ja) * 2007-06-12 2008-12-18 Panasonic Corporation マルチプロセッサ制御装置、マルチプロセッサ制御方法及びマルチプロセッサ制御回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200300030010; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 *
JPN6013042750; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042645B2 (en) 2015-05-12 2018-08-07 Fujitsu Limited Method and apparatus for compiling a program for execution by a plurality of processing units

Similar Documents

Publication Publication Date Title
Venkat et al. Harnessing ISA diversity: Design of a heterogeneous-ISA chip multiprocessor
CN105283858B (zh) 可执行近似计算指令的处理器
KR101817459B1 (ko) 1들을 최하위 비트들이 되도록 풀링하면서 비트들을 좌측으로 시프팅하기 위한 명령어
Böhm et al. Cycle-accurate performance modelling in an ultra-fast just-in-time dynamic binary translation instruction set simulator
Watkins et al. Software transparent dynamic binary translation for coarse-grain reconfigurable architectures
WO2017172122A1 (en) Auxiliary cache for reducing instruction fetch and decode bandwidth requirements
Bhagyanath et al. Exploring the potential of instruction-level parallelism of exposed datapath architectures with buffered processing units
Rokicki et al. Hardware-accelerated dynamic binary translation
CN105308555A (zh) 具有近似计算功能单元的处理器
WO2012145154A2 (en) Methods and systems for mapping a function pointer to the device code
WO2012154606A1 (en) Efficient conditional flow control compilation
US9684541B2 (en) Method and apparatus for determining thread execution parallelism
Ottoni et al. Harmonia: A transparent, efficient, and harmonious dynamic binary translator targeting the Intel® architecture
Chen et al. Canalis: A throughput-optimized framework for real-time stream processing of wireless communication
Wong et al. The Delft reconfigurable VLIW processor
JP2011164758A (ja) Vliw型プロセッサ用コンパイラ、vliw型プロセッサ用プログラム開発システムおよび方法
Luo et al. Qsim: Framework for cycle-accurate simulation on out-of-order processors based on QEMU
US20230315453A1 (en) Forward conditional branch event for profile-guided-optimization (pgo)
Koranne Practical computing on the cell broadband engine
Xie et al. An instruction inflation analyzing framework for dynamic binary translators
Wagstaff From high level architecture descriptions to fast instruction set simulators
Mishra et al. Architecture description language driven design space exploration in the presence of coprocessors
Rokicki et al. Supporting runtime reconfigurable VLIWs cores through dynamic binary translation
Spink et al. Efficient dual-isa support in a retargetable, asynchronous dynamic binary translator
van der Wijst An Accelerator based on the ρ-VEX Processor: an Exploration using OpenCL

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140107