JPH0831091B2 - コンパイル処理方式 - Google Patents

コンパイル処理方式

Info

Publication number
JPH0831091B2
JPH0831091B2 JP25862690A JP25862690A JPH0831091B2 JP H0831091 B2 JPH0831091 B2 JP H0831091B2 JP 25862690 A JP25862690 A JP 25862690A JP 25862690 A JP25862690 A JP 25862690A JP H0831091 B2 JPH0831091 B2 JP H0831091B2
Authority
JP
Japan
Prior art keywords
instruction
compound
unit
execution
operation description
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
JP25862690A
Other languages
English (en)
Other versions
JPH04135276A (ja
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 JP25862690A priority Critical patent/JPH0831091B2/ja
Publication of JPH04135276A publication Critical patent/JPH04135276A/ja
Publication of JPH0831091B2 publication Critical patent/JPH0831091B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概要〕 べクトル命令を生成するコンパイル処理方式に関し、 プログラムの実行性能を高められるベクトル命令を生
成できるようにすることを目的とし、 複合命令によって演算可能となる演算記述がソースプ
ログラムに含まれているか否かを検出する複合命令候補
認識部と、複合命令候補認識部が複合命令化が可能とな
る演算記述の存在を検出するときに、該演算記述に続く
命令の実行状況や該演算記述の実行開始タイミングを考
慮して、該演算記述を複合命令で実行する場合の実行性
能と複合命令でなく実行する場合の実行性能とを模擬す
る模擬実行部と、模擬実行部により模擬される実行性能
に従って実行性能の高い命令を特定していくことで、複
合命令候補認識部により検出された演算記述の使用命令
を決定する使用命令決定部とを備え、使用命令決定部の
決定結果に従って複合命令を生成していくように構成す
る。
〔産業上の利用分野〕
本発明は、ベクトル命令を生成するコンパイル処理方
式に関し、特に、プログラムの実行性能を高められるベ
クロル命令を生成できるようにするコンパイル処理方式
に関するものである。
プログラムの実行時間は、コンパイラにより生成され
るオブジェクトの命令形態に規定されることになる。こ
れから、実行性能の高いプログラムとなるように、オブ
ジェクトに展開される命令形態を決定していく必要があ
るのである。
〔従来の技術〕
ベクトル命令の1つとして、2つのベクトル演算を1
つのベクトル演算で行う複合命令がある。この複合命令
は、2命令を1命令で実行するものであることから、ベ
クトル演算を高速に実行できるという特長がある。
従来のコンパイラでは、ソースプログラム中に複合命
令化が可能となるベクトル演算があると、高速演算が可
能になるということで一律に複合命令を生成してコンパ
イルしていくように処理していた。
〔発明が解決しようとする課題〕
しかしながら、複合命令を発信していくためには、複
合命令で使用する3つのベクトルデータが計算領域のベ
クトルレジスタにロードされていなければならないとい
う条件に加えて、その実行のために、ロード/ストアパ
イプ(メモリから計算領域にデータを転送するもの)の
持つタイミング同期機構を利用しなくてはならないこと
から、ロード/ストアパイプが少なくとも1本は空いて
いることが条件になる。
これから、従来技術のように一律に複合命令を生成し
てしまうと、ロード/ストアパイプの空き待ちのために
複合命令を発信させることができないことで、かえって
プログラムの実行時間を遅らせてしまうことが起こると
いう問題点があった。
しかも、このようなロード/ストアパイプの空き待ち
ばかりでなく、後続の命令で、例えば、ベクトル要素同
士を乗算してその演算結果にベクトル要素を加算すると
いうようなベクトル演算の内の乗算結果について再利用
するようなことがあると、先行する命令をそのまま複合
命令化してしまうと、後続命令で再び同じ乗算処理を実
行しなければならなくなることで、かえってプログラム
の実行時間を遅らせてしまうことが起こるという問題点
もあったのである。
本発明はかかる事情に鑑みてなされたものであって、
プログラムの実行性能を高められるベクトル命令を生成
できるようにする新たなコンパイル処理方式の提供を目
的とするものである。
〔課題を解決するための手段〕
第1図は本発明の原理構成図である。
図中、1は本発明を具備するデータ処理装置であっ
て、ソースプログラムを対応のオブジェクトにコンパイ
ルするもの、2はデータ処理装置1によりコンパイルさ
れるソースプログラム、3はデータ処理装置1により生
成されるオブジェクトである。
データ処理装置1は、ソースプログラム2の入力を受
け付けるプログラム入力部10と、プログラム入力部10に
より受け付けられたソースプログラム2をベクトル化す
るベクトル化処理部11と、ベクトル化処理部11によりベ
クトル化された演算記述の中に、複合命令によって演算
可能となる演算記述が含まれているか否かを検出する複
合命令候補認識部12と、複合命令候補認識部12が複合命
令化が可能となる演算記述の存在を検出するときに、そ
の演算記述を複合命令で実行する場合の実行性能と複合
命令でなく実行す場合の実行性能とを模擬する模擬実行
部13と、模擬実行部13により模擬される実行性能に従っ
て実行性能の高い命令を特定していくことで、複合命令
候補認識部12により検出された演算記述の使用命令を決
定する使用命令決定部14と、ソースプログラム2に対応
するオブジェクトを生成するオブジェクト生成部15とを
備えるよう構成される。
複合命令候補認識部12と模擬実行部13と使用命令決定
部14とで複合命令生成部16が構成されて、この複合命令
生成部16の実行する処理に従って、ベクトル化処理部11
によりベクトル化された演算記述を最適に複合命令化し
ていく処理が実行されることになる。この複合命令生成
部16は、ベクトル命令の生成処理をスケジューリングす
る命令スケジューリング部17に展開されることになる。
〔作用〕
本発明では、複合命令候補認識部12が、ベクトル化処
理部11によりベクトル化された演算記述中に複合命令化
が可能となる演算記述が含まれていることを検出する
と、模擬実行部13は、その演算記述に続く命令の実行状
況やその演算記述の実行開始タイミングを考慮して、そ
の演算記述を複合命令で実行する場合の実行性能と複合
命令でなく実行する場合の実行性能とを模擬する。この
実行性能の模擬処理に従って、後続命令がその演算記述
の途中の演算結果値を使用するような場合や、ロード/
ストアパイプに空きがないような場合には、複合命令で
なくて2命令のままで実行する方が実行性能がよいこと
が求められることになる。
この模擬実行部13の模擬処理結果を受けて、使用命令
決定部14は、複合命令候補認識部12により検出された演
算記述を実行していくのに、複合命令か2命令のいずれ
の方の命令形態が実行性能が高いのかを特定していくこ
とでその演算記述の使用命令を決定して、複合命令の方
が実行性能が高い場合には複合命令を生成していく。そ
して、オブジェクト生成部15は、使用命令決定部14によ
り生成された複合命令を持つソースプログラム2を対応
のオブジェクトにコンパイルしていくことで、実行性能
のよいオブジェクト3を生成していくことになる。
このように、本発明では、複合命令化が可能となる演
算記述を機械的に複合命令化してオブジェクト3を生成
していくのではなくて、実行性能の高くなることの保証
されたもののみを複合命令化してオブジェクト3を生成
していくことから、確実にプログラムの実行性能を高め
られるベクトル命令を生成できるようになるのである。
〔実施例〕
以下、実施例に従って本発明を詳細に説明する。
第2図に、第1図で説明した複合命令生成部16の実行
するフローチャートを図示する。次に、このフローチャ
ートに従って、本発明の処理内容について詳細に説明す
る。
複合命令生成部16は、ベクトル化処理部11からベクト
ル化された演算パターンを受け取ると、先ず最初に、ス
テップ1で、その受け取った演算パターンを検索するこ
とで、複合命令化の可能となる演算パターンであるベク
トル演算記述を抽出する。すなわち、ベクトル要素同士
を乗算(除算)して、その計算結果にベクトル要素を加
算(減算)するという記述形式を持つベクトル演算記述
を抽出していくのである。
次に、ステップ2で、検索されたベクトル演算記述を
複合命令でもって実行する場合のシュミレーションを行
って、そのときの実行性能を評価する。このとき行うシ
ュミレーションは、複合命令にした場合に、ロード/ス
トアパイプの空き状態のタイミングをチェックしていく
ことで、いつ複合命令を発信できて、いつ完了するかと
いうことを評価していくことで行うとともに、更に、例
えば、複合命令に統合されてしまう演算結果値が後続の
命令で使用されることになるのか否かといったような後
続命令の実行状況についてもチェックして行われること
になる。
ステップ2でのシュミレーションが終了すると、続い
て、ステップ3で、今度は、検索されたベクトル演算記
述を複合命令としない2命令でもって実行する場合のシ
ュミレーションを行って、そのときの実行性能を評価す
る。すなわち、2命令で行う場合に、いつ命令の実行に
入れて、いつ完了するかということを評価していくので
ある。
このようにして、複合命令及び2命令での実行性能の
評価が終了すると、続くステップ4で、どちらの実行性
能の方が優れているのかを判断する。すなわち、プログ
ラムの実行時間の短くなる命令形態を特定するのであ
る。そして、このステップ4の比較処理により、複合命
令で実行する方が実行性能が優れていると判断する場合
には、ステップ5に進んで、対応の複合命令の生成処理
を実行していくことになる。
このようにして、従来技術では、複合命令化が可能と
なるベクトル演算記述については一律に複合命令化して
いたのに対して、本発明では、実行性能がよくなること
が保証される場合にのみ複合命令化していくことで、確
実にプログラムの実行性能を高められるベクトル命令を
生成していくように処理するのである。
次に、第3図に示すソースプログラム2に従って、ど
のような場合に複合命令が生成され、どのような場合に
複合命令が生成されないのかの一例について具体的に説
明する。
第3図(a)に示すソースプログラム2は、複合命令
化が可能となるベクトル演算記述である C(I,J)=A(I,J)*B(I,J) E(I,J)=C(I,J)+D(I,J) の後続命令部分で、複合命令に統合されてしまう演算結
果値の「C(I,J)」を使用する場合のソースプログラ
ム2である。
この第3図(a)に示すような場合のベクトル演算記
述では、3つのベクトルデータが計算領域に展開されて
いるとともに、ロード/ストアパイプが空いていて複合
命令が直ちに発信できるとしても、第4図(a)に示す
ように、複合命令化しない場合でも、また、第4図
(b)に示すように、複合命令化した場合でもその総命
令数は“4"と変わらない。これから、ロード/ストアパ
イプが空いていても、あえて複合命令に変換する必要は
ないし、一方、ロード/ストアパイプが空いていない場
合には、2命令のままで実行していく方のが有利となる
ことになる。
第3図(a)に示すソースプログラム2は、第3図
(b)に示すソースプログラム2と違って、複合命令化
が可能となるベクトル演算記述である C(I,J)=A(I,J)*B(I,J) E(I,J)=C(I,J)+D(I,J) の後続命令部分で、複合命令に統合されてしまう演算結
果値を使用しない場合のソースプログラム2である。
この第3図(b)に示すような場合のベクトル演算記
述では、ロード/ストアパイプが空いていて複合命令が
直ちに発信できれば、第5図(a)に示すように、複合
命令化しない場合の総命令数が“5"であるのに対して、
第5図(b)に示すように、複合命令化した場合の総命
令数は“4"となることから、ロード/ストアパイプが空
いている場合には、複合命令に変換していく方のが有利
になるとともに、ロード/ストアパイプが2サイクル以
上空かない場合には、2命令のままで実行していく方の
が有利となることになる。
このようにして、本発明では、複合命令化が可能とな
る演算記述を機械的に複合命令化してオブジェクト3を
生成していくのではなくて、実行性能の高くなることの
保証されたもののみを複合命令化してオブジェクト3を
生成していくように処理していくことになる。
〔発明の効果〕
以上説明したように、本発明によれば、ベクトル命令
を生成していくコンパイル処理にあって、プログラムの
実行性能を高められるベクトル命令を生成できるように
なる。これから、プログラムの実行時間を大幅に短縮で
きるようになる。
【図面の簡単な説明】
第1図は本発明の原理構成図、 第2図は本発明の実行するフローチャート 第3図はソースプログラムの一例の説明図、 第4図は第3図(a)のプログラムを複合命令/2命令で
実行するときのパイプラインの説明図、 第5図は第3図(b)のプログラムを複合命令/2命令で
実行するときのパイプラインの説明図である。 図中、1はデータ処理装置、2はソースプログラム、3
はオブジェクト、10はプログラム入力部、11はベクトル
化処理部、12は複合命令候補認識部、13は模擬実行部、
14は使用命令決定部、15はオブジェクト生成部、16は複
合命令生成部、17は命令スケジューリング部である。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ベクトル命令を生成するコンパイル処理方
    式において、 複合命令によって演算可能となる演算記述がソースプロ
    グラムに含まれているか否かを検出する複合命令候補認
    識部(12)と、 該複合命令候補認識部(12)が複合命令化が可能となる
    演算記述の存在を検出するときに、該演算記述に続く命
    令の実行状況や該演算記述の実行開始タイミングを考慮
    して、該演算記述を複合命令で実行する場合の実行性能
    と複合命令でなく実行する場合の実行性能とを模擬する
    模擬実行部(13)と、 該模擬実行部(13)により模擬される実行性能に従って
    実行性能の高い命令を特定していくことで、上記複合命
    令候補認識部(12)により検出された演算記述の使用命
    令を決定する使用命令決定部(14)とを備え、 該使用命令決定部(14)の決定結果に従って複合命令を
    生成していくよう処理することを、 特徴とするコンパイル処理方式。
JP25862690A 1990-09-27 1990-09-27 コンパイル処理方式 Expired - Fee Related JPH0831091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25862690A JPH0831091B2 (ja) 1990-09-27 1990-09-27 コンパイル処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25862690A JPH0831091B2 (ja) 1990-09-27 1990-09-27 コンパイル処理方式

Publications (2)

Publication Number Publication Date
JPH04135276A JPH04135276A (ja) 1992-05-08
JPH0831091B2 true JPH0831091B2 (ja) 1996-03-27

Family

ID=17322892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25862690A Expired - Fee Related JPH0831091B2 (ja) 1990-09-27 1990-09-27 コンパイル処理方式

Country Status (1)

Country Link
JP (1) JPH0831091B2 (ja)

Also Published As

Publication number Publication date
JPH04135276A (ja) 1992-05-08

Similar Documents

Publication Publication Date Title
JPH04219804A (ja) シーケンシャル回路及びその生成方法、及びコントローラ及び有限状態マシン
JPS6028015B2 (ja) 情報処理装置
JPH04307625A (ja) ループ最適化方法及び装置
JPH06324881A (ja) メモリデータの重なり判定機能を備えたコンパイラ装置
JPH1031595A (ja) シミュレーション装置及びシミュレーション方法
JPH06309193A (ja) 機械語プログラムの動作検証方法および装置
JPH0831091B2 (ja) コンパイル処理方式
JPH04268928A (ja) エミュレーション装置及び半導体装置
JP2943590B2 (ja) インタプリタ型シミュレーション方法
JPS62204374A (ja) 2倍演算最適化処理方式
JPH01199233A (ja) パイプライン処理における条件分岐制御方式
JP3004340B2 (ja) プログラム最適化装置
JP3218566B2 (ja) インライン展開処理装置
JP3367438B2 (ja) 条件実行処理装置
WO2017056427A1 (ja) プログラム書換装置、方法および記憶媒体
JP2564904B2 (ja) プログラム最適化処理方法
JPH01263574A (ja) テストパターンプログラム自動生成装置
JPH08171554A (ja) ベクトル演算の最適化コンパイラ
JPH0527986A (ja) コンパイラの最適化方法および最適化装置
JPH01295336A (ja) クリティカルセクション最適化方式
JPH04127387A (ja) データ駆動型データ処理装置
JPS63120369A (ja) プログラム変換装置
JPH0713962A (ja) コンパイラ装置
JPH0668731B2 (ja) データ処理装置の試験方式
JPH0298740A (ja) Do形並び処理方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 12

Free format text: PAYMENT UNTIL: 20080327

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

Year of fee payment: 13

Free format text: PAYMENT UNTIL: 20090327

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

Free format text: PAYMENT UNTIL: 20100327

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees