JPH0540640A - プログラム変換方式 - Google Patents
プログラム変換方式Info
- Publication number
- JPH0540640A JPH0540640A JP17497091A JP17497091A JPH0540640A JP H0540640 A JPH0540640 A JP H0540640A JP 17497091 A JP17497091 A JP 17497091A JP 17497091 A JP17497091 A JP 17497091A JP H0540640 A JPH0540640 A JP H0540640A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- parallel
- program
- head
- instruction
- 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
Links
- 238000000034 method Methods 0.000 title claims description 15
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 5
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
Landscapes
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】プログラム中のループ処理において、ループ直
前の命令により変更された情報を復元する手段を設けて
ループ構成を並列処理できる形に変更し、プログラムサ
イズの増大を抑制する。 【構成】ループ認識部1により認識されたループは条件
判定部2により予め定められた条件を満たすか否かを判
定する。条件を満たすループはループ分割部3により並
列処理可能な先頭部および末尾部と並列処理できない中
央部とに分割される。このとき復元処理作成部4はルー
プ終了直前に置かれた先頭部の命令により変更された情
報を復元する命令列A′を作成する。次にループ合成部
5においてループ中のAの部分(先頭部に相当)をルー
プの直前およびループ中のBの部分(末尾部に相当)の
後に移動し、命令列A′をループ終了直後に挿入して並
列処理できる形に変換する。
前の命令により変更された情報を復元する手段を設けて
ループ構成を並列処理できる形に変更し、プログラムサ
イズの増大を抑制する。 【構成】ループ認識部1により認識されたループは条件
判定部2により予め定められた条件を満たすか否かを判
定する。条件を満たすループはループ分割部3により並
列処理可能な先頭部および末尾部と並列処理できない中
央部とに分割される。このとき復元処理作成部4はルー
プ終了直前に置かれた先頭部の命令により変更された情
報を復元する命令列A′を作成する。次にループ合成部
5においてループ中のAの部分(先頭部に相当)をルー
プの直前およびループ中のBの部分(末尾部に相当)の
後に移動し、命令列A′をループ終了直後に挿入して並
列処理できる形に変換する。
Description
【0001】
【産業上の利用分野】本発明は、複数の演算器を持ちそ
れらが同時に命令を実行できるプロセッサで使用される
ループのプログラム変換方式に関する。
れらが同時に命令を実行できるプロセッサで使用される
ループのプログラム変換方式に関する。
【0002】
【従来の技術】従来のプログラム変換方式は、ループプ
ログラムにおいて、ループ本体の実行回数を減らすとと
もにループ本体を展開する方式を採用していた。
ログラムにおいて、ループ本体の実行回数を減らすとと
もにループ本体を展開する方式を採用していた。
【0003】例えば図2のようにAの部分とBの部分は
並列に実行できないがBの部分と次のループで実行され
るAの部分は並列に実行できるループプログラムを考え
る。
並列に実行できないがBの部分と次のループで実行され
るAの部分は並列に実行できるループプログラムを考え
る。
【0004】この場合、図2のループプログラムを図5
のようにループ本体の実行回数を減らすとともにループ
本体を展開する。さらに、最初に実行されるBの部分お
よびその直後に実行されるAの部分は並列に実行できる
から、図5のループプログラムを図6のように変換す
る。
のようにループ本体の実行回数を減らすとともにループ
本体を展開する。さらに、最初に実行されるBの部分お
よびその直後に実行されるAの部分は並列に実行できる
から、図5のループプログラムを図6のように変換す
る。
【0005】
【発明が解決しようとする課題】この従来のプログラム
変換方式では、ループ本体の実行数が予め判明している
場合だけしか適用できず、プログラムサイズが大きくな
る欠点があった。
変換方式では、ループ本体の実行数が予め判明している
場合だけしか適用できず、プログラムサイズが大きくな
る欠点があった。
【0006】
【課題を解決するための手段】本発明のプログラム変換
方式は、プログラム中からループ部分を検出して認識す
るループ認識手段と、このループ認識手段により認識さ
れたループが予め定められた条件を満たすか否かを判定
する条件判定手段と、この条件判定手段で条件を満たす
と判断されたループを少なくとも並列処理可能な部分と
並列処理できない部分とに分割するループ分割手段と、
ループ処理終了直前の命令により変更された情報を復元
するための処理を作成する復元処理作成手段と、前記条
件判定手段、前記ループ分割手段および前記復元処理作
成手段の情報に基づいて、前記ループの構造を変更して
合成するループ合成手段とを備えている。
方式は、プログラム中からループ部分を検出して認識す
るループ認識手段と、このループ認識手段により認識さ
れたループが予め定められた条件を満たすか否かを判定
する条件判定手段と、この条件判定手段で条件を満たす
と判断されたループを少なくとも並列処理可能な部分と
並列処理できない部分とに分割するループ分割手段と、
ループ処理終了直前の命令により変更された情報を復元
するための処理を作成する復元処理作成手段と、前記条
件判定手段、前記ループ分割手段および前記復元処理作
成手段の情報に基づいて、前記ループの構造を変更して
合成するループ合成手段とを備えている。
【0007】
【実施例】次に本発明について図面を参照して説明す
る。
る。
【0008】図1を参照すると、本発明の一実施例はル
ープ認識部1と、条件判定部2と、ループ分割部3と、
復元処理作成部4と、ループ合成部5とから構成され
る。
ープ認識部1と、条件判定部2と、ループ分割部3と、
復元処理作成部4と、ループ合成部5とから構成され
る。
【0009】次に図2,図3および図4を参照して本実
施例の動作を説明する。
施例の動作を説明する。
【0010】ループ認識部1は、プログラム全体の中か
らループの部分を認識する。
らループの部分を認識する。
【0011】条件判定部2は、認識したループが以下述
べる条件を満たすか否かを判定する。
べる条件を満たすか否かを判定する。
【0012】(1)ループの直前以外の文からループ本
体に実行が移ることはない。
体に実行が移ることはない。
【0013】(2)ループ本体の最後以外の文からルー
プ外に実行が移ることはない。
プ外に実行が移ることはない。
【0014】(3)ループ本体が以下の条件を満たす先
頭部,中央部および末尾部に分割できる。
頭部,中央部および末尾部に分割できる。
【0015】末尾部は次に実行するループ本体の先頭
部と並列に実行できる。
部と並列に実行できる。
【0016】先頭部は同じレジスタの値を複数回変更
しない。
しない。
【0017】ループ本体が規定の回数だけ実行された
後で先頭部を実行しても異常終了しない。
後で先頭部を実行しても異常終了しない。
【0018】ここで、上述の条件を満たさないループに
対して変換は行われない。
対して変換は行われない。
【0019】ループ分割部3は、上述の条件を満たすル
ープの本体を先頭部,中央部および末尾部に分割する。
ープの本体を先頭部,中央部および末尾部に分割する。
【0020】例えば、ループがプログラムカウンタを使
用して演算処理を行う場合を考えると、プログラムカウ
ンタの更新処理を行う部分を先頭部,先頭部と並列処理
できる演算処理部分を末尾部,上記末尾部と異なり並列
処理できない部分を中央部として分割する。
用して演算処理を行う場合を考えると、プログラムカウ
ンタの更新処理を行う部分を先頭部,先頭部と並列処理
できる演算処理部分を末尾部,上記末尾部と異なり並列
処理できない部分を中央部として分割する。
【0021】復元処理作成部4は、先頭部の命令実行に
よって変更された情報を復元する命令列を作成する。
よって変更された情報を復元する命令列を作成する。
【0022】すなわち、上記の例で考えると、図3に示
すように先頭部を含むAの部分をループ直前に移動して
ループ処理を行うため結果としてプログラムカウンタの
更新が1回だけ多く行われることになる。
すように先頭部を含むAの部分をループ直前に移動して
ループ処理を行うため結果としてプログラムカウンタの
更新が1回だけ多く行われることになる。
【0023】そこで、このプログラムカウンタの値を本
来の正常値にもどすためプログラムカウンタの値を1だ
け加算あるいは減算するような復元のための命令列A′
を作成してループ直後の挿入する。
来の正常値にもどすためプログラムカウンタの値を1だ
け加算あるいは減算するような復元のための命令列A′
を作成してループ直後の挿入する。
【0024】さらに、図4に示すようにループ内の並列
処理可能な部分A(先頭部に相当)およびB(末尾部に
相当)を並列化するように変換して実行する。
処理可能な部分A(先頭部に相当)およびB(末尾部に
相当)を並列化するように変換して実行する。
【0025】
【発明の効果】以上説明したように本発明は、複数の演
算器を持ちそれらが同時に命令を実行できるプロセッサ
のプログラム中のループでその本体の実行回数が予め判
明していない場合でも、プログラムの並列性を向上させ
る変換を行うことができ、変換後のプログラムサイズの
増大を抑制することができる。
算器を持ちそれらが同時に命令を実行できるプロセッサ
のプログラム中のループでその本体の実行回数が予め判
明していない場合でも、プログラムの並列性を向上させ
る変換を行うことができ、変換後のプログラムサイズの
増大を抑制することができる。
【図1】本発明の一実施例のブロック図。
【図2】変換前のループ構造を表わす図。
【図3】本実施例における変換途中のループ構造を表わ
す図。
す図。
【図4】本実施例における変換後のループ構造を表わす
図。
図。
【図5】従来方式における変換途中のループ構造を表わ
す図。
す図。
【図6】従来方式における変換後のループ構造を表わす
図。
図。
1 ループ認識部 2 条件判定部 3 ループ分割部 4 復元処理作成部 5 ループ合成部
Claims (1)
- 【請求項1】 プログラム中からループ部分を検出して
認識するループ認識手段と、 このループ認識手段により認識されたループが予め定め
られた条件を満たすか否かを判定する条件判定手段と、 この条件判定手段で条件を満たすと判断されたループを
少なくとも並列処理可能な部分と並列処理できない部分
とに分割するループ分割手段と、 ループ処理終了直前の命令により変更された情報を復元
するための処理を作成する復元処理作成手段と、 前記条件判定手段、前記ループ分割手段および前記復元
処理作成手段の情報に基づいて、前記ループの構造を変
更して合成するループ合成手段とを備えたことを特徴と
するプログラム変換方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17497091A JPH0540640A (ja) | 1991-07-16 | 1991-07-16 | プログラム変換方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17497091A JPH0540640A (ja) | 1991-07-16 | 1991-07-16 | プログラム変換方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0540640A true JPH0540640A (ja) | 1993-02-19 |
Family
ID=15987925
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17497091A Pending JPH0540640A (ja) | 1991-07-16 | 1991-07-16 | プログラム変換方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0540640A (ja) |
-
1991
- 1991-07-16 JP JP17497091A patent/JPH0540640A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2005514698A (ja) | マルチスレッドプロセッサのスレッドの実行のサスペンド処理 | |
| JPS58189739A (ja) | デ−タ処理システム | |
| JPS62226232A (ja) | 分岐先アドレス算出回路 | |
| JPH0540640A (ja) | プログラム変換方式 | |
| JP2513765B2 (ja) | パイプライン処理における条件分岐制御方式 | |
| JPH07101385B2 (ja) | 情報処理装置 | |
| JPH0377141A (ja) | コンパイル処理装置 | |
| JP2841403B2 (ja) | ループ最適化処理方法 | |
| JPS5829051A (ja) | 演算処理装置 | |
| JP2518504B2 (ja) | 目的プログラム生成装置 | |
| JP3121062B2 (ja) | 情報処理装置 | |
| JPH04252336A (ja) | プログラム最適化処理装置 | |
| JPH0311466A (ja) | 命令スケジューラ | |
| JPH0594313A (ja) | タイマ管理方式 | |
| JPS63308659A (ja) | 並列処理方法 | |
| JPH08137714A (ja) | マルチタスクプログラムのデバッグ方法およびデバッグシステム | |
| JPH0640309B2 (ja) | コンパイラにおけるループ内ブロック並び換え処理方式 | |
| JPS6354638A (ja) | デツドロツク解除方式 | |
| JPS61226839A (ja) | イベント処理方式 | |
| JPH0367363A (ja) | ベクトル演算列アンローリング処理方式 | |
| JPH07219770A (ja) | 情報処理装置 | |
| JPH0377142A (ja) | ループ最適化処理方式 | |
| JPS60193045A (ja) | パイプライン演算装置 | |
| JPH01222329A (ja) | 条件分岐命令を含むプログラムの実行方式 | |
| JPH0392927A (ja) | データ処理装置 |