JPH11296368A - プロセッサ、コンパイラ及び命令列変換装置 - Google Patents
プロセッサ、コンパイラ及び命令列変換装置Info
- Publication number
- JPH11296368A JPH11296368A JP10095645A JP9564598A JPH11296368A JP H11296368 A JPH11296368 A JP H11296368A JP 10095645 A JP10095645 A JP 10095645A JP 9564598 A JP9564598 A JP 9564598A JP H11296368 A JPH11296368 A JP H11296368A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- code
- condition
- satisfied
- conditional
- 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
Landscapes
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
も、コードサイズ、かつ命令解読器のハードウェア量の
増加を抑止するプロセッサ、コンパイラおよび命令列変
換装置を提供することを目的とする。 【解決手段】 中間コードに対し、命令実行状態を判定
する比較コードを条件付きコードの特定条件を判定する
条件付き比較コードに変更し、条件付きコードを削除す
るとともに、第1の操作コードを第2の操作コードの後
続に配置し、第1の操作コードを特定条件に合致した時
のみ実行する条件成立時実行コードに変更するという一
連の処理を施すことより、条件付き命令の条件は条件成
立のみになる。従って、全条件付き命令に対して1つの
条件のみを指定するだけで済み、コードサイズの増加を
抑制できる。
Description
コンパイラあるいは命令列変換装置に関し、特に条件付
き命令を削減することの技術に関する。
向上し、あらゆる分野で用いられている。
プラインが乱れることによる分岐命令のオーバーヘッド
を削減するために、分岐命令の代わりに条件付き命令を
用いて処理能力を向上させている。例えば、The ARM RI
SC Chip A Programmer's Guide、Addison-Wesley Publi
shing Company Inc.参照。
件付き加算命令、条件付き転送命令、および条件分岐命
令の命令仕様の第1の従来例を示す図である。
0種類ずつ(図13では加算命令、転送命令、および分
岐命令のみを示している)存在し、命令ニモニックのオ
ペコードの末尾2文字が条件を指定している。
毎に10種類ずつ実装しなければならないので、指定で
きる条件を削減した条件付き命令を実装しているプロセ
ッサもある。例えば、日立シングルチップRISCマイコン
SH7000/SH7600シリーズプログラミングマニュアル、
(株)日立製作所参照。
よび条件分岐命令の命令仕様の第2の従来例を示す図で
ある。
定することにより、条件分岐命令は成立/非成立の2種
類存在している。
定できる第3の従来例であり、プロセッサの比較命令、
条件付き加算命令、条件付き転送命令、および条件分岐
命令の命令仕様を示す図である。
分岐命令のように成立/非成立の2つの条件でのみ指定
する考えを第1の条件付き命令に適用したものである。
定することにより、全ての条件付き命令は成立/非成立
の2種類ずつ存在している。
命令を使用するために、従来のプロセッサでは、条件付
き命令は複数の条件を指定するようにしていた。
技術によれば、各条件付き命令は10種類または2種類
ずつ存在し、命令割付けにおいて全条件付き命令に対し
て複数の条件を指定するフィールドが必要となる。例え
ば、条件付き命令が20命令あるプロセッサでは、上記
第1の従来例では、比較命令1種類、条件付き命令20
0種類(各条件付き命令10種類×20命令)の合計2
01命令、上記第3の従来例では、比較命令5種類、条
件付き命令40種類(各条件付き命令2種類×20命
令)の合計45命令もの多数の命令を命令セットに割り
付けるためのフィールドが必要となるので、コードサイ
ズが増加するという課題を有していた。
たは2種類もの複数の条件を判断する必要があるため
に、命令解読器のハードウェア量が増加するという課題
も有していた。
を実装する場合でも、複数の条件を指定する必要がな
く、コードサイズの増加を抑止し、かつ、命令解読器の
ハードウェア量の増加を抑止するプロセッサ、コンパイ
ラおよび命令列変換装置を提供することを目的とする。
本発明のプロセッサは、指定された条件が成立したこと
を示す状態保持手段と、少なくとも、オペランドが第1
の条件を満たすことを検証する第1の命令と、オペラン
ドが前記第1の条件と排他な関係にある第2の条件を満
たすことを検証する前記第1の命令と異なる第2の命令
と、前記状態保持手段が、条件が成立したことを示して
いるときのみに指定された操作を実行する条件成立時実
行命令とを含む機械語命令を解読する命令解読手段と、
前記命令解読手段に従って命令を実行する命令実行手段
とを備え、前記命令解読手段は前記第1の命令を解読す
ると、オペランドを検証し、該オペランドが該命令中に
指定された第1の条件を満たせば、前記状態保持手段に
該条件が成立したことを示させ、前記第2の命令を解読
すると、オペランドを検証し、該オペランドが該命令中
に指定された第2の条件を満たせば、前記状態保持手段
に該条件が成立したことを示させ、前記条件成立時実行
命令を解読すると、前記状態保持手段を吟味し、条件が
成立したことを示していなければ、前記命令実行手段に
対して該命令中に指定された操作を停止するように制御
することを特徴とするものであり、コンパイラは、高級
言語プログラムを第1の中間コード列に変換する中間コ
ード生成手段と、前記第1の中間コード列から、命令実
行状態を判定する比較コードと、特定の資源に対して2
つの操作を行う第1、および第2の操作コードと、前記
比較コードが判定した命令実行状態が特定条件に合致す
る時に第1の操作コードを実行させ、合致しない時に第
2の操作コードを実行させる条件付きコードとを抽出す
る最適化対象コード検出手段と、前記最適化対象コード
検出手段が抽出した前記比較コードを、前記条件付きコ
ードの前記特定条件を判定する条件付き比較コードに変
更し、前記条件付きコードを削除するとともに、前記第
1の操作コードを前記第2の操作コードの後続に配置
し、前記第1の操作コードを前記特定条件に合致した時
のみ実行する条件成立時実行コードに変更するという処
理を施すことより、第1の中間コードを第2の中間コー
ドに変換する条件成立時実行命令適用中間コード最適化
手段と、前記第2の中間コードを機械語命令に変換する
機械語命令生成手段とを備えることを特徴とするもので
あり、命令列変換装置は、命令列から命令実行状態を判
定する比較命令と、特定の資源に対して2つの操作を行
う第1、および第2の操作命令と、前記比較命令が判定
した命令実行状態が特定条件に合致する時に第1の操作
命令を実行させ、合致しない時に第2の操作命令を実行
させる条件付き命令とを抽出する最適化対象命令検出手
段と、前記最適化対象命令検出手段が抽出した前記比較
命令を、前記条件付き命令の前記特定条件を判定する条
件付き比較命令に変更し、前記条件付き命令を削除する
とともに、前記第1の操作命令を前記第2の操作命令の
後続に配置し、前記第1の操作命令を前記特定条件に合
致した時のみ実行する条件成立時実行命令に変更すると
いう処理を施すことより、命令列を変換する条件成立時
実行命令適用命令列最適化手段とを備えることを特徴と
する。
装置は、条件付き命令として条件に合致した時のみ実行
する条件成立時実行命令のみを生成することになり、条
件付き命令の数を削減することが可能になる。
実行命令は、前記演算フラグがセットされている時のみ
に分岐を行う命令、転送を行う命令、演算を行う命令で
あるとしてもよい。
時実行命令適用中間コード最適化手段は、前記最適化対
象コード検出手段が抽出した前記比較コードを、または
前記条件付きコードの特定条件を判定する条件付き比較
コードに変更するとともに、前記第1の操作コードを特
定条件に合致した時のみ実行する条件成立時実行コード
に変更するという処理を施すことより、第1の中間コー
ドを第2の中間コードに変換してもよい。
時実行コードは、転送を行うコード、または演算を行う
コードとしてもよい。
立時実行命令適用命令最適化手段は、前記最適化対象命
令検出手段が抽出した前記比較命令を、前記条件付き命
令の特定条件を判定する条件付き比較命令に変更すると
ともに、前記第1の操作命令を特定条件に合致した時の
み実行する条件成立時実行命令に変更するという処理を
施すことより、第1の中間コードを第2の中間コードに
変換してもよい。
成立時実行命令は、転送を行う命令、または演算を行う
命令としてもよい。
て、図面を用いて説明する。
令列を実行するプロセッサのブロック構成図である。
1、命令解読手段102、命令実行手段103、命令実
行停止手段104から構成されている。
状態を演算フラグとして保持する。命令解読手段102
は、機械語命令を解読する。
2から出力される命令実行手段制御信号に従って、命令
を実行する。
持手段101が保持している命令実行状態を示す演算フ
ラグ状態信号111と、演算命令解読手段102が条件
付き命令を解読していることを示す条件付き命令指示信
号112を入力し、条件が成立していない場合には、命
令実行手段103に対して命令実行停止信号113を出
力し、命令実行を停止するように制御する。
の概略構成図である。このコンパイラは中間コード生成
手段201、最適化対象コード検出手段202、条件成
立時実行命令適用最適化手段203、中間コード最適化
手段204、機械語命令生成手段205から構成されて
いる。プログラムから中間コードを生成する処理と、中
間コードを最適化し機械語命令を生成する処理は公知の
技術であるため省略し、本発明にかかわる最適化対象コ
ード検出手段202、および条件成立時実行命令適用最
適化手段203の処理に関して図3から図8を用いて説
明する。
実施の形態におけるコンパイラの条件成立時実行命令適
用最適化手段203と中間コード最適化手段204の動
作を記述したフローチャートである。
るプロセッサの比較命令、分岐命令、転送命令、および
加算命令の命令仕様である。
ソースコード211に相当するC言語で記述されたプロ
グラムである。図5のプログラムはaとbの比較を行
い、等しければcに1を代入し、そうでなければcに0
を代入し、関数fを呼び出す。
1の中間コード212に相当するコードである。図6に
おいて「L1」、「L2」は分岐先のラベルを表す。「a cm
p b」はaとbの比較を行い、比較結果は演算フラグに
反映される。「beq L1」は条件分岐を行うものであり、
演算フラグを参照し、比較結果が等しい場合ラベル「L
1」に分岐する。「c=0」、「c=1」は転送を行い、それ
ぞれ0または1の即値をcに転送する。「jmp L2」は無
条件分岐を行うものであり、ラベル「L2」に分岐する。
「jsr f」は「f」で指定される関数fに関数呼び出しを
行うものである。
2の中間コード213に相当するコードである。図7に
おいて「a cmpeq b」は条件付き比較コードであり、a
とbの比較を行い、比較結果が等しければ演算フラグを
セットし、等しくなければ演算フラグをクリアする。
「c=:true 1」は条件成立時実行コードで、比較コード
で設定した条件が成立している(フラグがセットされて
いる)場合にのみ、即値1をcに転送する。
追って説明する。 (1)図6の第1の中間コードを入力する。入力した時
点のフローチャートのnの値は1とする。 (2)3―bの判定がYESになるまでnを増加し処理
を繰り返す。図6の第1の中間コードの場合、n=1の
時にYESとなり、3―cの判定に進む。 (3)3―cの判定を行う。2番目のコードは条件分岐
コード「beq L1」であるので、3―cの判定はYESと
なり、3―dの判定に進む。 (4)3―dの判定を行う。3番目のコードは転送コー
ド「c=0」であるので、3―dの判定はYESとなり、
3―eの判定に進む。 (5)3―eの判定を行う。4番目のコードは無条件分
岐コード「jmp L2」であるので、3―eの判定はYES
となり、3―fの判定に進む。 (6)3―fの判定を行う。5番目のコードは転送コー
ド「c=1」であり、3番目のコードと同一の変数への転
送コードであるので、3―fの判定はYESとなり、3
―gの処理に進む。 (7)2番目の条件分岐コードの条件は「eq(等し
い)」なので、1番目の比較命令を「a cmpeq b」に変
更し、3―hの処理に進む。 (8)2番目の条件分岐コードを削除し、3―iの処理
に進む。 (9)4番目の無条件分岐コードを削除し、3―jの処
理に進む。 (10)5番目の転送コードを条件成立時条件転送コー
ド「c=:true 1」に変更し、3―kに進み、以下上記
(2)以下のステップを繰り返す。 以上の動作により、図7に示す第2の中間コードが生成
される。
械語命令215に相当する。「cmpeq r0,r1」は条件付
き比較命令であり、レジスタr0とr1の内容を比較
し、比較結果が等しければ演算フラグをセットし、等し
くなければ演算フラグをクリアする。「mov 0,r2」は転
送命令で、レジスタr2に即値0を転送する。「movt
1,r2」は条件成立時条件転送命令で、比較命令で設定し
た条件が成立している(フラグがセットされている)場
合にのみ、レジスタr2に即値1を転送する。
実施の形態におけるコンパイラの条件成立時実行命令適
用最適化手段203と中間コード最適化手段204の動
作を記述したフローチャートである。
ロセッサの命令仕様は、図4と同様なものとする。
図5のプログラムを入力した時の第1の中間コード21
2に相当するコードである。図10において「c=:eq
1」は条件成立時実行転送コードで、比較コードで設定
した条件が成立している(フラグがセットされている)
場合にのみ、即値1をcに転送する。
示すフローチャートに従う処理を行った後の第2の中間
コード213は図7と同様になり、実施の形態1と同
様、機械語命令215は図8の命令列となる。
追って説明する。 (1)図10の第1の中間コードを入力する。入力した
時点のフローチャートのnの値は1とする。 (2)9―bの判定がYESになるまでnを増加し処理
を繰り返す。図10の第1の中間コードの場合、n=1
の時にYESとなり、9―cの判定に進む。 (3)9―cの判定を行う。2番目のコードは転送コー
ド「c=0」であるので、9―cの判定はYESとなり、
9―dの判定に進む。 (4)9―dの判定を行う。3番目のコードは条件転送
コード「c=:eq 1」であり、2番目のコードと同一の変
数への条件転送コードであるので、9―dの判定はYE
Sとなり、9―eの処理に進む。 (5)3番目の条件転送コードの条件は「eq(等し
い)」なので、1番目の比較命令を「a cmpeq b」に変
更し、9―fの処理に進む。 (10)2番目の転送コードを条件成立時条件転送コー
ド「c=:true 1」に変更し、9―gに進み、以下上記
(2)以下のステップを繰り返す。 以上の動作により、図7に示す第2の中間コードが生成
される。
の実施の形態におけるコンパイラの条件成立時実行命令
適用最適化手段203と中間コード最適化手段204の
動作を記述したフローチャートである。
ロセッサの命令仕様は、図4と同様なものとする。
に図5のプログラムを入力した時の第1の中間コード2
12に相当するコードである。図12において「c=:ne
0」は条件成立時実行転送コードで、比較コードで設定
した条件が非成立している(フラグがクリアされてい
る)場合にのみ、即値0をcに転送する。
に示すフローチャートに従う処理を行った後の第2の中
間コード213は図7と同様になり、実施の形態1と同
様、機械語命令215は図8の命令列となる。
を追って説明する。 (1)図12の第1の中間コードを入力する。入力した
時点のフローチャートのnの値は1とする。 (2)11―bの判定がYESになるまでnを増加し処
理を繰り返す。図12の第1の中間コードの場合、n=
1の時にYESとなり、11―cの判定に進む。 (3)11―cの判定を行う。2番目のコードは条件転
送コード「c=:ne 0」であるので、11―cの判定はY
ESとなり、11―dの判定に進む。 (4)11―dの判定を行う。3番目のコードは条件転
送コード「c=:eq 1」であり、2番目のコードと同一の
変数への条件転送コードであるので、11―dの判定は
YESとなり、11―eの判定に進む。 (5)11―eの判定を行う。3番目のコードの条件は
「eq(等しい)」で、2番目のコードの条件は「ne(等
しくない)」であり、お互い排他な条件であるので、1
1―eの判定はYESとなり、11―fの処理に進む。 (6)3番目の条件分岐コードの条件は「eq(等し
い)」なので、1番目の比較命令を「a cmpeq b」に変
更し、11―gの処理に進む。 (8)2番目の条件転送コードを転送コード「c=0」に
変更し、11―hの処理に進む。 (9)3番目の転送コードを条件成立時条件転送コード
「c=:true 1」に変更し、3―iに進み、以下上記
(2)以下のステップを繰り返す。 以上の動作により、図7に示す第2の中間コードが生成
される。
ンパイラについて、実施の形態に基づいて説明したが、
本発明はこれら実施の形態に限られないことは勿論であ
る。
ドを用いた中間コードに変換する最適化処理を命令列を
命令列に変換する命令列変換装置で行っても同様の効果
が得られる。 (2)転送命令の転送値は定数に限らず、レジスタの値
も同様に転送できる。 (3)条件付き命令は転送命令に限らず、算術演算命令
や論理演算命令であってもよい。
のプロセッサは、指定された条件が成立したことを示す
状態保持手段と、少なくとも、オペランドが第1の条件
を満たすことを検証する第1の命令と、オペランドが前
記第1の条件と排他な関係にある第2の条件を満たすこ
とを検証する前記第1の命令と異なる第2の命令と、前
記状態保持手段が、条件が成立したことを示していると
きのみに指定された操作を実行する条件成立時実行命令
とを含む機械語命令を解読する命令解読手段と、前記命
令解読手段に従って命令を実行する命令実行手段とを備
え、前記命令解読手段は前記第1の命令を解読すると、
オペランドを検証し、該オペランドが該命令中に指定さ
れた第1の条件を満たせば、前記状態保持手段に該条件
が成立したことを示させ、前記第2の命令を解読する
と、オペランドを検証し、該オペランドが該命令中に指
定された第2の条件を満たせば、前記状態保持手段に該
条件が成立したことを示させ、前記条件成立時実行命令
を解読すると、前記状態保持手段を吟味し、条件が成立
したことを示していなければ、前記命令実行手段に対し
て該命令中に指定された操作を停止するように制御する
ことを特徴とするものであり、コンパイラは、高級言語
プログラムを第1の中間コード列に変換する中間コード
生成手段と、前記第1の中間コード列から、命令実行状
態を判定する比較コードと、特定の資源に対して2つの
操作を行う第1、および第2の操作コードと、前記比較
コードが判定した命令実行状態が特定条件に合致する時
に第1の操作コードを実行させ、合致しない時に第2の
操作コードを実行させる条件付きコードとを抽出する最
適化対象コード検出手段と、前記最適化対象コード検出
手段が抽出した前記比較コードを、前記条件付きコード
の特定条件を判定する条件付き比較コードに変更し、前
記条件付きコードを削除するとともに、前記第1の操作
コードを前記第2の操作コードの後続に配置し、前記第
1の操作コードを特定条件に合致した時のみ実行する条
件成立時実行コードに変更するという処理を施すことよ
り、第1の中間コードを第2の中間コードに変換する条
件成立時実行命令適用中間コード最適化手段と、前記第
2の中間コードを機械語命令に変換する機械語命令生成
手段とを備えることを特徴とするものであり、命令列変
換装置は、命令列から命令実行状態を判定する比較命令
と、特定の資源に対して2つの操作を行う第1、および
第2の操作命令と、前記比較命令が判定した命令実行状
態が特定条件に合致する時に第1の操作命令を実行さ
せ、合致しない時に第2の操作命令を実行させる条件付
き命令とを抽出する最適化対象命令検出手段と、前記最
適化対象命令検出手段が抽出した前記比較命令を、前記
条件付き命令の特定条件を判定する条件付き比較命令に
変更し、前記条件付き命令を削除するとともに、前記第
1の操作命令を前記第2の操作命令の後続に配置し、前
記第1の操作命令を特定条件に合致した時のみ実行する
条件成立時実行命令に変更するという処理を施すことよ
り、命令列を変換する条件成立時実行命令適用命令列最
適化手段とを備えることを特徴とする。
装置は、条件付き命令として条件に合致した時のみ実行
する条件成立時実行命令のみを生成することになり、条
件付き命令の数を削減することが可能になる。従って、
全条件付き命令に対して1つの条件を指定するフィール
ドが必要となるだけなので、コードサイズの増加を抑制
できる。例えば、条件付き命令が20命令あるプロセッ
サでは、比較命令10種類、条件付き命令20種類(各
条件付き命令1種類×20命令)の合計30命令を命令
セットに割り付けるだけでよいので、割り付けるための
フィールドが少なくて済むことになり、コードサイズを
削減できる。
件に合致した時のみ実行する条件成立時実行命令のみを
解読するだけで良く、命令解読器のハードウェア量が増
大せずに低コストで実現できるという効果がある。
大きい。
るプロセッサのブロック構成図
作を記述したフローチャート
令、転送命令、および加算命令の命令仕様を示す図
コード211に相当するC言語で記述されたプログラム
を示す図
間コード212に相当するコードを示す図
間コード213に相当するコードを示す図
令215を示す図
作を記述したフローチャート
中間コード212に相当するコードを示す図
動作を記述したフローチャート
中間コード212に相当するコードを示す図
命令、条件付き転送命令、および条件分岐命令の命令仕
様の第1の従来例を示す図
岐命令の命令仕様の第2の従来例を示す図
ロセッサの比較命令、条件付き加算命令、条件付き転送
命令、および条件分岐命令の命令仕様の第3の従来例を
示す図
Claims (12)
- 【請求項1】 指定された条件が成立したことを示す状
態保持手段と、 少なくとも、 オペランドが第1の条件を満たすことを検証する第1の
命令と、 オペランドが前記第1の条件と排他な関係にある第2の
条件を満たすことを検証する前記第1の命令と異なる第
2の命令と、 前記状態保持手段が、条件が成立したことを示している
ときのみに指定された操作を実行する条件成立時実行命
令とを含む機械語命令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
とを備え、 前記命令解読手段は前記第1の命令を解読すると、 オペランドを検証し、該オペランドが該命令中に指定さ
れた第1の条件を満たせば、前記状態保持手段に該条件
が成立したことを示させ、 前記第2の命令を解読すると、 オペランドを検証し、該オペランドが該命令中に指定さ
れた第2の条件を満たせば、前記状態保持手段に該条件
が成立したことを示させ、 前記条件成立時実行命令を解読すると、 前記状態保持手段を吟味し、条件が成立したことを示し
ていなければ、前記命令実行手段に対して該命令中に指
定された操作を停止するように制御することを特徴とす
るプロセッサ。 - 【請求項2】 前記条件成立時実行命令は、前記演算フ
ラグがセットされている時のみに分岐を行う命令である
ことを特徴とする請求項1記載のプロセッサ。 - 【請求項3】 前記条件成立時実行命令は、前記演算フ
ラグがセットされている時のみに転送を行う命令である
ことを特徴とする請求項1記載のプロセッサ。 - 【請求項4】 前記条件成立時実行命令は、前記演算フ
ラグがセットされている時のみに演算を行う命令である
ことを特徴とする請求項1記載のプロセッサ。 - 【請求項5】 高級言語プログラムを第1の中間コード
列に変換する中間コード生成手段と、 前記第1の中間コード列から、命令実行状態を判定する
比較コードと、特定の資源に対して2つの操作を行う第
1、および第2の操作コードと、前記比較コードが判定
した命令実行状態が特定条件に合致する時に第1の操作
コードを実行させ、合致しない時に第2の操作コードを
実行させる条件付きコードとを抽出する最適化対象コー
ド検出手段と、 前記最適化対象コード検出手段が抽出した前記比較コー
ドを、前記条件付きコードの前記特定条件を判定する条
件付き比較コードに変更し、前記条件付きコードを削除
するとともに、前記第1の操作コードを前記第2の操作
コードの後続に配置し、前記第1の操作コードを前記特
定条件に合致した時のみ実行する条件成立時実行コード
に変更するという処理を施すことより、第1の中間コー
ドを第2の中間コードに変換する条件成立時実行命令適
用中間コード最適化手段と、 前記第2の中間コードを機械語命令に変換する機械語命
令生成手段とを備えることを特徴とするコンパイラ。 - 【請求項6】 前記条件成立時実行命令適用中間コード
最適化手段は、前記最適化対象コード検出手段が抽出し
た前記比較コードを、前記条件付きコードの特定条件を
判定する条件付き比較コードに変更するとともに、前記
第1の操作コードを特定条件に合致した時のみ実行する
条件成立時実行コードに変更するという処理を施すこと
より、第1の中間コードを第2の中間コードに変換する
ことを特徴とする請求項5記載のコンパイラ。 - 【請求項7】 前記条件成立時実行コードは、転送を行
うコードであることを特徴とする請求項5または6記載
のコンパイラ。 - 【請求項8】 前記条件成立時実行コードは、演算を行
うコードであることを特徴とする請求項5または6記載
のコンパイラ。 - 【請求項9】 命令列から、命令実行状態を判定する比
較命令と、特定の資源に対して2つの操作を行う第1、
および第2の操作命令と、前記比較命令が判定した命令
実行状態が特定条件に合致する時に第1の操作命令を実
行させ、合致しない時に第2の操作命令を実行させる条
件付き命令とを抽出する最適化対象命令検出手段と、 前記最適化対象命令検出手段が抽出した前記比較命令
を、前記条件付き命令の前記特定条件を判定する条件付
き比較命令に変更し、前記条件付き命令を削除するとと
もに、前記第1の操作命令を前記第2の操作命令の後続
に配置し、前記第1の操作命令を前記特定条件に合致し
た時のみ実行する条件成立時実行命令に変更するという
処理を施すことより、命令列を変換する条件成立時実行
命令適用命令列最適化手段とを備えることを特徴とする
命令列変換装置。 - 【請求項10】 前記条件成立時実行命令適用命令最適
化手段は、前記最適化対象命令検出手段が抽出した前記
比較命令を、前記条件付き命令の特定条件を判定する条
件付き比較命令に変更するとともに、前記第1の操作命
令を特定条件に合致した時のみ実行する条件成立時実行
命令に変更するという処理を施すことより、第1の中間
コードを第2の中間コードに変換することを特徴とする
請求項9記載の命令列変換装置。 - 【請求項11】 前記条件成立時実行命令は、転送を行
う命令であることを特徴とする請求項9または10記載
の命令列変換装置。 - 【請求項12】 前記条件成立時実行命令は、演算を行
う命令であることを特徴とする請求項9または10記載
の命令列変換装置。
Priority Applications (11)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP09564598A JP3843594B2 (ja) | 1998-04-08 | 1998-04-08 | プロセッサ、コンパイラ及び命令列変換装置 |
| CNB2004100053791A CN1282920C (zh) | 1997-08-29 | 1998-08-28 | 对指令列译码并执行指令的处理器 |
| EP05017199A EP1645956A3 (en) | 1997-08-29 | 1998-08-28 | Instruction conversion apparatus for reducing the number of types of instructions |
| CNB031243908A CN100347668C (zh) | 1997-08-29 | 1998-08-28 | 指令变换装置 |
| CNB981202993A CN1145878C (zh) | 1997-08-29 | 1998-08-28 | 对指令列译码并执行指令的处理器 |
| EP98306919A EP0899653B1 (en) | 1997-08-29 | 1998-08-28 | Processor with reduced number of conditional instructions |
| DE69836056T DE69836056T2 (de) | 1997-08-29 | 1998-08-28 | Prozessor mit verringerter Zahl von bedingten Befehlen |
| KR1019980035358A KR100532743B1 (ko) | 1997-08-29 | 1998-08-29 | 하드웨어량을삭감한프로세서및명령의종류를삭감하는명령변환장치 |
| US09/144,298 US6230258B1 (en) | 1997-08-29 | 1998-08-31 | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions |
| US09/756,068 US6606703B2 (en) | 1997-08-29 | 2001-01-08 | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions |
| US10/617,506 US20050091478A1 (en) | 1997-08-29 | 2003-07-11 | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP09564598A JP3843594B2 (ja) | 1998-04-08 | 1998-04-08 | プロセッサ、コンパイラ及び命令列変換装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11296368A true JPH11296368A (ja) | 1999-10-29 |
| JP3843594B2 JP3843594B2 (ja) | 2006-11-08 |
Family
ID=14143251
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP09564598A Expired - Fee Related JP3843594B2 (ja) | 1997-08-29 | 1998-04-08 | プロセッサ、コンパイラ及び命令列変換装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3843594B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20020025687A (ko) * | 2000-09-28 | 2002-04-04 | 포만 제프리 엘 | 마이크로프로세서의 명령 처리 방법 및 마이크로프로세서 |
| GB2480338A (en) * | 2010-05-11 | 2011-11-16 | Advanced Risc Mach Ltd | Conditional compare instruction using a status register |
-
1998
- 1998-04-08 JP JP09564598A patent/JP3843594B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20020025687A (ko) * | 2000-09-28 | 2002-04-04 | 포만 제프리 엘 | 마이크로프로세서의 명령 처리 방법 및 마이크로프로세서 |
| GB2480338A (en) * | 2010-05-11 | 2011-11-16 | Advanced Risc Mach Ltd | Conditional compare instruction using a status register |
| GB2480338B (en) * | 2010-05-11 | 2013-07-31 | Advanced Risc Mach Ltd | Conditional compare instruction |
| US9383999B2 (en) | 2010-05-11 | 2016-07-05 | Arm Limited | Conditional compare instruction |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3843594B2 (ja) | 2006-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10860300B2 (en) | Direct function call substitution using preprocessor | |
| US7577826B2 (en) | Stall prediction thread management | |
| JP2014504770A (ja) | 同一のデータ条件に依存する、隣接する命令の実行の制御 | |
| CN110569067B (zh) | 用于多线程处理的方法、装置及系统 | |
| US20060149927A1 (en) | Processor capable of multi-threaded execution of a plurality of instruction-sets | |
| JPH0769795B2 (ja) | コンピュータ | |
| US6119221A (en) | Instruction prefetching apparatus and instruction prefetching method for processing in a processor | |
| JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
| US5850551A (en) | Compiler and processor for processing loops at high speed | |
| KR900003743A (ko) | 명령파이프라인방식의 마이크로프로세서 | |
| CN1318957C (zh) | 在程序控制流中实现改变的装置和方法 | |
| JPH11296368A (ja) | プロセッサ、コンパイラ及び命令列変換装置 | |
| US20030145190A1 (en) | Compiler algorithm to implement speculative stores | |
| EP1387266A1 (en) | Software pipelining for branching control flow | |
| JPH1124923A (ja) | マイクロプロセッサ | |
| JPH0527986A (ja) | コンパイラの最適化方法および最適化装置 | |
| KR100222039B1 (ko) | 수퍼 스칼라 프로세서의 명령 종속성 검증 장치 및 방법 | |
| JPH0659889A (ja) | パイプラインマシンにおけるソフトウェア分岐方式 | |
| JPS61285544A (ja) | コンパイル方法 | |
| JPH07248923A (ja) | コンパイラ | |
| JP2003150375A (ja) | 命令プリフェッチ装置、および命令プリフェッチ方法 | |
| JPH0433021A (ja) | 分岐命令制御方式 | |
| JPH0573310A (ja) | 条件分岐の動的判定方式 | |
| JPH01108636A (ja) | タグ付きデータ処理装置 | |
| JPH01312633A (ja) | 並列処理型情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041006 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20041112 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050627 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051227 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060124 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060308 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060404 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060518 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060704 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060725 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060807 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090825 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100825 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120825 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130825 Year of fee payment: 7 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |