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
Application number
JP23906889A
Other languages
English (en)
Other versions
JP2819668B2 (ja
Inventor
Koji Fukuda
福田 光司
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 JP23906889A priority Critical patent/JP2819668B2/ja
Publication of JPH03100830A publication Critical patent/JPH03100830A/ja
Application granted granted Critical
Publication of JP2819668B2 publication Critical patent/JP2819668B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータキャッシュを持つ中央処理装置(以下、
CPUと略記する)のオブジェクトプログラムを生成す
るコンパイラに関し、特にコンパイラのデータ接近フェ
ーズにおける命令の最適化方式に関する。
〔従来の技術〕
従来、この種の命令の最適化方式では、データキャッシ
ュのヒツト率については考慮されていなかった。
〔発明が解決しようとする課題〕
上述した従来の命令の最適化方式では、データキャッシ
ュのヒツト率については考慮されていなかったので、デ
ータキャッシュのフラッシュが頻発した場合にはプログ
ラムの実行時間がかかるという欠点がある。
本発明の目的は、上述の点に鑑み、データキャッシュの
ヒツト率を高めるようにロード命令をオペランドのアド
レス順にソートすることにより、データキャッシュのフ
ラッシュの発生を抑制してプログラムの実行時間を短縮
するようにした命令の最適化方式を提供することにある
〔課題を解決するための手段〕
本発明の命令の最適化方式は、データキャッシュを持つ
CPUのオブジェクトプログラムを生成するコンパイラ
のデータ接近フェーズにおいて、入力中間テキストから
命令を入力してロード命令とそれ以外の命令とに振り分
ける命令振分は手段と、この命令振分は手段により振り
分けられたロード命令を解析するロード命令解析手段と
、前記命令振分は手段により振り分けられたロード命令
以外の命令を解析し出力中間テキストに出力する他命令
解析手段と、前記ロード命令解析手段からの指示により
ロード命令をロード命令スタック域にスタックするロー
ド命令スタック手段と、このロード命令スタック手段か
らの指示により前記ロード命令スタック域にスタックさ
れたロード命令をオペランドのアドレス順にソートする
ロード命令交換手段と、前記他命令解析手段からの指示
により前記ロード命令スタック域にスタックされたロー
ド命令をソートされている順に前記出力中間テキストに
出力するロード命令出力手段とを有する。
〔作用〕
本発明の命令の最適化方式では、命令振分は手段が入力
中間テキストから命令を入力してロード命令とそれ以外
の命令とに振り分け、ロード命令解析手段が命令振分は
手段により振り分けられたロード命令を解析し、他命令
解析手段が命令振分は手段により振り分けられたロード
命令以外の命令を解析し出力中間テキストに出力し、ロ
ード命令スタック手段がロード命令解析手段からの指示
によりロード命令をロード命令スタック域にスタックし
、ロード命令交換手段がロード命令スタック手段からの
指示によりロード命令スタック域にスタックされたロー
ド命令をオペランドのアドレス順にソートし、ロード命
令出力手段が他命令解析手段からの指示によりロード命
令スタック域にスタックされたロード命令をソートされ
ている順に出力中間テキストに出力する。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る命令の最適化方式が
適用されたコンパイラのデータ接近フェーズの構成を示
すブロック図である。このデータ接近フェーズは、入力
中間テキストlから命令を入力してロード命令とそれ以
外の命令とに振り分ける命令振分は手段2と、命令振分
は手段2により振り分けられたロード命令を解析するロ
ード命令解析手段3と、命令振分は手段2により振り分
けられたロード命令以外の命令を解析し出力中間テキス
ト5に出力する他命令解析手段4と、ロード命令解析手
段3からの指示によりロード命令をロード命令スタック
域9にスタックするロード命令スタック手段6と、ロー
ド命令スタック手段6からの指示によりロード命令スタ
ック域9にスタックされたロード命令をオペランドのア
ドレス順にソートするロード命令交換手段7と、他命令
解析手段4からの指示によりロード命令スタック域9に
スタックされたロード命令をソートされている順に出力
中間テキスト5に出力するロード命令出力手段8とを含
んで構成されている。
入力中間テキスト1は、データ接近フェーズの前段のコ
ード生成フェーズ(図示せず)が出力した中間テキスト
であり、ソースプログラムに応じた機械語命令が中間テ
キストの形式で入っているものである。
ロード命令スタック域9は、中間テキストをそのままの
形式で複数個退避可能な領域である。
次に、このように構成された本実施例の命令の最適化方
式の動作について説明する。
命令振分は手段2は、入力中間テキストlから入力され
オペランドのアドレスが解決した(これはデータ接近フ
ェーズの既存技術で解決する)1つの機械語命令をロー
ド命令とそうでない命令とに分類する。ここでいうロー
ド命令とは、メモリの内容をレジスタに転記する命令で
かつオペランドのアドレスが翻訳時に静的に求められる
(インデックスレジスタによる修飾や内容が動的に変化
するペースレジスタを持たない)ものを指す。命令振分
は手段2は、ロード命令をロード命令解析手段3に渡し
、ロード命令以外の命令を他命令解析手段4に渡す。
ロード命令解析手段3は、命令振分は手段2から渡され
たロード命令を解析し、ロード命令スタック手段6に渡
す。
ロード命令スタック手段6は、ロード命令解析手段3か
ら渡されたロード命令をロード命令スタック域9にスタ
ックする。この際、すでにロード命令スタック域9に退
避されているロード命令が有る場合には、ロード命令ス
タック手段6は、ロード命令交換手段7を呼び出す。
ロード命令交換手段7は、ロード命令スタック域9にス
タックされているロード命令をオペランドのアドレスが
小さい順にソートする。
一方、他命令解析手段4は、命令振分は手段2から渡さ
れたロード命令以外の命令を、分散命令等のデータキャ
ッシュを変化させない命令と、インデックスレジスタに
よる修飾や内容が動的に変化するペースレジスタを持つ
広義のロード命令等のデータキャッシュをフラッシュさ
せる命令と、ロード命令スタック域9のロード命令によ
りメモリの内容を転記されるレジスタを参照する参照命
令とに分類する。
データキャッシュを変化させない命令がきた場合には、
他命令解析手段4は、その命令をそのまま出力中間テキ
スト5に出力する。
また、データキャッシュをフラッシュさせる命令がきた
場合には、他命令解析手段4は、ロード命令出力手段8
を呼び出す、ロード命令出力手段8は、ロード命令スタ
ック域9の全てのロード命令をソートされている順に出
力中間テキスト5に出力する。この後、他命令解析手段
4は、データキャッシュをフランシュさせる命令を出力
中間テキスト5に出力する。
さらに、ロード命令スタック域9のロード命令によりメ
モリの内容を転記されるレジスタを参照する参照命令が
きた場合には、他命令解析手段4は、ロード命令出力手
段8を呼び出す、ロード命令出力手段8は、その参照命
令で参照されたオペランドのアドレスより小さなアドレ
スのオペランドをレジスタに転記するロード命令を全て
ロード命令スタック域9からソートされている順に出力
中間テキスト5に出力する。この後、他命令解析手段4
は、ロード命令によりメモリの内容を転記されるレジス
タを参照する参照命令を出力中間テキスト5に出力する
次に、本実施例の命令の最適化方式の動作について、第
2図を参照しながら具体的に説明する。
第2図の入力中間テキストlには、3つの機械語命令テ
キスト11.12および13がこの順番で入っているも
のとする(オペランドのアドレスが解決された形で書か
れているが、実際はこの解決もデータ接近フェーズ内で
行われる)、データ接近フェーズは、本実施例の命令の
最適化方式の適用の結果、3つの機械語命令テキス1−
12.11および13をこの順に並び変えて出力中間テ
キスト5に出力する。
これにより、プログラムの実行時に、ロード命令12で
ペースレジスタBROの相対100番地のオペランドへ
のアクセス時にCPUのデータキャッシュにペースレジ
スタBROの相対100番地からのデータが入り、次の
ロード命令11でペースレジスタBROの相対110番
地のオペランドへのアクセス時にデータキャッシュに格
納されたデータにヒントする。この結果、ロード命令l
lがロード命令12に先行したままの場合に比べて、デ
ータキャッシュのフラッシュが抑制され、プログラムが
より高速に処理されることになる。
〔発明の効果〕
以上説明したように本発明は、命令振分は手段。
ロード命令解析手段、他命令解析手段、ロード命令スタ
ック手段、ロード命令交換手段およびロード命令出力手
段を設けて、データキャッシュに格納されたデータが連
続的にヒツトするようにロード命令をオペランドのアド
レス順に並び換えることにより、データキャッシュのフ
ラッシュを抑制してプログラムの実行時間を短縮するこ
とができるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る命令の最適化方式が適
用されデータ接近フェーズの構成を示すブロック図、 第2図は本実施例の命令の最適化方式の適用結果の一例
を示す図である。 図において、 l・・・入力中間テキスト、 2・・・命令振分は手段、 3・・・ロード命令解析手段、 4・・・他命令解析手段、 5・・・出力中間テキスト、 6 ・ ・ ・ 7 ・ ・ ・ 8 ・ ・ ・ 9 ・ ・ ・ 1 l ・ ・ 12 ・ ・ 13 ・ ・ ロード命令スタック手段、 ロード命令交換手段、 ロード命令出力手段、 ロード命令スタック域、 ロード命令、 ロード命令、 参照命令である。

Claims (1)

  1. 【特許請求の範囲】 データキャッシュを持つCPUのオブジェクトプログラ
    ムを生成するコンパイラのデータ接近フェーズにおいて
    、 入力中間テキストから命令を入力してロード命令とそれ
    以外の命令とに振り分ける命令振分け手段と、 この命令振分け手段により振り分けられたロード命令を
    解析するロード命令解析手段と、 前記命令振分け手段により振り分けられたロード命令以
    外の命令を解析し出力中間テキストに出力する他命令解
    析手段と、 前記ロード命令解析手段からの指示によりロード命令を
    ロード命令スタック域にスタックするロード命令スタッ
    ク手段と、 このロード命令スタック手段からの指示により前記ロー
    ド命令スタック域にスタックされたロード命令をオペラ
    ンドのアドレス順にソートするロード命令交換手段と、 前記他命令解析手段からの指示により前記ロード命令ス
    タック域にスタックされたロード命令をソートされてい
    る順に前記出力中間テキストに出力するロード命令出力
    手段と を有することを特徴とする命令の最適化方式。
JP23906889A 1989-09-14 1989-09-14 命令の最適化方式 Expired - Lifetime JP2819668B2 (ja)

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)

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