JPS6229816B2 - - Google Patents
Info
- Publication number
- JPS6229816B2 JPS6229816B2 JP56155016A JP15501681A JPS6229816B2 JP S6229816 B2 JPS6229816 B2 JP S6229816B2 JP 56155016 A JP56155016 A JP 56155016A JP 15501681 A JP15501681 A JP 15501681A JP S6229816 B2 JPS6229816 B2 JP S6229816B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- redefinition
- index value
- variable
- value
- 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
Links
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】
本発明はプログラム変換装置に関し、特に並列
に動作できる複数の演算処理装置を具えて高スル
ープツトを狙う計算機に使用して効果をあげるた
めに、できるだけ並列処理可能な部分を多く含む
ようにプログラムを変換するものである。
に動作できる複数の演算処理装置を具えて高スル
ープツトを狙う計算機に使用して効果をあげるた
めに、できるだけ並列処理可能な部分を多く含む
ようにプログラムを変換するものである。
例えば下記のようなDOループは一般によく現
われる。
われる。
DO10 I=1,N
DO10 J=1,N
A(J)=A(J)+B(J)〓A(I)
10 CONTINUE
このようなプログラムを2台の演算器を有する
計算機で実行するとき、内側のDOループにおい
てもし変数A(I)を定数とみなせれば、2台の
演算器でJ=1〜NまでのNステツプを半分づつ
を分担させて並列処理させることができる。しか
し上記の例ではJがIと等しくなつたとき、A
(I)の値が変化(再定義)してしまう。つまり
JがIより大きい範囲と、JがIより小さい範囲
とではA(I)の値が異なる。従つて2台の演算
器に単純に分担させることができず、従来ではこ
のようなループは直列に処理していかざるを得な
かつた。
計算機で実行するとき、内側のDOループにおい
てもし変数A(I)を定数とみなせれば、2台の
演算器でJ=1〜NまでのNステツプを半分づつ
を分担させて並列処理させることができる。しか
し上記の例ではJがIと等しくなつたとき、A
(I)の値が変化(再定義)してしまう。つまり
JがIより大きい範囲と、JがIより小さい範囲
とではA(I)の値が異なる。従つて2台の演算
器に単純に分担させることができず、従来ではこ
のようなループは直列に処理していかざるを得な
かつた。
本発明はこのような従来の問題点を解決するこ
とを目的としており、以下図面により説明する。
とを目的としており、以下図面により説明する。
図は本発明の一実施例ブロツク図であり、簡単
のために本発明に直接関係する部分のみ示してあ
るが、これにさらにコンパイラ機能等を追加して
もよい。
のために本発明に直接関係する部分のみ示してあ
るが、これにさらにコンパイラ機能等を追加して
もよい。
図において被変換プログラムは所定数のセンテ
ンスづつ入力バツフア1に入力される。入力セン
テンスの命令文の中からDO文検出手段2により
DO文の有無を検出する。DO文が無ければセレク
タ3を制御してORゲート9を介してそのまま出
力バツフア10へ出力する。
ンスづつ入力バツフア1に入力される。入力セン
テンスの命令文の中からDO文検出手段2により
DO文の有無を検出する。DO文が無ければセレク
タ3を制御してORゲート9を介してそのまま出
力バツフア10へ出力する。
DO文が検出されるとそのセンテンス及びそれ
に続く実行文(等式など)をワークレジスタ4に
移す。そして再定義検出手段5によつて変数の再
定義の有無が検出される。再定義の有無は、例え
ば前記の例では等号(=)の両辺に同一変数名が
有るか否か、有つた場合にそのインデクスが異な
るにもかかわらずインデクス値が同一になる可能
性があるか否かを調べればよい。
に続く実行文(等式など)をワークレジスタ4に
移す。そして再定義検出手段5によつて変数の再
定義の有無が検出される。再定義の有無は、例え
ば前記の例では等号(=)の両辺に同一変数名が
有るか否か、有つた場合にそのインデクスが異な
るにもかかわらずインデクス値が同一になる可能
性があるか否かを調べればよい。
尚、ここで「変数名」とは上記例におけるA
( )、B( )であり、「インデクス」とは、
I、Jであり「インデクス値」とはI、Jに具体
的数値を代入したものをいう。また単に「変数」
というときは具体的インデクス値で特定された変
数名の値をいう。
( )、B( )であり、「インデクス」とは、
I、Jであり「インデクス値」とはI、Jに具体
的数値を代入したものをいう。また単に「変数」
というときは具体的インデクス値で特定された変
数名の値をいう。
また再定義が生じ得るとしてもその再定義後の
変数が再び同一DOループで使用されなければ問
題はないので、その場合は再定義とみなされな
い。
変数が再び同一DOループで使用されなければ問
題はないので、その場合は再定義とみなされな
い。
このよにしてもし再定義がなければ、セレクタ
6を制御して出力バツフア10へ出力する。
6を制御して出力バツフア10へ出力する。
再定義を生じている場合には、インデクス値検
出手段7によりその再定義を生じるステツプのイ
ンデクス値を算出し、その値にもとづいてDOル
ープ分割手段8によつて、複数のDOループを新
たに生成し、出力バツフア10に出力する。即ち
上記の例ではJ=1〜IまでのDOループとJ=
I+1〜NまでのDOループに分割し、元のDOル
ープと置換える。以下にその結果の例を示す。
出手段7によりその再定義を生じるステツプのイ
ンデクス値を算出し、その値にもとづいてDOル
ープ分割手段8によつて、複数のDOループを新
たに生成し、出力バツフア10に出力する。即ち
上記の例ではJ=1〜IまでのDOループとJ=
I+1〜NまでのDOループに分割し、元のDOル
ープと置換える。以下にその結果の例を示す。
DO10 I=1,N
DO20 J=1,I
A(J)=A(J)+B(J)〓A(I)
20 CONTINUE
DO10 J=I+1,N
A(J)=A(J)+B(J)〓A(I)
10 CONTINUE
このようにすれば最初のDOループ(DO2O)
においては再定義は無いので、複数台の演算器で
分担して並列処理ができる。2番目のDOループ
(DO10)においても同様である。但し、DO2Oと
DO10とを並列処理することはできない。DO2O
が終らねばDO10における変数A(I)が定まら
ないからである。
においては再定義は無いので、複数台の演算器で
分担して並列処理ができる。2番目のDOループ
(DO10)においても同様である。但し、DO2Oと
DO10とを並列処理することはできない。DO2O
が終らねばDO10における変数A(I)が定まら
ないからである。
また再定義される変数が2以上存在する場合に
は、DOループの分割数も3以上とすればよい。
は、DOループの分割数も3以上とすればよい。
以上の如く本発明によれば、既開発のプログラ
ム等における並列実行不可能な命令を並列実行可
能なものに変換し、並列動作可能な複数の演算器
を有する計算器システムの能力を有効に利用する
ことが可能となる。
ム等における並列実行不可能な命令を並列実行可
能なものに変換し、並列動作可能な複数の演算器
を有する計算器システムの能力を有効に利用する
ことが可能となる。
図は本発明の一実施例ブロツク図であり、1は
入力バツフア、2はDO文検出手段、5は再定義
検出手段、7はインデクス値検出手段、8はDO
ループ分割手段、10は出力バツフアである。
入力バツフア、2はDO文検出手段、5は再定義
検出手段、7はインデクス値検出手段、8はDO
ループ分割手段、10は出力バツフアである。
Claims (1)
- 1 入力プログラム中にDOループの有無を検出
する手段と、該DOループの中における変数の再
定義の有無を検出する手段と、該再定義を生じる
インデクス値を求める手段と、上記DOループを
上記インデクス値までのDOループと、上記イン
デクス値の次の値から始まるDOループとに分割
する手段とを具えたことを特徴とするプログラム
変換装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56155016A JPS5856152A (ja) | 1981-09-30 | 1981-09-30 | プログラム変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56155016A JPS5856152A (ja) | 1981-09-30 | 1981-09-30 | プログラム変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5856152A JPS5856152A (ja) | 1983-04-02 |
JPS6229816B2 true JPS6229816B2 (ja) | 1987-06-29 |
Family
ID=15596830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56155016A Granted JPS5856152A (ja) | 1981-09-30 | 1981-09-30 | プログラム変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5856152A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2708405B2 (ja) * | 1986-03-03 | 1998-02-04 | 株式会社日立製作所 | コンパイラにおけるループ展開方法 |
JP3053092B2 (ja) * | 1987-06-05 | 2000-06-19 | 株式会社日立製作所 | 並列化コンパイル方法 |
JPH02126322A (ja) * | 1988-11-07 | 1990-05-15 | Nec Corp | 情報処理装置 |
-
1981
- 1981-09-30 JP JP56155016A patent/JPS5856152A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS5856152A (ja) | 1983-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR910010301A (ko) | 명령 지정방법 및 실행장치 | |
JPS6229816B2 (ja) | ||
CN1337024A (zh) | 跟踪数据的方法 | |
JPH04350724A (ja) | シフト量検出回路 | |
JPS58109971A (ja) | ベクトル演算処理方式 | |
US4914581A (en) | Method and apparatus for explicitly evaluating conditions in a data processor | |
JPH0378832A (ja) | デ―タ処理装置 | |
JPS63155264A (ja) | ベクトル計算機用言語チユ−ニング処理方式 | |
JPH05334465A (ja) | 演算器・記憶装置・データ転送装置必要数計数装置 | |
JPH0619700B2 (ja) | 演算装置 | |
JP2510295B2 (ja) | レジスタ更新割出し制御装置 | |
Wu et al. | On detection of bounded global predicates | |
JPS6373335A (ja) | 情報処理装置 | |
KR960025145A (ko) | 효율적인 퍼지로직 연산을 수행하기 위한 데이타처리시스템 및 그 방법 | |
JPH0498421A (ja) | マイクロ・プロセッサ | |
Matsuoka | Nondeterministic linear logic | |
IChen et al. | On detection of bounded global predicates | |
JPS6297031A (ja) | 仮数部のビツト数整合方式 | |
JPH0236423A (ja) | 退避/復帰レジスタアドレス生成回路 | |
JPS62160529A (ja) | デ−タ処理装置 | |
JPH022425A (ja) | 多方向分岐演算の高速化方法 | |
JPH02280239A (ja) | プログラムダンプ出力方式 | |
JPH0511982A (ja) | 関数表による関数高速計算方式 | |
JPH01303568A (ja) | 発振回路の検出方式 | |
JPH05181820A (ja) | プログラム変換装置 |