JPS58151654A - レジスタ割付け方式 - Google Patents

レジスタ割付け方式

Info

Publication number
JPS58151654A
JPS58151654A JP3335682A JP3335682A JPS58151654A JP S58151654 A JPS58151654 A JP S58151654A JP 3335682 A JP3335682 A JP 3335682A JP 3335682 A JP3335682 A JP 3335682A JP S58151654 A JPS58151654 A JP S58151654A
Authority
JP
Japan
Prior art keywords
program
processing
register
data
function
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
JP3335682A
Other languages
English (en)
Inventor
Chizuru Sasaki
千鶴 佐々木
Fumio Isobe
磯辺 文雄
Hirobumi Yamada
博文 山田
Toshihiro Hirabayashi
平林 俊弘
Morie Sagawa
佐川 守江
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 JP3335682A priority Critical patent/JPS58151654A/ja
Publication of JPS58151654A publication Critical patent/JPS58151654A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (A)発明の技術分野 本発明はプログラム言語コンパイラでのレジスタ割付は
方式、特に所定単位のプログラムである関数を使用し得
るプログラム言語で、該プログラムのコンパイル結果で
ある目的プログラムに該関数処理ステップを展開して組
み込む場合に、そのレジスタ割付けを任意に行うように
したコンパイル時のレジスタ割付は方式に関する。
(B)技術の背景と問題点 例えば、第1図ta+に示ず如く、ベクlルAに属する
ニレメンI・al、a2.・・と、ベクトルBに属する
ニレメン1−bl、b2.・・との各エレメント相互を
加算して、エレメントc1.c2.・・をもつベクトル
Cを生成するような、ベクトル命令を実行するベクトル
処理プロセッサが開発されてきている。第1図(a1図
示の場合、第1番目のニレメンl−,相互の加算を行う
か否かをマスク・エレメントm1.m2.・・にて指示
するようにされており、第1図fblに一般化して示す
如き処理が行なわれる。
上記の如き処理を行うベク;・ル処理プロセッサを有す
るデータ処理システムは、一実施例とじて第2図図示の
如きシステム構成をもっている。図中の符号Iは主記憶
装置、2はメモリ制御装置。
3はベクトル処理プロセッサ、4はチャネル・プロセッ
サ、5は大記憶装置、6はスカラ処理回路部、7はベク
トル処理回路部、  8−0. 8−]。
・・は夫々浮動小数点データ・レジスタ、9−0゜9−
1.・・は夫々複数個のデータ (エレメント・データ
)を格納し得るベクトル・レジスタ、10−0.10−
1.  ・・は夫々複数個のマスク・データ (マスク
・ニレメンI・・データ)を格納し得るマスク・レジス
タ、11はベクトル長レジスタであって各ベクトル・レ
ジスタに格納されるエレメントの個数情報かセットされ
るもの、12−0.12−1.  ・・は夫々メモリ・
アクセスパイプライン、13は加減算パイプライン、1
4は乗算処理パイプライン、14°は除算処理パイプラ
イン、15はボスト・ウェイト処理部、16はマスク処
理パイプラインを表している。
」二記の如きベクトル処理プロセッサが処理を実行する
に当たって、当該プロセッサが実行するに適した形に、
与えられたソース・プログラムをコンパイルし、目的プ
ログラムを生成することが行われる。
このコンパイルを行うコンパイラの構成は、第3図を参
照して後述されるが、当該コンパイラの晟終段階におけ
る目的プログラム出力部において。
コンパイル結果は出力される。
一般にソース・プログラムでは、予め作成されている関
数プログラムを参照して処理が可能となっており、実際
の処理では、該関数プログラムが実行されることになる
。この処理は、実質的に該関数プログラム・ステップか
実行されればよい。
例えば2分岐命令を用いるでも達成できる。しかし2分
岐命令の゛実行は逐次性が崩れることになり。
あまり有効な方式でなく、ソース・プログラムから目的
プログラムを生成する際、該関数プログラムを、あたか
もソース・プログラム中に最初から存在していたかの如
く目的プログラムプログラム中に組み込んでしまうよう
にされる。
第6図は、レジスタ割付は前のプログラム命令の状態で
あり、■ではシロ、vt2の定義と参照を示し、■のス
テップでは、vtlのsinでνt3を定義するベタ1
ル命令を意味し、■のステップではvLiをvLiのs
inで定義するベクトル命令を意味し。
■では上記■と■ステップとで求めたνE3とν14・
との加算処理を示し、■ではvtlの参照が行われ町る
ことを意味する。
この2つのsinに関する処理は、三角関数を処理する
プログラムで行われ、このブロクラムを目的プログラム
中に展開する。この処理は一般には。
インライン展開と呼ばれ、第7図の如く、関数の種類に
夕・対応して引数データと結果データとが示され、各関
数プログラムは該引数データ(予め定められたレジスタ
、VRO)の内容を承に実行され。
その結果を結果データ (予め定められたレジスタ。
VRI )に格納する。
従って、レジスタ割付は後の第6図は第8図の如くとな
る。vtlはVRO,vL2はVR2,vt3はVRI
に対応し、更に、 T、01とVR3が処理の上で必要
となる。このT、Olはテンポラリデータで5− ある。■°〜■°は夫々■〜■に相当する処理である。
しかし、関数プログラムは常に、VROの内容に基すき
、関数計算を行い結果をVRIへ格納するため、■゛の
ステップを実行するとVRIの内容が消えてしまうため
、一時的に値を格納しておく処理■〜■が挿入されてい
る。
このように、各関数プログラムで使用するレジスタか固
定的に決まっていると、該レジスタにつき該関数プログ
ラムが実行される直前には該レジスタについて予めメモ
リに退避するなどの処理をして、関数プログラムで使用
されるレジスタを解放しておかねばならない。このレジ
スタ解放のためのメモリへの退避は処理の効率から言え
ば、無い方がよく、その為各関数プログラムは可能な限
り少ないレジスタでその処理が遂行されるよう作成され
ている。
しかしながら、上記ベクトル処理プロセッサにおいては
、レジスタの数がかなり多い」二に、繰り返し処理が多
い等のために、関数プログラムでその処理に必要なレジ
スタが関数プログラムで固定6− になっていると、イルの処理効率が落ちてしまう。
即ち、上記の如くレジスタを少なくするよりは。
レジスタを多く使っても処理速度を向上することの方か
へり1ル処理プロセツサにとっては重要である。
(C)発明の目的と構成 本発明の目的は、−に記欠点を無<シ、ソース・プログ
ラム中に関数ブ1コグラム処理を指定する処理があった
場合、該関数プログラムを目的プログラム中に展開する
様にし5月っ効率良くプログラム処理が行われるように
コンパイルするレジスタ割付は方式を提供することであ
る。
この目的は、所定単位のプログラムに対応して。
該所定単位のプログラムの種類、引数データ、結果デー
タ及び作業用データを備え、プログラム言語をコンパイ
ル中に所定単位のプログラムを参照する処理指定があっ
た場合、該所定単位のプログラムに対応する」二記3デ
ータに基すき該時点で最適なレジスタを該3データに割
付けるとともに。
コンパイル結果の出力に際しては、該参照されたプログ
ラム中の上記データについては割付けられたレジスタに
置換しつつ、該参照プログラムをコンパイラ結果中に展
開し得るにようにすることで達成される。次に図面を用
いて更に詳細に本発明を説明する。
(D)発明の実施例 第3図は1本発明に用いるコンパイラの一実施例構成、
第4図はソース・プログラムを中間コードに移してゆく
態様を示ず図、第5図はソース・プログラムをベクトル
化し−ζゆく態様を示す図。
第6図はレジスタ割付は前の命令列、第7図は従来の関
数プログラムの制御情報、第8図は従来の処理結果、第
9図は本発明の一実施例、第10図は本発明での処理結
果の命令列である。
第3図において、17は大記憶装置に格納されているソ
ース・プログラム、1Bはコンパイラ。
19はコンパイルされて大記憶装置上に格納される目的
プログラム、20はソース解釈部、21は記憶域割付部
、22はベクトル化部、23は中間コード最適化部、2
4はレジスタ使用決定部、25は逐次処理保障部、26
は目的プログラム出力部を夫々示している。
コンパイラ18は大記憶装置からソース・プログラム1
7を取り込んで、所望の目的プログラム19を生成する
。この時3図示の各部は次のような処理を行う。即ち、
ソース解釈g120は、ソース・プログラム17を大記
憶装置から取込み1文解釈を行って中間コード(テキス
ト)に展開する。例えば。
ソース・ブロクラム17が第4図または第5図の各左側
の如き場合1図示右側の如く中間コードに展開する。記
憶域割付部21は、プログラム内に出現する各種データ
に対応して記憶域内番地を割り当てる。ベクトル化処理
部22は、プログラム中のループ構造を検出し、並列処
理可能部分を認識し。
中間コード変換を行う。中間コード最適化部23は。
中間コードのレベルで、第2図図示の如きベクトル処理
プロセッサを有効に利用するだめの最適化を施す。レジ
スタ使用決定部24は、中間コードに現れたデータに対
して、ベクトル処理プロセッサ上の資a(レジスタまた
は記憶域)を割当てる。
9− そし−(、目的プログラム出力部25は機械語命令群を
大記憶装置へ出力し且つ命令語レベルでの最適化を行う
ベクI・ル処理プロセッサを稼働さゼるためのコンパイ
ラ18は、第3図図示の如き構成をしており5ソース・
プログラムから目的プログラムを生成してゆく。
第10図は本発明の一実施例であり2図に於て前図と同
記号のものは前図と同様のものを示し。
26は関数プログラム、27は各関数に対応してそのプ
ログラムで使用される変数に対し5割付は可能なレジス
タ数に対応してどの様に割付けるかを示すテーブルを格
納したメモリ、28はソース・プログラムを順次取り出
す命令取出部、29はコンパイル時点で割付は可能なレ
ジスタ及びその数を把握し、当該関数プログラムで使用
されている各変lJ1.等に対応したレジスタ名を格納
したテーブル30を作成するテーブル作成部、31は命
令取出部28が関数プログラムを指定するとき、目的プ
ログラム出力に際してインライン展開を該テープ−10
− ル30 ヲ参照しつつ関数プログラム26中の変数をレ
ジスタに置き換える処理を行うインライン展開部である
次に動作を説明する。関数プログラム26の各々につき
、その処理で使用するレジスタがテーブル・メモリにテ
ーブル形式で格納されている。このテーブルは、対応す
るプログラムの処理で最大限のレジスタを使用した場合
の各レジスタ (BO〜B50)に対して、使用し得る
レジスタ関数(10,15゜・・30)ごとに論理的に
どの様のレジスタ (例えば、10個であればAO,A
1.  ・・A10)を割付ければよいかを示している
。今仮りに、命令数山部28がインライン展開すべき命
令を検出したとする。
その旨かテーブル作成部29に通知され、テーブル作成
部29はその時点のレジスタ割付は状況をレジスタ割付
は部24より知り、それが17.つまり割付けのなされ
ていないレジスタが171園だとする。するとテーブル
・メモリ27をアクセスして、当該関数プログラムに対
応するテーブル27−0の15の欄を参照し、論理AO
−A]5に対してレジスタ割付は部24ニ基すき、物理
レジスタνR100,VR110,・・VR50を割付
け、テーブル30を作成する。尚、関数プログラムは上
記BO〜B30を用いてプログラムが作成されている。
そして、目的プログラムを出力する際には、インライン
展開部31は関数プログラム中の各変数(BO〜B50
)をテーブル30を参照して物理レジスタVR100,
・・νR50)に変換しつつ出力部25へ関数プログラ
ム26−0をわたし、該目的プログラム出力部は、関数
プログラムをインライン展開した形式の目的プログラム
18を生成する。
従って、第6図に示す如きプログラム・ステップは本発
明では、第11図のごとき出力を行う。
つまり、VROを使って■゛′をインライン展開し。
VRIを使って■゛をインライン展開する。更に。
上記テーブル作成部29の処理において、レジスタ割付
は部24が示ず使用し得るレジスタが10個以下の場合
には、アクティヒイティの低いものからレジスタを取っ
て割付け、最低個数のレジスタは必ず確保するのは勿論
である。
(E)発明の効果 本発明によれば、ソース・プログラムの中で指定される
関数プログラムを目的プログラム中にインライン展開す
る際に予め固定のレジスタに割付けるのでなく、任意の
レジスタに割付けることが可能となったので、コンパイ
ラの処理能力、特にベクI・生処理プロセッサで処理を
実行すると効果のある形式の目的プログラムを出力する
ことが可能となり、処理装置の処理を高効率化すること
ができる。
【図面の簡単な説明】
第1図はベクトル命令に対応した処理を概念的に説明す
る説明す、第2図は本発明に言うベクトル処理プロセッ
サを有する処理システムの一実施例、第3図は本発明に
用いるコンパイラの一実施例構成、第4図はソース・プ
ログラムを中間コードに移してゆく態様を説明する説明
図、第5図はソース・プログラムをベクトル化してゆく
態様を説明する説明図1.第6図はレジスタ割付は前の
命令列、第7図は従来の関数プログラムの制御情13− 報、第8図は従来の処理結果、第9図は本発明の一実施
例、第10図は本発明での処理結果の命令列である。 図において51は主記憶装置、2はメモリ制御装置、3
はベクトル処理プロセッサ、4はチャネル・プロセッサ
、5は大記憶装置、9はベクトル・レジスタ、10はマ
スク・レジスタ、11乃至■4と16は夫々バイブライ
ン演算部、15はポスト命令/ウェイト命令処理部、1
7はソース・プログラム、18はコンパイラ、19は目
的プログラム、26は関数プログラム、27はテーブル
・メモリ、29はテーブル作成部、31はインライン展
開部を表している。 14− 特開昭58−151654(6) A−tyttz t3= it f 12 A(zI=t3 第4図 v 3 図 、  toθ                  V
LEN13=lθ0茅5V 2ttr≦     ) 二υt? シフ!3工V、51〜(υt/)■ νid’=V51〜(vt、?) ■ =2/′t3すν/4 ■ 一νt/    ■ 芥 l、 り 第 7 目 r/pθ= VRど− 二VRO ミVRど VRf= 1/、57.IV ((/Rθ)1θ1=V
Rθ VR,3=  VRI VFO=VRど Vfi’! =  V、31N(VRθン巳(/R3す
I//i?f = Tey VRθ= VR1= =VRρ =VR1 17P!Z=V、Sl〜 (VRI) >VF’3二v
、slN (VR1) =VRどすlぞ3 =V/?θ 第10目 手続補正書(方式) 1事f’lの表示 昭和に7ず1−持d′醪t]第J)3ヱ交/ シ副3 
補正を4′る者 事件との閏脩     IXイl出ηf1人住所 神奈
川県用崎市1N61区1.・j・111中1015番地
(522)名称富士通株式会社 4 代  理  人     f1ミ所 神奈川県用崎
市中1+iiK、 L/I・1111111015爵地
富士通株式会社内 昭和3タイ1 a月ノ?11 6 補11:により増7411する発明の数 hし7補
11のλ・ffjt  1図面(不1Σ)8補11]J
ら内容 Zり紙の通り 4、゛y

Claims (1)

    【特許請求の範囲】
  1. 他の所定単位のプログラムを言語仕様上参照し得るプロ
    グラム言語のコンパイル時のレジスタ割付は方式におい
    て、所定単位のプログラムに対応して、該所定単位のプ
    ログラムの種類、引数データ、結果データ及び作業用デ
    ータを備え、プログラム言語をコンパイル中に所定単位
    のプログラムを参照する処理指定があった場合、該所定
    単位のプログラムに対応する上記3データに基ずき該時
    点で最適なレジスタを該3データに割付けるとともに、
    コンパイル結果の出力に際しては、該参照されたプログ
    ラム中の上記データについては割付けられたレジスタに
    置換しつつ、該参照プログラムをコンパイラ結果中に展
    開し得るにようにしたことを特徴とするコンパイル時の
    レジスタ割付は方式。
JP3335682A 1982-03-03 1982-03-03 レジスタ割付け方式 Pending JPS58151654A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3335682A JPS58151654A (ja) 1982-03-03 1982-03-03 レジスタ割付け方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3335682A JPS58151654A (ja) 1982-03-03 1982-03-03 レジスタ割付け方式

Publications (1)

Publication Number Publication Date
JPS58151654A true JPS58151654A (ja) 1983-09-08

Family

ID=12384297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3335682A Pending JPS58151654A (ja) 1982-03-03 1982-03-03 レジスタ割付け方式

Country Status (1)

Country Link
JP (1) JPS58151654A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144629A (ja) * 1988-11-25 1990-06-04 Nec Corp 言語処理プログラムの処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02144629A (ja) * 1988-11-25 1990-06-04 Nec Corp 言語処理プログラムの処理方式

Similar Documents

Publication Publication Date Title
KR101759266B1 (ko) 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법
CA1159151A (en) Cellular network processors
JP5102758B2 (ja) 複数の発行ポートを有するプロセッサにおける命令グループを形成する方法、並びに、その装置及びコンピュータ・プログラム
JPH04503416A (ja) データフローマルチプロセサシステム
KR940018757A (ko) 슈퍼스칼라 프로페서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
US4817027A (en) Method and apparatus for evaluating partial derivatives
JPS58151654A (ja) レジスタ割付け方式
Hawkins et al. A multi-pass translation scheme for ALGOL 60
US10475151B2 (en) Graphics engine resource management and allocation system
US7181595B1 (en) Method for decoding composite VLIW packets utilizing a tree structure
Contessa et al. MaRS, a combinator graph reduction multiprocessor
JPH03135630A (ja) 命令スケジューリング方式
JPS6319906B2 (ja)
JPH06103462B2 (ja) ベクトル・レングス制御範囲分割処理方式
JPS6321946B2 (ja)
JPH02183833A (ja) マルチプロセッサ用コンパイル方式
Trivedi Prepaging and applications to structured array problems.
Treleaven Towards a decentralised general-purpose computer
JPS6319908B2 (ja)
Zelkowitz PIT: A macro‐implemented implementation language
JPS62202264A (ja) ベクトル演算処理方式
JPH046020B2 (ja)
JPH0152779B2 (ja)
JPS6027947A (ja) コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式
JPS6252899B2 (ja)