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
Application number
JP10095645A
Other languages
English (en)
Other versions
JP3843594B2 (ja
Inventor
Nobuo Higaki
信生 桧垣
Tetsuya Tanaka
哲也 田中
Shuichi Takayama
秀一 高山
Kensuke Kotani
謙介 小谷
Takehito Heiji
岳人 瓶子
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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
Priority to JP09564598A priority Critical patent/JP3843594B2/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to DE69836056T priority patent/DE69836056T2/de
Priority to CNB2004100053791A priority patent/CN1282920C/zh
Priority to EP05017199A priority patent/EP1645956A3/en
Priority to CNB031243908A priority patent/CN100347668C/zh
Priority to CNB981202993A priority patent/CN1145878C/zh
Priority to EP98306919A priority patent/EP0899653B1/en
Priority to KR1019980035358A priority patent/KR100532743B1/ko
Priority to US09/144,298 priority patent/US6230258B1/en
Publication of JPH11296368A publication Critical patent/JPH11296368A/ja
Priority to US09/756,068 priority patent/US6606703B2/en
Priority to US10/617,506 priority patent/US20050091478A1/en
Application granted granted Critical
Publication of JP3843594B2 publication Critical patent/JP3843594B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 本発明は、条件付き命令を実装する場合で
も、コードサイズ、かつ命令解読器のハードウェア量の
増加を抑止するプロセッサ、コンパイラおよび命令列変
換装置を提供することを目的とする。 【解決手段】 中間コードに対し、命令実行状態を判定
する比較コードを条件付きコードの特定条件を判定する
条件付き比較コードに変更し、条件付きコードを削除す
るとともに、第1の操作コードを第2の操作コードの後
続に配置し、第1の操作コードを特定条件に合致した時
のみ実行する条件成立時実行コードに変更するという一
連の処理を施すことより、条件付き命令の条件は条件成
立のみになる。従って、全条件付き命令に対して1つの
条件のみを指定するだけで済み、コードサイズの増加を
抑制できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサとその
コンパイラあるいは命令列変換装置に関し、特に条件付
き命令を削減することの技術に関する。
【0002】
【従来の技術】近年、プロセッサの処理能力が飛躍的に
向上し、あらゆる分野で用いられている。
【0003】特に近年のプロセッサでは、分岐時にパイ
プラインが乱れることによる分岐命令のオーバーヘッド
を削減するために、分岐命令の代わりに条件付き命令を
用いて処理能力を向上させている。例えば、The ARM RI
SC Chip A Programmer's Guide、Addison-Wesley Publi
shing Company Inc.参照。
【0004】図13は従来のプロセッサの比較命令、条
件付き加算命令、条件付き転送命令、および条件分岐命
令の命令仕様の第1の従来例を示す図である。
【0005】このプロセッサでは、各条件付き命令が1
0種類ずつ(図13では加算命令、転送命令、および分
岐命令のみを示している)存在し、命令ニモニックのオ
ペコードの末尾2文字が条件を指定している。
【0006】また、第1の従来例では、各条件付き命令
毎に10種類ずつ実装しなければならないので、指定で
きる条件を削減した条件付き命令を実装しているプロセ
ッサもある。例えば、日立シングルチップRISCマイコン
SH7000/SH7600シリーズプログラミングマニュアル、
(株)日立製作所参照。
【0007】図14は従来のプロセッサの比較命令、お
よび条件分岐命令の命令仕様の第2の従来例を示す図で
ある。
【0008】このプロセッサでは、比較命令で条件を指
定することにより、条件分岐命令は成立/非成立の2種
類存在している。
【0009】図15は第1、および第2の従来例より想
定できる第3の従来例であり、プロセッサの比較命令、
条件付き加算命令、条件付き転送命令、および条件分岐
命令の命令仕様を示す図である。
【0010】このプロセッサでは、第2の従来例の条件
分岐命令のように成立/非成立の2つの条件でのみ指定
する考えを第1の条件付き命令に適用したものである。
【0011】このプロセッサでは、比較命令で条件を指
定することにより、全ての条件付き命令は成立/非成立
の2種類ずつ存在している。
【0012】このように、分岐命令の代わりに条件付き
命令を使用するために、従来のプロセッサでは、条件付
き命令は複数の条件を指定するようにしていた。
【0013】
【発明が解決しようとする課題】しかしながら上記従来
技術によれば、各条件付き命令は10種類または2種類
ずつ存在し、命令割付けにおいて全条件付き命令に対し
て複数の条件を指定するフィールドが必要となる。例え
ば、条件付き命令が20命令あるプロセッサでは、上記
第1の従来例では、比較命令1種類、条件付き命令20
0種類(各条件付き命令10種類×20命令)の合計2
01命令、上記第3の従来例では、比較命令5種類、条
件付き命令40種類(各条件付き命令2種類×20命
令)の合計45命令もの多数の命令を命令セットに割り
付けるためのフィールドが必要となるので、コードサイ
ズが増加するという課題を有していた。
【0014】また各条件付き命令において、10種類ま
たは2種類もの複数の条件を判断する必要があるため
に、命令解読器のハードウェア量が増加するという課題
も有していた。
【0015】本発明はかかる課題に鑑み、条件付き命令
を実装する場合でも、複数の条件を指定する必要がな
く、コードサイズの増加を抑止し、かつ、命令解読器の
ハードウェア量の増加を抑止するプロセッサ、コンパイ
ラおよび命令列変換装置を提供することを目的とする。
【0016】
【課題を解決するための手段】この課題を解決するため
本発明のプロセッサは、指定された条件が成立したこと
を示す状態保持手段と、少なくとも、オペランドが第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の操作命令を前記特定条件に合
致した時のみ実行する条件成立時実行命令に変更すると
いう処理を施すことより、命令列を変換する条件成立時
実行命令適用命令列最適化手段とを備えることを特徴と
する。
【0017】これにより、コンパイラまたは命令列変換
装置は、条件付き命令として条件に合致した時のみ実行
する条件成立時実行命令のみを生成することになり、条
件付き命令の数を削減することが可能になる。
【0018】ここでプロセッサにおける前記条件成立時
実行命令は、前記演算フラグがセットされている時のみ
に分岐を行う命令、転送を行う命令、演算を行う命令で
あるとしてもよい。
【0019】さらに、コンパイラにおける前記条件成立
時実行命令適用中間コード最適化手段は、前記最適化対
象コード検出手段が抽出した前記比較コードを、または
前記条件付きコードの特定条件を判定する条件付き比較
コードに変更するとともに、前記第1の操作コードを特
定条件に合致した時のみ実行する条件成立時実行コード
に変更するという処理を施すことより、第1の中間コー
ドを第2の中間コードに変換してもよい。
【0020】その上、コンパイラにおける前記条件成立
時実行コードは、転送を行うコード、または演算を行う
コードとしてもよい。
【0021】また、命令列変換装置における前記条件成
立時実行命令適用命令最適化手段は、前記最適化対象命
令検出手段が抽出した前記比較命令を、前記条件付き命
令の特定条件を判定する条件付き比較命令に変更すると
ともに、前記第1の操作命令を特定条件に合致した時の
み実行する条件成立時実行命令に変更するという処理を
施すことより、第1の中間コードを第2の中間コードに
変換してもよい。
【0022】その上、命令列変換装置における前記条件
成立時実行命令は、転送を行う命令、または演算を行う
命令としてもよい。
【0023】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を用いて説明する。
【0024】図1は、本発明の実施の形態で生成する命
令列を実行するプロセッサのブロック構成図である。
【0025】このプロセッサは演算フラグ保持手段10
1、命令解読手段102、命令実行手段103、命令実
行停止手段104から構成されている。
【0026】演算フラグ保持手段101は、命令実行の
状態を演算フラグとして保持する。命令解読手段102
は、機械語命令を解読する。
【0027】命令実行手段103は、命令解読手段10
2から出力される命令実行手段制御信号に従って、命令
を実行する。
【0028】命令実行停止手段104は、演算フラグ保
持手段101が保持している命令実行状態を示す演算フ
ラグ状態信号111と、演算命令解読手段102が条件
付き命令を解読していることを示す条件付き命令指示信
号112を入力し、条件が成立していない場合には、命
令実行手段103に対して命令実行停止信号113を出
力し、命令実行を停止するように制御する。
【0029】図2は、本発明の実施の形態のコンパイラ
の概略構成図である。このコンパイラは中間コード生成
手段201、最適化対象コード検出手段202、条件成
立時実行命令適用最適化手段203、中間コード最適化
手段204、機械語命令生成手段205から構成されて
いる。プログラムから中間コードを生成する処理と、中
間コードを最適化し機械語命令を生成する処理は公知の
技術であるため省略し、本発明にかかわる最適化対象コ
ード検出手段202、および条件成立時実行命令適用最
適化手段203の処理に関して図3から図8を用いて説
明する。
【0030】(実施の形態1)図3は、本発明の第1の
実施の形態におけるコンパイラの条件成立時実行命令適
用最適化手段203と中間コード最適化手段204の動
作を記述したフローチャートである。
【0031】図4は、本発明の実施の形態の一例におけ
るプロセッサの比較命令、分岐命令、転送命令、および
加算命令の命令仕様である。
【0032】図5は、図3で示したフローチャートのc
ソースコード211に相当するC言語で記述されたプロ
グラムである。図5のプログラムはaとbの比較を行
い、等しければcに1を代入し、そうでなければcに0
を代入し、関数fを呼び出す。
【0033】図6は、図3で示したフローチャートの第
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に関数呼び出しを
行うものである。
【0034】図7は、図3で示したフローチャートの第
2の中間コード213に相当するコードである。図7に
おいて「a cmpeq b」は条件付き比較コードであり、a
とbの比較を行い、比較結果が等しければ演算フラグを
セットし、等しくなければ演算フラグをクリアする。
「c=:true 1」は条件成立時実行コードで、比較コード
で設定した条件が成立している(フラグがセットされて
いる)場合にのみ、即値1をcに転送する。
【0035】以下、図3のフローチャートの動作を順を
追って説明する。 (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の中間コードが生成
される。
【0036】図8は、図3で示したフローチャートの機
械語命令215に相当する。「cmpeq r0,r1」は条件付
き比較命令であり、レジスタr0とr1の内容を比較
し、比較結果が等しければ演算フラグをセットし、等し
くなければ演算フラグをクリアする。「mov 0,r2」は転
送命令で、レジスタr2に即値0を転送する。「movt
1,r2」は条件成立時条件転送命令で、比較命令で設定し
た条件が成立している(フラグがセットされている)場
合にのみ、レジスタr2に即値1を転送する。
【0037】(実施の形態2)図9は、本発明の第2の
実施の形態におけるコンパイラの条件成立時実行命令適
用最適化手段203と中間コード最適化手段204の動
作を記述したフローチャートである。
【0038】コンパイラが生成する命令列を実行するプ
ロセッサの命令仕様は、図4と同様なものとする。
【0039】図10は、図9で示したフローチャートに
図5のプログラムを入力した時の第1の中間コード21
2に相当するコードである。図10において「c=:eq
1」は条件成立時実行転送コードで、比較コードで設定
した条件が成立している(フラグがセットされている)
場合にのみ、即値1をcに転送する。
【0040】図10の第1の中間コード212を図9に
示すフローチャートに従う処理を行った後の第2の中間
コード213は図7と同様になり、実施の形態1と同
様、機械語命令215は図8の命令列となる。
【0041】以下、図9のフローチャートの動作を順を
追って説明する。 (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の中間コードが生成
される。
【0042】(実施の形態3)図11は、本発明の第3
の実施の形態におけるコンパイラの条件成立時実行命令
適用最適化手段203と中間コード最適化手段204の
動作を記述したフローチャートである。
【0043】コンパイラが生成する命令列を実行するプ
ロセッサの命令仕様は、図4と同様なものとする。
【0044】図12は、図11で示したフローチャート
に図5のプログラムを入力した時の第1の中間コード2
12に相当するコードである。図12において「c=:ne
0」は条件成立時実行転送コードで、比較コードで設定
した条件が非成立している(フラグがクリアされてい
る)場合にのみ、即値0をcに転送する。
【0045】図12の第1の中間コード212を図11
に示すフローチャートに従う処理を行った後の第2の中
間コード213は図7と同様になり、実施の形態1と同
様、機械語命令215は図8の命令列となる。
【0046】以下、図11のフローチャートの動作を順
を追って説明する。 (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の中間コードが生成
される。
【0047】以上、本発明に係るプロセッサ、およびコ
ンパイラについて、実施の形態に基づいて説明したが、
本発明はこれら実施の形態に限られないことは勿論であ
る。
【0048】即ち、 (1)コンパイラで扱う中間コードを条件付き転送コー
ドを用いた中間コードに変換する最適化処理を命令列を
命令列に変換する命令列変換装置で行っても同様の効果
が得られる。 (2)転送命令の転送値は定数に限らず、レジスタの値
も同様に転送できる。 (3)条件付き命令は転送命令に限らず、算術演算命令
や論理演算命令であってもよい。
【0049】
【発明の効果】以上の説明から明らかなように、本発明
のプロセッサは、指定された条件が成立したことを示す
状態保持手段と、少なくとも、オペランドが第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の操作命令を特定条件に合致した時のみ実行する
条件成立時実行命令に変更するという処理を施すことよ
り、命令列を変換する条件成立時実行命令適用命令列最
適化手段とを備えることを特徴とする。
【0050】これにより、コンパイラまたは命令列変換
装置は、条件付き命令として条件に合致した時のみ実行
する条件成立時実行命令のみを生成することになり、条
件付き命令の数を削減することが可能になる。従って、
全条件付き命令に対して1つの条件を指定するフィール
ドが必要となるだけなので、コードサイズの増加を抑制
できる。例えば、条件付き命令が20命令あるプロセッ
サでは、比較命令10種類、条件付き命令20種類(各
条件付き命令1種類×20命令)の合計30命令を命令
セットに割り付けるだけでよいので、割り付けるための
フィールドが少なくて済むことになり、コードサイズを
削減できる。
【0051】またプロセッサは、条件付き命令として条
件に合致した時のみ実行する条件成立時実行命令のみを
解読するだけで良く、命令解読器のハードウェア量が増
大せずに低コストで実現できるという効果がある。
【0052】以上のように本発明の技術の実用的価値は
大きい。
【図面の簡単な説明】
【図1】本発明の実施の形態で生成する命令列を実行す
るプロセッサのブロック構成図
【図2】同実施形態におけるコンパイラの概略構成図
【図3】本発明の第1の実施形態におけるコンパイラ動
作を記述したフローチャート
【図4】本発明の実施形態における比較命令、分岐命
令、転送命令、および加算命令の命令仕様を示す図
【図5】同実施形態のフローチャートにおけるcソース
コード211に相当するC言語で記述されたプログラム
を示す図
【図6】同実施形態のフローチャートにおける第1の中
間コード212に相当するコードを示す図
【図7】同実施形態のフローチャートにおける第2の中
間コード213に相当するコードを示す図
【図8】同実施形態のフローチャートにおける機械語命
令215を示す図
【図9】本発明の第2の実施形態におけるコンパイラ動
作を記述したフローチャート
【図10】同実施形態のフローチャートにおける第1の
中間コード212に相当するコードを示す図
【図11】本発明の第3の実施形態におけるコンパイラ
動作を記述したフローチャート
【図12】同実施形態のフローチャートにおける第1の
中間コード212に相当するコードを示す図
【図13】従来のプロセッサの比較命令、条件付き加算
命令、条件付き転送命令、および条件分岐命令の命令仕
様の第1の従来例を示す図
【図14】従来のプロセッサの比較命令、および条件分
岐命令の命令仕様の第2の従来例を示す図
【図15】第1、および第2の従来例より想定できるプ
ロセッサの比較命令、条件付き加算命令、条件付き転送
命令、および条件分岐命令の命令仕様の第3の従来例を
示す図
【符号の説明】
101 演算フラグ保持手段 102 命令解読手段 103 命令実行手段 104 命令実行停止手段 111 演算フラグ状態信号 112 条件付き命令指示信号 113 命令実行停止信号 201 中間コード生成手段 202 最適化対象コード検出手段 203 条件成立時実行命令適用最適化手段 204 中間コード最適化手段 205 機械語命令生成手段 211 Cソースコード 212 第1の中間コード 213 第2の中間コード 214 第3の中間コード 215 機械語命令
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G06F 9/45 G06F 9/44 322F (72)発明者 小谷 謙介 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 瓶子 岳人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 指定された条件が成立したことを示す状
    態保持手段と、 少なくとも、 オペランドが第1の条件を満たすことを検証する第1の
    命令と、 オペランドが前記第1の条件と排他な関係にある第2の
    条件を満たすことを検証する前記第1の命令と異なる第
    2の命令と、 前記状態保持手段が、条件が成立したことを示している
    ときのみに指定された操作を実行する条件成立時実行命
    令とを含む機械語命令を解読する命令解読手段と、 前記命令解読手段に従って命令を実行する命令実行手段
    とを備え、 前記命令解読手段は前記第1の命令を解読すると、 オペランドを検証し、該オペランドが該命令中に指定さ
    れた第1の条件を満たせば、前記状態保持手段に該条件
    が成立したことを示させ、 前記第2の命令を解読すると、 オペランドを検証し、該オペランドが該命令中に指定さ
    れた第2の条件を満たせば、前記状態保持手段に該条件
    が成立したことを示させ、 前記条件成立時実行命令を解読すると、 前記状態保持手段を吟味し、条件が成立したことを示し
    ていなければ、前記命令実行手段に対して該命令中に指
    定された操作を停止するように制御することを特徴とす
    るプロセッサ。
  2. 【請求項2】 前記条件成立時実行命令は、前記演算フ
    ラグがセットされている時のみに分岐を行う命令である
    ことを特徴とする請求項1記載のプロセッサ。
  3. 【請求項3】 前記条件成立時実行命令は、前記演算フ
    ラグがセットされている時のみに転送を行う命令である
    ことを特徴とする請求項1記載のプロセッサ。
  4. 【請求項4】 前記条件成立時実行命令は、前記演算フ
    ラグがセットされている時のみに演算を行う命令である
    ことを特徴とする請求項1記載のプロセッサ。
  5. 【請求項5】 高級言語プログラムを第1の中間コード
    列に変換する中間コード生成手段と、 前記第1の中間コード列から、命令実行状態を判定する
    比較コードと、特定の資源に対して2つの操作を行う第
    1、および第2の操作コードと、前記比較コードが判定
    した命令実行状態が特定条件に合致する時に第1の操作
    コードを実行させ、合致しない時に第2の操作コードを
    実行させる条件付きコードとを抽出する最適化対象コー
    ド検出手段と、 前記最適化対象コード検出手段が抽出した前記比較コー
    ドを、前記条件付きコードの前記特定条件を判定する条
    件付き比較コードに変更し、前記条件付きコードを削除
    するとともに、前記第1の操作コードを前記第2の操作
    コードの後続に配置し、前記第1の操作コードを前記特
    定条件に合致した時のみ実行する条件成立時実行コード
    に変更するという処理を施すことより、第1の中間コー
    ドを第2の中間コードに変換する条件成立時実行命令適
    用中間コード最適化手段と、 前記第2の中間コードを機械語命令に変換する機械語命
    令生成手段とを備えることを特徴とするコンパイラ。
  6. 【請求項6】 前記条件成立時実行命令適用中間コード
    最適化手段は、前記最適化対象コード検出手段が抽出し
    た前記比較コードを、前記条件付きコードの特定条件を
    判定する条件付き比較コードに変更するとともに、前記
    第1の操作コードを特定条件に合致した時のみ実行する
    条件成立時実行コードに変更するという処理を施すこと
    より、第1の中間コードを第2の中間コードに変換する
    ことを特徴とする請求項5記載のコンパイラ。
  7. 【請求項7】 前記条件成立時実行コードは、転送を行
    うコードであることを特徴とする請求項5または6記載
    のコンパイラ。
  8. 【請求項8】 前記条件成立時実行コードは、演算を行
    うコードであることを特徴とする請求項5または6記載
    のコンパイラ。
  9. 【請求項9】 命令列から、命令実行状態を判定する比
    較命令と、特定の資源に対して2つの操作を行う第1、
    および第2の操作命令と、前記比較命令が判定した命令
    実行状態が特定条件に合致する時に第1の操作命令を実
    行させ、合致しない時に第2の操作命令を実行させる条
    件付き命令とを抽出する最適化対象命令検出手段と、 前記最適化対象命令検出手段が抽出した前記比較命令
    を、前記条件付き命令の前記特定条件を判定する条件付
    き比較命令に変更し、前記条件付き命令を削除するとと
    もに、前記第1の操作命令を前記第2の操作命令の後続
    に配置し、前記第1の操作命令を前記特定条件に合致し
    た時のみ実行する条件成立時実行命令に変更するという
    処理を施すことより、命令列を変換する条件成立時実行
    命令適用命令列最適化手段とを備えることを特徴とする
    命令列変換装置。
  10. 【請求項10】 前記条件成立時実行命令適用命令最適
    化手段は、前記最適化対象命令検出手段が抽出した前記
    比較命令を、前記条件付き命令の特定条件を判定する条
    件付き比較命令に変更するとともに、前記第1の操作命
    令を特定条件に合致した時のみ実行する条件成立時実行
    命令に変更するという処理を施すことより、第1の中間
    コードを第2の中間コードに変換することを特徴とする
    請求項9記載の命令列変換装置。
  11. 【請求項11】 前記条件成立時実行命令は、転送を行
    う命令であることを特徴とする請求項9または10記載
    の命令列変換装置。
  12. 【請求項12】 前記条件成立時実行命令は、演算を行
    う命令であることを特徴とする請求項9または10記載
    の命令列変換装置。
JP09564598A 1997-08-29 1998-04-08 プロセッサ、コンパイラ及び命令列変換装置 Expired - Fee Related JP3843594B2 (ja)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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