JP3619861B2 - Pipeline information output method, output device therefor, and computer-readable recording medium - Google Patents

Pipeline information output method, output device therefor, and computer-readable recording medium Download PDF

Info

Publication number
JP3619861B2
JP3619861B2 JP12397099A JP12397099A JP3619861B2 JP 3619861 B2 JP3619861 B2 JP 3619861B2 JP 12397099 A JP12397099 A JP 12397099A JP 12397099 A JP12397099 A JP 12397099A JP 3619861 B2 JP3619861 B2 JP 3619861B2
Authority
JP
Japan
Prior art keywords
pipeline
instruction
source program
pipeline information
processing
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.)
Expired - Fee Related
Application number
JP12397099A
Other languages
Japanese (ja)
Other versions
JP2000315161A (en
Inventor
延佳 山地
正樹 青木
清文 鈴木
浩二 高原
豊 山中
治道 小泉
政人 森島
賢一 山本
恭伸 谷村
明 日下部
直史 杉本
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 JP12397099A priority Critical patent/JP3619861B2/en
Publication of JP2000315161A publication Critical patent/JP2000315161A/en
Application granted granted Critical
Publication of JP3619861B2 publication Critical patent/JP3619861B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パイプライン情報の出力方法などに関し、特にソ−スプログラムをコンバイラやアセンブラで翻訳したときのパイプライン部分についての命令群を出力することにより、利用者が、パイプライン化の状況やパイプライン処理で用いられる各命令の種別などをあらかじめ把握した上でソ−スプログラムのチュ−ニングを行なえるようにしたものである。なお、本明細書では必要に応じて「ソ−スプログラム」を単に「プログラム」と記す。
【0002】
一般に、プログラムの実行性能を高めるためには、利用者がソ−スプログラムの翻訳内容を確認しながら当該プログラムのチュ−ニング作業をより効率的に行なっていくことが望ましく、本発明はソ−スプログラムのパイプライン処理の対象部分についてもこの要請に応えられるようにしたものである。
【0003】
【従来の技術】
従来、利用者は、ソ−スプログラム翻訳時の最適化やベクトル化などの状況を示す出力情報を確認した上でハ−ドウェアの特性を考慮しながら、ベクトル演算などのようなパイプライン処理部分を含むソ−スプログラムのチュ−ニングをおこなっていた。
【0004】
すなわち、チュ−ニングの実行主体の利用者側には、パイプライン処理で用いられる命令の種別・順序や命令数、またパイプライン内での演算数などを示すパイプライン情報が提供されていなかった。
【0005】
【発明が解決しようとする課題】
このように、従来のプログラムチュ−ニングは、パイプライン情報をその判断材料としていないので、作業効率が悪いという問題点があった。
【0006】
そこで、本発明では、ソ−スプログラム翻訳時のパイプライン情報を求めて出力し、利用者がこの出力内容を参照できるようにして、プログラムチュ−ニングの効率化を図り、また、オブジェクトプログラムの実行性能を高めることを目的とする。
【0007】
【課題を解決するための手段】
本発明はこの課題を次のようにして解決する。
パイプライン処理の対象部分を含むソースプログラムの翻訳に際し、コンピュータを用いて、前記対象部分の翻訳により生成される命令群についてパイプライン処理で用いられる命令の種別、順序、命令数を示すパイプライン情報を求め、命令の種別ごとに時系列に前記パイプライン情報が示す処理手順がわかる画面を表示する。
【0008】
本発明においては、ソ−スプログラム翻訳時のパイプライン処理の命令群に関するパイプライン情報を出力するので、利用者はこの出力内容を参考にしてプログラムチュ−ニングを効率的に実行できる。
【0009】
本発明は、このような解決手段からなるパイプライン情報の出力方法や出力装置、および、パイプライン情報の出力処理をコンピュ−タに実現させるためのプログラムを格納したコンピュ−タ読み取り可能なプログラム記憶媒体、を対象としている。
【0010】
【発明の実施の形態】
図1乃至図8を参照して本発明の実施の形態を説明する。
【0011】
図1はソ−スプログラムと、それに対応のパイプライン情報の画面表示例とを示す説明図であり、1はソ−スプログラム,2はソ−スプログラム1をコンパイルしたときに画面表示されるパイプライン情報を示している。
【0012】
図2は図1のソ−スプログラムに対するパイプライン処理の概念を示す説明図であり、11はメモリ,12はロ−ド/ストアパイプライン(L/STパイプライン),13ベクトルレジスタ,14は乗算・加算パイプライン(M&Aパイプライン),15は除算パイプライン,16は加算パイプラインをそれぞれ示している。
【0013】
ソ−スプログラム1は、配列a,b,c,d,e,fについての、
a(i)=(b(i)+c(i)×d(i))÷e(i)+f(i)
の計1024回のル−プ演算からなっている。
【0014】
パイプライン情報2は、
・ベクトルロ−ド命令L,ベクトルストア命令S(L/STパイプライン)
・ベクトル乗算命令M,ベクトル加算命令A(M&Aパイプライン)
・ベクトル除算命令(DIVパイプライン)
・ベクトルマスク命令(MASKパイプライン)
からなっている。
【0015】
パイプライン情報2が示す処理手順は、
(1) 配列bをメモリ11からロ−ド/ストアパイプライン12経由でベクトルレジスタ13にロ−ドし、
(2) 配列cをメモリ11からロ−ド/ストアパイプライン12経由でベクトルレジスタ13にロ−ドし、
(3) 配列dをメモリ11からロ−ド/ストアパイプライン12経由でベクトルレジスタ13にロ−ドし、
(4) 乗算・加算パイプライン14で、ベクトルレジスタ13の配列cと配列dとを乗算し、
(5) 乗算・加算パイプライン14で、ベクトルレジスタ13の配列bと (4)の乗算結果とを加算し、
(6) 配列eをメモリ11からロ−ド/ストアパイプライン12経由でベクトルレジスタ13にロ−ドし、
(7) 配列fをメモリ11からロ−ド/ストアパイプライン12経由でベクトルレジスタ13にロ−ドし、
(8) 除算パイプライン15で、 (5)の加算結果を配列eで除算し、
(9) 加算パイプライン16で、配列fと (8)の結果とを加算し、
(10)ベクトルレジスタ13の配列aに (9)の加算結果をストアする、
となっている。
【0016】
このとき、
・ロ−ド/ストアパイプライン12への上記(3) のベクトルロ−ド命令の割り付け
・乗算・加算パイプライン14への上記(4) のベクトル乗算命令の割り付け
が同じタイミングで行われる。
【0017】
また、
・ロ−ド/ストアパイプライン12への上記(7) のベクトルロ−ド命令の割り付け
・除算パイプライン15への上記(8) のベクトル除算命令の割り付け
・加算パイプライン16への上記(9) のベクトル加算命令の割り付け
が同じタイミングで行われる。
【0018】
もっとも同じタイミングでベクトル命令が割りつけられた各パイプラインに対応のハ−ドウェア(演算回路)は、そこでの処理に必要なデ−タを受け取った上で命令内容を実行するように制御される。
【0019】
例えば加算パイプライン16に対応の演算回路は、除算パイプライン15の出力と、上記(7) のベクトルロ−ド命令でベクトルレジスタ13にロ−ドされた配列fとを受け取った上で、両者の加算処理を実行する。
【0020】
図1のパイプライン情報2から利用者が確認できるのは、
・乗算命令と加算命令が個々に存在し、乗算と加算に関する複合命令Uが生成されていないこと
・全体の命令数は10個(ロ−ド命令が5,ストア命令が1,乗算命令が1,加算命令が2,除算命令が1)なのでパイプライン内の演算が少ないこと
などである。
【0021】
以上の確認内容に基づいて以下のようなチュ−ニング項目を抽出できる。
▲1▼複合命令Uを使用するオプションをコマンドプロセッサに指定する。
▲2▼複合命令Uを使用する最適化制御行をソ−スプログラムに付加する。
▲3▼ル−プ演算の回数が半分となるソ−スプログラム内容に修正して、パイプライン内の演算数を倍にする。
【0022】
上記▲1▼および▲2▼のチュ−ニング項目はコンパイラの最適化機能を利用するものである。また、上記▲1▼のチュ−ニング項目はソ−スプログラムの修正を対象とせず、上記▲2▼および▲3▼のチュ−ニング項目はそれぞれソ−スプログラムの修正を対象としている。
【0023】
図3は、複合命令Uを使用する最適化制御行を図1のDOル−プに指定したソ−スプログラム3を示している。上記▲2▼のチュ−ニング項目の場合に相当し、最適化制御行は「!ocl fmadd 」である。
【0024】
図4は、上記▲1▼や▲2▼のチュ−ニング項目に対処した場合のパイプライン情報4を示している。
【0025】
図4のパイプライン情報4は、
・ソ−スプログラム1の翻訳時に、ベクトル乗算命令Mとベクトル加算命令Aとの複合命令Uを用い、
・その結果、図1のパイプライン情報に比べてベクトル命令数が一つ少ないこと、すなわちベクトル演算処理が全体で1命令分だけ早く終了すること、
を示している。
【0026】
このとき、
・ロ−ド/ストアパイプライン12へのベクトルロ−ド命令(配列d)の割り付け
・乗算・加算パイプライン14への複合命令Uの割り付け
が同じタイミングで行われる。
【0027】
また、
・ロ−ド/ストアパイプライン12へのベクトルロ−ド命令(配列f)の割り付け
・除算パイプライン15へのベクトル除算命令の割り付け
・加算パイプライン16へのベクトル加算命令の割り付け
が同じタイミングで行われる。
【0028】
パイプライン情報4が示す処理手順は上記(1) 〜(10)と同様であり、また、複数のベクトル命令が同一のタイミングで割り付けられたパイプライン間の関連動作も図1の場合と同様に制御される。
【0029】
図5は、図1のDOル−プの繰り返し回数を半分にしたソ−スプログラム5とそれに対応のパイプライン情報6の画面表示例とを示している。上記▲3▼のチュ−ニング項目の場合に相当する。
【0030】
図5のパイプライン情報6が示す処理手順は、
・先ずソ−スプログラム5の前半の式に関する上記(1) 〜(10)の処理
・次にソ−スプログラム5の後半の式に関する上記(1) 〜(10)の処理
からなっている。
【0031】
図5のパイプライン情報6は、図1のそれに比べて、
・DOル−プの繰り返し回数が半分の「512」であり、
・ベクトル命令数が2倍の「20」であること、
を示している。
【0032】
この上記▲3▼のチュ−ニング項目の場合は、DOル−プの繰り返し回数を減らして1命令当たりの処理時間を短くし、また命令数が増えてパイプライン内の命令スケジュ−リングが促進されることにより、プログラムの実行性能の向上を図っている。
【0033】
図6は、コンパイラのシステム構成を示す説明図であり、
21はソ−スプログラム
22はコンパイラ
23はソ−スプログラムの入力部
24は入力されたソ−スプログラムの字句解析,構文解析や意味解析などを実行する解析部
25はコンピュ−タの内部表現で表した中間言語を生成する中間言語生成部
26は例えば演算の冗長性をなくすなどして処理効率の向上化を図るための変更を加えるえる最適化部
27はパイプライン情報の作成機能を持つパイプラインスケジュ−リング部
28はコ−ド生成部
29はパイプライン情報の出力機能を有するリスタ部
30はバッファなどの記憶手段
31はコンパイラ22の出力であるオブジェクトプログラム
32はパイプライン情報の表示手段
をそれぞれ示している。なお、コンパイラ22に相当の処理部と表示手段32との距離は任意である。
【0034】
以上の構成要素の中、
・パイプラインスケジューリング部27が「前記対象部分の翻訳により生成される命令群についてパイプライン処理で用いられる命令の種別、順序、命令数を示すパイプライン情報を求める手段」に相当し、
表示手段32やリスタ部29が「命令の種別ごとに時系列に前記パイプライン情報が示す処理手順がわかる画面を表示する出力手段」に相当する。
【0035】
図7は、パイプライン情報の出力手順を示す説明図であり、その内容は次のようになっている。
(S1)入力部23は、利用者がパイプライン情報の出力オプションをコマンドプロセッサに指定しているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合は出力処理を終了する。
(S2)パイプラインスケジュ−リング部27は、入力されたソ−スプログラム21がベクトル演算を対象としているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合は出力処理を終了する。
(S3)パイプラインスケジュ−リング部27は、ソ−スプログラム21のベクトル演算部分についてのプロセッサ情報(例えば解析後の命令の並び)を記憶手段30に保存して、次のステップに進む。
(S4)リスタ部29は、記憶手段30にプロセッサ情報が保存されているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合は出力処理を終了する。
(S5)リスタ部29は、記憶手段30にプロセッサ情報を出力して表示手段32に画面表示し、出力処理を終了する。
【0036】
なお、ステップ(S4)で、記憶手段30にプロセッサ情報が保存されているかどうかを確認するのは、リスタ部29の動作内容に基づいている。
【0037】
例えば、リスタ部29はコンパイル処理の中断後に再走行する機能を持っており、この再走行の際にパイプライン情報が記憶手段30に保存されていないときの、当該記憶手段に対するリスタ部29の処理を効率的に行なうためである。
【0038】
図8は、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図であり、4はコンピュ−タシステム、41はCPUやディスクドライブ装置などを内蔵した本体部、42は本体部41からの指示により画像を表示するディスプレイ、43は表示画面、44はコンピュ−タシステム4に種々の情報を入力するためのキ−ボ−ド、45は表示画面43の任意の位置を指定するマウス、46は外部のデ−タベ−ス(DASDなどの回線先メモリ)、47は外部のデ−タベ−ス46にアクセスするモデム、48はCD−ROMやフロッピ−ディスクなどの可搬型記録媒体をそれぞれ示している。
【0039】
プログラムを格納する記録媒体としては、
・プログラム提供者側のデ−タベ−ス46(回線先メモリ)
・可搬型記録媒体48
・本体部41側のRAMやハ−ドディスク
などのいずれでもよく、当該プログラムは本体部41にロ−デイングされてその主メモリ上で実行される。
【0040】
【発明の効果】
本発明は、このように、ソ−スプログラム翻訳時のパイプライン処理の命令群に関するパイプライン情報を出力しているので、利用者はこの出力内容を参考にしながらプログラムチュ−ニングを効率的に実行でき、また、オブジェクトプログラムの実行性能を高めることができる。
【図面の簡単な説明】
【図1】本発明の、ソ−スプログラムと、それに対応のパイプライン情報の画面表示例とを示す説明図である。
【図2】本発明の、図1のソ−スプログラムに対するパイプライン処理の概念を示す説明図である。
【図3】本発明の、複合命令Uを使用する最適化制御行を図1のDOル−プに指定したソ−スプログラムを示す説明図である。
【図4】本発明の、▲1▼,▲2▼のチュ−ニング項目に対処した場合のパイプライン情報を示す説明図である。
【図5】本発明の、図1のDOル−プの繰り返し回数を半分にしたソ−スプログラムとそれに対応のパイプライン情報の画面表示例とを示す説明図である。
【図6】本発明の、コンパイラのシステム構成を示す説明図である。
【図7】本発明の、パイプライン情報の出力手順を示す説明図である。
【図8】本発明の、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図である。
【符号の説明】
1:ソ−スプログラム
2:ソ−スプログラム1のパイプライン情報
3:▲2▼のチュ−ニング項目に対処したソ−スプログラム
4:▲1▼,▲2▼のチュ−ニング項目に対処した場合のパイプライン情報
5:▲3▼のチュ−ニング項目に対処したソ−スプログラム
6:ソ−スプログラム5のパイプライン情報
11:メモリ
12:ロ−ド/ストアパイプライン(L/STパイプライン)
13:ベクトルレジスタ
14:乗算・加算パイプライン(M&Aパイプライン)
15:除算パイプライン
16:加算パイプライン
21:ソ−スプログラム
22:コンパイラ
23:ソ−スプログラムの入力部
24:解析部
25:中間言語生成部
26:最適化部
27:パイプラインスケジュ−リング部
28:コ−ド生成部
29:パイプライン情報の出力機能を有するリスタ部
30:バッファなどの記憶手段
31:オブジェクトプログラム
32:表示手段
4:コンピュ−タシステム
41:CPUやディスクドライブ装置などを内蔵した本体部
42:ディスプレイ
43:表示画面
44:キ−ボ−ド
45:マウス
46:外部のデ−タベ−ス(DASDなどの回線先メモリ)
47:モデム
48:CD−ROMやフロッピ−ディスクなどの可搬型記録媒体
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a pipeline information output method and the like, and in particular, by outputting a group of instructions for a pipeline portion when a source program is translated by a combiner or an assembler, a user can The source program can be tuned after knowing in advance the type of each instruction used in the pipeline processing. In this specification, “source program” is simply referred to as “program” as necessary.
[0002]
In general, in order to improve the execution performance of a program, it is desirable for the user to perform the tuning operation of the program more efficiently while confirming the translated content of the source program. The target part of the pipeline processing of the program is designed to meet this demand.
[0003]
[Prior art]
Conventionally, the user has checked the output information indicating the status of optimization and vectorization at the time of translation of the source program, and then considered the hardware characteristics, and the pipeline processing part such as vector calculation Tuning of the source program including
[0004]
That is, pipeline information indicating the type / order of instructions used in pipeline processing, the number of instructions, the number of operations in the pipeline, etc. has not been provided to the user who performs the tuning execution. .
[0005]
[Problems to be solved by the invention]
As described above, the conventional program tuning has a problem in that work efficiency is poor because the pipeline information is not used as the determination material.
[0006]
Therefore, in the present invention, pipeline information at the time of source program translation is obtained and output so that the user can refer to the output contents to improve the efficiency of program tuning, and the object program The purpose is to improve execution performance.
[0007]
[Means for Solving the Problems]
The present invention solves this problem as follows.
Pipeline information indicating the type, order, and number of instructions used in pipeline processing for a group of instructions generated by translation of the target part using a computer when translating the source program including the target part for pipeline processing And displays a screen showing the processing procedure indicated by the pipeline information in time series for each type of instruction.
[0008]
In the present invention, pipeline information relating to a group of pipeline processing instructions at the time of source program translation is output, so that the user can efficiently execute program tuning with reference to the output contents.
[0009]
The present invention provides a pipeline information output method and output apparatus comprising such a solution, and a computer-readable program storage storing a program for causing a computer to execute pipeline information output processing. Targeted at medium.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of the present invention will be described with reference to FIGS.
[0011]
FIG. 1 is an explanatory view showing a source program and a screen display example of pipeline information corresponding to the source program. 1 is a source program, and 2 is a screen displayed when the source program 1 is compiled. Pipeline information is shown.
[0012]
FIG. 2 is an explanatory diagram showing the concept of pipeline processing for the source program of FIG. 1, wherein 11 is a memory, 12 is a load / store pipeline (L / ST pipeline), 13 vector registers, and 14 is A multiplication / addition pipeline (M & A pipeline), 15 is a division pipeline, and 16 is an addition pipeline.
[0013]
Source program 1 is for arrays a, b, c, d, e, and f.
a (i) = (b (i) + c (i) × d (i)) ÷ e (i) + f (i)
It consists of a total of 1024 loop calculations.
[0014]
Pipeline information 2 is
-Vector load instruction L, vector store instruction S (L / ST pipeline)
-Vector multiplication instruction M, vector addition instruction A (M & A pipeline)
-Vector division instruction (DIV pipeline)
-Vector mask instruction (MASK pipeline)
It is made up of.
[0015]
The processing procedure indicated by the pipeline information 2 is as follows:
(1) Load the array b from the memory 11 into the vector register 13 via the load / store pipeline 12;
(2) Load the array c from the memory 11 to the vector register 13 via the load / store pipeline 12;
(3) The array d is loaded from the memory 11 to the vector register 13 via the load / store pipeline 12, and
(4) Multiply the array c and the array d of the vector register 13 by the multiplication / addition pipeline 14;
(5) In the multiplication / addition pipeline 14, add the array b of the vector register 13 and the multiplication result of (4),
(6) The array e is loaded from the memory 11 to the vector register 13 via the load / store pipeline 12, and
(7) The array f is loaded from the memory 11 to the vector register 13 via the load / store pipeline 12, and
(8) In the division pipeline 15, divide the addition result of (5) by the array e,
(9) The addition pipeline 16 adds the array f and the result of (8),
(10) Store the addition result of (9) in the array a of the vector register 13.
It has become.
[0016]
At this time,
Allocation / multiplication / addition of the vector load instruction (4) to the load / store pipeline 12 is performed at the same timing.
[0017]
Also,
-Allocation of vector load instruction (7) to load / store pipeline 12-Allocation of vector division instruction (8) to division pipeline 15-(9) to addition pipeline 16 All vector addition instructions are assigned at the same timing.
[0018]
Hardware (arithmetic circuit) corresponding to each pipeline to which a vector instruction is assigned at the same timing is controlled so as to execute the instruction contents after receiving data necessary for processing there. .
[0019]
For example, the arithmetic circuit corresponding to the addition pipeline 16 receives the output of the division pipeline 15 and the array f loaded into the vector register 13 by the vector load instruction (7) above, Addition processing is executed.
[0020]
The user can confirm from the pipeline information 2 in FIG.
・ Multiplication instructions and addition instructions exist individually, and compound instruction U related to multiplication and addition is not generated. ・ Total number of instructions is 10 (load instruction is 5, store instruction is 1, multiplication instruction is 1. Because the add instruction is 2, the divide instruction is 1), there are few operations in the pipeline.
[0021]
Based on the above confirmation contents, the following tuning items can be extracted.
(1) Designate an option to use the compound instruction U to the command processor.
(2) An optimization control line using the compound instruction U is added to the source program.
(3) Modify the source program so that the number of loop operations is halved, and double the number of operations in the pipeline.
[0022]
The tuning items (1) and (2) above use the optimization function of the compiler. Further, the tuning item (1) does not target the correction of the source program, and the tuning items (2) and (3) described above target the correction of the source program.
[0023]
FIG. 3 shows a source program 3 in which the optimization control line using the compound instruction U is designated in the DO loop of FIG. This corresponds to the tuning item (2) above, and the optimization control line is “! Ocl fmadd”.
[0024]
FIG. 4 shows pipeline information 4 when the tuning items (1) and (2) are dealt with.
[0025]
The pipeline information 4 in FIG.
-When the source program 1 is translated, a compound instruction U of a vector multiplication instruction M and a vector addition instruction A is used,
-As a result, the number of vector instructions is one less than that of the pipeline information of FIG. 1, that is, the vector operation processing is completed earlier by one instruction as a whole,
Is shown.
[0026]
At this time,
Allocation / multiplication / addition of the compound load U to the load / store pipeline 12 is performed at the same timing.
[0027]
Also,
-Allocation of vector load instruction (array f) to load / store pipeline 12-Allocation of vector division instruction to division pipeline 15-Allocation of vector addition instruction to addition pipeline 16 at the same timing Is called.
[0028]
The processing procedure indicated by the pipeline information 4 is the same as the above (1) to (10), and related operations between pipelines in which a plurality of vector instructions are allocated at the same timing are the same as in FIG. Be controlled.
[0029]
FIG. 5 shows a source program 5 in which the number of repetitions of the DO loop of FIG. 1 is halved and a screen display example of pipeline information 6 corresponding thereto. This corresponds to the tuning item (3) above.
[0030]
The processing procedure indicated by the pipeline information 6 in FIG.
First, the processing of the above (1) to (10) relating to the first half of the source program 5, and then the processing of (1) to (10) relating to the second half of the source program 5.
[0031]
The pipeline information 6 in FIG. 5 is compared with that in FIG.
・ The number of repetitions of the DO loop is half “512”,
-The number of vector instructions is twice "20",
Is shown.
[0032]
In the case of the above item (3), the number of DO loop repetitions is reduced to shorten the processing time per instruction, and the number of instructions is increased to facilitate instruction scheduling in the pipeline. As a result, the execution performance of the program is improved.
[0033]
FIG. 6 is an explanatory diagram showing the system configuration of the compiler.
21 is a source program 22, a compiler 23 is a source program 24, an input unit 24 is a lexical analysis, syntax analysis, and semantic analysis of the input source program. An analysis unit 25 is an internal representation of the computer. The intermediate language generation unit 26 that generates the intermediate language represented by (2) has a function of creating pipeline information, for example, by adding a change for improving processing efficiency by eliminating the redundancy of operations. The pipeline scheduling unit 28 is a code generation unit 29 is a pipeline information output function, the lister unit 30 is a buffer, etc. The storage unit 31 is the output of the compiler 22 The object program 32 is the pipeline information display unit Respectively. The distance between the processing unit corresponding to the compiler 22 and the display unit 32 is arbitrary.
[0034]
Among the above components,
The pipeline scheduling unit 27 corresponds to “means for obtaining pipeline information indicating the type, order, and number of instructions used in pipeline processing for an instruction group generated by translation of the target part ”;
The display unit 32 and the lister unit 29 correspond to “an output unit that displays a screen showing the processing procedure indicated by the pipeline information in time series for each type of instruction” .
[0035]
FIG. 7 is an explanatory diagram showing a procedure for outputting pipeline information, and the contents thereof are as follows.
(S1) The input unit 23 determines whether or not the user designates the output option of the pipeline information to the command processor. If “YES”, the process proceeds to the next step, and if “NO”, the output process is performed. Exit.
(S2) The pipeline scheduling unit 27 determines whether or not the input source program 21 is intended for vector operation. If “YES”, the process proceeds to the next step, and if “NO”, End the output process.
(S3) The pipeline scheduling unit 27 stores the processor information (for example, the sequence of the analyzed instructions) for the vector operation part of the source program 21 in the storage unit 30, and proceeds to the next step.
(S4) The lister unit 29 determines whether the processor information is stored in the storage unit 30. If “YES”, the process proceeds to the next step, and if “NO”, the output process ends.
(S5) The lister unit 29 outputs the processor information to the storage means 30, displays it on the display means 32, and ends the output process.
[0036]
Whether or not the processor information is stored in the storage unit 30 in step (S4) is based on the operation content of the lister unit 29.
[0037]
For example, the lister unit 29 has a function of rerunning after the compilation process is interrupted, and processing of the lister unit 29 for the storage unit when the pipeline information is not stored in the storage unit 30 at the time of the rerunning. This is to efficiently perform the above.
[0038]
FIG. 8 is an explanatory diagram showing an outline of a computer system that reads and executes a program from a computer-readable recording medium. , 42 is a display for displaying an image in accordance with an instruction from the main body 41, 43 is a display screen, 44 is a keyboard for inputting various information to the computer system 4, and 45 is an arbitrary screen on the display screen 43. Mouse for specifying the position, 46 is an external database (line-destination memory such as DASD), 47 is a modem for accessing the external database 46, 48 is a CD-ROM or floppy disk, etc. Each of the portable recording media is shown.
[0039]
As a recording medium for storing the program,
・ Program provider's database 46 (line destination memory)
Portable recording medium 48
Any of a RAM, a hard disk, and the like on the main unit 41 side may be used, and the program is loaded into the main unit 41 and executed on the main memory.
[0040]
【The invention's effect】
In this way, the present invention outputs the pipeline information related to the instruction group of the pipeline processing at the time of the source program translation, so that the user can efficiently perform the program tuning while referring to the output contents. It can be executed and the execution performance of the object program can be improved.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram showing a source program and a screen display example of corresponding pipeline information according to the present invention.
FIG. 2 is an explanatory diagram showing the concept of pipeline processing for the source program of FIG. 1 according to the present invention.
FIG. 3 is an explanatory diagram showing a source program according to the present invention in which an optimization control line using a compound instruction U is designated in the DO loop of FIG. 1;
FIG. 4 is an explanatory diagram showing pipeline information when dealing with the tuning items (1) and (2) according to the present invention.
FIG. 5 is an explanatory diagram showing a source program according to the present invention in which the number of repetitions of the DO loop of FIG. 1 is halved and a screen display example of corresponding pipeline information.
FIG. 6 is an explanatory diagram showing a system configuration of a compiler according to the present invention.
FIG. 7 is an explanatory diagram illustrating a procedure for outputting pipeline information according to the present invention.
FIG. 8 is an explanatory diagram showing an outline of a computer system for reading and executing a program from a computer-readable recording medium according to the present invention.
[Explanation of symbols]
1: Source program 2: Source program 1 pipeline information 3: Source program 4 that addresses the tuning item (2): Addresses the tuning items (1) and (2) Pipeline information 5: Source program 6 corresponding to the tuning item (3): Pipeline information 11 of the source program 5: Memory 12: Load / store pipeline (L / ST pipeline)
13: Vector register 14: Multiplication / addition pipeline (M & A pipeline)
15: Division pipeline 16: Addition pipeline 21: Source program 22: Compiler 23: Source program input unit 24: Analysis unit 25: Intermediate language generation unit 26: Optimization unit 27: Pipeline scheduling Unit 28: Code generation unit 29: Lister unit 30 having pipeline information output function 30: Storage unit 31 such as a buffer 31: Object program 32: Display unit 4: Computer system 41: Built-in CPU, disk drive device, etc. Main unit 42: display 43: display screen 44: keyboard 45: mouse 46: external database (line-destination memory such as DASD)
47: Modem 48: Portable recording medium such as a CD-ROM or floppy disk

Claims (3)

パイプライン処理の対象部分を含むソースプログラムの翻訳に際して、
コンピュータを用いて、
前記対象部分の翻訳により生成される命令群についてパイプライン処理で用いられる命令の種別、順序、命令数を示すパイプライン情報を求めるステップと
命令の種別ごとに時系列に前記パイプライン情報が示す処理手順がわかる画面を表示するステップと、
を実行することを特徴とするパイプライン情報の出力方法。
When translating the source program including the target part of the pipeline processing,
Using a computer
A step of the type of instructions used for instructions that are generated by the target portion of the translation in the pipeline processing, order, Ru seek pipeline information indicating the number of instructions,
Displaying a screen showing a processing procedure indicated by the pipeline information in time series for each type of instruction;
A method for outputting pipeline information, characterized in that:
パイプライン処理の対象部分を含むソースプログラムの翻訳装置において、
前記対象部分の翻訳により生成される命令群についてパイプライン処理で用いられる命令の種別、順序、命令数を示すパイプライン情報を求める手段と、
命令の種別ごとに時系列に前記パイプライン情報が示す処理手順がわかる画面を表示する出力手段と、
を備えたことを特徴とするパイプライン情報の出力装置。
In a translation apparatus for a source program including a target part of pipeline processing,
Means for obtaining pipeline information indicating the type, order, and number of instructions used in pipeline processing for an instruction group generated by translation of the target portion;
Output means for displaying a screen for understanding the processing procedure indicated by the pipeline information in time series for each type of instruction;
An apparatus for outputting pipeline information.
パイプライン処理の対象部分を含むソースプログラムに対する翻訳プログラムを格納した記録媒体であって、
当該翻訳プログラムが、前記対象部分の翻訳により生成される命令群についてパイプライン処理で用いられる命令の種別、順序、命令数を示すパイプライン情報を求めて、命令の種別ごとに時系列に前記パイプライン情報が示す処理手順がわかる画面を表示する機能をコンピュータに実現させるためのものである、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
A recording medium storing a translation program for a source program including a target part of pipeline processing,
The translation program, the type of instructions used in the pipeline processing with the instructions generated by the target portion of the translation, the order, asking the pipeline information indicating the number of instructions, wherein the time series for each type of instruction This is to make a computer realize the function of displaying a screen that shows the processing procedure indicated by the pipeline information .
A computer-readable recording medium.
JP12397099A 1999-04-30 1999-04-30 Pipeline information output method, output device therefor, and computer-readable recording medium Expired - Fee Related JP3619861B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12397099A JP3619861B2 (en) 1999-04-30 1999-04-30 Pipeline information output method, output device therefor, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12397099A JP3619861B2 (en) 1999-04-30 1999-04-30 Pipeline information output method, output device therefor, and computer-readable recording medium

Publications (2)

Publication Number Publication Date
JP2000315161A JP2000315161A (en) 2000-11-14
JP3619861B2 true JP3619861B2 (en) 2005-02-16

Family

ID=14873831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12397099A Expired - Fee Related JP3619861B2 (en) 1999-04-30 1999-04-30 Pipeline information output method, output device therefor, and computer-readable recording medium

Country Status (1)

Country Link
JP (1) JP3619861B2 (en)

Also Published As

Publication number Publication date
JP2000315161A (en) 2000-11-14

Similar Documents

Publication Publication Date Title
Kuck et al. The Burroughs scientific processor (BSP)
Huang et al. Speculative disambiguation: A compilation technique for dynamic memory disambiguation
US6651247B1 (en) Method, apparatus, and product for optimizing compiler with rotating register assignment to modulo scheduled code in SSA form
JPH06208462A (en) Method and apparatus for scheduling instruction heuristically on the basis of cost for pipeline processor
JP2016508640A (en) Solutions for branch branches in the SIMD core using hardware pointers
Ebcioglu et al. Optimizations and oracle parallelism with dynamic translation
JP2008186244A (en) Program development device, program development method and program
US6931632B2 (en) Instrumentation of code having predicated branch-call and shadow instructions
JP3619861B2 (en) Pipeline information output method, output device therefor, and computer-readable recording medium
JP3538292B2 (en) Runtime program translation method
US11635947B2 (en) Instruction translation support method and information processing apparatus
JP2004362086A (en) Information processor and machine-language program conversion apparatus
US20210365252A1 (en) Instruction translation support method and information processing apparatus
Ganapathi et al. Integrating code generation and peephole optimization
JPH10320212A (en) Cache optimizing method
JP3887097B2 (en) COMPILING METHOD, COMPILING DEVICE, AND COMPUTER-READABLE STORAGE MEDIUM CONTAINING COMPILING PROGRAM
CN114041116A (en) Method and device for optimizing data movement task
JPH02176938A (en) Machine language instruction optimizing system
Su et al. Array prefetching for irregular array accesses in titanium
Abraham et al. Instruction reorganization for a variable-length pipelined microprocessor
Qawasmeh et al. A compiler-based tool for array analysis in HPC applications
JP2004046747A (en) Vectorization system
Schreiner A para-functional programming interface for a parallel computer algebra package
Huynh et al. Evaluating address register assignment and offset assignment algorithms
Falk et al. High-level control flow transformations for performance improvement of address-dominated multimedia applications

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040906

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: 20041005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041018

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101126

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111126

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111126

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121126

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131126

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees