JPH03100830A - 命令の最適化方式 - Google Patents
命令の最適化方式Info
- Publication number
- JPH03100830A JPH03100830A JP23906889A JP23906889A JPH03100830A JP H03100830 A JPH03100830 A JP H03100830A JP 23906889 A JP23906889 A JP 23906889A JP 23906889 A JP23906889 A JP 23906889A JP H03100830 A JPH03100830 A JP H03100830A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- load
- load instruction
- stack area
- 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
Links
- 238000005457 optimization Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims description 13
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
め要約のデータは記録されません。
Description
CPUと略記する)のオブジェクトプログラムを生成す
るコンパイラに関し、特にコンパイラのデータ接近フェ
ーズにおける命令の最適化方式に関する。
ュのヒツト率については考慮されていなかった。
ュのヒツト率については考慮されていなかったので、デ
ータキャッシュのフラッシュが頻発した場合にはプログ
ラムの実行時間がかかるという欠点がある。
ヒツト率を高めるようにロード命令をオペランドのアド
レス順にソートすることにより、データキャッシュのフ
ラッシュの発生を抑制してプログラムの実行時間を短縮
するようにした命令の最適化方式を提供することにある
。
CPUのオブジェクトプログラムを生成するコンパイラ
のデータ接近フェーズにおいて、入力中間テキストから
命令を入力してロード命令とそれ以外の命令とに振り分
ける命令振分は手段と、この命令振分は手段により振り
分けられたロード命令を解析するロード命令解析手段と
、前記命令振分は手段により振り分けられたロード命令
以外の命令を解析し出力中間テキストに出力する他命令
解析手段と、前記ロード命令解析手段からの指示により
ロード命令をロード命令スタック域にスタックするロー
ド命令スタック手段と、このロード命令スタック手段か
らの指示により前記ロード命令スタック域にスタックさ
れたロード命令をオペランドのアドレス順にソートする
ロード命令交換手段と、前記他命令解析手段からの指示
により前記ロード命令スタック域にスタックされたロー
ド命令をソートされている順に前記出力中間テキストに
出力するロード命令出力手段とを有する。
中間テキストから命令を入力してロード命令とそれ以外
の命令とに振り分け、ロード命令解析手段が命令振分は
手段により振り分けられたロード命令を解析し、他命令
解析手段が命令振分は手段により振り分けられたロード
命令以外の命令を解析し出力中間テキストに出力し、ロ
ード命令スタック手段がロード命令解析手段からの指示
によりロード命令をロード命令スタック域にスタックし
、ロード命令交換手段がロード命令スタック手段からの
指示によりロード命令スタック域にスタックされたロー
ド命令をオペランドのアドレス順にソートし、ロード命
令出力手段が他命令解析手段からの指示によりロード命
令スタック域にスタックされたロード命令をソートされ
ている順に出力中間テキストに出力する。
適用されたコンパイラのデータ接近フェーズの構成を示
すブロック図である。このデータ接近フェーズは、入力
中間テキストlから命令を入力してロード命令とそれ以
外の命令とに振り分ける命令振分は手段2と、命令振分
は手段2により振り分けられたロード命令を解析するロ
ード命令解析手段3と、命令振分は手段2により振り分
けられたロード命令以外の命令を解析し出力中間テキス
ト5に出力する他命令解析手段4と、ロード命令解析手
段3からの指示によりロード命令をロード命令スタック
域9にスタックするロード命令スタック手段6と、ロー
ド命令スタック手段6からの指示によりロード命令スタ
ック域9にスタックされたロード命令をオペランドのア
ドレス順にソートするロード命令交換手段7と、他命令
解析手段4からの指示によりロード命令スタック域9に
スタックされたロード命令をソートされている順に出力
中間テキスト5に出力するロード命令出力手段8とを含
んで構成されている。
ード生成フェーズ(図示せず)が出力した中間テキスト
であり、ソースプログラムに応じた機械語命令が中間テ
キストの形式で入っているものである。
形式で複数個退避可能な領域である。
式の動作について説明する。
オペランドのアドレスが解決した(これはデータ接近フ
ェーズの既存技術で解決する)1つの機械語命令をロー
ド命令とそうでない命令とに分類する。ここでいうロー
ド命令とは、メモリの内容をレジスタに転記する命令で
かつオペランドのアドレスが翻訳時に静的に求められる
(インデックスレジスタによる修飾や内容が動的に変化
するペースレジスタを持たない)ものを指す。命令振分
は手段2は、ロード命令をロード命令解析手段3に渡し
、ロード命令以外の命令を他命令解析手段4に渡す。
たロード命令を解析し、ロード命令スタック手段6に渡
す。
ら渡されたロード命令をロード命令スタック域9にスタ
ックする。この際、すでにロード命令スタック域9に退
避されているロード命令が有る場合には、ロード命令ス
タック手段6は、ロード命令交換手段7を呼び出す。
タックされているロード命令をオペランドのアドレスが
小さい順にソートする。
れたロード命令以外の命令を、分散命令等のデータキャ
ッシュを変化させない命令と、インデックスレジスタに
よる修飾や内容が動的に変化するペースレジスタを持つ
広義のロード命令等のデータキャッシュをフラッシュさ
せる命令と、ロード命令スタック域9のロード命令によ
りメモリの内容を転記されるレジスタを参照する参照命
令とに分類する。
他命令解析手段4は、その命令をそのまま出力中間テキ
スト5に出力する。
場合には、他命令解析手段4は、ロード命令出力手段8
を呼び出す、ロード命令出力手段8は、ロード命令スタ
ック域9の全てのロード命令をソートされている順に出
力中間テキスト5に出力する。この後、他命令解析手段
4は、データキャッシュをフランシュさせる命令を出力
中間テキスト5に出力する。
モリの内容を転記されるレジスタを参照する参照命令が
きた場合には、他命令解析手段4は、ロード命令出力手
段8を呼び出す、ロード命令出力手段8は、その参照命
令で参照されたオペランドのアドレスより小さなアドレ
スのオペランドをレジスタに転記するロード命令を全て
ロード命令スタック域9からソートされている順に出力
中間テキスト5に出力する。この後、他命令解析手段4
は、ロード命令によりメモリの内容を転記されるレジス
タを参照する参照命令を出力中間テキスト5に出力する
。
2図を参照しながら具体的に説明する。
キスト11.12および13がこの順番で入っているも
のとする(オペランドのアドレスが解決された形で書か
れているが、実際はこの解決もデータ接近フェーズ内で
行われる)、データ接近フェーズは、本実施例の命令の
最適化方式の適用の結果、3つの機械語命令テキス1−
12.11および13をこの順に並び変えて出力中間テ
キスト5に出力する。
ペースレジスタBROの相対100番地のオペランドへ
のアクセス時にCPUのデータキャッシュにペースレジ
スタBROの相対100番地からのデータが入り、次の
ロード命令11でペースレジスタBROの相対110番
地のオペランドへのアクセス時にデータキャッシュに格
納されたデータにヒントする。この結果、ロード命令l
lがロード命令12に先行したままの場合に比べて、デ
ータキャッシュのフラッシュが抑制され、プログラムが
より高速に処理されることになる。
ック手段、ロード命令交換手段およびロード命令出力手
段を設けて、データキャッシュに格納されたデータが連
続的にヒツトするようにロード命令をオペランドのアド
レス順に並び換えることにより、データキャッシュのフ
ラッシュを抑制してプログラムの実行時間を短縮するこ
とができるという効果がある。
用されデータ接近フェーズの構成を示すブロック図、 第2図は本実施例の命令の最適化方式の適用結果の一例
を示す図である。 図において、 l・・・入力中間テキスト、 2・・・命令振分は手段、 3・・・ロード命令解析手段、 4・・・他命令解析手段、 5・・・出力中間テキスト、 6 ・ ・ ・ 7 ・ ・ ・ 8 ・ ・ ・ 9 ・ ・ ・ 1 l ・ ・ 12 ・ ・ 13 ・ ・ ロード命令スタック手段、 ロード命令交換手段、 ロード命令出力手段、 ロード命令スタック域、 ロード命令、 ロード命令、 参照命令である。
Claims (1)
- 【特許請求の範囲】 データキャッシュを持つCPUのオブジェクトプログラ
ムを生成するコンパイラのデータ接近フェーズにおいて
、 入力中間テキストから命令を入力してロード命令とそれ
以外の命令とに振り分ける命令振分け手段と、 この命令振分け手段により振り分けられたロード命令を
解析するロード命令解析手段と、 前記命令振分け手段により振り分けられたロード命令以
外の命令を解析し出力中間テキストに出力する他命令解
析手段と、 前記ロード命令解析手段からの指示によりロード命令を
ロード命令スタック域にスタックするロード命令スタッ
ク手段と、 このロード命令スタック手段からの指示により前記ロー
ド命令スタック域にスタックされたロード命令をオペラ
ンドのアドレス順にソートするロード命令交換手段と、 前記他命令解析手段からの指示により前記ロード命令ス
タック域にスタックされたロード命令をソートされてい
る順に前記出力中間テキストに出力するロード命令出力
手段と を有することを特徴とする命令の最適化方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23906889A JP2819668B2 (ja) | 1989-09-14 | 1989-09-14 | 命令の最適化方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23906889A JP2819668B2 (ja) | 1989-09-14 | 1989-09-14 | 命令の最適化方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03100830A true JPH03100830A (ja) | 1991-04-25 |
| JP2819668B2 JP2819668B2 (ja) | 1998-10-30 |
Family
ID=17039380
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23906889A Expired - Lifetime JP2819668B2 (ja) | 1989-09-14 | 1989-09-14 | 命令の最適化方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2819668B2 (ja) |
-
1989
- 1989-09-14 JP JP23906889A patent/JP2819668B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2819668B2 (ja) | 1998-10-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5925124A (en) | Dynamic conversion between different instruction codes by recombination of instruction elements | |
| DE3650602T2 (de) | Datenverarbeitungssystem | |
| US9317264B2 (en) | Execution control during program code conversion | |
| KR940015852A (ko) | 긴 명령 워드를 갖는 처리기 | |
| JPH06250846A (ja) | コンパイル装置 | |
| DE19735348A1 (de) | Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern | |
| JPH05143332A (ja) | 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法 | |
| US4833640A (en) | Register bank change including register to register transfer in a data processing system | |
| WO2006112045A1 (ja) | 演算処理装置 | |
| Watanabe et al. | SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions | |
| JPH03291726A (ja) | コンパイル中にソフトウェア・スケジューリング技術を用いてハードウェアのパイプライン処理の中断を最小化する方法 | |
| JPH11288375A (ja) | 可変ターゲットコンパイル処理方法、その処理装置、そのプログラムの記憶媒体および変換テーブルの記憶媒体 | |
| CN114675888A (zh) | 用于加载矩阵操作加速器瓦片的指令的装置、方法和系统 | |
| CN114675883A (zh) | 用于对齐矩阵操作加速器瓦片的指令的装置、方法和系统 | |
| JP3318051B2 (ja) | 翻訳処理方法 | |
| JPH03100830A (ja) | 命令の最適化方式 | |
| Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing | |
| JPH06202877A (ja) | エミュレーション装置 | |
| US6049864A (en) | Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor | |
| JPH06236272A (ja) | スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム | |
| JP2591212B2 (ja) | 高速割込み処理装置 | |
| US20040123073A1 (en) | Data processing system having a cartesian controller | |
| JP2729795B2 (ja) | 並列計算機及びその制御方法 | |
| JP2000020318A (ja) | メモリアクセス命令削減装置および記録媒体 | |
| JPH03135630A (ja) | 命令スケジューリング方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070828 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080828 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080828 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090828 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090828 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100828 Year of fee payment: 12 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100828 Year of fee payment: 12 |