[go: up one dir, main page]

JPH03177931A - Optimal object selection execution processing device - Google Patents

Optimal object selection execution processing device

Info

Publication number
JPH03177931A
JPH03177931A JP31822089A JP31822089A JPH03177931A JP H03177931 A JPH03177931 A JP H03177931A JP 31822089 A JP31822089 A JP 31822089A JP 31822089 A JP31822089 A JP 31822089A JP H03177931 A JPH03177931 A JP H03177931A
Authority
JP
Japan
Prior art keywords
type
instruction
hardware
executed
library
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
JP31822089A
Other languages
Japanese (ja)
Other versions
JP3191263B2 (en
Inventor
Masaki Aoki
正樹 青木
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 JP31822089A priority Critical patent/JP3191263B2/en
Publication of JPH03177931A publication Critical patent/JPH03177931A/en
Application granted granted Critical
Publication of JP3191263B2 publication Critical patent/JP3191263B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To perform the optimum processing in response to various device types with a single program by multiplying an object and at the same time selecting an execution route in accordance with the called type. CONSTITUTION:A load module 4 is loaded in a higher rank hardware 1, for example, and executed. Thus a type take-out instruction part 10 is first executed and a type setting library 6 is called out. The library 6 takes out the type A of the hardware 1 and sets it to an object interface 8. Then a multiplex object 11 is executed and the reference is given to the interface 8. Thus an optimized instruction train, e.g., an instruction train for A 12 is selected in accordance with the type A out of those instruction trains 12 - 14. Then the selected train 12 is carried out. Thus the instructions suited to plural types of hardware can be executed with a single program.

Description

【発明の詳細な説明】 〔概 要〕 実行時のハードウェア機種に対応じた最適オブジェクト
選択実行処理方式に関し。
[Detailed Description of the Invention] [Summary] The present invention relates to an optimal object selection execution processing method corresponding to the hardware model at the time of execution.

1つのプログラムで複数機種のハードウェアに二訓す、
畠必中傅χ面炸シナスマシえ日晒シl種別を設定するた
めのオブジェクトインクフェースと、前記種別の各々に
応じて最適化された複数の同一内容の命令列を含む多重
オブジェクトと。
One program can teach multiple types of hardware,
an object ink face for setting a type, and a multiple object containing a plurality of instruction sequences with the same contents optimized according to each of the types.

前記種別を前記オブジェクトインタフェースに設定する
種別設定ライブラリと、前記種別設定ライブラリを呼び
出すための種別取出命令部とをロードモジュールに備え
、前記ロードモジュールを複数のコンピュータハードウ
ェアのいずれかで実行する場合に、前記種別取出命令部
によって呼び出された前記種別設定ライブラリが前記種
別を前記オブジェクトインタフェースに設定し、前記多
重オブジェクトが設定された前記種別を参照して当該多
重オブジェクトの複数の命令列のうち当該設定された種
別に応じた命令列を選択して実行するように構成する。
A load module is provided with a type setting library for setting the type in the object interface and a type retrieval instruction section for calling the type setting library, and the load module is executed on any of a plurality of computer hardware. , the type setting library called by the type retrieval instruction section sets the type to the object interface, refers to the type to which the multiple object is set, and selects the setting among the multiple instruction sequences of the multiple object. The configuration is configured to select and execute a sequence of instructions according to the type of command.

〔産業上の利用分野〕[Industrial application field]

本発明は、最適オブジェクト選択実行処理方式に関し、
更に詳しくは、実行時のハードウェア機種に対応じた最
適オブジェクト選択実行処理方式通常、コンピュータの
ハードウェアには下位から上位までいくつかの機種が存
在し、これらの間では互換性が保たれる。従って2例え
ば汎用大型コンピュータで実行できるプログラムは、そ
の上位のスーパーコンピュータでも実行可能である。
The present invention relates to an optimal object selection execution processing method,
For more details, see the optimal object selection execution processing method corresponding to the hardware model at runtime.Normally, there are several types of computer hardware, from low to high, and compatibility is maintained between them. . Therefore, for example, a program that can be executed on a general-purpose large-sized computer can also be executed on a supercomputer located above it.

しかし、この場合、必ずしも、上位機種に最適の実行形
式で実行されているとは言えないことがある。
However, in this case, it may not necessarily be said that the execution format is optimal for the higher-end model.

〔従来の技術〕[Conventional technology]

コンピュータの下位機種と上位機種は1通常同一のアー
キテクチャで統一され、また、プログラム資産を守るた
めに命令レベルでの互換性を有する。しかし、各々のハ
ードウェアの物量等積々の違いがあるため、同一の命令
列(又はオブジェクト)を実行したとしても2両者の間
の相対的な実行性能は異なってくる。即ち1個々のハー
ドウェアに通した命令列(又は実行形式)が存在する。
Lower-level and upper-level computer models usually have the same architecture and are compatible at the instruction level to protect program assets. However, since there are differences in the quantity of each hardware, the relative execution performance between the two will differ even if the same instruction sequence (or object) is executed. That is, there is a sequence of instructions (or an execution format) that is passed through each piece of hardware.

この傾向は、パイプライン型のスーパーコンピュータで
特に顕著である。
This tendency is particularly noticeable in pipeline-type supercomputers.

ところで、今、センターに下位及び上位の2台のスーパ
ーコンピュータハードウェア(CI’U:中央処理装置
)が設置されているとする。この場合、ユーザのライブ
ラリやアプリケーションプログラムは1両者に共通のデ
ータセットとして用意される。即ち、各々のamに通し
た命令列のデークセノドが、上位用及び下位用として別
に用意されることはない。
By the way, it is assumed that two supercomputer hardware units (CI'U: central processing unit) are installed at the center, a lower level and an upper level. In this case, the user's library and application program are prepared as a data set common to both. That is, the dexenode of the instruction string passed through each am is not prepared separately for upper and lower orders.

この共通のデータセットは、ソースプログラムとしてで
はなくロードモジュールの形で用意されるが、その命令
列は、以下の理由で下位機種の命令のみからなるように
される。即ち、スーパーコンピュータでは、上位機種は
下位機種の命令の全てに互換性を持つが5下位機種は上
位機種の命令の全てに互換性を持つとは限らない、そこ
で、下位機種の命令により構成することにより1両者に
共通のデータセントとしている。
This common data set is prepared in the form of a load module rather than as a source program, but its instruction sequence is made to consist only of instructions for lower-level models for the following reason. In other words, in a supercomputer, a higher-order model is compatible with all of the instructions of a lower-order model, but a lower-order model is not necessarily compatible with all of the instructions of a higher-order model. This makes one data center common to both.

/Pk nRJ、z hQ 本+  l−Q J−ナス
ill Uf+ 1前述の従来技術において、1つのデ
ータセットが機種の区別なく動作できるようにするため
に。
/Pk nRJ, z hQ book+ l-Q J-nas ill Uf+ 1 In the above-mentioned conventional technology, in order to enable one data set to operate without distinguishing between models.

FORTRAN等の高級言語のコイバイラは、全ての機
種で動作可能な命令列を出力していた。従って1個々の
機種から見ると、プログラムを表現するのに最適な命令
列とされていないことが多いという問題があった。
Koibira, a high-level language such as FORTRAN, outputs a sequence of instructions that can be run on all models. Therefore, from the perspective of each individual model, there is a problem in that the instruction sequence is often not optimal for expressing a program.

また、スーパーコンピュータでは、互換性について前述
の如き特徴があるため、最下位機種に合わせて命令列が
決定される。このため、ライブラリ等を上位機種で実行
した場合、その実行性能に問題があった。即ち、上位機
種の性能を十分に活用できないという問題があった。
Furthermore, since supercomputers have the above-mentioned characteristics regarding compatibility, the instruction sequence is determined according to the lowest model. For this reason, when a library or the like is executed on a higher-end model, there is a problem with its execution performance. That is, there was a problem in that the performance of higher-end models could not be fully utilized.

なお、スーパーコンピュータ用のコンパイラには、その
命令列を実行するハードウェア(CPU)の特性に応じ
て最適な命令列を出力するものもある。しかし、この場
合は、当該コンパイラから出力されたプログラム(オブ
ジェクト)は、ユーザが指定した唯一の機種でしか実行
することがw  A  fr  /  す、+ 1  
 4M−−プ   J−yh     I−41傘4t
 all) m Jベカ在する場合、基本的部分には互
換性があるにも拘らず、各機種毎にコンパイルを行い、
ロードモジュールを持つ必要が生しるので、ユーザの負
担。
Note that some compilers for supercomputers output an optimal instruction sequence according to the characteristics of the hardware (CPU) that executes the instruction sequence. However, in this case, the program (object) output from the compiler can only be executed on the only machine specified by the user.
4M--pu J-yh I-41 umbrella 4t
all) m If there is a JBeka, compile it for each model even though the basic parts are compatible.
Since it is necessary to have a load module, it is a burden on the user.

資源の有効利用という点で問題がある。There is a problem in terms of effective use of resources.

本発明は、1つのプログラムで複数機種のハードウェア
に適した命令実行を可能とした最適オブジェクト選択実
行処理方式を提供することを目的とする。
SUMMARY OF THE INVENTION An object of the present invention is to provide an optimal object selection and execution processing method that allows one program to execute instructions suitable for multiple types of hardware.

〔課題を解決するための手段〕[Means to solve the problem]

第1図は本発明の原理構成図であり9本発明によるデー
タ処理システムを示している。
FIG. 1 is a diagram showing the principle structure of the present invention, and shows a data processing system according to the present invention.

第1図において、工ないし3はコンピュータハードウェ
ア、4はロードモジュール、5はオブジェクト、6は種
別設定ライブラリ、7はオブジェクト5のデータ部、8
はオブジェクトインタフェース 9はオブジェクト5の
命令部、10は種別取出命令部、11は多重オブジェク
ト、12ないし14は最適化された命令列である。
In FIG. 1, numeral 3 is computer hardware, 4 is a load module, 5 is an object, 6 is a type setting library, 7 is a data section of object 5, and 8
is an object interface; 9 is a command section of the object 5; 10 is a type fetch command section; 11 is a multiple object; and 12 to 14 are optimized command sequences.

例えば計算機センターに3種別(機種)の異なる複数の
コンピュータハードウェア1ないし3が設けられ、また
、これらに共通のロードモジュール4が備えられる。
For example, a plurality of computer hardware 1 to 3 of three different types (models) are provided in a computer center, and a common load module 4 is provided for these.

ロードモジュール4は、プログラムをコンピュータハー
ドウェアエないし3で実行可能な形式としたものであり
、当二亥プログラムのオブジェクト5と種別設定ライブ
ラリ6とからなる。
The load module 4 is a program in a format executable by the computer hardware 1 to 3, and includes an object 5 of the current program and a type setting library 6.

オブジェクト5は、オブジェクトインタフェース81種
別取出命令部10及び多重オブジェクト11を含む。オ
ブジェクトインタフェース8は。
The object 5 includes an object interface 81, a type retrieval instruction section 10, and a multiple object 11. Object interface 8.

コンピュータハードウェア1ないし3の種別を設定する
ための領域である。この設定は2種別設定ライブラリ6
によって行われる。このために1種別取出命令部10が
1種別設定ライブラリ6を呼び出す。一方、多重オブジ
ェクト11は9種別に応じて最適化された複数の同一内
容の命令列12ないし工4を含む。
This is an area for setting the type of computer hardware 1 to 3. This setting has two types of settings library 6
carried out by For this purpose, the 1-type extraction instruction section 10 calls the 1-type setting library 6. On the other hand, the multiple object 11 includes a plurality of instruction sequences 12 to 4 having the same content, which are optimized according to nine types.

〔作 用〕[For production]

ロードモジュール4が、コンピュータハードウェア1な
いし3のうちのいずれか1例えば上位のハードウェア1
で実行されるとする。
The load module 4 is connected to any one of the computer hardware 1 to 3, for example, the upper hardware 1.
Suppose it is executed with

ロードモジュール4が上位のハードウェア1にロードさ
れ、実行が開始されると、まず9種別取出命令部lOが
実行され1種別設定ライブラリ6が呼び出される。
When the load module 4 is loaded into the higher-level hardware 1 and execution is started, the 9-type fetch instruction unit 1O is executed and the 1-type setting library 6 is called.

種別設定ライブラリ6は、上位のハードウェアlの種別
「A」を取り出し、これをオブジェクトインタフェース
8に設定し、オブジェクト5に復帰する。
The type setting library 6 takes out the type "A" of the upper hardware l, sets it in the object interface 8, and returns it to the object 5.

この後、多重オブジェクト11が実行され、オブジェク
トインタフェース8が参照される。これにより、多重オ
ブジェクト11は、実行されているハードウェアの種別
がr A Jであることを知る。
After this, the multiple object 11 is executed and the object interface 8 is referenced. As a result, the multiple object 11 knows that the type of hardware being executed is r A J.

そこで、命令列12ないし14のうち1種別「A」に応
じて最適化された1つの命令列(A用命令列)12が選
択され、実行される。
Therefore, among the instruction sequences 12 to 14, one instruction sequence (A instruction sequence) 12 optimized according to one type "A" is selected and executed.

以上によれば、ロードモジュール4が実行されるコンピ
ュータハードウェアエないし3の種別を調べ、これに応
じて動的に最適化された命令列12ないし14を選択し
、実行できる。従って8種別に応じてプログラムを最適
に表現した形で実行でき、当該機種の性能そ十分に活用
できる。また。
According to the above, it is possible to check the type of computer hardware A to 3 on which the load module 4 is executed, and select and execute a dynamically optimized instruction sequence 12 to 14 according to this. Therefore, programs can be executed in an optimally expressed form according to the eight types, and the performance of the relevant machine can be fully utilized. Also.

1つのプログラムについて1つのロードモジュールを、
複数の種別のコンピュータハードウェア1ないし3に共
通のものとすることができる。
One load module for one program,
It can be common to multiple types of computer hardware 1 to 3.

〔実施例〕〔Example〕

第1図について更に説明する。 FIG. 1 will be further explained.

コンピュータハードウェアエないし3は3例えばスーパ
ーコンピュータcpu、又は、CPUと主メモリとから
なる処理装置である(以下、単にCPUという)。CP
U1.2及び3は、各、々。
Computer hardware 3 is, for example, a supercomputer CPU, or a processing device consisting of a CPU and a main memory (hereinafter simply referred to as CPU). C.P.
U1.2 and 3 are each.

上位、中位、下位の関係にある機種であり、同一のアー
キテクチャを有し、命令レベルでの互換性を有する。よ
り上位の機種は、下位の機種の命令の全てに互換性を持
つが、下位の機種は、より上位の機種の命令の全てに互
換性を持つものではない。
These are high-level, middle-level, and low-level models, have the same architecture, and are compatible at the instruction level. A higher-order model is compatible with all the instructions of a lower-order model, but a lower-order model is not compatible with all of the instructions of a higher-order model.

CPUI、2及び3の機種は、各々1種別「A」「B1
乃び「CIとL7男される一従一て 鋒iポの種別「A
」に対応する命令列12はCPUIのみで実行可であり
1種別rB」に対応する命令列(B用命全列)13はC
PUI及びCP U 2で実行可であり1種別「Cjに
対応する命令列14はCP U 1ないし3に共通に実
行可である(従って。
CPUI, 2 and 3 models each have one type "A" and "B1"
``CI and L7 man's type of IPO ``A''
The instruction sequence 12 corresponding to ``1 type rB'' can be executed only by the CPU, and the instruction sequence 13 (all B instruction sequences) corresponding to ``1 type rB'' is C
The instruction sequence 14 which is executable by PUI and CPU 2 and corresponds to one type "Cj" is executable in common by CPUs 1 to 3 (therefore.

共通命令列という)。種別は、各々のCPUIないし3
において5例えば所定のレジスタに格納される。
(referred to as a common instruction sequence). The type is each CPUI to 3
5, for example, is stored in a predetermined register.

オブジェクト5は、コンパイラからの出力として得られ
1デ一ク部7と命令部9とを含む。
The object 5 is obtained as an output from the compiler and includes a decoder section 7 and an instruction section 9.

オブジェクトインクフェース8は、データ部7の所定の
位置に設けられ、コンパイラ(又はオブジェクト)とラ
イブラリとが共通に引用できるようにされる。従って1
種別(以下、CP[JID:識別子)は、オブジェクト
5又はロードモジュール4の所定の位置に設定される。
The object ink face 8 is provided at a predetermined position in the data section 7 so that the compiler (or object) and the library can commonly cite it. Therefore 1
The type (hereinafter referred to as CP [JID: identifier) is set at a predetermined position of the object 5 or load module 4.

種別取出命令部10は、命令部9の先頭に設けられる。The type extraction instruction section 10 is provided at the beginning of the instruction section 9.

従って、実行時、他の全ての命令の実行に先立って9種
別設定ライブラリ6が初期化ル・−チンとして実行され
、CPU1Dが設定される。
Therefore, at the time of execution, the nine type setting library 6 is executed as an initialization routine prior to execution of all other instructions, and the CPU 1D is set.

これにより、以後の全ての命令列について、CPUTD
に応じた選択が可能となる。なお、「命令列」は、1つ
の命令のみからなるものをも含む、種別取出命令部10
は1例えば、rCALI、種別設定ライブラリ」の如き
構成とされ、コンパイラにより自動生成される。
As a result, for all subsequent instruction sequences, CPUTD
You can make a selection according to your needs. Note that the "instruction string" refers to the type retrieval instruction section 10, including one consisting of only one instruction.
1, for example, rCALI, type setting library, and is automatically generated by a compiler.

多重オブジェクト11は、A用、B用及び共通(C用)
命令列12.13及び14からなり9例えば、コンパイ
ラにより自動生y戊される。多重オブジェクト11は、
ソースプログラムの1つの命令列に対応する3つの命令
列(即ち実行ルート)を有する他、この3つの実行ルー
トのうちCPUID(種別)に応じて唯一の実行ルート
を選択する手段を備える。即ち、  rIF  種別−
AJ。
Multiple objects 11 are for A, B, and common (for C).
It consists of instruction sequences 12, 13 and 14, and is automatically generated by a compiler, for example. The multiple object 11 is
In addition to having three instruction sequences (ie, execution routes) corresponding to one instruction sequence of a source program, it also includes means for selecting a unique execution route among the three execution routes according to the CPU ID (type). That is, rIF type -
A.J.

rELsE  lli別=13.、rELSE  種別
−ANYJによって、各々A用、B用、共通の実行ルー
トを選択する1、 各命令列12.13及び]4は、同一の内容(例えば同
一の計算式による同一の数(積計算)を実行するもので
ち′り5例えば2 ソースプロゲラj−zの同一の1つ
の命令列から生成されたものであるが CPU1Dに応
じて最適化されている。n(Jち。
By rELsE lli = 13. , rELSE Select a common execution route for A, B, and ]4 by type-ANYJ, respectively. Each instruction sequence 12.13 and ]4 have the same content (for example, the same number (product calculation) using the same calculation formula). ) is generated from the same instruction sequence of the source progera jz, but it is optimized according to the CPU1D.n(Jchi.

ハードウェアに依存して、バイブラインスケジューリン
グ、レジスタ割付は等が最適化されている。
Depending on the hardware, Biblical scheduling, register allocation, etc. are optimized.

種別設定ライブラリ6は、CPUIDを各CPU1ない
し3の所定のレジスタ等をアクセスして取り出す手段と
、取り出したCPUIDをオブジェクトインタフェース
8に設定する手段からなる。
The type setting library 6 includes means for accessing and extracting the CPUID from a predetermined register of each CPU 1 to 3, and means for setting the extracted CPUID in the object interface 8.

なお1種別設定ライブラリ6の他にも1例えば入出力を
行うライブラリ等が存在し、これらとオブジェクト5の
リンクによりロードモジュール4が構成される。
In addition to the type setting library 6, there are other libraries for input/output, for example, and the load module 4 is configured by linking these and the object 5.

第2図はコンパイラ説明図である。FIG. 2 is an explanatory diagram of the compiler.

第2図において、16はソースプログラム、18は処理
装置、19はコンパイラ、20はプログラム入力部、2
1はベクトル化処理部、22は最適化処理部、23はC
PUID取出部、24は多重オブジェクト生成部、25
は)\−ドウエア依存最適化部、26はオブジェクト生
底部である。
In FIG. 2, 16 is a source program, 18 is a processing device, 19 is a compiler, 20 is a program input section, 2
1 is a vectorization processing unit, 22 is an optimization processing unit, and 23 is C
PUID extraction unit, 24, multiple object generation unit, 25
26 is the raw bottom of the object.

ソバイルしてずブジJ−クト(オブジェクトモジ、プ−
ル)5を生成づ′る9、 プログラム人力部20がソースプログラム1しを受付け
ると、へ、りトル化処理部21は、ソースプログラム1
6(′f)所定の部分をベクトル化する。
Object module, program
9. When the program human resources section 20 receives the source program 1, the literization processing section 21 generates the source program 1.
6('f) Vectorize the predetermined portion.

例えばF ORTRA NにおけるDo文をベクトル化
して、高速処理に適したものとする。
For example, the Do statement in FORTRAN is vectorized to make it suitable for high-speed processing.

最適化処理部22ば、実行時に最適オブジェクトの選択
実行を可能とするための処理を行う。、即ち、CPU[
D取出部23は、オブジェクトインタフェース8をデー
タ部7の所定の位置に設ける処理を行うと共に2種別取
出命令部10を命令部9の先頭に設ける処理を行う。従
って、(、PUID取出部23は、実行時にCPU I
 Dとして設定されている変数を取出す処理を行わせる
ものである。多重オブジェクト生成部24は、CPUI
Dに応じて最適の実行ルートを選択できるようにソース
プログラム16の所定の部分を多重に展開して多重オブ
ジェクトエ1を生成する処理を行う1− 4↓+ −X
I/  8J= ノア1ルlマFFi! 巾n  l 
  !−台rl/〜ハ)−台一一)中4w  +17−
ト(命令部)を選択する手段を多重オブジェクト11に
付加する処理を行う。ハードウェア依存最適化部25は
、ハードウェアに依存した最適化を行う。このri J
化は、多重オブジェクト11の複数の命令列12.13
及び14の各々について個別に行われる。従って1各命
令列12.13及び14について1異なったバーイブラ
インヌケジューリング、1/ジスタ割付は等が行われ、
実行ハードウェアに応じた最適化が行われる。
The optimization processing unit 22 performs processing to enable selection and execution of optimal objects during execution. , that is, CPU[
The D retrieval section 23 performs a process of providing the object interface 8 at a predetermined position in the data section 7 and also performs a process of providing a two-type retrieval instruction section 10 at the beginning of the instruction section 9. Therefore, the PUID extraction unit 23 uses the CPU I at the time of execution.
This causes the process to retrieve the variable set as D. The multiple object generation unit 24 is a CPU
1-4↓+-X to perform processing to multiplex develop a predetermined part of the source program 16 and generate multiple object E1 so that the optimal execution route can be selected according to D.
I/8J= Noah 1 lma FFi! Width n l
! - machine rl/~c) - machine 11) middle 4w +17-
A process for adding a means for selecting a command part (instruction part) to the multiple object 11 is performed. The hardware-dependent optimization unit 25 performs hardware-dependent optimization. This ri J
12.13 of multiple instruction sequences of multiple objects 11
and 14 separately. Therefore, for each instruction sequence 12, 13 and 14, 1 different barb line scheduling, 1/register allocation, etc. are performed,
Optimization is performed according to the execution hardware.

オブジェクト生成部26は、ソースプログラム16につ
いでヘクトル化処理及び最適化処理を行ったものに基づ
いて、オブジェクト5を生成する。
The object generation unit 26 generates the object 5 based on the source program 16 which is then subjected to hectorization processing and optimization processing.

この時、オブジェクト生成部2Gは、オブジェクト5を
データ部7と命令部92.を含む所定の形式として生成
すると共に、ライブラリ(6)との間で定めた所定の位
置にオブジェクトインタフェース8を設げ、これにライ
ブラリが参照する種々の情報を設定する。
At this time, the object generation section 2G generates the object 5 into the data section 7 and the instruction section 92. At the same time, an object interface 8 is provided at a predetermined position determined with the library (6), and various information referenced by the library is set therein.

従って、ソースプログラムエ6において、iiM化につ
いての指示が何らなされな・;ても、コンパイラ19又
はその最適化処理部22によって、最適化に向いたオブ
ジェクト5が自動生成される。
Therefore, even if no instruction regarding iiM conversion is given in the source program 6, the object 5 suitable for optimization is automatically generated by the compiler 19 or its optimization processing unit 22.

そして、実行ハードウェアが定まれば、これに応じて最
適オブジェクトが選択され実行される。即ち、ソー・ス
プログラム16のうち多重に展開すべき部分が自動的に
認識され、自動的に多重に展開され、更に、多重に展開
した各々について最適化がなされる。また、ソースプロ
グラム16には存在しなかったC P LJ I Dを
取り出ず手段、実行時に最適な実行ルートを選択する手
段が付加される。
Once the execution hardware is determined, the optimal object is selected and executed accordingly. That is, parts of the source program 16 that should be expanded in multiple ways are automatically recognized, automatically expanded in multiple ways, and each of the multiple expansions is further optimized. Further, means for not extracting C P LJ ID that did not exist in the source program 16 and means for selecting an optimal execution route at the time of execution are added.

第3図は、オブジェクトインタフェース説明図である。FIG. 3 is an explanatory diagram of the object interface.

コンパイラ19が生成するオブジェクト5とライブラリ
との間には1例えば「ベクトルレジスタ措戒種別J+ 
 r割込み時先頭要素位置 、rモード変換データ」及
び「ハードウェア種別(CPU1D)」等の固有のイン
タフェースがある。コンパイラ19は2 これらをオブ
ジェクトインタフェース並び又はライブラリインタフ−
74−ス並びとして オブジェクト5中のライブラリが
参照できる領域に作成する。
Between the object 5 generated by the compiler 19 and the library, there is a
There are specific interfaces such as ``r-interrupt top element position'', ``r-mode conversion data'', and ``hardware type (CPU1D)''. The compiler 19 arranges these as object interfaces or library interfaces.
74-Create as a source list in an area that can be referenced by the library in object 5.

オブジェクト5において、当4亥オブジェクト5につい
ての種々の情報を格納す2.入日コード中の48ハイド
目Gご、ライブラリインフッ美−ス並びについての情報
が存在する。これにより、デ・−タ部7の静的領域の有
効指示子及=、g 1.1スト指示番地がポイントされ
る。
In the object 5, various information about the current object 5 is stored.2. There is information about the library infrastructure arrangement at the 48th Hyde G in the entry code. As a result, the effective indicator and g1.1st instruction address of the static area of the data section 7 is pointed to.

有効指示子は、ライブラリインタフェース並びの各要素
が有効か否かを示す。コンパイラ19でコンパイルされ
た場合、有効指示子の最下位ビットが必ずONとされる
The valid indicator indicates whether each element in the library interface list is valid or not. When compiled by the compiler 19, the least significant bit of the valid indicator is always turned ON.

リスト指示番地は、ライブラリインタフェース並びの各
要素の番地をポイントする。これらは。
The list designation address points to the address of each element in the library interface list. these are.

データ部7の静的領域のうち、命令部(手続部)9が参
照する部分に格納され、リストにおける相対番地でポイ
ントされる。CPU I Dは、当該リストの16バイ
ト目に存在する。CPUTDの番地は、コンパイラ19
とライブラリとによって決定され、固定される。
It is stored in a portion of the static area of the data section 7 that is referenced by the instruction section (procedure section) 9, and is pointed to by a relative address in the list. CPU ID exists in the 16th byte of the list. The address of CPUTD is compiler 19
and the library.

イナ プ ニノイニ+l  +1琴?−P種911ヒ聾
常ちイフ゛テ116は、呼び出されると入口コードの4
8バイト目を参照し、有効指示子により有効を確認し、
リスト指示番地を参照し、リストの16バイト目にCP
UIDを設定する。
Ina Pu Ninoini +l +1 Koto? - P type 911 is always deaf, and ifte 116 is called, the entrance code is 4.
Refer to the 8th byte and check the validity with the validity indicator,
Refer to the list specified address and place the CP at the 16th byte of the list.
Set the UID.

第4図はCP U I D参照説明図である。FIG. 4 is a reference explanatory diagram of CP UID.

コンパイラ19のコンパイルにより6オブジエクト5に
ついての翻訳単位簿が作成される。この翻訳単位連中に
、オブジェクト5とライブラリとの間の固有インタフェ
ースについての固有変数基点指票が含まれる。固有イン
クフェースは、前述の如く、デ・−夕部7の静的領域に
連続領域として割付けられている。従って、その基点を
知ることにより、実行時にCPUIDを参照することが
できる。
Compilation by the compiler 19 creates a translation unit list for the six objects 5. This set of translation units includes the native variable base index for the native interface between the object 5 and the library. As described above, the unique ink face is allocated as a continuous area to the static area of the data section 7. Therefore, by knowing the base point, the CPU ID can be referenced during execution.

第5図は最適化の一例を示す図である。FIG. 5 is a diagram showing an example of optimization.

ソースプログラム16は、FORTRANで記述され2
図示の如き1つの00文を含んでいる。
The source program 16 is written in FORTRAN2.
It includes one 00 sentence as shown.

この00文は、ベクトル化された後、多重オブジェクト
生成部24により、認識され、多重オブ゛; −h L
 + 1’L−白!hi+、= DiF−’I 六h 
:A−開モ口−内容の複数の命令列12’、13’及び
I 4’が生成される。また、  rlF (CPUI
D、EQ、VI’2400)THEN、の如き、ソース
プログラムエ6にはなかった実行ルートの選択手段が付
加される。なお2図中、rVP2400J及びrVr’
2600」は、CPUIDである。
After this 00 sentence is vectorized, it is recognized by the multiple object generation unit 24 and the multiple object; -h L
+ 1'L-White! hi+, = DiF-'I 6h
A plurality of instruction sequences 12', 13' and I4' of contents are generated. Also, rlF (CPUI
D, EQ, VI'2400) THEN, an execution route selection means which was not present in the source program E6 is added. In addition, in Figure 2, rVP2400J and rVr'
2600" is the CPU ID.

次に、複数の命令列12’、13’及び14′の各々は
、ハードウェア依存最適化部25により、CPUIDに
適した命令列12.13及び14とされる。
Next, each of the plurality of instruction sequences 12', 13', and 14' is converted into instruction sequences 12, 13, and 14 suitable for the CPU ID by the hardware dependent optimization unit 25.

一方、実行時、MF (CPUID+EQ。On the other hand, during execution, MF (CPUID + EQ.

・・・)TIIEN、の実行により、唯一の実行ルート
が選択的に実行される。
)TIIEN, the only execution route is selectively executed.

なお9以上の実施例においては、コンパイラ19により
最適化に向いたオブジェクト5を自動生成する例につい
て説明したが、第6図図示の如く。
In the above embodiments, an example has been described in which the compiler 19 automatically generates an object 5 suitable for optimization, as shown in FIG.

ソースプログラム16′において最適化に向いた構成を
採ることによって、前記オブジェクト5を得るようにし
てもよい。
The object 5 may be obtained by adopting a configuration suitable for optimization in the source program 16'.

即ち、ソースプログラム16′において 3つの手段が
設けられる。
That is, three means are provided in the source program 16'.

第1に、CPUIDを取り出すサービスルーチンGET
CPUIDを呼び出す手段rCALLCETCPUID
 (CPUID)Jが設けられる。
First, the service routine GET that retrieves the CPU ID
Means of calling CPUID rCALLCETCPUID
(CPUID)J is provided.

これにより、直接又は間接に1種別設定ライブラリ6を
呼び出す。変数CPUIDは整数型の変数であり、これ
によって示されるアドレスに種別設定ライブラリ6がC
PUID+存 第2に、最適化の範囲を指定しその範囲でハードウェア
依存の最適化を行わせる手段「*VOCL 指定範囲、
CPU (CPUID)Jが設けられる。指定範囲とし
ては、プログラム全体を指定するrTOTAL」、Do
小ループ指定する「LooPJ 、文を指定するrsT
MTJを用いることができ、その範囲を所望のものとす
ることができる。また、r(CPUID)JによりCP
UrDを指定する。
As a result, the one type setting library 6 is directly or indirectly called. The variable CPUID is an integer type variable, and the type setting library 6 is
PUID + Existence Second, there is a method for specifying the optimization range and performing hardware-dependent optimization within that range.
A CPU (CPUID)J is provided. The specified range is ``rTOTAL'', which specifies the entire program.
"LooPJ" to specify a small loop, rsT to specify a statement
MTJ can be used and the range can be as desired. Also, r(CPUID)J
Specify UrD.

第3に7 DO文等が、予めソースプログラム16′に
おいて、多重化される。
Third, 7 DO statements and the like are multiplexed in advance in the source program 16'.

以上の如きソースプログラム16′をコンパイルするこ
とにより、実質的にオブジェクト5と同一のものを得る
ことができる。なお、このためのコンパイラとしては、
最適化処理部22のうちハードウェア依存最適化部25
を備えていればよく。
By compiling the source program 16' as described above, it is possible to obtain substantially the same object as the object 5. The compiler for this purpose is
Among the optimization processing units 22, the hardware-dependent optimization unit 25
It is good if you have the following.

CPUID取出部23及び多重オブジェクト生戊部25
は必要ない。即ち、第1の手段により、実jテ時にCP
UIDを取り出すことができ、第3の手段により、DO
文の多重化及び唯一の実行ルートの選択手段がなされて
いる。また 第2の手段により、ハードウェア依存最適
化部25は、多重化されたDO文の各々につき、指示さ
れた最適化を行うのみでよい。
CPUID extraction unit 23 and multiple object generation unit 25
is not necessary. That is, by the first means, CP is
The UID can be retrieved and by a third means, the DO
A means of multiplexing statements and selecting a unique execution route is provided. Further, by using the second means, the hardware-dependent optimization unit 25 only needs to perform the instructed optimization for each multiplexed DO statement.

以上本発明を実施例により説明したが9本発明はその主
旨に従い1種々の変形が可能である。
Although the present invention has been described above with reference to embodiments, the present invention can be modified in various ways according to its gist.

〔発明の効果〕〔Effect of the invention〕

以上説明したように1本発明によれば、最適オブジェク
ト選択実行処理方式において、オブジェクトを多重化す
ると共に、呼び出したCPUID+、f−、L−7″1
;°<+u、tL二弓ζ(ロー?−IMbrwhh4r
1ダラムを実行するハードウェアの種別に応じて。
As explained above, according to the present invention, in the optimal object selection execution processing method, objects are multiplexed and the called CPU ID +, f-, L-7''1
;°<+u, tL double bow ζ (low?-IMbrwhh4r
1 depending on the type of hardware running Duram.

最適なオブジェクトを選択して実行することができるの
で、1つのプログラムで各機種に応じた最適の処理を行
うことができると共に、そのロードモジュールを各機種
に共通のものにすることができる。
Since the optimal object can be selected and executed, one program can perform optimal processing for each model, and the load module can be made common to each model.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の原理構成図。 第2図はコンパイラ説明図。 第3図はオブジェクトインタフェース説明図。 第4図はCPUID参照説明図。 第5図は最適化の一例を示す図。 第6図は他の実施例説明図。 工ないし3はコンピュータハードウェア、4はロードモ
ジュール、5はオブジェクト、6は種別設定ライブラリ
、7はオブジェクト5のデータ部8はオブジェクトイン
タフェース 9はオブジェクト5の命令部、10は種別
取出命令部、11はた命令列である。
FIG. 1 is a diagram showing the principle configuration of the present invention. FIG. 2 is an explanatory diagram of the compiler. FIG. 3 is an explanatory diagram of the object interface. FIG. 4 is a CPUID reference explanatory diagram. FIG. 5 is a diagram showing an example of optimization. FIG. 6 is an explanatory diagram of another embodiment. 3 is a computer hardware, 4 is a load module, 5 is an object, 6 is a type setting library, 7 is a data section 8 of the object 5, is an object interface, 9 is an instruction section of the object 5, 10 is a type extraction instruction section, 11 It is a sequence of instructions.

Claims (1)

【特許請求の範囲】 種別の異なる複数のコンピュータハードウェア(1、2
、3)と、 前記複数のコンピュータハードウェア(1、2、3)に
共通のロードモジュール(4)とを備えたデータ処理シ
ステムにおいて、 種別を設定するためのオブジェクトインタフェース(8
)と、 前記種別の各々に応じて最適化された複数の同一内容の
命令列を含む多重オブジェクト(11)と、 前記種別を前記オブジェクトインタフェース(8)に設
定する種別設定ライブラリ(6)と、前記種別設定ライ
ブラリ(6)を呼び出すための種別取出命令部(10)
とを前記ロードモジュール(4)に備え、 前記ロードモジュール(4)を前記複数のコンピュータ
ハードウェア(1、2、3)のいずれかで実行する場合
に、 前記種別取出命令部(10)によって呼び出された前記
種別設定ライブラリ(6)が前記種別を前記オブジェク
トインタフェース(8)に設定し、前記多重オブジェク
ト(11)が設定された前記種別を参照して当該多重オ
ブジェクト(11)の複数の命令列のうち当該設定され
た種別に応じた命令列を選択して実行する ことを特徴とする最適オブジェクト選択実行処理方式。
[Claims] A plurality of computer hardware of different types (1, 2
, 3) and a load module (4) common to the plurality of computer hardware (1, 2, 3), an object interface (8) for setting the type.
), a multiple object (11) including a plurality of instruction sequences with the same contents optimized according to each of the types, and a type setting library (6) for setting the type to the object interface (8); Type fetch command section (10) for calling the type setting library (6)
is provided in the load module (4), and when the load module (4) is executed by any of the plurality of computer hardware (1, 2, 3), it is called by the type retrieval instruction unit (10). The type setting library (6) sets the type in the object interface (8), and the multiple object (11) refers to the set type and executes multiple instruction sequences of the multiple object (11). An optimal object selection execution processing method characterized by selecting and executing a sequence of instructions according to the set type.
JP31822089A 1989-12-07 1989-12-07 Optimal object selection execution processor Expired - Lifetime JP3191263B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31822089A JP3191263B2 (en) 1989-12-07 1989-12-07 Optimal object selection execution processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31822089A JP3191263B2 (en) 1989-12-07 1989-12-07 Optimal object selection execution processor

Publications (2)

Publication Number Publication Date
JPH03177931A true JPH03177931A (en) 1991-08-01
JP3191263B2 JP3191263B2 (en) 2001-07-23

Family

ID=18096773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31822089A Expired - Lifetime JP3191263B2 (en) 1989-12-07 1989-12-07 Optimal object selection execution processor

Country Status (1)

Country Link
JP (1) JP3191263B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7986468B2 (en) 2008-01-18 2011-07-26 Sony Corporation Lens barrel and imaging device
JP2014182813A (en) * 2013-03-16 2014-09-29 Intel Corp Instruction emulation processors, methods, and systems
US9703562B2 (en) 2013-03-16 2017-07-11 Intel Corporation Instruction emulation processors, methods, and systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7986468B2 (en) 2008-01-18 2011-07-26 Sony Corporation Lens barrel and imaging device
JP2014182813A (en) * 2013-03-16 2014-09-29 Intel Corp Instruction emulation processors, methods, and systems
US9703562B2 (en) 2013-03-16 2017-07-11 Intel Corporation Instruction emulation processors, methods, and systems

Also Published As

Publication number Publication date
JP3191263B2 (en) 2001-07-23

Similar Documents

Publication Publication Date Title
US7162709B2 (en) System and method for common code generation
KR100518584B1 (en) Shared library system and method for constructing the system
US5241677A (en) Multiprocessor system and a method of load balancing thereof
CA1290067C (en) System for generating program object modules
US5303357A (en) Loop optimization system
US5053950A (en) Multiprocessor system and a method of load balancing thereof
US6550059B1 (en) Method for generating optimized vector instructions from high level programming languages
JPH06266683A (en) Parallel processor
JP3047998B2 (en) Processor allocation method and apparatus in parallel computer
US20150277864A1 (en) Compiler, compile method and compile apparatus
JPS61107431A (en) Arithmetic unit
JP3246438B2 (en) Variable target compilation processing method, its processing device, storage medium for its program, and storage medium for conversion table
US8108847B2 (en) Pairing of spills for parallel registers
CN110457044A (en) Compilation Method, device and the electronic equipment of Haxe application program
US6314564B1 (en) Method for resolving arbitrarily complex expressions at link-time
JPH03177931A (en) Optimal object selection execution processing device
US9940267B2 (en) Compiler global memory access optimization in code regions using most appropriate base pointer registers
Freiburghouse The multics PL/1 compiler
US6941549B1 (en) Communicating between programs having different machine context organizations
JP2729795B2 (en) Parallel computer and control method thereof
Capon et al. The MU5 compiler target language and autocode
JP4260895B2 (en) Multiple format addressing in microcontrollers
JP3464019B2 (en) Register allocation method
McNeil et al. PL/I program efficiency
EP0348563A1 (en) A system and method for generating program object modules

Legal Events

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

Free format text: PAYMENT UNTIL: 20080525

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090525

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 9