JP2011164758A - Compiler for vliw type processor, and system and method for developing program for vliw type processor - Google Patents
Compiler for vliw type processor, and system and method for developing program for vliw type processor Download PDFInfo
- 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
- program
- unit
- vliw processor
- computing
- usage information
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
Description
本発明は、VLIW型プロセッサ用コンパイラ、VLIW型プロセッサ用プログラム開発システムおよびVLIW型プロセッサ用プログラム開発方法に関する。 The present invention relates to a compiler for a VLIW processor, a program development system for a VLIW processor, and a program development method for a VLIW processor.
近年、携帯機器市場の拡大により、電池での動作時間を長くできる携帯機器用の低消費電力プロセッサシステムが要求されている。また、インターネットにおいてサービスを提供するために使用される高性能サーバにおいても、サーバ自体の電力やサーバを設置する部屋の温度管理に必要な電力が増加傾向にあり、サーバ用低消費電力プロセッサシステムが要求されている。このような要求を満たすための方法として、プロセッサシステム内部を複数のドメインに分け、少なくとも一部のドメインは低消費電力モードに設定可能とし、ドメインごとに電力制御を行う方法が知られている。 In recent years, with the expansion of the mobile device market, there has been a demand for a low power consumption processor system for mobile devices that can extend the operating time of the battery. In addition, even in high-performance servers used to provide services on the Internet, the power of the server itself and the power required for temperature management of the room where the server is installed are on the rise. It is requested. As a method for satisfying such a requirement, a method is known in which the inside of a processor system is divided into a plurality of domains, at least a part of the domains can be set to a low power consumption mode, and power control is performed for each domain.
例えば、マルチプロセッサシステムは複数のプロセッサを備え、処理を複数のプロセッサで分散して行う。このような構成において、複数のプロセッサのそれぞれにおいて、命令実行制御部によって命令実行状態を監視する。そして、命令アイドルカウンタにより一定時間の連続した停止状態が検出された場合、クロック分配制御部は、停止状態の検出されたプロセッサへのクロック供給を停止する。これにより、クロック供給の停止されたプロセッサの消費電力が低減できる。 For example, a multiprocessor system includes a plurality of processors, and processing is distributed among the plurality of processors. In such a configuration, the instruction execution state is monitored by the instruction execution control unit in each of the plurality of processors. When the instruction idle counter detects a continuous stop state for a predetermined time, the clock distribution control unit stops the clock supply to the processor in which the stop state is detected. Thereby, the power consumption of the processor whose clock supply is stopped can be reduced.
プロセッサの性能を向上する手法として、VLIW(Very Long Instruction Word set)型プロセッサが知られている。VLIW型プロセッサは、多数の命令入力端子を備え、複数の命令を同時に受け付けることが可能である。VLIW型プロセッサは、同時に受け付けた複数の命令を並列に実行する複数のスロットを備える。各スロットは、複数の演算器を備える。例えば、命令長が32ビットの命令を、8命令同時に受け付け可能なVLIW型プロセッサが実用化されている。 As a technique for improving the performance of a processor, a VLIW (Very Long Instruction Word set) type processor is known. The VLIW processor has a large number of instruction input terminals and can accept a plurality of instructions simultaneously. The VLIW processor has a plurality of slots for executing a plurality of instructions received simultaneously in parallel. Each slot includes a plurality of computing units. For example, a VLIW type processor that can accept an instruction having an instruction length of 32 bits and 8 instructions simultaneously has been put into practical use.
VLIW型プロセッサでプログラムを実行する場合、通常のプロセッサ用プログラムを並列に入力するようにしただけでは処理効率を十分に向上することは難しい。そこで、プログラムの内容に応じて各スロットで命令が効率的に実行できるように、デバッグおよび性能チューニングを行って実行形式プログラムを作成する。このデバッグおよび性能チューニングは、VLIW型プロセッサ用コンパイラを含むVLIW型プロセッサ用プログラム開発システムを使用して、プログラムソースコードおよびコンパイルオプションに基づいて行われる。 When a program is executed by a VLIW type processor, it is difficult to sufficiently improve the processing efficiency only by inputting a normal processor program in parallel. Therefore, an execution format program is created by performing debugging and performance tuning so that instructions can be efficiently executed in each slot according to the contents of the program. This debugging and performance tuning is performed based on program source code and compile options using a VLIW processor program development system including a VLIW processor compiler.
VLIW型プロセッサ用プログラム開発システムは、コンピュータにおいてソフトウエアにより実現される。図1は、広く知られているコンピュータのハードウエア構成を示す図である。図1に示すように、コンピュータは、CPU11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、外部メモリであるディスク装置17を駆動するドライブ装置16と、バス18と、を備える。コンピュータについての説明は省略する。
The program development system for a VLIW processor is realized by software in a computer. FIG. 1 is a diagram showing a hardware configuration of a widely known computer. As shown in FIG. 1, the computer includes a
図2は、VLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 FIG. 2 is a block diagram showing a configuration of a program development system for a VLIW processor.
図2に示すように、VLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、を備える。実行形式プログラム記憶部24に記憶された実行形式プログラムは、実物のVLIW型プロセッサ31または命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサ31で実行される。ここでは、実物または仮想のVLIW型プロセッサ31は、開発システム20に含まれるものとして説明する。
As shown in FIG. 2, the VLIW processor
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は同一の構成を備える。
The VLIW
図3は、VLIW型プロセッサ用プログラム開発システムにおける実行形式プログラムの作成処理を示すフローチャートである。 FIG. 3 is a flowchart showing an execution format program creation process in the VLIW processor program development system.
図3に示すように、コンパイラ21は、プログラムソースコード記憶部22に記憶されたプログラムソースコードと、通常コンパイルオプション記憶部23に記憶された通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。
As shown in FIG. 3, the
図4は、VLIW型プロセッサ用プログラム開発システムにおけるプログラム開発処理を示すフローチャートである。コンパイラ21は、図4に示すように、デバッグ処理51と性能チューニング処理52を繰り返して最適な実行形式プログラムを作成する。
FIG. 4 is a flowchart showing a program development process in the VLIW processor program development system. As shown in FIG. 4, the
VLIW型プロセッサを使用する場合にも、ドメインごとに電力制御を行う上記の方法を適用して、一定時間の連続した停止状態が検出された演算器を低消費電力モードにすることにより、VLIW型プロセッサの消費電力を低減することが考えられる。図2のVLIW型プロセッサ31に設けられた電力制御部37は、一定時間の連続した停止状態が検出された演算器を低消費電力モードにするように制御して、消費電力を低減する。
Even when a VLIW type processor is used, the above-mentioned method of performing power control for each domain is applied, and a computing unit in which a continuous stop state for a certain time is detected is set to a low power consumption mode, whereby the VLIW type processor is used. It is conceivable to reduce the power consumption of the processor. The
このような電力制御を行う場合、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加させることにより、消費電力をいっそう低減可能である。 When such power control is performed, the power consumption can be further reduced by increasing the number of arithmetic units to be set in the low power consumption mode and the period in which the arithmetic units are in the low power consumption mode.
しかし、これまで使用されているVLIW型プロセッサ用コンパイラは、処理効率を向上して処理速度を増加することを主眼としており、電力制御を考慮しないで実行形式プログラムを生成していた。そのため、各スロットの演算器の未使用時間が短く、一定時間連続して停止状態になる演算器の個数が少ないため、低消費電力モードにする演算器の個数および演算器を低消費電力モードにする期間を増加できなかった。従って、VLIW型プロセッサに上記の電力制御を適用する場合でも、VLIW型プロセッサの消費電力を十分に低減することはできなかった。 However, VLIW processor compilers used so far have been aimed at improving processing efficiency and increasing processing speed, and have generated executable programs without considering power control. Therefore, the unused time of the computing units in each slot is short, and the number of computing units that are stopped for a certain period of time is small. Therefore, the number of computing units that are set to the low power consumption mode and the computing units are set to the low power consumption mode. I could not increase the period. Therefore, even when the above power control is applied to the VLIW processor, the power consumption of the VLIW processor cannot be sufficiently reduced.
また、これまで使用されているVLIW型プロセッサコンパイラは、プログラムの内容解析などについて高い処理効率を実現するための複雑な処理を行っており、ユーザがスロットの変更や演算器の変更を行えるようには作られていなかった。 In addition, the VLIW processor compilers used so far perform complex processing to achieve high processing efficiency for program content analysis, etc., so that users can change slots and calculators. Was not made.
実施形態は、VLIW型プロセッサにおいて連続して使用しない演算器を低消費電力モードに設定する電力制御を効率的に行えるVLIW型プロセッサ用プログラムの開発を、容易に行えるプログラム開発システムを記載する。 The embodiment describes a program development system that can easily develop a program for a VLIW processor that can efficiently perform power control for setting a computing unit that is not continuously used in the VLIW processor to a low power consumption mode.
実施形態の第1の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発システムである。このVLIW型プロセッサ用開発システムは、VLIW型プロセッサ用コンパイラと、コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備える。 A first aspect of the embodiment is a VLIW processor program development system that includes a plurality of slots each having a plurality of computing units, and at least a part of the plurality of computing units can be set in a low power consumption mode. . The VLIW processor development system includes a VLIW processor compiler, a calculator usage information generator that generates calculator usage information used when executing a program output by the compiler, and power control based on the usage information. A computing unit usage information output unit that outputs computing unit usage information for supporting generation of compile options, and the VLIW processor compiler has a power control compile option that instructs a change of a computing unit used in each slot. An input interface is provided.
また、実施形態の第2の態様は、複数の演算器をそれぞれ有する複数のスロットを備え、複数の演算器の少なくとも一部は低消費電力モードに設定可能であるVLIW型プロセッサ用プログラムの開発方法である。このVLIW型プロセッサ用プログラム開発方法は、VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とする。 A second aspect of the embodiment is a method for developing a program for a VLIW processor that includes a plurality of slots each having a plurality of computing units, and at least a part of the plurality of computing units can be set in a low power consumption mode. It is. This VLIW processor program development method uses a VLIW processor compiler to create a pre-power tuning program by performing debugging and performance tuning based on the program source code and compile options. It is characterized in that usage information of a computing unit to be used at the time of execution is generated, and the computing unit used in each slot is changed from the usage information so that the same computing unit is not used for a long time.
実施形態によれば、VLIW型プロセッサを使用してプログラムを実行する場合に、低消費電力モードに設定可能な演算器の個数および演算器を低消費電力モードにする期間を増加することができる実行形式プログラムを作成することが可能になり、VLIW型プロセッサを使用する場合の消費電力を低減できる。 According to the embodiment, when a program is executed using a VLIW processor, the number of arithmetic units that can be set in the low power consumption mode and the period during which the arithmetic unit is set in the low power consumption mode can be increased. A formal program can be created, and power consumption when a VLIW processor is used can be reduced.
また、実施形態によれば、このようなVLIW型プロセッサ用の実行形式プログラムを容易に作成できる。 Further, according to the embodiment, it is possible to easily create an execution format program for such a VLIW type processor.
第1実施形態のVLIW型プロセッサ用プログラム開発システムは、図1に示したようなハードウエア構成を備えるコンピュータ上でソフトウエアにより実現され、図2に示したようなVLIW型プロセッサ31の実行形式プログラムが、この開発システムを使用して作成される。
The program development system for the VLIW processor of the first embodiment is realized by software on a computer having a hardware configuration as shown in FIG. 1, and is an executable program of the
図5は、第1実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 FIG. 5 is a block diagram showing the configuration of the VLIW processor program development system of the first embodiment.
図5に示すように、第1実施形態のVLIW型プロセッサ用プログラム開発システム20は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用情報生成部28と、演算器使用情報出力部29と、を備える。プログラムソースコード記憶部22、通常コンパイルオプション記憶部23および実行形式プログラム記憶部24は、図2に示したものと類似の構成および機能を備える。VLIW型プロセッサ用コンパイラ21は、図2に示したものと同様に、プログラムソースコードと、通常コンパイルオプションから、実行形式プログラムを作成して実行形式プログラム記憶部24に記憶する。
As shown in FIG. 5, the VLIW processor
VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。更に、VLIW型プロセッサ用コンパイラ21は、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理を実行する。電力チューニング処理の結果作成された演算器使用数が削減された実行形式プログラムは、演算器使用数が削減された実行形式プログラム記憶部27に記憶される。
The
演算器使用情報生成部28は、実物または仮想のVLIW型プロセッサ31がVLIW型プロセッサ用コンパイラ21が出力したプログラムを実行する時の演算器に関する情報を受け、オペレータに提示する演算器使用情報を生成する。演算器使用情報生成部28は、ソフトウエアで実現される。演算器使用情報出力部92は、演算器使用情報生成部91の生成した使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報をオペレータに出力する部分で、表示装置14およびそのドライバプログラムなどで実現される。
The computing unit usage
図6は、第1実施形態におけるVLIW型プロセッサ用コンパイラ21の内部構成を示す図である。図3に示したのと同様に、VLIW型プロセッサ用コンパイラ21は、通常コンパイルオプションを参照しながら、プログラムソースコードの字句解析処理41と、構文解析処理42と、意味解析処理43と、コード最適化処理44と、コード生成処理45と、を実行して実行形式プログラムを作成する。
FIG. 6 is a diagram showing an internal configuration of the
更に、VLIW型プロセッサ用コンパイラ21は、インターフェース26を介して、電力制御向けコンパイルオプションを受け取る。電力制御向けコンパイルオプションは、プロセッサ内部の演算器の有効(使用)、無効(不使用)を示す情報であり、この情報に基づいて、VLIW型プロセッサ用コンパイラ21内部のプロセッサ演算器情報が更新(変更)される。プロセッサ演算器情報は、コンパイラにおけるコード最適化処理の入力になり、プロセッサ演算器情報により指示された有効(使用)な演算器を使用する場合に適したプログラムが作成される。
Furthermore, the
図7は、第1実施形態のVLIW型プロセッサ用プログラム開発システム20におけるプログラム開発処理を示すフローチャートである。図4で説明したように、デバッグ処理51と性能チューニング処理52を行って、実行形式プログラムが作成され、実行形式プログラム記憶部24に記憶される。第1実施形態では、実行形式プログラム記憶部24に記憶された実行形式プログラムに対して、電力制御向けコンパイルオプションを参照して電力チューニング処理53を実行する。電力チューニング処理53では、電力測定処理54と、電力制御コンパイルオプション作成処理55と、電力測定処理54および電力制御コンパイルオプション作成処理55を繰り返すかを判定する処理56と、を行う。そして、電力チューニング処理53の最後に、調査した情報の中から性能と消費電力を最適にする電力制御コンパイルオプションを選択する処理57を行う。
FIG. 7 is a flowchart showing a program development process in the VLIW processor
図8の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、電力チューニング前実行形式プログラムに電力チューニング処理を行って生成され、演算器使用数が削減された実行形式プログラム記憶部24に記憶された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。言い換えれば、図8の(A)は、これまでのVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。図8の(B)は、第1実施形態のVLIW型プロセッサ用プログラム開発システムで作成した実行形式プログラムにおける演算器の使用例を示す。演算器使用情報生成部28は、このような演算器の使用情報に基づいて、オペレータに提示する演算器使用情報を生成する。
FIG. 8A shows an example of the use of an arithmetic unit in an execution format program before power tuning, which is created at the stage of performance tuning and stored in the execution format
図8の(A)に示すように、実行ステップの順に、第1スロットでは演算器A、A、B、Cを使用する命令が実行され、第2スロットでは演算器B、C、A、Aを使用する命令が実行される。従って、第1スロットの3個の演算器A、B、Cおよび第2スロットの3個の演算器A、B、Cは、4つの実行ステップの間に、1回は使用される。 As shown in FIG. 8A, in the order of execution steps, instructions that use the arithmetic units A, A, B, and C are executed in the first slot, and arithmetic units B, C, A, and A are executed in the second slot. An instruction using is executed. Accordingly, the three arithmetic units A, B, and C in the first slot and the three arithmetic units A, B, and C in the second slot are used once during the four execution steps.
電力チューニングでは、2番目の実行ステップに着目する。2番目の実行ステップでは、演算器Aを使用する命令が第1スロットで実行され、演算器Cを使用する命令が第2スロットで実行される。ここで、図8の(B)に示すように、2番目の実行ステップで、演算器Aを使用する命令を第2スロットで実行し、演算器Cを使用する命令を第1スロットで実行するように変更する。これにより、第2スロットの演算器Cは、4つの実行ステップの間に1回も使用されない。従って、第2スロットの演算器Cは、連続して長時間使用されないので、低消費電力モードに設定されることになる。使用する演算器の変更は、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより行う。
In power tuning, focus on the second execution step. In the second execution step, an instruction using the arithmetic unit A is executed in the first slot, and an instruction using the arithmetic unit C is executed in the second slot. Here, as shown in FIG. 8B, in the second execution step, an instruction using the arithmetic unit A is executed in the second slot, and an instruction using the arithmetic unit C is executed in the first slot. Change as follows. Thus, the computing unit C in the second slot is not used once during the four execution steps. Therefore, the computing unit C in the second slot is not used continuously for a long time, and is therefore set in the low power consumption mode. The operator to be used is changed by the operator creating a power control compile option and instructing the
図9の(A)は、性能チューニングの段階で作成され、実行形式プログラム記憶部24に記憶された電力チューニング前の実行形式プログラムにおける演算器の別の使用例を示す。図9の(B)は、図9の(A)の電力チューニング前実行形式プログラムに電力チューニング処理を行って生成された電力チューニング後の実行形式プログラムにおける演算器の使用例を示す。
FIG. 9A shows another usage example of the arithmetic unit in the execution format program before power tuning, which is created at the stage of performance tuning and stored in the execution format
図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回も使用されない。このように、実行ステップ数の増加(実行速度の低下)が問題にならない範囲で、消費電力の低減を優先することも可能である。言い換えれば、実行ステップ数の増加と、連続して長時間使用されない演算器の出現による消費電力の低減は、トレードオフの関係にあり、性能を考慮して適宜決定することが望ましい。 As shown in FIG. 9A, in the order of execution steps, instructions that use the arithmetic units A, C, B, and C are executed in the first slot, and the arithmetic units B, C, A, and A are executed in the second slot. An instruction using is executed. In the second execution step, an instruction using the arithmetic unit C is executed in the first slot, and an instruction using the arithmetic unit C is executed in the second slot. In other words, an instruction using the arithmetic unit C is executed in both the first and second slots. Also in this case, attention is paid to the second execution step in the power tuning. As shown in FIG. 9B, the two instructions using the arithmetic unit C executed in the second execution step of FIG. 9A are changed to be executed only in the first slot. As a result of this change, the number of execution steps is increased by 1 compared to the example of FIG. 9A, but the computing unit C in the second slot is not used once during the five execution steps. As described above, it is possible to give priority to the reduction of power consumption within the range where the increase in the number of execution steps (decrease in the execution speed) does not become a problem. In other words, an increase in the number of execution steps and a reduction in power consumption due to the appearance of arithmetic units that are not used continuously for a long time are in a trade-off relationship, and it is desirable to appropriately determine in consideration of performance.
以上説明したように、第1実施形態では、オペレータが電力制御コンパイルオプションを作成し、インターフェース26を介してコンパイラ21に指示することにより、使用する演算器の変更が可能である。これにより、連続して長時間使用されない演算器が存在するようにし、その演算器を低消費電力モードにすることにより消費電力を低減することが可能である。
As described above, in the first embodiment, the operator can change the computing unit to be used by creating a power control compilation option and instructing the
図10は、第2実施形態のVLIW型プロセッサ用プログラム開発システムの構成を示すブロック図である。 FIG. 10 is a block diagram illustrating a configuration of a program development system for a VLIW processor according to the second embodiment.
図10に示すように、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、VLIW型プロセッサ用コンパイラ21と、プログラムソースコード記憶部22と、通常コンパイルオプション記憶部23と、実行形式プログラム記憶部24と、電力制御向けコンパイルオプション記憶部25と、演算器使用数が削減された実行形式プログラム記憶部27と、演算器使用ログ記憶部71と、電力制御コンパイルオプション作成支援装置72と、オプション作成支援情報記憶部73と、プロセッサ31と、を備える。VLIW型プロセッサ用コンパイラ21は、電力制御向けコンパイルオプション記憶部25に記憶された電力制御向けコンパイルオプションが入力されるインターフェース26を備える。
As shown in FIG. 10, a VLIW processor
第2実施形態のVLIW型プロセッサ用プログラム開発システム70において、VLIW型プロセッサ用コンパイラ21、プログラムソースコード記憶部22、通常コンパイルオプション記憶部23、実行形式プログラム記憶部24、電力制御向けコンパイルオプション記憶部25および演算器使用数が削減された実行形式プログラム記憶部27は、第1実施形態と同じである。言い換えれば、第2実施形態のVLIW型プロセッサ用プログラム開発システム70は、演算器使用ログ記憶部71、電力制御コンパイルオプション作成支援装置72およびオプション作成支援情報記憶部73を加えたこと、およびプロセッサ31が演算器使用ログ生成器38をさらに備えることが、第1実施形態の開発システム20と異なる。プロセッサ31は、実物のハードウエアであっても、命令レベルシミュレータを利用してソフトウエアで実現された仮想のVLIW型プロセッサであってもよい。
In the VLIW processor
プロセッサ31は、実行形式プログラム記憶部24に記憶された実行形式プログラムを実行し、演算器使用ログ生成器38が、そのプログラムによる演算器の使用状況と命令アドレスをプロセッササイクルごとに出力する。ここで、演算器の使用状況と命令アドレスを演算器使用ログと称する。プロセッサ31から出力された演算器使用ログは、演算器使用ログ記憶部71に記憶される。
The
電力制御コンパイルオプション作成支援装置72は、演算器使用ログ記憶部71に記憶された演算器使用ログを入力として、演算器の使用状況を示す電力制御向けコンパイルオプション作成支援情報を生成する。したがって、第2実施形態では、電力制御コンパイルオプション作成支援装置72が、演算器使用情報生成部28に対応する。電力制御向けコンパイルオプション作成支援情報は、オプション作成支援情報記憶部73に記憶されると共に、オペレータに提示される。オペレータは、電力制御向けコンパイルオプション作成支援情報を参照しながら、電力制御向けコンパイルオプションを作成する。
The power control compile option
図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の演算パイプラインの各部に接続されている。
FIG. 11 is a diagram illustrating an internal configuration of the
図12は、第2実施形態における演算器使用ログ生成器38の内部構成を示す図である。プロセッサ31は、演算パイプライン80を備える。演算パイプライン80は、前述のフェッチ部32、デコード部33および実行部34に加えて、メモリアクセス部80およびレジスタアクセス部82を備える。演算器使用ログ生成器38は、フェッチ部32から命令アドレスを受け取り、そのアドレス値を演算パイプライン80での実行フェーズまで保持するために、デコード部PC(プログラムカウンタ)87および実行部PC(プログラムカウンタ)88を備え、さらに制御部86を備える。演算器使用ログ生成器38は、演算パイプライン80からパイプラインの動作に関する情報を受け取り、実行部で実際に実行された命令のPCを出力することが可能である。
FIG. 12 is a diagram showing an internal configuration of the arithmetic unit
演算器使用ログ生成器38は、このような構成を備えるので、分岐予測機構などにより投機的にプロセッサ31のパイプライン80に入力された命令、すなわち実行することが確定していない命令のうち、実行部34の演算器で実行されなかった命令はログ出力の対象外にすることが可能となり、実行部34の演算器で実行した命令のみをログ出力することができる。
Since the arithmetic unit
演算器使用ログ生成器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進む。
There are various types of information that can be output by the calculator
図14は、第2実施形態において、電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報の出力例を示す図である。図14に示した例では、縦軸にスロットと演算器の種別を表示し、演算器ごとに演算器使用回数を表示している。演算器使用回数を表示することにより、使用頻度の低い演算器をオペレータに通知することが可能になる。演算器使用回数は、オペレータが電力制御コンパイルオプションを作成する上で、有益な情報になる。横軸は、実行ステップ数で、それぞれの演算器が使用されたステップ数を横棒グラフで表示している。いずれかの横棒グラフを選択すると、そのアドレス(例えば100番地)が表示される。これにより、オペレータは、横棒グラフが離散的に表示されている部分のアドレスを知ることが可能になり、演算器の使用頻度が低い箇所をプログラム中から特定することが可能になる。
FIG. 14 is a diagram illustrating an output example of compile option creation support information for power control generated by the power control compile option
第2実施形態における演算器使用数が削減された実行形式プログラムの作成処理は、図7に示した第1実施形態と同じフローで行われる。しかし、オペレータは電力制御コンパイルオプション作成支援装置72が生成した電力制御向けコンパイルオプション作成支援情報を利用できるので、電力測定と電力制御コンパイルオプション作成の繰り返し回数を、第1実施形態より低減することが可能になる。
The execution format program creation process in which the number of computing units used in the second embodiment is reduced is performed in the same flow as in the first embodiment shown in FIG. However, since the operator can use the compile option creation support information for power control generated by the power control compile option
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。 Although the embodiment has been described above, all examples and conditions described herein are described for the purpose of helping understanding of the concept of the invention applied to the invention and the technology. It is not intended to limit the scope of the invention, and the construction of such examples in the specification does not indicate the advantages and disadvantages of the invention. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions and modifications can be made without departing from the spirit and scope of the invention.
以下、実施形態に関し、更に以下の付記を開示する。
(付記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型プロセッサ用プログラム開発方法。
Hereinafter, the following additional notes will be disclosed with respect to the embodiment.
(Appendix 1)
A compiler for a VLIW processor having a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
It has an interface for inputting power control compile options to instruct the change of the arithmetic unit used in each slot,
A compiler for a VLIW processor, which performs optimization according to a change in use of a specified arithmetic unit.
(Appendix 2)
A system for developing a program for a VLIW processor, comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
A compiler for a VLIW processor;
A computing unit usage information generating unit that generates usage information of a computing unit to be used when executing the program output by the compiler;
A computing unit usage information output unit that outputs computing unit usage information for supporting power control compilation option generation based on the usage information;
The VLIW processor compiler is a VLIW processor program development system including an interface to which a power control compile option for instructing a change of an arithmetic unit used in each slot is input.
(Appendix 3)
The VLIW processor program development system according to
(Appendix 4)
The VLIW processor program development system according to
(Appendix 5)
The VLIW according to any one of
(Appendix 6)
The VLIW processor program development system according to any one of
(Appendix 7)
The VLIW processor program development system according to any one of
(Appendix 8)
The VLIW processor program development system according to
(Appendix 9)
The computing unit usage information generation unit identifies an instruction that has been speculatively input to the VLIW type processor but has not been executed,
The VLIW processor program development system according to any one of
(Appendix 10)
A VLIW processor program development method comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode,
Using a VLIW processor compiler, create a pre-power tuning program by debugging and performance tuning based on the program source code and compile options,
Generate usage information of an arithmetic unit used when executing the program before power tuning,
A method for developing a program for a VLIW processor, characterized in that, based on the usage information, a computing unit used in each slot is changed so that the same computing unit is not used for a long time.
20 VLIW型プロセッサ用プログラム開発システム
21 VLIW型プロセッサ用コンパイラ
22 プログラムソースコード記憶部
23 通常コンパイルオプション記憶部
24 実行形式プログラム記憶部
25 電力制御向けコンパイルオプション記憶部
26 インターフェース
27 演算器使用数が削減された実行形式プログラム記憶部
28 演算器使用情報生成部
29 演算器使用情報出力部
20 Program Development System for
Claims (6)
各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備え、
指示された演算器の使用変更に応じた最適化を行うことを特徴とするVLIW型プロセッサ用コンパイラ。 A compiler for a VLIW processor having a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
It has an interface for inputting power control compile options to instruct the change of the arithmetic unit used in each slot,
A compiler for a VLIW processor, which performs optimization according to a change in use of a specified arithmetic unit.
VLIW型プロセッサ用コンパイラと、
前記コンパイラが出力したプログラムを実行する時に使用する演算器の使用情報を生成する演算器使用情報生成部と、
前記使用情報に基づいて電力制御コンパイルオプション生成を支援するための演算器使用情報を出力する演算器使用情報出力部と、を備え、
前記VLIW型プロセッサ用コンパイラは、各スロットで使用する演算器の変更を指示する電力制御コンパイルオプションが入力されるインターフェースを備えるVLIW型プロセッサ用プログラム開発システム。 A system for developing a program for a VLIW processor, comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode;
A compiler for a VLIW processor;
A computing unit usage information generating unit that generates usage information of a computing unit to be used when executing the program output by the compiler;
A computing unit usage information output unit that outputs computing unit usage information for supporting power control compilation option generation based on the usage information;
The VLIW processor compiler is a VLIW processor program development system including an interface to which a power control compile option for instructing a change of an arithmetic unit used in each slot is input.
VLIW型プロセッサ用コンパイラを使用して、プログラムソースコードおよびコンパイルオプションに基づいて、デバッグおよび性能チューニングを行って電力チューニング前プログラムを作成し、
前記電力チューニング前プログラムを実行する時に使用する演算器の使用情報を生成し、
前記使用情報から、同一の演算器が長時間使用されないように各スロットで使用する演算器を変更する、ことを特徴とするVLIW型プロセッサ用プログラム開発方法。 A VLIW processor program development method comprising a plurality of slots each having a plurality of computing units, wherein at least a part of the plurality of computing units can be set in a low power consumption mode,
Using a VLIW processor compiler, create a pre-power tuning program by debugging and performance tuning based on the program source code and compile options,
Generate usage information of an arithmetic unit used when executing the program before power tuning,
A method for developing a program for a VLIW processor, characterized in that, based on the usage information, a computing unit used in each slot is changed so that the same computing unit is not used for a long time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024266A JP2011164758A (en) | 2010-02-05 | 2010-02-05 | Compiler for vliw type processor, and system and method for developing program for vliw type processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024266A JP2011164758A (en) | 2010-02-05 | 2010-02-05 | Compiler for vliw type processor, and system and method for developing program for vliw type processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011164758A true JP2011164758A (en) | 2011-08-25 |
Family
ID=44595397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010024266A Pending JP2011164758A (en) | 2010-02-05 | 2010-02-05 | Compiler for vliw type processor, and system and method for developing program for vliw type processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011164758A (en) |
Cited By (1)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922318A (en) * | 1995-07-06 | 1997-01-21 | Hitachi Ltd | Processor and control method therefor |
JPH11316690A (en) * | 1997-12-23 | 1999-11-16 | Texas Instr Inc <Ti> | Data processor and computer program optimizing method |
JP2003296123A (en) * | 2002-01-30 | 2003-10-17 | Matsushita Electric Ind Co Ltd | Device and method for changing instruction to give power control information, program and circuit for changing instruction, and microprocessor to execute changed instruction |
JP2004234126A (en) * | 2003-01-28 | 2004-08-19 | Matsushita Electric Ind Co Ltd | Compiler and compiling method |
JP2008269529A (en) * | 2007-04-25 | 2008-11-06 | Toshiba Corp | Debug support device |
WO2008152790A1 (en) * | 2007-06-12 | 2008-12-18 | Panasonic Corporation | Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit |
-
2010
- 2010-02-05 JP JP2010024266A patent/JP2011164758A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922318A (en) * | 1995-07-06 | 1997-01-21 | Hitachi Ltd | Processor and control method therefor |
JPH11316690A (en) * | 1997-12-23 | 1999-11-16 | Texas Instr Inc <Ti> | Data processor and computer program optimizing method |
JP2003296123A (en) * | 2002-01-30 | 2003-10-17 | Matsushita Electric Ind Co Ltd | Device and method for changing instruction to give power control information, program and circuit for changing instruction, and microprocessor to execute changed instruction |
JP2004234126A (en) * | 2003-01-28 | 2004-08-19 | Matsushita Electric Ind Co Ltd | Compiler and compiling method |
JP2008269529A (en) * | 2007-04-25 | 2008-11-06 | Toshiba Corp | Debug support device |
WO2008152790A1 (en) * | 2007-06-12 | 2008-12-18 | Panasonic Corporation | Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit |
Non-Patent Citations (2)
Title |
---|
CSNG200300030010; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 * |
JPN6013042750; 大槻典正、武内良典、今井正治、浜口清治、柏原敏伸、引地信之: 'VLIWプロセッサにおける演算命令発行スロット数の最適化' 電子情報通信学会技術研究報告 Vol.97,No.445, 19971212, pp.89〜90, 社団法人電子情報通信学会 * |
Cited By (1)
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 |
---|---|---|
Böhm et al. | Cycle-accurate performance modelling in an ultra-fast just-in-time dynamic binary translation instruction set simulator | |
JP6373425B2 (en) | Instruction to shift multiple bits to the left and pull multiple 1s into multiple lower bits | |
KR20160007514A (en) | Processor that performs approximate computing instructions | |
JP2016207232A (en) | Processor, method, system, and program to relax synchronization of access to shared memory | |
US20140189288A1 (en) | Instruction to reduce elements in a vector register with strided access pattern | |
Ottoni et al. | Harmonia: a transparent, efficient, and harmonious dynamic binary translator targeting the Intel® architecture | |
WO2013147879A1 (en) | Dynamic branch hints using branches-to-nowhere conditional branch | |
Bhagyanath et al. | Exploring the potential of instruction-level parallelism of exposed datapath architectures with buffered processing units | |
Marena | RISC-V: high performance embedded SweRV™ core microarchitecture, performance and CHIPS Alliance | |
US8949777B2 (en) | Methods and systems for mapping a function pointer to the device code | |
US9684541B2 (en) | Method and apparatus for determining thread execution parallelism | |
US10877765B2 (en) | Apparatuses and methods to assign a logical thread to a physical thread | |
JP2011164758A (en) | Compiler for vliw type processor, and system and method for developing program for vliw type processor | |
Wong et al. | The Delft reconfigurable VLIW processor | |
JP2009075965A (en) | Software development method and software development device | |
Koranne | Practical Computing on the Cell Broadband Engine | |
Mishra et al. | Architecture description language driven design space exploration in the presence of coprocessors | |
US20230315453A1 (en) | Forward conditional branch event for profile-guided-optimization (pgo) | |
US11176278B2 (en) | Efficient rotate adder for implementing cryptographic basic operations | |
JP2011081623A (en) | Simulation device, method, and program | |
Harmsen | Specifying the WaveCore in CλaSH | |
Denisenko | OpenCL compiler tools for fpgas | |
Lin et al. | The Design and Experiments of A SID-Based Power-Aware Simulator for Embedded Multicore Systems | |
JP6245820B2 (en) | Reconfigurable processor verification support apparatus and method, and reconfigurable processor | |
Bell Jr et al. | Basic block simulation granularity, basic block maps, and benchmark synthesis using statistical simulation |
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 |