JPH1049368A - 条件実行命令を有するマイクロプロセッサ - Google Patents

条件実行命令を有するマイクロプロセッサ

Info

Publication number
JPH1049368A
JPH1049368A JP8200847A JP20084796A JPH1049368A JP H1049368 A JPH1049368 A JP H1049368A JP 8200847 A JP8200847 A JP 8200847A JP 20084796 A JP20084796 A JP 20084796A JP H1049368 A JPH1049368 A JP H1049368A
Authority
JP
Japan
Prior art keywords
instruction
execution
condition
field
register
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
Application number
JP8200847A
Other languages
English (en)
Inventor
Akira Yamada
朗 山田
Toyohiko Yoshida
豊彦 吉田
Tooru Kengaku
徹 見学
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8200847A priority Critical patent/JPH1049368A/ja
Priority to US08/783,445 priority patent/US5996070A/en
Priority to GB9704818A priority patent/GB2315890B/en
Publication of JPH1049368A publication Critical patent/JPH1049368A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

Abstract

(57)【要約】 【課題】 命令フォーマット中の実行条件フィールドの
ビット数が多い。 【解決手段】 命令における実行条件フィールドは、命
令を実行することを示す汎用フラグの条件がエンコード
された値を有する。命令デコードユニット2は、実行条
件フィールド105の値をデコードする実行条件デコー
ド部401と、実行条件デコード部401のデコード結
果と汎用フラグによる条件とが合致しているか否か判定
し、合致していた場合に命令を実行することに決定する
実行条件判定部402とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、命令の一部に含
まれる実行条件フィールドを用いて命令の実行を制御す
る条件実行命令を有するマイクロプロセッサに関するも
のである。
【0002】
【従来の技術】マイクロプロセッサにおけるパイプライ
ン実行の分岐のペナルティを低減してマイクロプロセッ
サの性能を向上させるために、条件実行や投機実行など
の手法がある。図16は例えばVLSIテクノロジー社
の「ARM(ACORN RISC MACHINE)ファミリーデータマ
ニュアル(1990年)」、2−29頁に示された従来
のRISCマイクロプロセッサの命令フォーマットの一
例を示す説明図である。図に示すように、このマイクロ
プロセッサにおける条件実行命令は、4ビットの実行条
件フィールドを有する。マイクロプロセッサのネガテイ
ブフラグ(N)、ゼロフラグ(Z)、キャリーフラグ
(C)およびオーバフローフラグ(V)の各状態と実行
条件フィールドの一致/不一致に応じて、命令が実行さ
れるか否か決定される。
【0003】しかし、条件実行の判定に用いられる各フ
ラグは、特定の命令によってのみ設定される専用フラグ
である。そのために、このようなマイクロプロセッサに
おいては、条件実行の範囲が制限される。
【0004】図17は特開平7−182165号公報に
示された従来の他のマイクロプロセッサの命令フォーマ
ット300を示す説明図である。図において、301は
実行条件が設定される実行条件フィールド、302は操
作部分である演算フィールドである。実行条件フィール
ド301において、303,304はマイクロプロセッ
サの内部のフラグ#0に関連するCv0ビット、Cd0ビッ
ト、305,306はマイクロプロセッサの内部のフラ
グ#1に関連するCv1ビット、Cd1ビット、307,3
08はマイクロプロセッサの内部のフラグ#2に関連す
るCv2ビット、Cd2ビットである。
【0005】図18はCv ビットおよびCd ビットとそ
れらが表す意味との関係を示す説明図である。図18に
おいて、Cv ビットは、Cv0ビット303、Cv1ビット
305およびCv2ビット307を代表している。Cd ビ
ットは、Cd0ビット304、Cd1ビット306およびC
d2ビット308を代表している。図18に示すように、
実行条件フィールド301におけるCv0ビット303お
よびCd0ビット304がともに「1」に設定されている
場合には、フラグ#0が真の状態にあるときに命令が実
行されうる条件が成立する。Cv0ビット303が「1」
に設定されていてCd0ビット304が「0」に設定され
ている場合には、フラグ#0が偽の状態にあるときに命
令が実行されうる条件が成立する。Cv0ビット303が
「0」に設定されている場合には、フラグ#0の状態が
いずれであっても命令が実行されうる条件が成立する。
【0006】Cv1ビット305およびCd1ビット306
とフラグ#1とについても、図18に示された関係によ
って、命令が実行されうる条件が成立しているかどうか
判断される。Cv2ビット307およびCd2ビット308
とフラグ#2とについても、図18に示された関係によ
って、命令が実行されうる条件が成立しているかどうか
判断される。なお、Cv ビットの値に応じて、真または
偽の判断がなされるのか、それとも判断がなされないか
が決まるので、Cv ビットは、条件の有効性を判断する
ためのビットである。また、Cd ビットの値に応じて、
真であるか偽であるかの判断がなされるので、Cd ビッ
トは、値が判断されるビットである。
【0007】次に動作について説明する。マイクロプロ
セッサは、命令フォーマット300における実行条件フ
ィールド301の設定状態に応じて、演算フィールド3
02が示す命令を実行するかどうか制御する。例えば、
実行条件フィールド301の設定値が「111111」
であった場合には、マイクロプロセッサは、フラグ#
0,#1,#2が全て真であったときに、演算フィール
ド302が示す命令を実行する。
【0008】フラグ#0,#1,#2がそれぞれ1ビッ
トで表されているときには、例えば、真は「1」に対応
し、偽は「0」に対応する。特開平7−182165号
公報に示されたマイクロプロセッサでは、フラグ#0,
#1,#2をそれぞれ2ビットで表し、真、偽および未
定の3状態を表現する。例えば、フラグ#0,#1,#
2中に状態が未定のものがあった場合には、その他の条
件が成立していれば、演算フィールド302が示す命令
が実行される。そして、実行結果が、一般のレジスタフ
ァイルとは異なるシャドウレジスタファイルに書き込ま
れる。全ての条件が成立した場合には、その時点で、シ
ャドウレジスタファイルの内容がレジスタファイルに書
き込まれる。このようにして、投機実行が実現されてい
る。また、特開平7−182165号公報には、条件数
を増やすために、フラグ数がm個(m>3)の場合も示
されている。
【0009】
【発明が解決しようとする課題】従来の条件実行命令を
有するマイクロプロセッサは以上のように構成されてい
るので、条件実行の範囲は拡大されるものの、例えば3
つのフラグに対して6ビットの実行条件フィールド30
1が必要とされる。よって、命令フォーマット300中
の実行条件フィールド301のビット数が多いという課
題があった。
【0010】この発明は上記のような課題を解決するた
めになされたもので、条件数に対する実行条件フィール
ドのビット数を低減できる条件実行命令を有するマイク
ロプロセッサを得ることを目的とする。なお、特開平2
−22873号公報には、分岐命令やジャンプ命令を行
うか否か判断するための条件のエンコード値がレジスタ
に設定され、分岐命令やジャンプ命令を行うか否か判断
するための値としてデコード値がレジスタから出力され
るものが開示されている。しかし、特開平2−2287
3号公報には、命令中の実行条件フィールドの構成に関
して何等言及されていない。
【0011】
【課題を解決するための手段】請求項1記載の発明に係
る条件実行命令を有するマイクロプロセッサは、命令に
おける実行条件フィールドが、命令を実行することを示
す汎用フラグの条件がエンコードされた値を有するもの
であり、命令デコーダが、実行条件フィールドの値をデ
コードする実行条件デコード部と、実行条件デコード部
のデコード結果と汎用フラグによる条件とが合致してい
るか否か判定し合致していた場合に命令を実行すること
に決定する実行条件判定部とを備えたものである。
【0012】請求項2記載の発明に係る条件実行命令を
有するマイクロプロセッサは、実行条件フィールドが、
条件実行の判定に用いられる汎用フラグの全ての組み合
わせを表現するビット数よりも少ないビット長を有し、
実行条件デコード部が、そのようなビット長のエンコー
ド値をデコードする構成になっているものである。
【0013】請求項3記載の発明に係る条件実行命令を
有するマイクロプロセッサは、実行条件フィールドが、
命令を実行することを示す汎用フラグの条件が設定され
た汎用レジスタ中のレジスタを指定する値を有するもの
であり、命令デコーダが、実行条件フィールドで指定さ
れたレジスタを参照するレジスタ参照部と、レジスタ参
照部が参照したレジスタに設定されている条件と汎用フ
ラグによる条件とが合致しているか否か判定し合致して
いた場合に命令を実行することに決定する実行条件判定
部とを備えたものである。
【0014】請求項4記載の発明に係る条件実行命令を
有するマイクロプロセッサは、命令実行部が、複数の演
算回路を有し、命令デコーダが、実行条件フィールド、
命令選択条件フィールドおよび複数の演算フィールドを
含む命令をデコードする構成であって、さらに、命令選
択条件フィールドの設定値に応じて複数の演算フィール
ドによる操作を行うか否か定める実行制御部を有する構
成になっているものである。
【0015】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の一形態によるマ
イクロプロセッサの構成を示すブロック図である。この
マイクロプロセッサは、32ビットの内部データバスを
有する32ビットマイクロプロセッサである。図におい
て、2は命令RAM6から64ビット幅のIDバスを介
して入力した命令コードをデコードする処理を行う命令
デコードユニット(命令デコーダ)、3はアドレス計算
を行うメモリユニット(命令実行部)、4は論理演算や
シフト演算を行う整数演算ユニット(命令実行部)、5
は32ビット×64ワードの汎用レジスタ、7はデータ
が格納されるデータRAMである。
【0016】命令デコードユニット2において、8,9
はそれぞれ命令コードをデコードするデコーダ、10は
プロセッサの状態を示すプロセッサ状態語(Processor
Status Word ;以下、プロセッサ状態語をPSWとい
う)である。命令デコードユニット2は、さらに、デコ
ーダ8のデコード結果とPSW10の内容にもとづいて
制御信号11を作成し、それをメモリユニット3に与え
る。また、命令デコードユニット2は、デコーダ9のデ
コード結果とPSW10の内容にもとづいて制御信号1
2を作成し、それを整数演算ユニット4に与える。
【0017】メモリユニット3において、13はジャン
プや分岐を含まない命令を実行するとPC(プログラム
カウンタ)値に8を加えて次に実行する命令に対するP
C値を算出するとともに、ジャンプや分岐を含む命令の
実行時に分岐変位をPC値に加算したり、演算で指定さ
れたアドレッシングモードに応じた計算を行ってジャン
プ先の命令に対するPC値を計算するPC制御部であ
る。また、PC制御部13は、計算したPC値を32ビ
ット幅のIAバスを介して命令RAM6に送り、命令R
AM6から命令コードを出力させる。14はオペランド
となるデータのアクセスを制御するメモリ制御部であ
る。メモリ制御部14は、32ビット幅のDAバスを介
してアドレスデータをデータRAM7に転送し命令実行
に必要なデータを64ビット幅のDDバスを介してアク
セスする。15は汎用レジスタ5から32ビット幅のS
1バス、S2バス、S3バスを介して転送された最大3
ワードのデータを用いて算術論理演算を行い演算結果を
32ビット幅のD1バスを介して汎用レジスタ5に転送
するALU、16は汎用レジスタ5からS1バス、S2
バス、S3バスを介して転送されたデータを用いてシフ
ト演算を行い演算結果をD1バスを介して汎用レジスタ
5に転送するシフタである。
【0018】メモリユニット3に対して、S1バス、S
2バス、S3バス、S4バスを介して、32ビット長の
データを一時に4ワード転送することが可能である。従
って、例えば、第1のレジスタの内容と第2のレジスタ
の内容との和でアドレッシングされるメモリの領域に第
3のレジスタの内容をストアするとともに、第3のレジ
スタの内容をストアしたアドレスに所定値を加算して得
られる値でアドレッシングされるメモリの領域に第4の
レジスタの内容をストアする2ワードストア命令を実現
することができる。また、メモリユニット3は、D1バ
スおよびD2バスを介して、メモリユニット3内での2
ワードの演算結果またはデータRAM7から転送された
2ワードのデータを汎用レジスタ5に転送することがで
きる。
【0019】整数演算ユニット4において、17は汎用
レジスタ5から32ビット幅のS4バス、S5バス、S
6バスを介して転送された最大3ワードのデータを用い
て乗算を行い演算結果を32ビット幅のD2バス、D3
バスを介して汎用レジスタ5に転送する乗算器、18は
乗算の結果を累積加算または累積減算して保持するアキ
ュムレータである。アキュムレータとして、64ビット
のものが2本ある。19は汎用レジスタ5からS4バ
ス、S5バス、S6バスを介して転送された最大3ワー
ドのデータを用いて算術論理演算を行い演算結果をD2
バス、D3バスを介して汎用レジスタ5に転送するAL
U、20は汎用レジスタ5からS4バス、S5バス、S
6バスを介して転送されたデータを用いてシフト演算を
行い演算結果をD2バス、D3バスを介して汎用レジス
タ5に転送するシフタである。
【0020】このマイクロプロセッサでは、汎用レジス
タ5から、最大6種類のレジスタ値を読み出すことが可
能であって、読み出されたデータは、それぞれ、S1バ
ス、S2バス、S3バス、S4バス、S5バス、S6バ
スに出力される。また、汎用レジスタ5には、D1バ
ス、D2バス、D3バスを介して最大3種類のレジスタ
値を同時に書き込むことが可能である。
【0021】図2はこのマイクロプロセッサの命令フォ
ーマットを示す説明図である。命令フォーマットとし
て、(a)に示すような1つの命令コードで2つの演算
(operation)を指示する2演算命令のフォーマット1
01と、(b)に示すような1つの命令コードで1つの
演算を指示する1演算命令のフォーマット102とがあ
る。2演算命令のフォーマット101には、フィールド
103およびフィールド104からなるフォーマットフ
ィールドと、2つの演算フィールド106,107と、
各演算フィールド106,107に付属する各実行条件
フィールド105とがある。1演算命令のフォーマット
102には、フィールド103およびフィールド104
からなるフォーマットフィールドと、フィールド10
8,109,110からなる演算フィールドと、演算フ
ィールドに付属する実行条件フィールド105とがあ
る。
【0022】フォーマットフィールドは、以下のような
意味を示す。 コード:フォーマット 実行の順番 operation_0 operation_1 FM=00:2命令 第1 第1 01:2命令 第1 第2 10:2命令 第2 第1 11:1命令 第1 …… ここで、FMは、フィールド103およびフィールド1
04からなる2ビットの値である。
【0023】FM=00の場合、この命令は2演算命令
であることを示す。そして、演算フィールド106で指
示されたoperation_0の演算と演算フィールド107で
指示されたoperation_1の演算とが、デコード直後のク
ロックサイクルで並列に実行される。operation_0の演
算はメモリユニット3で実行され、operation_1の演算
は整数演算ユニット4で実行される。FM=01の場
合、この命令は2演算命令であることを示す。そして、
operation_0の演算が、デコード直後のクロックサイク
ルで実行され、operation_1の演算が、operation_0の
演算に対して、1クロックサイクル遅れて実行される。
FM=10の場合、この命令は2演算命令であることを
示す。そして、operation_1の演算が、デコード直後の
クロックサイクルで実行され、operation_0の演算が、
operation_1の演算に対して、1クロックサイクル遅れ
て実行される。FM=11の場合、この命令は1演算命
令であることを示す。そして、フィールド108,10
9,110からなる演算フィールドで指示された1つの
演算がデコード直後のクロックサイクルで実行される。
【0024】実行条件フィールド105は、以下のよう
な意味を持つ。
【0025】実行条件フィールド105は、マイクロプ
ロセッサの実行コントロールフラグF0,F1の値に応
じて、演算フィールド106,107のoperation_0の
演算やoperation_1の演算、およびフィールド108,
109,110で構成される演算フィールドの演算が有
効であるか無効であるか定める。実行コントロールフラ
グF0,F1については後で説明する。演算が有効であ
るとは、演算結果がレジスタ、メモリおよびフラグに反
映され、その演算による動作の結果が残ることを意味す
る。演算が無効であるとは、演算結果がレジスタ、メモ
リおよびフラグに反映されず、あたかも無効演算(NO
P)が実行されたかのような動作の結果が残ることを意
味する。
【0026】実行条件フィールド105の値CC=00
0のときには、実行コントロールフラグF0,F1の値
にかかわらず常に演算は有効である。CC=001のと
きには、実行コントロールフラグF0=真のときにのみ
演算は有効である。実行コントロールフラグF1の状態
はいずれでもよい。CC=010のときには、実行コン
トロールフラグF0=偽のときにのみ演算は有効であ
る。実行コントロールフラグF1の状態はいずれでもよ
い。CC=011のときには、実行コントロールフラグ
F1=真のときにのみ演算は有効である。実行コントロ
ールフラグF0の状態はいずれでもよい。CC=100
のときには、実行コントロールフラグF1=偽のときに
のみ演算は有効である。実行コントロールフラグF0の
状態はいずれでもよい。CC=101のときには、実行
コントロールフラグF0=真かつF1=真のときにのみ
演算は有効である。CC=110のときには、実行コン
トロールフラグF0=真かつF1=偽のときにのみ演算
は有効である。CC=111のときの動作は未定義であ
り、ユーザは、CC=111となる命令を用いることは
できない。
【0027】図3は演算フィールドの詳細な内容を示す
説明図である。フォーマット111〜117は、それぞ
れ28ビットで表現される短型の演算フィールド106
または演算フィールド107によるものである。フォー
マット118,119は、フィールド108,109,
110で構成される長型の演算フィールドによるもので
ある。
【0028】フォーマット111(Short_M)
は、演算内容を指定するフィールド120、レジスタ番
号を指定する2つのフィールド121,122、レジス
タ番号または6ビット長の即値を指定するフィールド1
23、およびフィールド123がレジスタ番号を示すの
か即値を示すのかを指定するフィールド124で構成さ
れる。図3に示すように、フィールド124の値Xが
「00」、「01」または「11」であるときにはフィ
ールド123がレジスタ番号を示していることを示し、
「10」であるときには即値を示していることを示す。
このフォーマット111は、レジスタ間接アドレッシン
グのメモリアクセス演算に用いられる。
【0029】フォーマット112(Short_A)
は、演算内容を指定するフィールド120、レジスタ番
号を指定する2つのフィールド121,122、レジス
タ番号または6ビット長の即値を指定するフィールド1
23、およびフィールド123がレジスタ番号を示すの
か即値を示すのかを指定するフィールド125で構成さ
れる。図3に示すように、フィールド125の値X’が
「0」であるときにはフィールド123がレジスタ番号
を示していることを示し、「1」であるときには即値を
示していることを示す。このフォーマット112は、算
術演算、論理演算、シフト演算およびビット演算に用い
られる。
【0030】フォーマット113(Short_B1)
は、演算内容を指定するフィールド120およびレジス
タ番号を指定するフィールド126で構成される。この
フォーマット113は、レジスタ指定によるジャンプ命
令および分岐命令に用いられる。フォーマット114
(Short_B2)は、演算内容を指定するフィール
ド120および18ビット長のディスプレイスメントの
フィールド127で構成される。このフォーマット11
4は、ジャンプ命令および分岐命令に用いられる。
【0031】フォーマット115(Short_B3)
は、演算内容を指定するフィールド120、レジスタ番
号を指定するフィールド121、レジスタ番号または1
2ビット長の即値を指定するフィールド128、フィー
ルド128がレジスタ番号を示すのか即値を示すのかを
指定するフィールド129、およびゼロ判定にもとづい
てフィールド121にもとづく条件ジャンプまたは条件
分岐を行うか否か指定するフィールド130で構成され
る。このフォーマット115は、条件ジャンプ命令およ
び条件分岐命令に使用される。
【0032】フォーマット116(Short_D1)
は、演算内容を指定するフィールド120、レジスタ番
号を指定するフィールド121、レジスタ番号または1
2ビット長の即値を指定するフィールド128、フィー
ルド128がレジスタ番号を示すのか即値を示すのかを
指定するフィールド129で構成される。このフォーマ
ット116は、条件ジャンプ命令、条件分岐命令および
リピート命令に使用される。フォーマット117(Sh
ort_D2)は、演算内容を指定するフィールド12
0、レジスタ番号または12ビット長の即値を指定する
フィールド128、フィールド128がレジスタ番号を
示すのか即値を示すのかを指定するフィールド129、
遅延命令(ディレイド命令)に関するフィールド131
で構成される。このフォーマット117は、ディレイド
ジャンプ命令、ディレイド分岐命令およびリピート命令
に使用される。
【0033】フォーマット118(Long1)は、演
算内容を指定するフィールド120、レジスタ番号を指
定する2つのフィールド121,122、32ビット長
の即値を指定するフィールド132で構成される。この
フォーマット118は、複雑な算術演算、大きな即値を
用いる算術演算、大きなディスプレイスメント付きレジ
スタ間接アドレッシングのメモリアクセス演算、大きな
変位の分岐演算および絶対番地へのジャンプ命令などに
使用される。フォーマット119(Long2)は、演
算内容を指定するフィールド120、レジスタ番号を指
定する2つのフィールド121,122、32ビット長
の即値を指定するフィールド132、およびゼロ判定に
もとづいてフィールド132にもとづく条件ジャンプま
たは条件分岐を行うか否か指定するフィールド133で
構成される。このフォーマット119は、大きな分岐変
位を持つ条件ジャンプや条件分岐命令に使用される。
【0034】図4はマイクロプロセッサのレジスタ構成
を示す説明図である。このマイクロプロセッサは、図4
(a)に示すような64本の32ビット長の汎用レジス
タ5、図4(b)に示すような12本の制御レジスタ1
50、および図4(c)に示すような2本のアキュムレ
ータ18を持つ。R0の汎用レジスタ140の内容は常
に0であり、そこへの書き込みは無視される。R62の
汎用レジスタは、サブルーチンからの戻り先アドレスが
設定されるリンクレジスタである。R63の汎用レジス
タは、スタックポインタであり、PSW10のSMフィ
ールドの値に応じてユーザスタックポインタ(SPU)
または割り込みスタックポインタ(SPI)として動作
する。制御レジスタ150には、プログラムカウンタ1
51、PSW10、および各種の専用レジスタが含まれ
る。図3に示すフォーマット112による演算では、6
4本の汎用レジスタ5のそれぞれを上位16ビットと下
位16ビットとに分けてアクセスできる。また、2本の
アキュムレータ18を、上位32ビットと下位32ビッ
トとに分けて別々にアクセスできる。
【0035】図5はPSW10の詳細内容を示す説明図
である。PSW10の上位16ビットには、スタックポ
インタを切り替えるためのSMフィールド171、セル
フデバッグトラップ(SDBT)の検出を示すEAフィ
ールド172、SDBTの許可を指定するDBフィール
ド173、割り込み許可を指定するIEフィールド17
4、リピート動作の許可を指定するRPフィールド17
5、モジュロアドレッシングの許可を指定するMDフィ
ールド176がある。下位16ビットはフラグフィール
ド180である。フラグフィールド180には8個のフ
ラグがあり、その中のF0フラグ181およびF1フラ
グ182は演算の有効/無効を指定する。各フラグの値
は比較演算や算術演算の結果に応じて変化する。また、
フラグ初期化演算で初期化したり、フラグ値書き込み演
算で任意の値をフラグフィールド180に書き込むこと
によって変化する。フラグフィールド180の内容は、
フラグ値読み出し演算によって読み出される。
【0036】各フラグは、以下のような意味を有する。 SM=0 :スタックモード0→SPIを使用 SM=1 :スタックモード1→SPUを使用 EA=0 :SDBTを未検出 EA=1 :SDBTを検出 DB=0 :SDBTを非許可 DB=1 :SDBTを許可 IE=0 :割り込み非許可 IE=1 :割り込み許可 RP=0 :リピートブロック無効 RP=1 :リピートブロック有効 MD=0 :モジュロアドレッシング無効 MD=1 :モジュロアドレッシング有効 F0 :汎用フラグ(実行コントロールフラグ) F1 :汎用フラグ(実行コントロールフラグ) F2 :汎用フラグ F3 :汎用フラグ F4(S) :飽和演算フラグ F5(V) :オーバーフローフラグ F6(VA):累積オーバーフローフラグ F7(C) :キャリー/ボローフラグ
【0037】以下、このマイクロプロセッサの命令一覧
を示す。 A.マイクロプロセッサ機能に関する命令 A−1.ロード/ストア命令 LDB :Load one byte to a register with sign extension [1バイトロード(符号拡張あり)] LDBU :Load one byte to a register with zero extension [1バイトロード(ゼロ拡張あり)] LDH :Load one half-word to a register with sign extension [1ハーフワードロード(符号拡張あり)] LDHH :Load one half-word to a register high [1ハーフワードロード(レジスタ上位へ)] LDHU :Load one half-word to a register with zero extension [1ハーフワードロード(ゼロ拡張あり)] LDW :Load one word to a register [1ワードロード] LD2W :Load two words to registers [2ワードロード] LD4BH :Load four bytes to four half-words in two registers with sign extension [4バイトロード(2レジスタへ、符号拡張あり)] LD4BHU :Load four bytes to four half-words in two registers with zero extension [4バイトロード(2レジスタへ、ゼロ拡張あり)] LD2H :Load two half-words to two words in two registers with sign extension [2ハーフワードロード(2レジスタへ、符号拡張あり)] STB :Store one byte from a register [1バイトストア] STH :Store one half-word from a register [1ハーフワードストア] STHH :Store one half-word from a register high [1ハーフワードストア(レジスタ上位から)] STW :Store one word from a register [1ワードストア] ST2W :Store two words from registers [2ワードストア] ST4HB :Store four bytes from four half-words from two registrers [4バイトストア(2レジスタの4ハーフワードから)] ST2H :Store two half-words from two registrers [2ハーフワードストア(2レジスタから)] MODDEC :Decrement a register value by a 5-bits immediate value [即値5ビットのデクリメント] MODINC :Increment a register value by a 5-bits immediate value [即値5ビットのインクリメント]
【0038】 A−2.転送命令 MVFSYS :Move a control register to a general purpose register [制御レジスタから汎用レジスタへ] MVTSYS :Move a general purpose register to a control register [汎用レジスタから制御レジスタへ] MVFACC :Move a word from an accumulator [アキュムレータからの1ワード転送] MVTACC :Move two general purpose registers to an accumulator [2汎用レジスタ内容のアキュムレータへの転送]
【0039】 A−3.比較命令 CMPcc :Compare [比較] cc=EQ(等しい),NE(不等),GT(より大), GE(以上),LT(未満),LE(以下), PS(ともに正),NG(ともに負) CMPUcc :Compare unsigned[比較(符号なし)] cc=GT,GE,LT,LE
【0040】A−4.最大値/最小値命令 reserved[予約済]
【0041】 A−5.算術演算命令 ABS :Absolute[絶対値をとる] ADD :Add [加算] ADDC :Add with carry[加算(キャリー付き)] ADDHppp:Add half-word [ハーフワード加算] ppp=LLL(レジスタ下位、レジスタ下位、レジスタ下 位),LLH(レジスタ下位、レジスタ下位、レジ スタ上位),LHL,LHH,HLL,HLH,H HL,HHH ADDS :Add register Rb with the sign of the third operand [レジスタRbに符号を付ける] ADDS2H :Add sign to two half-words [2ハーフワードに符号を付ける] ADD2H :Add two pairs of half-words [2ハーフワード同士の加算] AVG :Average with rounding towards positive infinity [平均をとる] AVG2H :Average two pairs of half-words rounding towards positive infinity [2ハーフワードそれぞれの平均をとる] JOINpp :Join two half-words [2ハーフワードの結合] pp=LL,LH,HL,HH SUB :Subtract[減算] SUBB :Subtract with borrow[ボロー付き減算] SUBHppp:Subtract half-word[ハーフワードの減算] ppp=LLL,LLH,LHL,LHH,HLL, HLH,HHL,HHH SUB2H :Subtract two pairs of half-words [2つのハーフワードの減算]
【0042】 A−6.論理演算命令 AND :logical AND [論理積] OR :logical OR [論理和] NOT :logical NOT [反転] XOR :logical exclusive OR[排他的論理和] ANDFG :logical AND flags [フラグの論理積] ORFG :logical OR flags[フラグの論理和] NOTFG :logical NOT a flag[フラグの反転] XORFG :logical exclusive OR flags[フラグの排他的論理和]
【0043】 A−7.シフト演算命令 SRA :Shift right arithmetic[算術右シフト] SRA2H :Shift right arithmetic two half-words [2つのハーフワードの算術右シフト] SRC :Shift right concatenated registers [レジスタ連鎖右シフト] SRL :Shift right logical [論理右シフト] SRL2H :Shift right logical two half-words [2つのハーフワードの論理右シフト] ROT :Rotate right[右回転] ROT2H :Rotate right two half-words [2つのハーフワードの右回転]
【0044】A−8.ビット操作命令 BCLR :Clear a bit [ビットクリア] BNOT :Invert a bit[ビット反転] BSET :Set a bit [ビットセット] BTST :Test a bit[ビットテスト]
【0045】 A−9.分岐命令 BRA :Branch[分岐] BRATZR :Branch if zero[ゼロなら分岐] BRATNZ :Branch if not zero[ゼロでないなら分岐] BSR :Branch to subroutine[サブルーチンへ分岐] BSRTZR :Branch to subroutine if zero [ゼロならサブルーチンへ分岐] BSRTNZ :Branch to subroutine if not zero [ゼロでないならサブルーチンへ分岐] JMP :Jump[無条件ジャンプ] JMPTZR :Jump if zero[ゼロならジャンプ] JMPTNZ :Jump if not zero[ゼロでないならジャンプ] JSR :Jump to subroutine[サブルーチンへジャンプ] JSRTZR :Jump to subroutine if zero [ゼロならサブルーチンへジャンプ] JSRTNZ :Jump to subroutine if not z
ero [ゼロでないならサブルーチンへジャンプ] NOP :No Operation[無操作] [ディレイド分岐、ジャンプ命令に関する命令] DBRA DBRAI DBSR DBSRI DJMP DJMPI DJSR DJSRI
【0046】 A−10.OS関連命令 TRAP :Trap[トラップ] REIT :Return from exception, interrupts and traps [例外、割り込み、トラップからのリターン]
【0047】B.DSP機能に関する命令 B−1.算術操作命令 MUL :Multiply[乗算] MULX :Multiply with extended precision[倍精度乗算] MULXS :Multiply and shift to the right by one with extended precision [倍精度乗算および1ビット右シフト] MULX2H :Multiply two pairs of half-words with extended precision [2ハーフワードずつの倍精度乗算] MULHXpp:Multiply two half-words with extended precision pp=LL,LH,HL,HH [2ハーフワードの倍精度乗算] MUL2H :Multiply two pairs of half-words [2ハーフワードずつの乗算] MACa :Multiply and add[積和演算] a(アキュムレータ指定)=0,1 MACSa :Multiply, shift to the right by one and add a=0,1 [1ビット右シフト付き積和演算] MSUBa :Multiply and subtract [積和(減算)演算] a=0,1 MSUBSa :Multiply, shift to the right by one and subtract a=0,1 [1ビット右シフト付き積和(減算)演算] [飽和演算に関する命令] SAT SATHH SATHL SATZ SATZ2H SAT2H
【0048】 B−2.リピート命令 REPEAT :Repeat a block of instructions [命令ブロックの繰り返し] REPEATI:Repeat a block of instructions immediate [命令ブロックの繰り返し(即値指定)]
【0049】図6はマイクロプロセッサの並列2命令実
行時のパイプライン動作を示す説明図である。この動作
は、命令のフォーマットフィールドの値FM=00のと
きに実行される。パイプライン190,195は、命令
フェッチステージ191、デコード/アドレス演算ステ
ージ192、実行/メモリアクセスステージ193、お
よびライトバックステージ194で構成される。並列2
命令実行時には、メモリユニット3での実行と整数演算
ユニット4での実行とが並列に行われる。図7はマイク
ロプロセッサのシーケンシャル命令実行時のパイプライ
ン動作を示す説明図である。この動作は、命令のフォー
マットフィールドの値FM=01,10,11のときに
実行される。パイプライン200は、命令フェッチステ
ージ、デコード/アドレス演算ステージ、実行/メモリ
アクセスステージ、およびライトバックステージで構成
されるが、この場合には、メモリユニット3での実行と
整数演算ユニット4での実行とのうちのいずれかが、一
時に実行される。
【0050】図8は条件実行を用いるプログラムの一例
を示す説明図である。図において、命令i1,i2によ
る命令群B0は、フラグの状態によらず常に実行され
る。命令i1によって、レジスタr1の値に「1」加算
した値がレジスタr3に格納される。そして、命令i2
によって、レジスタr3とr4の内容が比較され、一致
していれば実行コントロールフラグF0がセットされ
る。命令i3,i4による命令群B1は、実行コントロ
ールフラグF0=1のときに実行される。命令群B1が
実行されると、命令i3によって、レジスタr3の値と
レジスタr10の値との和が示すメモリアドレスから1
ワードのデータがレジスタr6にロードされる。命令i
4によって、レジスタr5とr6の内容が比較され、一
致していれば実行コントロールフラグF1がセットされ
る。命令i6,i7による命令群B3は、実行コントロ
ールフラグF0=1かつF1=1のときに実行される。
【0051】命令i5による命令群B2は、実行コント
ロールフラグF0=0のときに実行される。また、命令
i8による命令群B4は、実行コントロールフラグF0
=1かつF1=0のときに実行される。命令i1〜i8
が順次記述されたプログラムがあった場合に、実行コン
トロールフラグF0,F1の値に応じて、図8において
矢印で示すようにプログラムが実行される。
【0052】図9は命令デコードユニット2aにおいて
条件実行を行うための構成を示すブロック図である。図
において、401は命令における実行条件フィールド1
05をデコードする実行条件デコード部、402はデコ
ードされた値CCと実行コントロールフラグF0,F1
とを比較する実行条件判定部、403は実行条件判定部
402の比較結果に応じて命令の実行を制御する実行制
御部である。その他のものは、図1に示すものと同じも
のである。
【0053】次に動作について説明する。図8に示す命
令i1,i2において、命令の実行条件フィールド10
5には、「000」が設定されている。実行条件デコー
ド部401は、命令における実行条件フィールド105
を抽出する。そして、抽出した3ビットの値CCを、例
えば、実行コントロールフラグF0に対応するデータと
実行コントロールフラグF1に対応するデータとにデコ
ードする。3ビットの値CCが「000」であった場合
には、既に説明したように、そのコードは命令を常時実
行することを示している。そこで、実行コントロールフ
ラグF0を無視することを示すデータと実行コントロー
ルフラグF1を無視することを示すデータとを出力す
る。実行条件判定部402は、それらのデータと実行コ
ントロールフラグF0,F1とを比較する。この場合に
は、実行コントロールフラグF0,F1は無視されるの
で、実行条件判定部402は、実行制御部403に対し
て、その命令を実行するように指示を出す。実行制御部
403は、その指示に応じて、制御信号11,12をメ
モリユニット3または整数演算ユニット4に出力する。
【0054】例えば、命令群B3の命令i6,i7にお
いて、実行条件フィールド105には、「101」が設
定されている。実行条件デコード部401は、3ビット
の値CCを実行コントロールフラグF0に対応するデー
タと実行コントロールフラグF1に対応するデータとに
デコードする。既に説明したように、そのコードは実行
コントロールフラグF0=真で実行コントロールフラグ
F1=真のときに命令を実行することを示している。こ
こでは、真=1とする。実行条件デコード部401は、
実行条件として、実行コントロールフラグF0=1を示
すデータと実行コントロールフラグF1=1を示すデー
タとを出力する。実行条件判定部402は、それらのデ
ータと実行コントロールフラグF0,F1とを比較す
る。そして、実際に実行コントロールフラグF0=1か
つ実行コントロールフラグF1=1であったときには、
実行制御部403に対して、その命令を実行するように
指示を出す。
【0055】図10は実行コントロールフラグをF0,
F1,F2の3個とした場合の実行条件を示す説明図で
ある。図に示すように、33 個の条件が考えられうる。
全ての条件の指定を可能にするには、デコードされた値
CCとして5ビット必要である。すなわち、命令におけ
る実行条件フィールド105は5ビット長となる。例え
ば、CC=「00000」の場合には、実行コントロー
ルフラグF0=真、F1=真、F2=真のときにその命
令が実行される。
【0056】この場合にも、実行条件デコード部401
は、命令における実行条件フィールド105を抽出す
る。そして、抽出した5ビットの値CCを、例えば、実
行コントロールフラグF0に対応するデータ、実行コン
トロールフラグF1に対応するデータおよび実行コント
ロールフラグF2に対応するデータにデコードする。実
行条件判定部402は、それらのデータと実行コントロ
ールフラグF0,F1,F2とを比較し、それらのデー
タと実際の実行コントロールフラグF0,F1,F2の
状態とが一致したときに、実行制御部403に対して、
その命令を実行するように指示を出す。
【0057】以上のように、実行条件フィールド105
は、条件実行のための条件をエンコードして保持してい
る。従って、3つの実行コントロールフラグF0,F
1,F2のすべての組み合わせに対応した条件を5ビッ
トの実行条件フィールド105で指定できる。図17に
示す従来の例では、33 個の条件を指定するのに6ビッ
トの実行条件フィールド301が必要であったが、この
実施の形態によれば、1ビット少ない実行条件フィール
ド105で同様の条件実行を実現できる。よって、演算
フィールドに割り当てられるビット数を増加でき、マイ
クロプロセッサで提供できる命令数を増やすことができ
る。
【0058】実行コントロールフラグF0,F1の数が
2個の場合に、条件(真、偽、無視)の組み合わせは実
は32 =9である。図2に示された命令フォーマットの
説明において、3ビットの実行条件フィールド105を
示したが、9個の条件を全て実現しようとすると、実は
4ビットの実行条件フィールド105が必要である。し
かし、実行条件フィールド105のビット長を長くして
全ての条件をユーザに提供することよりも、条件を制限
して実行条件フィールド105のビット長を短くし、そ
の結果、演算フィールドに割り当てられるビット数を増
加する方が、ユーザにとって便利であることも考えられ
る。
【0059】そこで、既に説明したように、実行コント
ロールフラグF0,F1の数が2個の場合でも、3ビッ
トの実行条件フィールド105を定義した。図11にお
ける実線で示された各組み合わせは、全組み合わせ9個
のうち、破線で示された代用可能な組み合わせを除いた
7種類である。ユーザは、破線で示された実行コントロ
ールフラグF0=偽、F1=真の条件、および実行コン
トロールフラグF0=偽、F1=偽の条件を、他の条
件、例えば、実行コントロールフラグF0=真、F1=
偽の条件、および実行コントロールフラグF0=真、F
1=真の条件で代用することになる。図2に示された命
令フォーマットの説明において示された7種類の条件
は、以上のような考え方にもとづいて定義されたもので
ある。
【0060】以上のように、実行条件の種類を制限すれ
ば、演算フィールドに割り当てられるビット数をさらに
増加することができる。
【0061】実施の形態2.図12はこの発明の実施の
形態2によるマイクロプロセッサにおける命令デコード
ユニット2bにおいて条件実行を行うための構成を示す
ブロック図である。図において、404は命令中の3ビ
ットの実行条件フィールド105の値にもとづいて該当
レジスタを参照するレジスタ参照部、406は参照され
たレジスタの設定にもとづいて実行条件を判定する実行
条件判定部である。その他のものは図9に示したものと
同じものである。
【0062】次に動作について説明する。この場合、命
令中の実行条件フィールド105は、以下のような意味
を持つ。 すなわち、実行条件フィールド105は、汎用レジスタ
5を用いて間接的に実行条件を指定する。
【0063】図13はフラグの組み合わせ条件を指定す
るレジスタ240の内容を示す説明図である。レジスタ
240中の各ビットによる実行条件は、図18に示され
た条件と同じである。この場合、Cv0ビット241,C
d0ビット242は、実行コントロールフラグF0との比
較に用いられるビットである。Cv1ビット243,Cd1
ビット244は、実行コントロールフラグF1との比較
に用いられるビットである。Cv2ビット245,Cd2ビ
ット246は、実行コントロールフラグF2との比較に
用いられるビットである。
【0064】例えば、実行条件フィールド105に設定
された値CC=「001」の場合には、レジスタ参照部
404は、レジスタR1のCv0ビット241,Cd0ビッ
ト242,Cv1ビット243,Cd1ビット244,Cv2
ビット245,Cd2ビット246を入力する。そして、
それを実行条件判定部406に出力する。実行条件判定
部406は、Cv0ビット241およびCd0ビット242
による意味、Cv1ビット243およびCd1ビット244
による意味、Cv2ビット245およびCd2ビット246
による意味を、それぞれ、実行コントロールフラグF0
の状態、実行コントロールフラグF1の状態、実行コン
トロールフラグF2の状態と比較する。各意味と各状態
とが全て一致していたら、実行条件判定部406は、実
行制御部403に対して、その命令を実行するように指
示を出す。
【0065】以上のように、この実施の形態2によれ
ば、実行条件フィールド105に設定されたレジスタを
指定する値に応じて該当レジスタを参照し、レジスタに
設定されている値に応じて条件実行するので、やはり、
実行条件フィールド105のビット数を低減することが
でき、演算フィールドに割り当てられるビット数を増加
することができる。
【0066】実施の形態3.図14はこの発明の実施の
形態3によるマイクロプロセッサにおける2演算命令の
フォーマットを示す説明図である。図に示すように、こ
のフォーマット250には、フィールド103とフィー
ルド104とからなるフォーマットフィールド、2つの
演算フィールド106,107、1つの実行条件フィー
ルド105、および1つの命令選択条件フィールド25
1がある。図15は実施の形態3によるマイクロプロセ
ッサにおける命令デコードユニット2cにおいて条件実
行を行うための構成を示すブロック図である。図におい
て、405は命令選択条件フィールド251の内容と実
行条件判定部402からの指示とに応じて命令の実行を
制御する実行制御部である。その他のものは図9に示さ
れたものと同じものである。
【0067】次に動作について説明する。図14に示す
フォーマット250における命令選択条件フィールド2
51は、演算フィールド106によるoperation_0を実
行するか演算フィールド107によるoperation_1を実
行するか選択するための1ビットのSビットを含む。S
ビットは、以下のように用いられる。 CCによる条件不成立のとき:Sビット無視(operation_0もoperation_1も 実行しない) CCによる条件成立のとき :Sビット=0ならばoperation_0、operation_ 1ともに実行する Sビット=1ならばoperation_0を実行し、op eration_1を実行しない
【0068】実行条件デコード部401および実行条件
判定部402は、実施の形態1の場合と同様に動作す
る。そして、実行条件フィールド105の値CCによる
条件が成立した場合には、実行制御部405に対して、
命令を実行するに指示を与える。実行制御部405は、
その指示を受けると、Sビットの判定を行う。そして、
Sビット=0ならば、メモリユニット3および整数演算
ユニット4に制御信号11,12を出力する。Sビット
=1ならば、メモリユニット3に制御信号11を出力す
る。
【0069】この実施の形態3によれば、命令選択条件
フィールド251によって、operation_0の実行および
operation_1の実行を制御することができる。すなわ
ち、2演算命令において、2つの演算を条件付きで実行
することができる。なお、この実施の形態3では、実施
の形態1に対してSビットの判定処理が追加されたもの
を示したが、実施の形態2に対してSビットの判定処理
を追加してもよい。
【0070】
【発明の効果】以上のように、請求項1記載の発明によ
れば、条件実行命令を有するマイクロプロセッサを、実
行条件フィールドの値のデコード結果と汎用フラグによ
る条件とが合致しているか否か判定し、合致していた場
合に命令を実行するように構成したので、実行条件フィ
ールドに割り当てられるビット長を短くでき、その結
果、演算フィールドに割り当てられるビット数を増加で
き、マイクロプロセッサにおいて提供できる命令数を増
やすことができる効果がある。
【0071】請求項2記載の発明によれば、条件実行命
令を有するマイクロプロセッサを、実行条件フィールド
が条件実行の判定に用いられる汎用フラグの全ての組み
合わせを表現するビット数よりも少ないビット長を有
し、実行条件デコード部がそのようなビット長のエンコ
ード値をデコードするように構成したので、実行条件フ
ィールドに割り当てられるビット長をさらに短くできる
効果がある。
【0072】請求項3記載の発明によれば、条件実行命
令を有するマイクロプロセッサを、実行条件フィールド
で指定されたレジスタに設定されている条件と汎用フラ
グによる条件とが合致しているか否か判定し、合致して
いた場合に命令を実行するように構成したので、実行条
件フィールドに割り当てられるビット長を短くでき、そ
の結果、演算フィールドに割り当てられるビット数を増
加でき、マイクロプロセッサにおいて提供できる命令数
を増やすことができる効果がある。
【0073】請求項4記載の発明によれば、条件実行命
令を有するマイクロプロセッサを、命令中の命令選択条
件フィールドの設定値に応じて複数の演算フィールドに
よる操作を行うか否か定めるように構成したので、2演
算命令において、2つの演算を条件付きで実行すること
ができる効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の一形態によるマイクロプロ
セッサの構成を示すブロック図である。
【図2】 マイクロプロセッサの命令フォーマットを示
す説明図である。
【図3】 演算フィールドの詳細な内容を示す説明図で
ある。
【図4】 マイクロプロセッサのレジスタ構成を示す説
明図である。
【図5】 PSWの詳細内容を示す説明図である。
【図6】 マイクロプロセッサの並列2命令実行時のパ
イプライン動作を示す説明図である。
【図7】 マイクロプロセッサのシーケンシャル命令実
行時のパイプライン動作を示す説明図である。
【図8】 条件実行を用いるプログラムの一例を示す説
明図である。
【図9】 この発明の実施の形態1における命令デコー
ドユニットにおいて条件実行を行うための構成を示すブ
ロック図である。
【図10】 実行コントロールフラグを3個とした場合
の実行条件を示す説明図である。
【図11】 実行コントロールフラグが2個の場合の実
行条件の設定の仕方を示す説明図である。
【図12】 この発明の実施の形態2における命令デコ
ードユニットにおいて条件実行を行うための構成を示す
ブロック図である。
【図13】 フラグの組み合わせ条件を指定するレジス
タの内容を示す説明図である。
【図14】 この発明の実施の形態3によるマイクロプ
ロセッサにおける2演算命令のフォーマットを示す説明
図である。
【図15】 この発明の実施の形態3における命令デコ
ードユニットにおいて条件実行を行うための構成を示す
ブロック図である。
【図16】 従来のRISCマイクロプロセッサの命令
フォーマットの一例を示す説明図である。
【図17】 従来の他のマイクロプロセッサの命令フォ
ーマットを示す説明図である。
【図18】 Cv ビットおよびCd ビットとそれらが表
す意味との関係を示す説明図である。
【符号の説明】
2 命令デコードユニット(命令デコーダ)、3 メモ
リユニット(命令実行部)、4 整数演算ユニット(命
令実行部)、150 制御レジスタ、401実行条件デ
コード部、402,406 実行条件判定部、404
レジスタ参照部、405 実行制御部。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 実行条件フィールドおよび演算フィール
    ドを含む命令をデコードする命令デコーダと、命令の実
    行を制御する情報が設定されるレジスタであって条件が
    設定される汎用フラグを含む制御レジスタと、前記命令
    デコーダの出力に従って命令を実行する命令実行部とを
    備えた条件実行命令を有するマイクロプロセッサにおい
    て、前記実行条件フィールドは、命令を実行することを
    示す前記汎用フラグの条件がエンコードされた値を有す
    るものであり、前記命令デコーダは、前記実行条件フィ
    ールドの値をデコードする実行条件デコード部と、前記
    実行条件デコード部のデコード結果と前記汎用フラグに
    よる条件とが合致しているか否か判定し、合致していた
    場合に命令を実行することに決定する実行条件判定部と
    を備えたことを特徴とする条件実行命令を有するマイク
    ロプロセッサ。
  2. 【請求項2】 実行条件フィールドは、条件実行の判定
    に用いられる汎用フラグの全ての組み合わせを表現する
    ビット数よりも少ないビット長を有し、実行条件デコー
    ド部は、前記ビット長のエンコード値をデコードするこ
    とを特徴とする請求項1記載の条件実行命令を有するマ
    イクロプロセッサ。
  3. 【請求項3】 実行条件フィールドおよび演算フィール
    ドを含む命令をデコードする命令デコーダと、命令の実
    行を制御する情報が設定されるレジスタであって条件が
    設定される汎用フラグを含む制御レジスタと、データを
    記憶する汎用レジスタと、前記命令デコーダの出力に従
    って命令を実行する命令実行部とを備えた条件実行命令
    を有するマイクロプロセッサにおいて、前記実行条件フ
    ィールドは、命令を実行することを示す前記汎用フラグ
    の条件が設定された前記汎用レジスタ中のレジスタを指
    定する値を有するものであり、前記命令デコーダは、前
    記実行条件フィールドで指定されたレジスタを参照する
    レジスタ参照部と、前記レジスタ参照部が参照したレジ
    スタに設定されている条件と前記汎用フラグによる条件
    とが合致しているか否か判定し、合致していた場合に命
    令を実行することに決定する実行条件判定部とを備えた
    ことを特徴とする条件実行命令を有するマイクロプロセ
    ッサ。
  4. 【請求項4】 命令デコーダは、1つの実行条件フィー
    ルド、1つの命令選択条件フィールドおよび複数の演算
    フィールドを含む命令をデコードし、命令実行部は、複
    数の演算回路を有し、前記命令デコーダは、さらに、前
    記命令選択条件フィールドの設定値に応じて前記複数の
    演算フィールドによる操作を行うか否か定める実行制御
    部を備えたことを特徴とする請求項1から請求項3のう
    ちのいずれか1項記載の条件実行命令を有するマイクロ
    プロセッサ。
JP8200847A 1996-07-30 1996-07-30 条件実行命令を有するマイクロプロセッサ Pending JPH1049368A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP8200847A JPH1049368A (ja) 1996-07-30 1996-07-30 条件実行命令を有するマイクロプロセッサ
US08/783,445 US5996070A (en) 1996-07-30 1997-01-16 Microprocessor capable of executing condition execution instructions using encoded condition execution field in the instructions
GB9704818A GB2315890B (en) 1996-07-30 1997-03-07 Microprocessor having conditional execution instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8200847A JPH1049368A (ja) 1996-07-30 1996-07-30 条件実行命令を有するマイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH1049368A true JPH1049368A (ja) 1998-02-20

Family

ID=16431216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8200847A Pending JPH1049368A (ja) 1996-07-30 1996-07-30 条件実行命令を有するマイクロプロセッサ

Country Status (3)

Country Link
US (1) US5996070A (ja)
JP (1) JPH1049368A (ja)
GB (1) GB2315890B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842852B1 (en) 1999-02-08 2005-01-11 Matsushita Electric Industrial Co., Ltd. System and method for controlling conditional branching utilizing a control instruction having a reduced word length
KR100589102B1 (ko) * 1998-12-28 2006-06-14 후지쯔 가부시끼가이샤 Vliw 프로세서
JP2010067278A (ja) * 1999-01-28 2010-03-25 Altera Corp プロセッサでの条件付き実行をサポートする装置及びその方法
JP2013254237A (ja) * 2012-06-05 2013-12-19 Fujitsu Ltd プロセッサ
JP2014501008A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
DE10031223A1 (de) * 2000-06-27 2002-01-10 Philips Corp Intellectual Pty Mikrocontroller
US6880074B2 (en) * 2000-12-22 2005-04-12 International Business Machines Corporation In-line code suppression
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US7017032B2 (en) * 2001-06-11 2006-03-21 Broadcom Corporation Setting execution conditions
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US7861071B2 (en) * 2001-06-11 2010-12-28 Broadcom Corporation Conditional branch instruction capable of testing a plurality of indicators in a predicate register
DE10156783A1 (de) * 2001-11-19 2003-05-28 Giesecke & Devrient Gmbh Steuerung eines Zahlungsverkehrsterminals
US6865662B2 (en) * 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
US7140003B2 (en) * 2003-02-14 2006-11-21 International Business Machines Corporation Method and system for specifying sets of instructions for selection by an instruction generator
TW594570B (en) * 2003-04-15 2004-06-21 Sunplus Technology Co Ltd Processor for executing conditional instruction and the method thereof
US20090113403A1 (en) * 2007-09-27 2009-04-30 Microsoft Corporation Replacing no operations with auxiliary code
US8280940B2 (en) * 2007-10-22 2012-10-02 Himax Technologies Limited Data processing apparatus with shadow register and method thereof
FR3021432B1 (fr) * 2014-05-20 2017-11-10 Bull Sas Processeur a instructions conditionnelles
US9424039B2 (en) 2014-07-09 2016-08-23 Intel Corporation Instruction for implementing vector loops of iterations having an iteration dependent condition
US20170083327A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Implicit program order
CN111930426A (zh) * 2020-08-14 2020-11-13 西安邮电大学 一种可重构计算的双模指令集架构及其应用方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1480209A (en) * 1974-07-03 1977-07-20 Data Loop Ltd Digital computers
JPS5680747A (en) * 1979-12-05 1981-07-02 Fujitsu Ltd Conditional branching system of program controlling device
EP0067267B1 (en) * 1981-06-11 1985-01-09 International Business Machines Corporation Document handling terminal computer system and method of operation thereof
JPS5995646A (ja) * 1982-11-24 1984-06-01 Nec Corp 演算制御装置
JPS5999550A (ja) * 1982-11-29 1984-06-08 Toshiba Corp マイクロプログラム制御装置
US4594651A (en) * 1984-01-18 1986-06-10 General Electric Company Concurrent processor for control
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
JPS62143140A (ja) * 1985-12-18 1987-06-26 Fujitsu Ltd 条件付分岐命令設定方式
JPH02228733A (ja) * 1989-03-01 1990-09-11 Nec Corp 情報処理装置
JP2559494B2 (ja) * 1989-08-04 1996-12-04 富士通株式会社 マイクロプログラム制御方法
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5371862A (en) * 1991-02-27 1994-12-06 Kabushiki Kaisha Toshiba Program execution control system
JPH0786916A (ja) * 1993-09-17 1995-03-31 Hitachi Ltd 半導体集積回路
JPH06311012A (ja) * 1993-04-27 1994-11-04 Toshiba Corp 消費電力が低減されたトランジスタ論理回路
GB2282245B (en) * 1993-09-23 1998-04-15 Advanced Risc Mach Ltd Execution of data processing instructions
JPH07182165A (ja) * 1993-09-28 1995-07-21 Mitsubishi Electric Corp コミット条件付き命令の処理方法およびその装置
GB2291515B (en) * 1994-07-14 1998-11-18 Advanced Risc Mach Ltd Data processing using multiply-accumulate instructions
JP3494489B2 (ja) * 1994-11-30 2004-02-09 株式会社ルネサステクノロジ 命令処理装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100589102B1 (ko) * 1998-12-28 2006-06-14 후지쯔 가부시끼가이샤 Vliw 프로세서
JP2010067278A (ja) * 1999-01-28 2010-03-25 Altera Corp プロセッサでの条件付き実行をサポートする装置及びその方法
US6842852B1 (en) 1999-02-08 2005-01-11 Matsushita Electric Industrial Co., Ltd. System and method for controlling conditional branching utilizing a control instruction having a reduced word length
JP2014501008A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置
JP2014501007A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 汎用レジスタファイルからsimdレジスタファイルへデータを移動させるための方法及び装置
JP2014501009A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置
JP2014505916A (ja) * 2010-11-18 2014-03-06 日本テキサス・インスツルメンツ株式会社 Simdレジスタファイルから汎用レジスタファイルへデータを移動させるための方法及び装置
JP2013254237A (ja) * 2012-06-05 2013-12-19 Fujitsu Ltd プロセッサ

Also Published As

Publication number Publication date
GB2315890B (en) 1999-09-22
US5996070A (en) 1999-11-30
GB9704818D0 (en) 1997-04-23
GB2315890A (en) 1998-02-11

Similar Documents

Publication Publication Date Title
JPH1049368A (ja) 条件実行命令を有するマイクロプロセッサ
EP0789297B1 (en) Data processor loading data and performing multiply-add operation in parallel
JP3745039B2 (ja) 遅延命令を有するマイクロプロセッサ
JP6456867B2 (ja) 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法
US6016543A (en) Microprocessor for controlling the conditional execution of instructions
JPH11224194A (ja) データ処理装置
TWI524266B (zh) 用以偵測向量暫存器內相等元素之裝置及方法
JPH03218523A (ja) データプロセッサ
JP6741006B2 (ja) マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置
JPS63273134A (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
US5787025A (en) Method and system for performing arithmetic operations with single or double precision
JPH0766324B2 (ja) データ処理装置
JPH0496825A (ja) データ・プロセッサ
JP3701401B2 (ja) 飽和演算命令を有するマイクロプロセッサ
JP6738579B2 (ja) 命令フローを最適化するチェックを実行するための装置および方法
US5941984A (en) Data processing device
US20020138712A1 (en) Data processing device with instruction translator and memory interface device
JPS6014338A (ja) 計算機システムにおける分岐機構
US6209080B1 (en) Constant reconstruction processor that supports reductions in code size and processing time
JP2000207210A (ja) マイクロプロセッサ
TWI697836B (zh) 處理包括高功率及標準指令之指令集的方法與處理器
JP3547585B2 (ja) 条件実行命令を有するマイクロプロセッサ
JPH10320197A (ja) 条件実行命令を備えるマイクロプロセッサ
JPH0769805B2 (ja) データ処理装置
JP2002123389A (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040629