JPS61216085A - ベクトル処理プログラム生成方式 - Google Patents

ベクトル処理プログラム生成方式

Info

Publication number
JPS61216085A
JPS61216085A JP3799785A JP3799785A JPS61216085A JP S61216085 A JPS61216085 A JP S61216085A JP 3799785 A JP3799785 A JP 3799785A JP 3799785 A JP3799785 A JP 3799785A JP S61216085 A JPS61216085 A JP S61216085A
Authority
JP
Japan
Prior art keywords
program
block
text
inputs
program text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3799785A
Other languages
English (en)
Other versions
JPH0419588B2 (ja
Inventor
Koichiro Hotta
耕一郎 堀田
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 JP3799785A priority Critical patent/JPS61216085A/ja
Publication of JPS61216085A publication Critical patent/JPS61216085A/ja
Publication of JPH0419588B2 publication Critical patent/JPH0419588B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、情報処理システムの原プログラムから、ベク
トル処理装置で実行するためのプログラムテキストを生
成するための、改良したプログラム生成方式に関する。
情報処理システムで実行されるプログラムの作成におい
ては、公知の一方式として、作成者が作成した、いわゆ
る原プログラムから、処理装置で実行することのできる
形式の、いわゆる目的プログラムを生成する過程をとる
この生成処理は、通常はまず原プログラムのプログラム
文の配列順序に従って、それらの文を目的プログラムを
構成する命令語に近い文からなるプログラムテキストに
、逐次変換することにより行われる。
ベクトル処理装置で実行するためのプログラムテキスト
を生成する場合には、上記のプログラムテキストから、
更にいわゆるベクトル化をおこなって、ベクトル処理装
置の命令に対応するように変換したプログラムテキスト
を生成する。
この変換は、ベクトル処理装置の持つ機能を、できるだ
け有効に生かすように、考慮する必要がある。
〔従来の技術〕
第2図は、情報処理システムの一構成例を示すブロック
図である。
処理装置1は、主記憶装置2にロードされたプログラム
を実行して、所要のプログラム、データを補助記憶装置
3から、主記憶装置2にロードし、又処理結果データ等
を補助記憶装置3へ出力する。
第3図は、原プログラムからベクトル処理装置で実行す
るためのプログラムテキストを生成する処理の流れを説
明する図である。
例えば補助記憶装置3に予め入力されている原プログラ
ムを、処理装置1が主記憶装置2へ原プログラム4とし
てロードする。
処理装置1で実行される翻訳機構5は、原プログラム4
を入力として、中間プログラムテキスト6を出力する。
第4図はプログラムの一例を示し、第4図(a)は、例
えばプログラミング言語FORTRANで書かれた原プ
ログラム4の一部を示し、これに対応する中間プログラ
ムテキスト6を第4図(b)に示す。
第4図(a)と(blを比較して明らかなように、中間
プログラムテキスト6は、原プログラム4の文と直接に
対応するテキストのブロック (図において、それぞれ
線で囲んだ部分)を、原プログラムの順序に配列した構
成を有する。
中間プログラムテキスト6の、各プログラム文は、いわ
ゆるアセンブラ言語の命令語に略対応し、通常の処理装
置で実行するプログラムは、この中間プログラムテキス
ト6のプログラム構成を保持したま\、機械語に変換す
ることによって生成できる。
しかし、ベクトル処理装置で実行するプログラムのプロ
グラムテキストにするためには、中間プログラムテキス
ト6を、処理装置1で実行されるベクトル化機構7の入
力として、プログラム構成を含めて変換を行い、ベクト
ル化プログラムテキスト8を生成する必要がある。
ベクトル処理装置は、゛公知のように、複数の要素デー
タで構成される、いわゆるベクトルについて、ベクトル
間の演算を効率よく処理できるように構成した処理装置
である。
前記プログラムテキストのベクトル化における主要な処
理目的は、公知のように、原プログラムにおいて、ベク
トルの処理として指定されている、比較的大きなループ
からなるプログラム部分を、それぞれ同じベクトルを連
続して処理するような、小さなループの縦続接続になる
ように、プログラム構成を変換することにある。
更に、ベクトル処理装置の一方式として、いわゆるベク
トルデータ圧縮・拡散機能を持つ場合には、ベクトル化
処理において、ベクトルデータ圧縮機能を利用すること
によって、原プログラムの判定文による制御に代わるプ
ログラムを構成することにより、上記ベクトル化を容易
にするようにする、プログラム構成の変換を含む。
こ\で、ベクトル処理装置のベクトルデータ圧w3機能
とは、公知のように、例えばマスクレジスタの各ビット
をベクトルの各要素データに対応させ、該ビット値°1
°の要素データのみを選択し、処理するベクトル要素数
を減少することのできる機能である。
第4図(C)は、第4図(blの中間プログラムテキス
トから生成される、ベクトル化プログラムテキストを示
す。
第4図(C)において、tl、t2、−−−−−・は、
作業用のベクトルレジスタに対応し、ml、m2はマス
クレジスタを示す。
図のブロック10は、判定文に代わる制御のためのマス
クレジスタの設定処理であり、ベクトルレジスタt1に
ベクトルLの全要素データをロードし、マスクレジスタ
l111では、ベクトルレジスタt1の0でない要素デ
ータに対応するビットのみ1にして、他は0に保持し、
マスクレジスタm2には、mlの内容の170を反転し
てセットする。
ブロック11〜13は、以上で設定されたマスクレジス
タの制御下に実行する演算であり、各文の末尾の:m1
゛、:II+2゛ は、それぞれ指定のマスク情報によ
って、演算が行われることを指定する。
こ\で、中間プログラムテキスト6において、ブロック
14として1ブロツクを構成していたプログラムに対応
する部分について、ベクトル化プログラムテキスト8に
おいて、ブロック11から文13が分割されているのは
、ベクトル化プログラムテキスト8では、全文が実行さ
れるように構成が変換されており、その場合に、ベクト
ルへの要素データ^(i)の更新が、A(i+1)の更
新より先に実行されると、一般には、矛盾した結果を生
じる可能性があるからである。
〔発明が解決しようとする問題点〕
前記のようなベクトル化処理により得られる、ベクトル
化プログラムテキストは、一応ベクトル処理装置で実行
されるプログラムを生成するデータとなり得る。
しかし、前記のようにデータ更新等の相互関係のみに着
目して、必要なプログラム文の入れ換え等が行われる結
果、ベクトル化プログラムテキスト8として得られるプ
ログラムテキストには、前記第4図(C)のブロック1
1の文13のように、同じマスク情報の制御下で実行す
るプログラムが、分割される場合が生じる。
このために、ベクトルデータの圧縮及び要素数の変更の
制御が多くなって、ベクトル処理装置の効率を低くする
という問題があった。
〔問題点を解決するための手段〕
前記の問題点は、原プログラムから、ベクトル処理装置
によって実行するためのプログラムテキストを生成する
に際し、該原プログラムから、データ依存関係に従う所
要の実行順序を持つように配列した、第1のプログラム
テキストを生成し、第1のプログラムテキストの、連続
して配列され、同一マスク情報を使用するテキストごと
にブロックを構成し、該ブロックごとに、他のブロック
に依存するデータの入力個数を計数し、該入力個数がO
の該ブロックに依存するデータの個数を上記入力個数か
ら減じて、該各ブロックの入力個数を更新する操作を反
復し、該操作で入力個数がOになる順に、該当ブロック
を順次結合して、第2のプログラムテキストを生成する
ように構成された、本発明のベクトル処理プログラム生
成方式によって解決される。
〔作用〕
即ち、前記ベクトル化によって生成するプログラムテキ
ストを第1のプログラムテキストとし、そのブロック間
におけるデータ依存関係を調べて、他ブロックとのデー
タ依存関係における入力個数を計数する。
このようにした場合、上記入力個数がOのブロックが、
少なくとも1ブロツクはあるので、そのブロックを第2
のプログラムテキストの先頭にし、そのブロックのデー
タとのデータ依存関係の入力個数を減じることにより、
各ブロックの入力個数を更新する。
その結果、入力個数が0になったブロックを、第2のプ
ログラムテキストの最後につなぎ、そのブロックのデー
タとのデータ依存関係によって、前と同様に入力個数を
更新し、この操作を反復する。
もし、入力個数がOになるブロックが無い場合には、第
1のプログラムテキストに残っている先頭のテキストを
第2のプログラムテキストの最後につなぐテキストとし
、前記の操作を行う。
このようにして、全ブロックが第2のプログラムテキス
トにつながれることにより、プログラムテキストの生成
を終わる。
〔実施例〕
第1図は本発明の一実施例の処理の流れ図である。
第1図(alはプログラム生成の全体の処理の流れを示
し、原プログラム4からベクトル化プログラムテキスト
8までの処理は、従来と同様に進められる。
本発明により、処理装置1で実行されるマスク局所化機
構20が設けられ、ベクトル化プロゲラムチ′キスト8
を入力として、以下に説明する処理により、同一マスク
の制御下の処理ができるだけ1ブロツクに連続するよう
にプログラムテキストを変換した、プログラムテキスト
21を生成する。
第1図(b)は、マスク局所化機構10の、詳細処理の
流れを示す。
マスク局所化機構20は、まず処理のステップ22にお
いて、ベクトル化プログラムテキスト8から、ブロック
間のデータ依存関係を検査し、各ブロックのデータ依存
関係の入力個数及び出力個数を計数する。
その結果、例えば第5図(a)に示すブロック間の関係
が得られる。
即ち、第4図(C)により明らかなように、ブロック1
0からブロック11へは、マスクレジスタmlによる依
存関係が2個あり、ブロック12へは、マスクレジスタ
ff12による依存関係が3個ある等であり、ブロック
12からブロック11への関係は、ベクトル八による文
13との依存関係である。
次のステップ23において、入力個数0のブロックを探
し、本例では第5図(a)に示すように、ブロック10
のみが該当するので、これをプログラムテキスト21の
先頭に置き、以下に選択するブロックは、ブロック10
に順次チェインする。
ステップ24で入力個数0のブロックがあったか検査し
、無かった場合には、ステップ25において元のプログ
ラムテキスト8の先頭に残っているブロックを選択して
、プログラムテキスト21にチェインする。
何れの場合も、ステップ26で、プログラムテキスト2
1につないだブロックから入力していた、データ依存関
係の入力個数を、各ブロックの入力個数から減じること
により、入力個数の更新を行う。
本例において、この入力個数更新により、入力個数は第
5図(b)に示すように、ブロック10の列がすべて0
となる。
ステップ27で全ブロックを処理したか検査し、残りが
あるので、ステップ23に戻る。
前記の入力個数更新の結果、ブロック12の入カイ1数
が新たに0になるので、ブロック12を選択し、テキス
トフ゛ロフク21の2番目のフ゛ロックとする。
ステップ26で入力個数の更新をすると、ブロック11
の入力個数がOになる。従って、文13を含むブロック
11を、プログラムテキスト21につないで、全ブロッ
クの処理を終わる。
以上により、プログラムテキスト21として、第4図(
dlのテキストが得られ、マスクの局所化が達成される
〔発明の効果〕
以上の説明から明らかなように本発明によれば、ベクト
ル処理装置で実行するためのプログラムテキストが、ベ
クトル処理装置の稼動効率を高めるように構成されるの
で、情報処理システムの性能/価格を改善するという著
しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明一実施例の処理の流れ図、第2図は情報
処理システムの一構成例ブロック図、第3図は従来の一
構成例処理の流れ図、第4図はプログラム例の説明図、 第5図はデータ依存関係入力個数の説明図である。 図において、 1は処理装置     2は主起8装置、3は補助記憶
装置、  4は原プログラム、5は翻訳機構、 6は中間プログラムテキスト、 7はベクトル化機構、 8はベクトル化プログラムテキスト、 10〜12.14はブロック、 20ハマスク局所化機構、21はプログラムテキスト、
22〜27は処理のステップ (とl、ン                20(b
) 弗 1 囚 茅 2 口 早 3 囚

Claims (1)

    【特許請求の範囲】
  1. 原プログラムから、ベクトル処理装置によって実行する
    ためのプログラムテキストを生成するに際し、該原プロ
    グラムから、データ依存関係に従う所要の実行順序を持
    つように配列した、第1のプログラムテキストを生成し
    、第1のプログラムテキストの、連続して配列され、同
    一マスク情報を使用するテキストごとにブロックを構成
    し、該ブロックごとに、他のブロックに依存するデータ
    の入力個数を計数し、該入力個数が0の該ブロックに依
    存するデータの個数を上記入力個数から減じて、該各ブ
    ロックの入力個数を更新する操作を反復し、該操作で入
    力個数が0になる順に、該当ブロックを順次結合して、
    第2のプログラムテキストを生成するように構成されて
    いることを特徴とするベクトル処理プログラム生成方式
JP3799785A 1985-02-27 1985-02-27 ベクトル処理プログラム生成方式 Granted JPS61216085A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3799785A JPS61216085A (ja) 1985-02-27 1985-02-27 ベクトル処理プログラム生成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3799785A JPS61216085A (ja) 1985-02-27 1985-02-27 ベクトル処理プログラム生成方式

Publications (2)

Publication Number Publication Date
JPS61216085A true JPS61216085A (ja) 1986-09-25
JPH0419588B2 JPH0419588B2 (ja) 1992-03-30

Family

ID=12513214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3799785A Granted JPS61216085A (ja) 1985-02-27 1985-02-27 ベクトル処理プログラム生成方式

Country Status (1)

Country Link
JP (1) JPS61216085A (ja)

Also Published As

Publication number Publication date
JPH0419588B2 (ja) 1992-03-30

Similar Documents

Publication Publication Date Title
JP3318051B2 (ja) 翻訳処理方法
JPS61216085A (ja) ベクトル処理プログラム生成方式
JPS622328B2 (ja)
JPS6022373B2 (ja) プログラマブル制御装置のプログラム変換機構
JPS58200349A (ja) マイクロプログラム制御装置
JPH0414144A (ja) コンパイル処理方法
JPH0460719A (ja) 電子計算機、プログラマブル論理回路及びプログラム処理方法
JPS6297031A (ja) 仮数部のビツト数整合方式
JPH0250730A (ja) 共通機械語による言語変換方式
JPS63318605A (ja) Ncパ−トプログラム生成装置
JPH02264333A (ja) 中間言語展開処理方式
JPH08115220A (ja) ループ最適化方法
JPH047746A (ja) 機械語翻訳プログラム方式
JPH03266029A (ja) 論理型言語処理システムにおけるリスト出力方法
JPH02253443A (ja) プログラム生成方法
JPS6162141A (ja) 論理型情報処理装置
JPH01128136A (ja) コンパイル処理装置
JP2000057195A (ja) プロセッサ設計支援装置
JPS60252986A (ja) 高速フ−リエ変換装置
JPS62267831A (ja) プログラミング言語における組込み関数の演算制御方式
JPS62226334A (ja) 汎用宣言マクロ定義方式
JPH064348A (ja) プログラムデバッグ方式
JPH0573607A (ja) ベクトル命令生成処理方法
JPS62182931A (ja) デ−タ分離方式
JPH04233037A (ja) インライン展開処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term