JPS6155778A - ベクトル化処理方式 - Google Patents

ベクトル化処理方式

Info

Publication number
JPS6155778A
JPS6155778A JP17871884A JP17871884A JPS6155778A JP S6155778 A JPS6155778 A JP S6155778A JP 17871884 A JP17871884 A JP 17871884A JP 17871884 A JP17871884 A JP 17871884A JP S6155778 A JPS6155778 A JP S6155778A
Authority
JP
Japan
Prior art keywords
function
vector
processing
vectorization
scalar
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
JP17871884A
Other languages
English (en)
Other versions
JPH0417469B2 (ja
Inventor
Akikazu Abe
安部 曉一
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP17871884A priority Critical patent/JPS6155778A/ja
Publication of JPS6155778A publication Critical patent/JPS6155778A/ja
Publication of JPH0417469B2 publication Critical patent/JPH0417469B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 発明の目的 産業上の利用分野 本発明は、ベクトル化処理方式に関するものである。
従来の技術 近年、科学技術計算用等の超高速コンビターとして、並
列バイブライン処理方式を用いたベクトル・プロセッサ
が開発されている。
この種ベクトル・プロセッサに本来の高速性を発揮させ
るには、極力高いベクトル化率を達成できるようなベク
トル・コンパイラが必要になる。
従来技術の問題点 従来、コンパイラ言語で組まれたソース・プログラム中
に関数引用を含むループが存在すると。
そのループ全体のベクトル化は2次のような場合を除き
不可能となり、ベクトル化率を低下させる一因となって
いた。
(1)その関数の処理手続きをベクトル処理可能な形式
でそのループ処理手続中に展開できる場合。
(2)その関数に対して、ベクトル・レジスタまたはメ
モリを介してベクトルの長さに対応ず組の引数データと
、対応の関数値を受渡す関数処理手続き(ベクトル版の
関数)がシステム側に用意されている場合。
(3)その関数に対する上記(2)のベクトル版関数が
利用者によって用意され、しかもそれがコンパイラに知
らされている場合。
利用者が定義した関数の引用を含むループについては、
上記(3)の条件を満たさせることによってベクトル化
が可能になる。しかし、この条件を実現するためには、
関数処理手続をアセンブリ言語で記述しなければならな
い場合が多く、利用者の負担が過大になるという問題が
ある。
発明の構成 問題点を解決するための手段 上記従来技術の問題点を解決するための本発明は:ベク
トル演算機能;スカラー引数データを受取り対応のスカ
ラー関数値を返すスカラー関数処理機能;及び受取った
ベクトル引数データの各成分について前記スカラー関数
処理機能を繰り返し呼出すことにより関数値ベクトルを
生成する中継ベクトル化機能を存するシステムと:高級
言語で記述されたソース・プログラム内の関数引用を含
むループ部分に対しては、プログラム実行時において前
記中継ベクトル化機能を呼出す段階を含むように、目的
プログラムを生成するコンパイラとを備えるように構成
されている。
以下本発明の作用を実施例によって詳細に説明する。
実施例 第1図は8本発明の一実施例に使用するコンパイラの機
能ブロック図である。
コンパイラ2内のソース解析部21は、供給されたソー
ス・プログラムを解析し、ベクトル化処理部分をベクト
ル化処理部22に渡し、他の部分を非ベクトル化処理部
27に渡す、この際、ソース解析部21は、ベクトル化
処理部分のうちループ内に関数引用を含む部分について
は、これを第1のベクトル化処理部26に渡す、一方、
ソース解析部21は、ベクトル化処理部分のうち関数の
引用がない部分や、関数の引用があってもベクトル版の
関数が定義されている等の理由により従来の方式でベク
トル化処理を行う部分については。
これを第2のベクトル化処理部25に渡す。
第2図は、上述したループ内に関数引用を含むプログラ
ム部分の一例を、ソース・プログラム言語としてFOR
TPANを使用した場合について示している。このプロ
グラム部分(いわゆるDOループ)は、「配列A、B、
X、Y、Zのi番目の要素Ai、Bi、Xi、Yi、Z
iについて。
AtとBiの積を計算し、この積を引数データとして利
用者が定義した関数F tJ N Cを呼出してこの引
数データに対応した関数値を得、得られた関数値とZi
の積を計算し、この積にYiを加算し、この加算結果を
Xiに格納する」という処理を1番目の要素から200
番目の要素まで繰り返し行うという処理手順を記述して
いる。
−上述のようなループ内に関数引用を含むプログラム部
分を受取った第1のベクトル化処理部26は、これをベ
クトル化するための中間テキスト3を生成する。
第3図は、第2図のDoループに基づいて生成された中
間テキスト3の一例を示している。この中間テキスト3
において1vL1111はベクトルの長さを格納するレ
ジスタ又はメモリ、vtl〜vt8はベクトルの要素を
保持するレジスタ又はメモリである。
中間テキスト3のステップ(1)においてベクトル長が
設定される。ステップ(2)においてレジスタvtlに
配列Aの要素が格納され、ステップ(3)においてレジ
スタvtlに配列Bの要素が格納され、ステップ(4)
においてレジスタVt1とvtz内の各要素間の積が計
算される。次のステップ(5)において、第4図に示す
ような構成の中継ベクトル化機能(rVF4.C’T’
J)が。
関数名FUNCとレジスタvt3の内容を引数として呼
出され、中継ベクトル化機能V F、 CTから受けた
vt3に対する関数値がレジスタvt4に格納される。
上記中継ベクトル化機能V F、 CTにおいて、引数
データ・ベクトル(配列)12内のal、az  ・・
・a、は、それぞれ第3図のレジスタvt3から次々に
受取った引数データ(Ai−Bi)である。関数呼出し
部13は、指定された関数名F UNCで特定されるス
カラー関数を、引数データ・ベクトルの各要素atによ
って繰り返し呼出し。
対応のスカラー関数値fiを受取る。このスカラー関数
値fl、f2・・・fnを要素とする関数値ベクトル(
配列)14が生成される。
再び第3図の中間テキストにもどると、上記中継ベクト
ル化機能VECTで生成された関数値ベクトル([1,
[2・・・fn)は、第3図のステップ(5)において
レジスタvt4に格納される。次のステップ(6)にお
いて、レジスタvt5に配列Zの各要素が格納され、ス
テップ(7)においてレジスタvt4の内容とレジスタ
vt5の内容の積が計算され、この計算結果がレジスタ
vt5に格納される。ス委ツブ(8)においてレジスタ
vt7に配列Yのの要素が格納され、ステップ(9)に
おいてvt7とvt5の各要素間の加算が行われ、この
加算結果がレジスタvt3に格納される。最後に、上記
レジスタvt8の内容である配列間の演算結果が、Xに
格納される。
上述のような中間テキスト3は、中間テキスト最適化部
23において1周知の最適化処理が施されたのち、目的
プログラム生成部24に渡され。
目的プログラム4が生成される。この目的プログラムは
、ベクトル演算機能と、中継ベクトル化機能と、この中
継ベクトル化機能から呼出されるサブルーチン等のスカ
ラー関数を備える処理システムにおいて実行される。
上述の中継ベクトル化機能は第4図に示すように究めて
簡易なものであり、容易に構成できる。
また、中継ベクトル化機能を呼出す代りに。
これを第3図の中間テキスト中に展開する構成としても
よい。
なお1中継ベクトル化83!能から呼出されるスカラー
関数はベクトル化処理専用のものである必要はなく、コ
ンパイラ言語で記述された通常のプログラムであってよ
い。
コンパイラのソース解析部において、関数引用を含むル
ープを検出する構成を例示したが、ソース解析部ではル
ープのみを検出し、このループにおける関数引用の有無
をベクトル化処理部で検出する構成としてもよい。
発明の効果 以上詳細に説明したように9本発明は、システムに受取
ったベクトル引数データの各成分についてスカラー関、
数処理機能を繰り返し呼出すことにより関数値ベクトル
を生成する中継ベクトル化機能を付加すると共に、高級
言語で記述されたソース・プログラム内の関数引用ルー
プ部分に対し。
プログラム実行時において前記中継ベクトル化機能を呼
出す段階を含むように、目的プログラムを生成するコン
パイラとを備える構成であるから。
汎用のベクトル版関数が用意されたと同様の結果となり
、ベクトル化率が大幅に向上するという効果が奏される
【図面の簡単な説明】
第1図は1本発明の一実施例に使用するコンパイラの機
能ブロック図、第2図は高級言語で記述された関数引用
を含むループの例を示す図、第3図はコンパイラのベク
トル化処理部で生成される中間テキストの一例を示す図
、第3図は中継ベクトル化機能の構成の一例を示す図で
ある。 1・・ソース・プログラム、2・・コンパイラ。 3・・中間テキスト、4・・目的プログラム、21・・
ソース解析部、22,25.26・・ベクトル化処理部
、23・・中間テキストfff適化部。 24・・目的プログラム生成部、27・・非ベクトル化
処理部。

Claims (1)

  1. 【特許請求の範囲】 ベクトル演算機能、スカラー引数データを受取り対応の
    スカラー関数値を返すスカラー関数処理機能、及び受取
    ったスカラー引数の配列から成るベクトル引数データの
    各要素について前記スカラー関数処理機能を繰り返し呼
    出すことにより対応のスカラー関数値の配列から成る関
    数値ベクトルを生成する中継ベクトル化機能を有するシ
    ステムと、 コンパイル方式の高級言語で記述されたプログラム内の
    関数引用を含むループ部分に対しては、プログラム実行
    時において前記中継ベクトル化機能を呼出す段階を含む
    ように、目的プログラムを生成するコンパイラとを備え
    たことを特徴とするベクトル化処理方式。
JP17871884A 1984-08-28 1984-08-28 ベクトル化処理方式 Granted JPS6155778A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17871884A JPS6155778A (ja) 1984-08-28 1984-08-28 ベクトル化処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17871884A JPS6155778A (ja) 1984-08-28 1984-08-28 ベクトル化処理方式

Publications (2)

Publication Number Publication Date
JPS6155778A true JPS6155778A (ja) 1986-03-20
JPH0417469B2 JPH0417469B2 (ja) 1992-03-26

Family

ID=16053346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17871884A Granted JPS6155778A (ja) 1984-08-28 1984-08-28 ベクトル化処理方式

Country Status (1)

Country Link
JP (1) JPS6155778A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5022172A (en) * 1987-03-19 1991-06-11 Sanyo Electric Co., Ltd. Display apparatus for an automatic vending machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5022172A (en) * 1987-03-19 1991-06-11 Sanyo Electric Co., Ltd. Display apparatus for an automatic vending machine

Also Published As

Publication number Publication date
JPH0417469B2 (ja) 1992-03-26

Similar Documents

Publication Publication Date Title
US6292939B1 (en) Method of reducing unnecessary barrier instructions
US5146594A (en) Method of producing object program based on interprocedural dataflow analysis of a source program
US5099447A (en) Blocked matrix multiplication for computers with hierarchical memory
US5481723A (en) System and method for controlling execution of nested loops in parallel in a computer including multiple processors, and compiler for generating code therefore
Rau et al. Efficient code generation for horizontal architectures: Compiler techniques and architectural support
RH Jr Parallel symbolic computing
Perez et al. Improving the integration of task nesting and dependencies in OpenMP
US6141794A (en) System and method for synchronizing access to shared variables in a virtual machine in a digital computer system
US5504901A (en) Position independent code location system
EP0474425A2 (en) Arrangement for efficiently transferring program execution between subprograms
GB2273377A (en) Multiple masks for array processors
US5396627A (en) Method of producing object program based on interprocedural dataflow analysis of a source program
Eles et al. Synthesis of VHDL concurrent processes
EP0168827A2 (en) Data processing method and apparatus
Anantharaman et al. A hardware accelerator for speech recognition algorithms
JPS6155778A (ja) ベクトル化処理方式
US20030126589A1 (en) Providing parallel computing reduction operations
Roh et al. An Evaluation of Optimized Threaded Code Generation.
Kaiser et al. Overlapping communication and computation with OpenMP and MPI
JP3317816B2 (ja) コンパイラにおけるデータ転送処理割り付け方法
Smith Parallel Computing in C/C++
JP2870218B2 (ja) 並列実行命令列生成方式
JPH0573607A (ja) ベクトル命令生成処理方法
Shin et al. Identification of microprogrammable loops for problem oriented architecture synthesis
JP2518504B2 (ja) 目的プログラム生成装置