JPH10320197A - 条件実行命令を備えるマイクロプロセッサ - Google Patents
条件実行命令を備えるマイクロプロセッサInfo
- Publication number
- JPH10320197A JPH10320197A JP12452697A JP12452697A JPH10320197A JP H10320197 A JPH10320197 A JP H10320197A JP 12452697 A JP12452697 A JP 12452697A JP 12452697 A JP12452697 A JP 12452697A JP H10320197 A JPH10320197 A JP H10320197A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- pipeline
- register
- circuit
- 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
- Advance Control (AREA)
Abstract
ロセッサでは、データ干渉を回避するためパイプライン
の一時停止が頻繁に発生する。 【解決手段】 メモリ6,7、命令デコーダ2、命令の
実行を制御する情報を格納する制御レジスタ、データを
格納する複数個のレジスタ、算術演算等を実行する演算
ユニットを含む命令を実行する命令実行ユニット3,4
を備え、命令デコーダ2内の実行停止回路720がプロ
グラム内の先行命令の動作に基づき現命令の実行を一時
的に停止し現命令を実行するか否か判定する条件実行判
定回路が先行命令を実行しないと判定した場合、条件実
行判定回路が先行命令の動作を開始する信号を無効とす
る処理を行う。
Description
定される実行条件フィールドを用いて、マイクロプロセ
ッサの命令の実行を制御する機能を備えた条件実行命令
を備えるマイクロプロセッサに関するものである。
一手法として、分岐のペナルティを減少させるために、
条件実行や、投機実行などの手法が検討されている。条
件実行を行う従来のARMマイクロプロセッサでは、条
件実行の判定に用いるためのフラグが、ネガティブフラ
グ(N)、ゼロフラグ(Z)、キャリーフラグ(C)、
オーバーフローフラグ(V)という特定の命令でのみ設
定される専用フラグを使用している。
向上のための一手法として、一命令の実行を複数ステー
ジに分割しパイプライン的に連続して実行する手法があ
る。
サのプロセッサコアの構成を示すブロック図であり、図
において、900は、MMAマイクロプロセッサのプロ
セッサコア、901はMMAのマイクロプロセッサ内の
1つの実行ユニットである。902は、MMAマイクロ
プロセッサの命令を実行する他の実行ユニット、904
はデータRAMである。このように、従来のMMAマイ
クロプロセッサでは一つの命令中の2つのサブ命令を2
つの実行ユニット901,902で同時に実行可能であ
る。
キュムレータ911、シフタ912およびALU913
から構成されている。また、実行ユニット902は、A
LU914、ロード/ストアユニット915から構成さ
れている。920,921は、実行ユニット901に含
まれる演算器のためのソースデータバスである。このソ
ースデータバス920,921を介して演算のために必
要なデータが汎用レジスタより読み出される。また、9
30,931は、実行ユニット902内に含まれる演算
器等のためのソースデータバスである。演算のために必
要なデータが汎用レジスタ903より読み出される。
910やALU913等の演算結果を汎用レジスタ90
3へ書き戻すためのライトバックバスである。932,
933は、実行ユニット902内のALU914等の演
算結果等を汎用レジスタ903へ書き戻すためのライト
バックレジスタである。922,923は、乗算器91
0とアキュムレータ911との間を結ぶ内部バスであ
り、この内部バスを介して、ペナルティなしに累積加算
を実行することが可能である。940は、ロード/スト
アユニット915とデータRAM904を結ぶ双方向バ
スであり、オペランドデータのロード/ストアの制御に
使用される。
イクロプロセッサ内に組み込まれている実行ユニット9
01の一部の回路をパイプライン的に配置したブロック
図である。903は汎用レジスタである。913はAL
Uである。910a,910bは乗算を行うための部品
であり、それぞれワレスの(Wallace)ツリー回
路とCPAである。乗算は2ステージで実行することが
可能である。921は、汎用レジスタからソースデータ
を読み出すバスである。925は、汎用レジスタに演算
結果を書き戻すためのライトバックレジスタである。9
70,971,972は、ソースデータバスにデータを
ドライブする3ステートバッファである。980は、A
LU913の演算結果をソースデータバスに出力するた
めのバイパス経路である。981は、乗算結果をソース
データバスに出力するためのバイパス経路である。
での1つの命令の実行は、F,D,R,E,M,Wの6
ステージを必要とし、これらのステージはパイプライン
的に実行される。1命令を6段のパイプラインで実行す
るために、データバス用のレジスタ(DR)950,9
51,952,953,954,955,956等が組
込まれている。960は命令デコーダである。制御信号
もパイプライン的に生成され、制御パス用のレジスタ
(CR)961,962,963,964が組込まれて
いる。
る出力信号は、レジスタ950のライトイネーブル信号
である。制御パス用レジスタ963の出力信号は、3ス
テートバッファ971,972のイネーブル信号であ
る。制御パス用レジスタ964の出力信号は、3ステー
トバッファ970のイネーブル信号である。
クロプロセッサで実行される命令のパイプライン図であ
り、図において、白の部分は実行ユニット901で実行
されているサブ命令のパイプラインを示しており、斜線
部分は実行ユニット902で実行されているサブ命令の
パイプラインを示している。1000は、実行ユニット
901で実行されるサブ命令のパイプラインである。1
001は、実行ユニット902で実行されるサブ命令の
パイプラインであり、パイプライン1000と同時に実
行される。1002は、パイプライン1000,100
1のサブ命令とデータ干渉が発生しない場合において、
後続命令が実行ユニット901で実行されるサブ命令の
パイプラインである。1003は、パイプライン100
0,1001のサブ命令の実行とデータ干渉が発生しな
い場合、実行ユニット902で実行される後続命令とし
てのサブ命令のパイプラインである。
プロセッサは以上のように構成されているので、先行命
令と後続命令との間にデータ干渉が発生しない場合は、
パイプラインが乱れることなく1クロック遅れで後続命
令を実行することが可能である。1005は、実行ユニ
ット902で実行されるサブ命令のパイプラインであ
り、パイプライン1000のサブ命令との間でデータ干
渉が発生する場合を示している。1004は、実行ユニ
ット901で実行されるサブ命令のパイプラインであ
り、パイプライン1005と同時に実行される。
ト901,902間で先行命令と後続命令との間にデー
タ干渉が発生した場合、これらの実行ユニット901,
902を直接に接続する専用のバイパス経路等が組み込
まれていない場合は、先行命令が汎用レジスタ903内
に処理結果を書き込むまでは、後続命令は汎用レジスタ
903の読み出しを待つ必要がある。
1002,1003に比較して、パイプライン100
4,1005では3クロックのペナルティが発生する。
MMAマイクロプロセッサのように複数段のパイプライ
ン実行を行うマイクロプロセッサでは、データ干渉を回
避するため上記したパイプラインの一時停止が頻繁に発
生するという課題があった。
めになされたもので、先行命令と現在実行する命令のパ
イプライン間にデータ干渉が発生し、そのデータ干渉を
回避するためパイプラインの停止を行う場合、そのパイ
プラインの停止を誘因した原因となる命令が、条件実行
判定で不実行となった場合、そのパイプラインの停止動
作をキャンセルし、パイプラインのペナルティを削減す
ることが可能な条件実行命令を備えるマイクロプロセッ
サを得ることを目的とする。
る条件実行命令を備えるマイクロプロセッサは、命令や
データを格納する命令RAMやデータRAM等からなる
メモリと、メモリへ接続され命令をデコードする命令デ
コーダと、命令の実行を制御する情報を格納する制御レ
ジスタと、データを格納する複数個のレジスタと、算術
演算等を実行する演算ユニットと、命令デコーダに接続
され命令デコーダから出力された出力に従い命令を実行
する命令実行ユニットとを備え、実行停止回路がプログ
ラム内の先行命令の動作に基づいて現命令の実行を一時
的に停止し、条件実行判定回路が現命令の実行を行うか
否かの判定を行い、条件実行判定回路が先行命令を実行
しないと判定した場合、条件実行制御回路が先行命令の
動作を開始する信号を無効とする処理を行い、パイプラ
インの停止を誘因した原因となる命令が条件実行判定で
不実行となった場合、そのパイプラインの停止動作をキ
ャンセルし、パイプラインのペナルティを削減するもの
である。
備えるマイクロプロセッサは、実行停止回路が、先行命
令がメモリをアクセスしそのアクセス完了を示すメモリ
アクセス完了信号がメモリから送信されるまでに複数ク
ロック必要とする場合、先行命令のメモリアクセスが完
了するまで現命令の実行を停止させ、またメモリから送
信されるアクセス完了信号に基づいて条件実行判定回路
の動作は制御され、条件実行判定回路は、現命令内の実
行条件フィールドと制御レジスタ内の汎用フラグの値に
基づいて先行命令の実行を行うか否かの判定を行い、条
件実行判定回路が先行命令を実行しないと判定した場合
に、条件実行制御回路は、先行命令のメモリへのアクセ
ス処理を開始するアクセス開始信号を無効とするように
制御して、ロード命令が条件実行判定で不実行となった
場合に、ロードしたデータを汎用レジスタへ書き込む処
理のみをキャンセルするのではなく、データRAMアク
セス処理からキャンセルして、パイプラインのペナルテ
ィを削除するものである。
備えるマイクロプロセッサは、先行命令の処理結果を汎
用レジスタへ書き込む以前に現命令が処理結果を汎用レ
ジスタから読み出す場合、先行命令のデスティネーショ
ンレジスタ指定フィールドと現命令のソースレジスタ指
定フィールドが一致することを判定するデータ干渉判定
回路と、先行命令の処理結果を汎用レジスタを経由する
ことなく現命令を実行する命令実行ユニットに転送する
バイパス経路とをさらに備え、実行停止回路がバイパス
経路を介して先行命令の処理結果が転送可能になるま
で、現命令の実行を停止し、条件実行判定回路が先行命
令内の実行条件フィールドの値および制御レジスタから
得られる汎用フラグの値により先行命令の実行を行うか
否かの判定を行い、データ干渉判定回路から送信される
制御信号に基づいて実行停止回路とバイパス経路の動作
が制御され、条件実行判定回路が先行命令を実行しない
と判定した場合、条件実行制御回路が実行停止回路から
送信される現命令の動作を停止する制御信号および先行
命令の処理結果を現命令を実行する命令実行ユニットへ
転送するためのバイパス経路の動作を制御する制御信号
を無効とするように制御し、ロード命令のアドレス計算
用データが同じ命令実行ユニットで実行される先行命令
の結果データと干渉を発生し、かつその先行命令が条件
実行判定で不実行となった場合に、その条件実行キャン
セル信号でパイプラインインターロック信号とバイパス
経路選択信号をキャンセルして、パイプラインのペナル
ティを削除するものである。
備えるマイクロプロセッサは、先行命令の処理結果を汎
用レジスタへ書き込む以前に、現命令が処理結果を汎用
レジスタから読み出す場合、先行命令のデスティネーシ
ョンレジスタ指定フィールドと現命令のソースレジスタ
指定フィールドとが一致することを判定するデータ干渉
判定回路とをさらに備え、実行停止回路が先行命令の処
理結果が汎用レジスタへ書き込み完了されるまで現命令
の実行を停止させ、条件実行判定回路が先行命令内の実
行条件フィールドの値および制御レジスタから得られる
汎用フラグの値により先行命令の実行を行うか否かの判
定を行い、データ干渉判定回路から送信される制御信号
により実行停止回路の動作が制御され、条件実行判定回
路で先行命令を実行しないと判定した場合、条件実行制
御回路は実行停止回路から送信される現命令の動作の停
止を制御する制御信号を無効とするように制御し、異な
る命令実行ユニット間でデータ干渉が発生し、かつその
先行命令が条件実行判定で不実行となった場合に、その
条件実行キャンセル信号でパイプラインインターロック
信号をキャンセルして、パイプラインのペナルティを削
除するものである。
備えるマイクロプロセッサは、先行命令の処理結果を汎
用レジスタへ書き込む以前に、異なる命令実行ユニット
で実行される現命令が処理結果を汎用レジスタから読み
出す場合、先行命令のデスティネーションレジスタ指定
フィールドと現命令のソースレジスタ指定フィールドと
が一致することを判定するデータ干渉判定回路と、先行
命令の処理結果を汎用レジスタを経由することなく現命
令を実行する異なる命令実行ユニットへ転送するバイパ
ス経路とをさらに備え、実行停止回路がバイパス経路を
介して先行命令の処理結果を転送可能な時まで現命令の
実行を停止し、条件実行判定回路が先行命令内の実行条
件フィールドおよび制御レジスタから得られる汎用フラ
グの値により先行命令の実行を行うか否かの判定を行
い、データ干渉判定回路から送信される制御信号に基づ
いて実行停止回路およびバイパス経路の動作が制御さ
れ、条件実行判定回路が先行命令を実行しないと判定し
た場合、条件実行制御回路は、実行停止回路から送信さ
れる現命令の実行停止を指示する制御信号と、現命令の
実行を行う異なる命令実行ユニットへ先行命令の処理結
果を転送するためのバイパス経路の動作を制御する制御
信号を無効とするように制御し、メモリアクセス部で実
行されるロード命令のロードデータが、整数演算部で実
行される乗算命令のソースデータと干渉を起こし、かつ
その先行ロード命令が条件実行判定で不実行となった場
合に、その条件実行キャンセル信号でパイプラインイン
ターロック信号とバイパス経路選択信号とをキャンセル
して、パイプラインのペナルティを削除するものであ
る。
備えるマイクロプロセッサは、先行命令の処理結果を制
御レジスタ内の汎用フラグへ書き込む以前に、現命令が
処理結果を制御レジスタ内の汎用フラグから読み出す場
合、先行命令のデスティネーションフラグ指定フィール
ドと現命令のソースフラグ指定フィールドとが一致する
ことを判定するフラグ干渉判定回路とをさらに備え、実
行停止回路が先行命令の処理結果が制御レジスタ内の汎
用フラグへの書き込み動作が完了するまで現命令の実行
を停止させ、条件実行判定回路が先行命令内の実行条件
フィールドの値と制御レジスタ内の汎用フラグの値とに
より先行命令の実行を行うか否かの判定を行い、フラグ
干渉判定回路から送信された制御信号に基づいて実行停
止回路の動作が制御され、条件実行判定回路が先行命令
を実行しないと判定した場合、条件実行制御回路は実行
停止回路から送信された現命令の実行を停止する制御信
号を無効とするように制御し、あるフラグを用いる命令
の先行命令がそのフラグを更新し、かつその先行命令が
条件実行判定で不実行となった場合に、その条件実行キ
ャンセル信号でパイプラインインターロック信号をキャ
ンセルすることでパイプラインのペナルティを削除する
ものである。
備えるマイクロプロセッサは、先行命令の処理結果を制
御レジスタ内の汎用フラグへ書き込む以前に、現命令が
制御レジスタ内の汎用フラグを用いて条件実行判定を行
う場合、先行命令のデスティネーションフラグ指定フィ
ールドと現命令のソースフラグ指定フィールドとが一致
することを判定するフラグ干渉判定回路とをさらに備
え、実行停止回路が先行命令の処理結果が制御レジスタ
内の汎用フラグへ書き込み完了されるまで現命令の実行
を停止させ、条件実行判定回路が先行命令内の実行条件
フィールドと制御レジスタから得られる汎用フラグの値
により先行命令の実行を行うか否かの判定を行い、フラ
グ干渉判定回路から送信される制御信号に基づいて実行
停止回路の動作が制御され、条件実行判定回路が先行命
令を実行しないと判定した場合、条件実行制御回路が実
行停止回路から送信される現命令の実行停止を指示する
制御信号を無効とするように制御し、条件実行判定を伴
う命令の先行命令が条件実行フラグを更新し、かつその
先行命令が条件実行判定で不実行となった場合に、その
条件実行キャンセル信号でパイプラインインターロック
信号をキャンセルしてパイプラインのペナルティを削除
するものである。
備えるマイクロプロセッサは、先行命令が制御レジスタ
内のモードフラグを更新する場合、先行命令が制御レジ
スタ内のモードフラグを更新する命令であることを検知
するモードフラグ判定回路とをさらに備え、実行停止回
路は、先行命令が制御レジスタ内のモードフラグの値を
更新完了するまで現命令の動作を停止させ、条件実行判
定回路が、先行命令内の実行条件フィールドと制御レジ
スタから得られる汎用フラグの値により先行命令の実行
を行うか否かの判定を行い、条件実行判定回路から送信
される制御信号に基づいて実行停止回路の動作が制御さ
れ、条件実行判定回路で先行命令を実行しないと判定し
た場合、条件実行制御回路は実行停止回路から送信され
る現命令の動作の停止を指示する制御信号を無効とする
ように制御し、モードフラグを更新する命令が条件実行
判定で不実行となった場合に、その条件実行キャンセル
信号で後続命令のパイプラインインターロック信号をキ
ャンセルすることでパイプラインのペナルティを削除す
るものである。
備えるマイクロプロセッサは、先行命令が含んでいる少
なくとも1つ以上の副命令である先行副命令を実行する
ため、演算回路及び演算回路と汎用レジスタとの間のデ
ータ読み出し及び書き込み経路等が同時に使用される場
合、先行副命令の組み合わせによりデータ読み出し及び
書き込み経路の同時使用が行われるか否かを検知する同
時使用判定回路と、先行副命令の実行でデータ読み出し
及び書き込み経路の同時使用を回避するため先行副命令
のいずれかの動作を停止する衝突回避回路とをさらに備
え、実行停止回路は、先行副命令の動作が停止される期
間と同一期間だけ現命令の動作を停止し、条件実行判定
回路が先行命令内の実行条件フィールドと制御レジスタ
内の汎用フラグの値により先行副命令の実行を行うか否
かの判定を行い、条件実行判定回路から送信される制御
信号に基づいて衝突回避回路と実行停止回路の動作が制
御され、条件実行判定回路が先行副命令を実行しないと
判定し、データ読み出し及び書き込み経路の同時使用が
発生しない場合に、条件実行制御回路は、衝突回避回路
から送信される先行副命令の実行を指示する制御信号
と、実行停止回路から送信される現命令の実行を停止す
る制御信号を無効とするように制御して、あるリソース
コンフリクトによりパイプラインインターロックが発生
し、かつそのリソースコンフリクトを発生させるサブ命
令のいずれかが条件実行判定で不実行となった場合に、
その条件実行キャンセル信号でパイプラインストール信
号をキャンセルしてパイプラインのペナルティを削除す
るものである。
説明する。
クロプロセッサの各実施の形態を説明する前に、この発
明のマイクロプロセッサに共通の基本構成に関してまず
説明する。
セッサの全体構成を示すブロック図であり、マイクロプ
ロセッサ1は、命令デコードユニット(命令デコーダ)
2、メモリアクセスユニット(命令実行ユニット)3、
整数演算ユニット(命令実行ユニット)4、汎用レジス
タ5、命令RAM(メモリ)6、データRAM(メモ
リ)7から構成されている。
から64ビット幅のIDバスを通じて送られる命令コー
ドをMUデコーダ8、IUデコーダ9を用いてデコード
する。MUデコーダ8のデコード結果とプロセッサ状態
語(PSW)10よりメモリアクセスユニット3への制
御信号11を生成し、また、IUデコーダ9のデコード
結果とプロセッサ状態語10より整数演算ユニット4へ
の制御信号12を生成する。メモリアクセスユニット3
は、PC制御部13、メモリ制御部14、ALU15、
シフタ16から構成される。PC制御部13は、有効な
ジャンプ演算や分岐演算を含まない命令では、例えば実
行した命令のPC値に8を加えて次に実行する命令のP
C値を計算し、ジャンプ演算や分岐演算では実行した命
令のPC値に分岐変位を加算し、また演算で指定された
アドレッシングモードに従う計算をしてジャンプ先命令
のPC値を計算する。
算されたPC値をもとにIAバスを用いて命令RAM6
を起動する。また、命令実行に必要なデータをデータメ
モリのアドレスを転送するOAバス、データを転送する
ODバスを通じてデータRAM7にアクセスし、汎用レ
ジスタ5にデータ転送する。ALU15およびシフタ1
6では、汎用レジスタ5から32ビット幅のS1バス、
S2バス、S6バスを通じて転送された最大3ワードの
データを用いて算術論理演算もしくはシフト演算を行
い、演算結果をW1バスを用いて汎用レジスタ5に転送
する。
用レジスタ5から読み出された最大4ワードの32ビッ
ト長のデータが、メモリアクセスユニット3へ転送され
る。これにより、汎用レジスタ5からデータRAM7へ
2ワードストア命令を実現している。2ワードストア命
令では、2つのオペランドを使用し、メモリアドレスを
計算し、データRAM7へ2ワードデータを転送する。
また、メモリアクセスユニット3は、W1、W3E、W
3Oバスを通じて、メモリアクセスユニット3内での演
算結果およびデータRAM7から転送された2ワードの
ロードデータを、汎用レジスタ5へ転送する。
ュムレータ18、ALU19、シフタ20から構成され
る。乗算器17、ALU19、シフタ20では、汎用レ
ジスタ5から32ビット幅のS3、S4、S5バスを通
じて転送された最大3ワードのデータを用いて算術論理
演算もしくはシフト演算を行い、演算結果をW2,W3
E、W3Oバスを用いて汎用レジスタ5に転送する。ま
た、アキュムレータ18は、乗算の結果を累積加算また
は累積減算してその演算結果を保持する。
値を同時に読み出すことが可能で、読み出されたデータ
は、それぞれS1、S2、S3、S4、S5、S6バス
に出力される。また、汎用レジスタ5は、W1、W2、
W3E、W3Oバスに接続され、最大4種類のレジスタ
値を同時に書き込むことが可能である。命令RAM6
は、32ビット幅のIAバスと64ビット幅のIDバス
に接続されており、IAバスの示すアドレスに対応する
64ビット長の命令データを読み出す。データRAM7
は、32ビット幅のOAバスと64ビット幅のODバス
に接続されており、OAバスの示すアドレスに対応す
る、64ビット長のデータを読み書きする。
る命令フォーマットを示す説明図である。マイクロプロ
セッサ1の命令フォーマットには、1つの命令で2つの
演算を指示する2副命令のフォーマット101と1つの
命令で1つの演算を指示する1演算命令のフォーマット
102がある。2演算命令のフォーマット101にはフ
ィールド103とフィールド104からなるフォーマッ
トフィールド、2つの演算フィールド106、107及
び各演算フィールドに1つずつ付属する実行条件フィー
ルド105がある。1演算命令のフォーマットにはフィ
ールド103とフィールド104からなるフォーマット
フィールド、フィールド108とフィールド109とフ
ィールド110とからなる演算フィールド及びこの演算
フィールドに付属する実行条件フィールド105があ
る。
のフォーマットフィールド103,104の詳細を示す
説明図であり、図において、FM=00の場合、この命
令は2演算命令であり、演算フィールド106で指示さ
れたoperation_0の演算と演算フィールド1
07で指示されたoperation_1の演算がデコ
ード直後のクロックサイクルで並列に実行される。フォ
ーマットフィールドの値FM=01の場合、この命令は
2演算命令であり、演算フィールド106で指示された
operation_0の演算がデコード直後のクロッ
クサイクルに実行され、演算フィールド107で指示さ
れたoperation_1の演算がoperatio
n_0の演算に対して1クロックサイクル遅れて実行さ
れる。
であり、演算フィールド107で指示されたopera
tion_1の演算がデコード直後のクロックサイクル
に実行され、演算フィールド106で指示されたope
ration_0の演算がoperation_1の演
算に対して1クロックサイクル遅れて実行される。FM
=11の場合、この命令は1演算命令であり、108と
109と110からなる演算フィールドで指示された1
つの演算がデコード直後のクロックサイクルで実行され
る。
(CC)105の詳細を示す説明図である。実行条件フ
ィールド105は、後述するマイクロプロセッサ1の状
態フラグF0及びF1の値に依存して演算フィールド1
06、107でそれぞれ示されたoperation_
0の演算やoperation_1の演算及び演算フィ
ールド108と109と110で示された演算が有効で
あるか無効であるかを定める。演算が有効であるとき
は、演算結果がレジスタ、メモリ、フラグに反映され、
その演算により定義された動作結果が残ることを意味
し、演算が無効であるときは、演算結果がレジスタ、メ
モリ、フラグに反映されず、定められた演算の種類には
関わらずその演算により無効演算(NOP:no op
eration)と同じ結果がレジスタやフラグに残る
ことを意味する。
0のとき、演算はフラグF0、F1の値に関わらず常に
有効である。CC=001のとき、演算はF1の値には
関わらずF0=真のときのみ有効である。CC=010
のとき、演算はF1の値には関わらずF0=偽のときの
み有効である。CC=011のとき、演算はF0の値に
は関わらずF1=真のときのみ有効である。CC=10
0のとき、演算はF0の値には関わらずF1=偽のとき
のみ有効である。CC=101のとき、演算はF0=真
かつF1=真のときのみ有効である。CC=110のと
き、演算はF0=真かつF1=偽のときのみ有効であ
る。CC=111のときの動作は未定義であり、この値
が命令で用いられることはない。
演算フィールド106、107と54ビット長で表現さ
れる長型の演算フィールド(図2に示した演算フィール
ド108、109、110で構成される)の詳細を示す
説明図である。短型の演算フィールドには、7つのフォ
ーマット111、112、113、114、115、1
16、117があり、長型の演算フィールドには1つの
フォーマット118がある。
るフィールド120、レジスタの番号を指定する2つの
フィールド121、122、レジスタ番号または6ビッ
ト長の即値を指定するフィールド123、フィールド1
23がレジスタ番号を示すか即値を示すかを指定するフ
ィールド124から構成される。このフォーマット11
1はレジスタ間接アドレッシングのメモリアクセス演算
に使用される。
るフィールド120、レジスタの番号を指定する2つの
フィールド121、122、レジスタ番号または6ビッ
ト長の即値を指定するフィールド123、フィールド1
23がレジスタ番号を示すか即値を示すかを指定するフ
ィールド125から構成される。このフォーマット11
2は算術演算、論理演算、シフト演算、ビット演算に使
用される。
るフィールド120、レジスタの番号を指定するフィー
ルド126から構成される。このフォーマット113
は、レジスタ指定によるジャンプ、分岐命令に使用され
る。フォーマット114は、演算内容を指定するフィー
ルド120、18ビット長のディスプレイスメントのフ
ィールド127から構成される。このフォーマット11
4は、ジャンプ、分岐命令に使用される。
るフィールド120、レジスタの番号を指定するフィー
ルド121、レジスタ番号または12ビット長の即値を
指定するフィールド128、フィールド128がレジス
タ番号を示すか即値を示すかを指定するフィールド12
9、フィールド121がゼロ判定による条件ジャンプお
よび条件分岐を行うか否かを指定するフィールド130
から構成される。このフォーマット115は、条件ジャ
ンプ、条件分岐命令に使用される。
るフィールド120、レジスタの番号を指定するフィー
ルド121、レジスタ番号または12ビット長の即値を
指定するフィールド128、フィールド128がレジス
タ番号を示すか即値を示すかを指定するフィールド12
9から構成される。このフォーマット116は、条件ジ
ャンプ、条件分岐命令、リピート命令に使用される。
るフィールド120、レジスタ番号または12ビット長
の即値を指定するフィールド128、フィールド128
がレジスタ番号を示すか即値を示すかを指定するフィー
ルド129、ディレイド命令のディレイ値を指定するフ
ィールド131から構成される。このフォーマット11
7は、ディレイドジャンプ、ディレイド分岐命令に使用
される。
るフィールド120、レジスタの番号を指定する2つの
フィールド121、122、32ビット長の即値を指定
するフィールド132から構成される。このフォーマッ
ト118の演算には、複雑な算術演算、大きな即値を用
いる算術演算、大きなディスプレースメント付きレジス
タ間接アドレッシングのメモリアクセス演算や大きな分
岐変位の分岐演算、絶対番地へのジャンプ演算などがあ
る。
るフィールド120、レジスタの番号を指定する2つの
フィールド121、122、32ビット長の即値を指定
するフィールド132、フィールド132がゼロ判定に
よる条件ジャンプおよび条件分岐を行うか否かを指定す
るフィールド133から構成される。このフォーマット
119は、大きな分岐変位をもつ条件ジャンプ、条件分
岐命令に使用される。
1のレジスタの構成を示す説明図である。マイクロプロ
セッサ1には、64本の32ビット長の汎用レジスタ
5、12本の制御レジスタ150、および2本のアキュ
ムレータ18がある。汎用レジスタ(R0)140は、
読み出した場合常に0で書き込みは無視される。汎用レ
ジスタ(R63)はスタックポインタであり、プロセッ
サ状態語(PSW)10のSMフィールドの値に依存し
てユーザスタックポインタ(SPU)141または割り
込みスタックポインタ(SPI)142が動作する。制
御レジスタ150には、プログラムカウンタ151、プ
ロセッサ状態語10や各種の専用レジスタが含まれる。
フォーマット112の演算では、64本の汎用レジスタ
5のそれぞれを上位16ビットと下位16ビットに分け
て別々にアクセスできる。また、2本のアキュムレータ
18はそれぞれ上位32ビットと下位32ビットを別々
にアクセスできる。
す説明図である。プロセッサ状態語(PSW)10の上
位16ビット170にはスタックポインタを切り替える
SMフィールド171、ソフトウェアデバッガトラップ
(SDBT)の検出を示すEAフィールド172、SD
BTの許可を指定するDBフィールド173、割り込み
許可を指定するEIフィールド174、リピート動作の
許可を指定するRPフィールド175、モジュロアドレ
シングの許可を指定するMDフィールド176がある。
0である。フラグフィールド180には8個のフラグが
あり、その中のF0フラグ181とF1フラグ182は
演算の有効無効を制御する。各フラグの値は、比較演算
や算術演算の結果に依存して変化するほか、フラグ初期
化演算で初期化したり、フラグ値書き込み演算で任意の
値をフラグフィールド180に書き込むことで変化す
る。また、フラグ値読み出し演算でフラグフィールド1
80の値を読み出すこともできる。
プロセッサ1で用いられる命令一覧を示す。
5−bit immediate value
ン動作 図8は、図1に示したこの発明のマイクロプロセッサ1
の並列2命令実行時(FM=00)のパイプライン動作
を示す説明図である。パイプラインは、命令フェッチ
(IF)ステージ191、デコード/アドレス演算(D
/A)ステージ192、実行/メモリアクセス(Eor
M)ステージ193、ライトバック(W)ステージ19
4から構成される。
ニット3での実行190と整数演算ユニット4での実行
195(斜線の部分)が並列に行われる。図9は、一つ
の命令実行でなされる各処理を4段のパイプライン図に
割当てた場合を示す説明図である。まず、IFステージ
で命令フェッチが実行され、D/Aステージでその命令
のデコードが実行される。そして、同じくD/Aステー
ジの前半から汎用レジスタの読み出しが開始されて、後
半でアドレス計算がなされる。EorMステージでは、
演算及びメモリアクセスが実行される。そして、Wステ
ージの後半で汎用レジスタの書き込みが実行される。こ
れが1命令を実行する際のパイプライン的な処理の概要
である。
しているように、4つのステージの前半と後半で行われ
る処理は、それぞれクロックのHighとLowに同期
して行われている。IFステージの前半と後半の処理を
それぞれI1、I2期間中の処理と呼ぶ。また、Dステ
ージの前半と後半の処理をそれぞれD1、D2期間中の
処理と呼ぶ。また、Eステージの前半と後半の処理をそ
れぞれE1、E2期間中の処理と呼ぶ。また、Wステー
ジの前半と後半の処理をそれぞれW1、W2期間中の処
理と呼ぶ。
のメモリアクセスユニットと整数演算ユニットを中心と
した詳細な構成を示すブロック図であり、図において、
マイクロプロセッサ1は、命令デコードユニット2、メ
モリアクセスユニット3、整数演算ユニット4、汎用レ
ジスタ5、命令RAM6、データRAM7から構成され
ている。
たマイクロプロセッサ内のALU15、シフタ16を備
えている。220は、D2同期バス群の値を取り込むレ
ジスタであり、格納した値をシフタ16へ出力する。2
21は、D2同期バス群の値を取り込むレジスタであ
り、格納した値をALU15へ出力する。また、その他
メモリ制御、PC制御、演算制御等を行うための各種演
算器やレジスタ等がメモリアクセスユニット3内に含ま
れている。29は、命令フェッチ処理の際に、命令RA
M6へ送信するアドレスを保持するための命令アドレス
レジスタである。30は、メモリへのストア処理を行う
際に、ストアデータの整値を行うための制御部である。
33は、メモリからのロードデータの符号拡張を行うた
めの制御部である。31は、ロードとストア命令実行時
のポストインクリメント/デクリメントアドレッシング
を行うためのインクリメンタである。32は、ロード/
ストア命令及び分岐命令等を実行する際にアドレス計算
を行うための加算器である。50は、ALU、シフタの
結果を保持するレジスタである。
御レジスタ150に相当する。34は、プログラムカウ
ンタCR0をインクリメントするためのインクリメンタ
である。35は、リピート命令やディレイド分岐命令を
実行する際に、リピートカウントレジスタCR6の値や
リピートエンドアドレスレジスタCR8の値を計算する
ための加算器である。36は、リピートカウントレジス
タの値をデクリメントするためのデクリメンタである。
37は、命令アドレスレジスタの値をインクリメントす
るためのインクリメンタである。40は、命令ブレーク
アドレスレジスタCR11の値とプログラムカウンタC
R0の値とを比較し、両者が同じ値であれば一致信号を
出力する32ビット比較器である。
の値が0以上であれば有効となる信号を出力する32ビ
ット比較器である。42は、リピートエンドアドレスレ
ジスタCR8の値と命令アドレスレジスタ29の値を比
較し、同じ値であれば一致信号を出力する32ビットの
比較器である。43は、モジュロエンドアドレスレジス
タCR10の値とインクリメンタ31の値が同じであれ
ば一致信号を出力する32ビット比較器である。44
は、D1S6BUSバスの値が0であれば有効となる信
号を出力するための32ビット比較器である。
すマイクロプロセッサ1内の乗算器17(図13では、
17a〜17dに相当する)、ALU19、シフタ20
がある。その他の演算器として、飽和演算をするための
演算器21がある。222は、D2同期バス群の値を取
り込むレジスタであり、格納した値はALU20へ出力
される。223は、D2同期バス群の値を取り込むレジ
スタであり、格納した値をシフタ19及び飽和演算器2
1へ出力する。224は、D2同期バス群の値を取り込
むレジスタであり、格納した値を乗算器17へ出力す
る。
の累積加算等を行うためのアキュムレータである。55
は、ALU,シフタ,飽和演算器の結果を保持するレジ
スタである。
4、S5、S6バスは、図10〜図13ではD1S1B
US、D1S2BUS、D1S3BUS、D1S4BU
S、D1S5BUS、D1S6BUSに相当する。参照
記号D1S1BUS内のD1とは、図9に示すD1期間
中にバスがドライブされることを意味する。これら先頭
にD1の付いているバスをD1同期バス群と呼ぶ。
W3Oバスは、図10〜図13ではW1W1BUS、W
1W2BUS、W1W3EBUS、W1W3OBUSに
相当する。参照記号W1W1BUS内のW1とは、図9
に示すW1期間中にバスがドライブされることを示して
いる。これら先頭にW1の付いているバスは同様にW1
同期バス群と呼ぶ。
2S3BUS、D2S4BUS、D2S5MBUS、D
2S5IBUS、D2S6BUSは、D1同期バス群の
データをラッチを介して半クロック遅延させ、D2の期
間中にこれらのデータをドライブする。そのタイミング
を変更するラッチは、40a、40bである。
ーダ部より出力された即値データである。これらは、バ
スドライバ42a、42b、42c、42dを介して、
D1、D2同期バス群に出力される。また、E2D1B
US、E2D3BUS、E2D4BUSは、制御レジス
タの値や演算器の値を保持するレジスタの値をE2期間
中に出力するバスである。
W1W1BUSに出力するためのライトバックレジスタ
である。53は、ロードデータの値をW1W3EBU
S、W1W3OBUSへ出力するためのレジスタであ
る。54は、演算結果保持レジスタ55の値をW1W2
BUSへ出力するためのライトバックレジスタである。
また60は、命令デコードユニット2内のPSWレジス
タの値をE2D1BUSに読み出すための経路である。
61は、E1CRBUSの値を命令デコードユニット2
内のPSWレジスタに書き込むための経路である。62
は、ALU15でキャリーフラグを用いる演算を実行す
る時にキャリーフラグの伝播する経路である。
ット2へ出力されるフラグの伝搬経路である。64は、
ALU20から命令デコードユニットに出力されるフラ
グの伝搬経路である。65は、ALU20でキャリーフ
ラグを用いる演算を実行する時にキャリーフラグの伝播
する経路である。66は、飽和演算器21から命令デコ
ードユニットに出力されるフラグの伝搬経路である。
めの回路及び経路である。即ち、200は、ロードデー
タバスM2ODBUSの値を符号拡張するための制御部
である。201は、ライトバックレジスタ56の値が出
力されたバスW1W3EBUS、W1W3OBUSの値
を取り込むレジスタである。202は、レジスタ50の
値をメモリアクセス部のD2同期バス群へ出力するため
の経路である。203、はライトバックレジスタ51の
値をD1同期バス群へ出力するための経路である。20
4は、レジスタ57の値をD1同期バス群へ出力するた
めの経路である。205は、レジスタ201の値をメモ
リアクセス部のD2同期バス群へ出力するための経路で
ある。206は、符号拡張部33の値をメモリアクセス
部のD2同期バス群へ出力するための経路である。20
7は、レジスタ53の値をメモリアクセス部のD2同期
バス群へ出力するための経路である。208は、符号拡
張部200の値を整数演算部のD2同期バス群へ出力す
るための経路である。209は、ライトバックレジスタ
54の値をD1同期バス群へ出力するための経路であ
る。
のD2同期バス群に出力するための経路である。211
は、ライトバックレジスタ56の値をD1同期バス群に
出力するための経路である。
する処理 図9に示したパイプライン図で説明したように、汎用レ
ジスタ5からのデータの読み出しはD1期間中に実行さ
れる。そして、汎用レジスタ5へのデータの書き込みは
W2期間中に実行される。このことから、先行する命令
の書き込み先(ディスティネーション)レジスタから、
直後の命令がデータの読み出しを行いたい場合、バイパ
ス処理やパイプラインインターロック処理等でデータの
整合性を保証してやる必要がある。このような処理が必
要なデータの関係をデータ干渉と呼んでいる。
のデータの干渉を示す説明図であり、図において、60
0a、600b、600cはそれぞれメモリアクセスユ
ニット3で実行されるWステージ、EorMステージ、
Dステージで実行されるサブ命令コードを示す。また、
601a、601b、601cは、それぞれ整数演算ユ
ニット4で実行されるWステージ、EorMステージ、
Dステージのサブ命令コードを示している。
先頭からオペコードと、条件実行フィールドと、ディス
ティネーションレジスタ指定フィールドと、2つのソー
スレジスタ指定フィールドを示している。各フィールド
に書いている記号の先頭の2文字は、それぞれのステー
ジとそれぞれの演算ユニットでの実行を示している。す
なわち、参照記号WMは、Wステージのメモリアクセス
ユニットでの実行であることを示している。
印610,611は、バイパス処理によりデータの整合
性を保証するデータ干渉の例を示している。矢印610
のように同一メモリアクセスユニット3内でのデータ干
渉は比較的バイパス経路を設け易い。そのためデータ干
渉発生時のデータの整合性の保証は、ほとんどがバイパ
ス処理により実行されている。また矢印611のよう
に、異なるメモリアクセスユニット3,4間のデータ干
渉でも、性能に影響が出る場合は、専用のバイパス経路
を設けてデータの整合性を保証している。
場合は、パイプラインを停止する必要がなくペナルティ
なしで処理を実行することができる。それに対して、実
線の矢印612,613,614,615は、パイプラ
インインターロック処理によりデータの整合性を保証す
るデータ干渉の例を示している。矢印612では、同一
メモリアクセスユニット内でもタイミング的に間に合わ
ない処理の場合に、必要なデータが生成されるまでパイ
プラインのインターロック処理が必要となる。矢印また
613のように、異なるメモリアクセスユニット3,4
間では、ほとんどがバイパス処理不可能であるため、干
渉しているデータが汎用レジスタ5内に書き込まれる
迄、パイプラインのインターロック処理が必要となる。
ージのサブ命令コード600b、601bが、条件実行
フラグを更新する命令である場合で、かつ、その直後の
Dステージのサブ命令コードの条件実行フィールドが、
条件実行判定が必要である場合に、そのフラグの値が更
新されるまでパイプラインをインターロックさせる必要
がある。このように、パイプラインインターロック処理
では、干渉しているデータの整合性を保証するためにパ
イプラインを停止する必要があり、そのためペナルティ
が発生する。
のパイプラインインターロックにより発生するペナルテ
ィを特定条件下で削除する機能を有するものであり、以
降では、上記処理をパイプラインインターロックキャン
セル処理と呼ぶ。
み込まれているパイプラインインターロックキャンセル
処理を制御する制御回路(図1,図10〜図13では煩
雑さを避けるため図示せず)を示すブロック図であり、
図において、700は命令RAM6から命令データバス
I2IDBUSを介して送信される命令コードとフィー
ドバック経路から送信される命令コードのいずれかを選
択するセレクタである。セレクタ700の動作は、セレ
クタ制御回路721により制御される。このセレクタ7
00の出力は、パイプラインのIステージ内のI2期間
のタイミングであり、プリデコード用の命令コードとし
てプリデコード回路710へ出力される。
持するレジスタである。701,702は、Dステージ
の命令コードを保持するレジスタである。703,70
4は、Eステージの命令コードを保持するレジスタであ
る。705は、Wステージの命令コードを保持するレジ
スタである。また706は、フィードバック経路用のレ
ジスタであり、レジスタ701の値を取り込んでセレク
タ700へ出力する。これらのレジスタ701〜706
は、命令コードライト信号生成回路(実行停止回路)7
20より出力されるライトイネーブル信号により制御さ
れる。またレジスタ701〜705の出力は、各種デコ
ーダ710,712,714〜719へ出力される。
デコードし汎用レジスタ(GPR)リード信号を生成す
るデコーダ回路である。711は、デコーダ710の結
果を保持するD1同期のラッチである。すなわち汎用レ
ジスタ(GPR)5からの読み出しは、D1期間より開
始する。712は、レジスタ702の出力をデコード
し、データRAMアクセスの制御信号を生成するデコー
ダ回路である。713は、デコーダ712の結果を保持
するM1同期のラッチ(M1L)である。すなわちデー
タRAM7に対するアクセスは、M1より開始される。
ドし、D1同期のデータバス制御信号を生成するデコー
ダ回路である。714は、レジスタ702の出力をデコ
ードし、D2同期のデータバス制御信号を生成するデコ
ーダ回路である。715はレジスタ703の出力をデコ
ードし、E1同期のデータバス制御信号を生成するデコ
ーダ回路である。716は、レジスタ705の出力をデ
コードし、汎用レジスタ(GPR)5のライト信号を生
成するデコーダ回路である。汎用レジスタ(GPR)5
へのライトは、W1同期のライト信号によりW2期間中
に実行される。
デコーダ回路(衝突回避回路)である。719は、パイ
プラインインターロック処理を実行するためのデコーダ
回路(データ干渉判定回路)である。また722は、P
SWからの条件実行フラグとレジスタ702内の条件実
行フィールドから条件実行を制御する条件実行制御回路
である。条件実行制御回路722からキャンセル信号が
各種デコーダ回路に出力されて条件実行の可否を制御し
ている。
御回路図を示すブロック図であり、図15に示すデコー
ダ回路719に相当するものである。図において、80
0〜803は、パイプラインインターロックが必要か否
か検知する制御ブロックである。この制御ブロック80
0は、メモリアクセスユニット3のパイプラインのEス
テージでのデスティネーションレジスタ指定フィールド
810とDステージのソースレジスタ指定フィールド8
11とを比較器814で比較し、その比較結果とオペコ
ード812,813との値からパイプラインインターロ
ックを判定する回路815より構成されている。
イプラインのDステージでの条件実行フィールド816
が、0以上であることを比較器819で比較し、その比
較結果とオペコード817,818との値からパイプラ
インインターロックを判定する回路820より構成され
ている。
イプラインのDステージでのオペコード821とデステ
ィネーションレジスタ指定フィールド822との値か
ら、パイプラインフラッシュを判定する判定回路823
より構成されている。
00,802,803と同様な回路構成を有する制御ブ
ロックであり、このような制御ブロックがパイプライン
インターロック制御回路部には多数存在する。各制御ブ
ロック800〜803からの出力信号は、AND回路8
30〜833へ出力され、制御信号850がHighレ
ベルである時にキャンセルされる。AND回路830〜
833からの出力は、タイミング調整回路835〜83
8へ出力され、これによりパイプラインインターロック
制御用の必要なタイミングの信号851〜854が生成
される。パイプラインインターロック制御信号851〜
854は、OR回路839へ入力され、ラッチを介して
信号855として出力される。
722を示すブロック図であり、図において、860,
861は、メモリアクセス部及び整数演算部それぞれの
3ビットの条件実行フィールドをデコードするデコード
回路である。862,863は、プロセッサ状態ワード
(PSW)から得られる条件実行フラグ880とデコー
ダ860,861のデコード結果とから条件実行命令を
実行するか否かを判定する条件実行判定回路である。
は、OR回路864,865に出力され、パイプライン
インターロック信号881とOR処理された後に出力さ
れる。さらにそれらの信号は、866〜871のE1,
E2,W1同期のラッチで必要なタイミングに加工さ
れ、キャンセル信号として出力される。884a,88
4b,884c,885a,885b,885cは、ラ
ッチ886〜871の更新処理を制御するライトイネー
ブル信号である。
ック図であり、図15に示すデコーダ回路718に相当
するものである。図において、890,891はバイパ
ス処理が必要か否か検知する制御ブロックである。制御
ブロック890では、メモリアクセスユニット3のDス
テージのソースレジスタ指定フィールド892と整数演
算ユニット4のWステージのデスティネーションレジス
タ指定フィールド893とを比較器896で比較し、そ
の結果とオペコード894,895との値からバイパス
処理が必要か否かを判定する回路897より構成されて
いる。891は、異なる命令コードを入力するバイパス
制御回路890と同様な回路構成を有する制御ブロック
であり、このような制御ブロックがバイパス制御回路部
には複数個存在する。各制御ブロック890,891か
らの出力は、OR回路898,899へ出力され、そこ
で制御信号900とOR処理されてバイパス経路選択信
号として出力される。
理 次に、この発明のマイクロプロセッサ1でのパイプライ
ンインターロックキャンセル処理に係わる各実施の形態
について説明する。この発明のマイクロプロセッサ1に
おけるパイプラインインターロックキャンセル処理で
は、パイプラインインターロックを発生させる命令コー
ドが、条件実行判定により不実行となった場合に、その
パイプラインインターロック処理をキャンセルし、パイ
プラインのペナルティを削減するものである。
の形態1によるマイクロプロセッサ1のメモリアクセス
時のパイプラインインターロックキャンセル処理を示す
タイミング図であり、図において、白の部分はメモリア
クセスユニット3で実行されているパイプライン、斜線
部分は、整数演算ユニット4で実行されているパイプラ
インを示す。
行されるロード命令のパイプラインである。902はパ
イプライン901の後続のパイプラインである。903
は条件実行判定で不実行となるロード命令のパイプライ
ンである。904はパイプライン903の後続のパイプ
ラインである。
は、ロード命令のパイプライン901では、D1で汎用
レジスタ(GPR)5からデータの読み出しを開始し、
読み出したデータを用いてD2でデータRAM7に対す
るアドレス計算を行う。そしてMステージからデータR
AMリクエスト信号を出力する。そのリクエストに対す
るデータの読み出しが2クロック後である場合、そのデ
ータが到達する2クロックの間、パイプライン901の
Mステージはインターロックされる。そして後続のパイ
プライン902のDステージもパイプラインが停止され
てペナルティが発生する。
03では、Dステージで条件実行判定を行い、D2から
条件実行キャンセル信号を出力する。そしてそのキャン
セル信号によりデータRAMリクエスト信号をキャンセ
ルし、Mステージ以降のパイプラインをキャンセルす
る。これにより実施の形態1のマイクロプロセッサで
は、Mステージでのパイプラインインターロックが発生
しないため、後続パイプライン904もペナルティなし
に実行することが可能となる。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
19に示すメモリアクセス時のパイプラインインターロ
ックキャンセル処理を示すタイミング図を用いて、メモ
リアクセス時のパイプラインインターロックキャンセル
処理について説明する。
が、図10〜図13に示す命令RAM6からI2IDB
USを介して読み出され、図15に示すセレクタ700
を介して各制御回路に転送され読み出された命令が転送
される。デコーダ回路710では、アドレス計算用のソ
ースデータの読み出しを行うための汎用レジスタ(GP
R)5への読み出し信号の生成を行う。そして図12に
示す加算器32では、D1S1BUS、D1S2BUS
へ読み出されたソースデータを加算し、アドレスの計算
を行う。そして生成されたアドレスは、オペランドアド
レスバスM1OABUSへ出力される。
レジスタ702の命令コードをデコード回路712でデ
コードし、ラッチ713を介してMステージより出力さ
れる。そしてデータRAMより読み出されたデータは、
図10〜図13に示すオペランドデータバスM2ODB
US経由で符号拡張部33を介してロードデータレジス
タ53に取り込まれる。そしてレジスタ53の値は、ラ
イトバックバスW1W3EBUS,W1W3OBUSを
介して汎用レジスタ(GPR)5に書き込まれる。
号であるGPRライト信号は、図15に示すレジスタ7
05の値をデコーダ回路716でデコードして生成す
る。データRAMアクセスでパイプラインインターロッ
クが発生した場合は、図15に示す命令コードライト信
号生成回路(実行停止回路)720で命令コードの更新
を制御するように信号を生成し、レジスタ701〜70
5の更新をインターロック期間中停止する。このロード
命令が条件実行判定で不実行である場合は、図15に示
す条件実行制御回路722から条件実行キャンセル信号
723がデコーダ回路712,716に出力されて、デ
ータRAMリクエスト信号及び汎用レジスタライト信号
がキャンセルされる。
ば、ロード命令が条件実行判定で不実行となった場合
に、ロードしたデータを汎用レジスタ(GPR)5へ書
き込む処理のみをキャンセルするのではなく、データR
AMアクセス処理の動作からキャンセルするので、先行
命令と現在実行する命令のパイプライン間にデータ干渉
が発生した場合におけるパイプラインの停止動作をキャ
ンセルするのでパイプラインのペナルティを削減するこ
とができる。
の形態2によるマイクロプロセッサ1のアドレス計算デ
ータのパイプラインインターロックキャンセル処理を示
すタイミング図であり、図において、白の部分はメモリ
アクセスユニット3で実行されているパイプライン、斜
線部分は、整数演算ユニット4で実行されているパイプ
ラインを示す。
行される加算命令のパイプラインである。906は、パ
イプライン905の後続のロード命令のパイプラインで
ある。907は、条件実行判定で不実行となる加算命令
のパイプラインである。908は、パイプライン907
の後続のロード命令のパイプラインである。
では、パイプライン905の加算命令の書き込みレジス
タr10から、パイプライン906のロード命令のアド
レス計算用のデータ読み出しが発生した場合、そのデー
タ干渉をパイプライン906のDステージで検知し、パ
イプラインインターロック信号を生成する。パイプライ
ンインターロック信号が生成されると、パイプライン9
06のD/Aステージを1クロック停止するためのセレ
クタ信号を生成する。そしてパイプライン905のEス
テージで加算されたデータを、パイプライン906にバ
イパスするための制御信号を生成し、バイパス処理を実
行する。このようなアドレス計算用データのデータ干渉
が発生した場合、パイプラインインターロックのための
ペナルティが1クロック発生する。
7では、Dステージで条件実行判定を行い、D2から条
件実行キャンセル信号を出力する。そのキャンセル信号
により、パイプライン908のDステージで検知するパ
イプラインインターロック信号をキャンセルする。これ
により、実施の形態2のマイクロプロセッサ1では、パ
イプライン908のアドレス計算用データのためのパイ
プラインインターロックが発生しないため、後続パイプ
ライン908をペナルティなしに実行することができ
る。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
20に示すアドレス計算データのパイプラインインター
ロックキャンセル処理を示すタイミング図を用いて、ア
ドレス計算データのパイプラインインターロックキャン
セル処理について説明する。
命令が、図10〜図13に示す命令RAM6からI2I
DBUSを介して読み出されると、図15に示すセレク
タ700を介して各制御回路に転送される。デコーダ回
路(データ干渉判定回路)719では、セレクタ700
からのロード命令の命令コードと、Dステージの命令コ
ードを保持するレジスタ701の出力とを比較し、パイ
プラインインターロックが発生していることを検知す
る。パイプラインインターロック信号731,735を
生成し、セレクタ制御回路721と命令コードライト信
号生成回路720とデコーダ回路718へ出力する。
はライト信号が出力され、レジスタ701の値をフィー
ドバックレジスタ706に取り込む。そしてセレクタ制
御回路721では、フィードバックレジスタ706の値
を選択するようにセレクタ700を制御して、そのロー
ド命令のコードを各制御回路に出力する。この処理によ
り、図20に示すパイプライン906のD/Aステージ
が1クロックインターロックされることになる。デコー
ダ回路718では、デコーダ回路719からのパイプラ
インインターロック信号735を受けてバイパス経路選
択信号を生成し、図10〜図13に示すバイパス経路2
03を経由してALU15で加算した結果データを取り
込んだライトバックレジスタ51の値を、D1同期バス
群に出力する。
て、図20に示すパイプライン906のロード命令は、
図10〜図13に示すアドレス計算用の加算器32でデ
ータRAMアクセス用のアドレスを計算し、以降のステ
ージの処理を実行する。図20に示すパイプライン90
7の加算命令のように、条件実行判定で不実行となった
場合、図15に示す条件実行制御回路722から条件実
行キャンセル信号723がデコーダ回路719へ出力さ
れ、パイプラインインターロック信号をキャンセルす
る。
ば、ロード命令のアドレス計算用データが同じ整数演算
ユニット4で実行される先行命令の結果データと干渉を
起こしており、かつその先行命令が条件実行判定で不実
行となった場合に、その条件実行キャンセル信号でパイ
プラインインターロック信号とバイパス経路選択信号を
キャンセルするので、パイプラインのペナルティを削除
することができる。
の発明の実施の形態3によるマイクロプロセッサ1の異
なる実行ユニット間でのパイプラインインターロックキ
ャンセル処理を示すタイミング図であり、図において、
白の部分はメモリアクセスユニット3で実行されている
パイプライン、斜線部分は、整数演算ユニット4で実行
されているパイプラインを示す。この実施の形態3の説
明では、先ず図21に示す異なる実行ユニット間のパイ
プラインインターロックキャンセル処理の例を説明し、
次に図22に示す異なる実行ユニット間でのパイプライ
ンインターロックキャンセル処理の例を説明する。
ット4で実行される加算命令のパイプラインである。9
12は、パイプライン911の後続のメモリアクセスユ
ニット3で実行されるロード命令のパイプラインであ
る。913は、条件実行判定で不実行となる整数演算ユ
ニット4で実行される加算命令のパイプラインである。
914は、パイプライン913の後続のメモリアクセス
ユニット3で実行されるロード命令のパイプラインであ
る。
は、パイプライン911の加算命令の書き込みレジスタ
r10からパイプライン912のロード命令のアドレス
計算用のデータ読み出しが発生した場合、そのデータ干
渉をパイプライン912のDステージで検知し、パイプ
ラインインターロック信号を生成する。パイプラインイ
ンターロック信号は、パイプライン911のWステージ
が完了しデータr10が汎用レジスタ(GPR)5内に
書き込まれてから、パイプライン912のD/Aステー
ジでの汎用レジスタ(GPR)5からの読み出しが実行
できるまでの2クロック分生成される。そして、パイプ
ラインインターロック信号は、パイプライン912のD
/Aステージを2クロック停止するためのセレクタ信号
を生成する。このようなアドレス計算用データのデータ
干渉が発生した場合、パイプラインインターロックのた
めのペナルティが2クロック発生する。
3では、Dステージで条件実行判定を行い、D2から条
件実行キャンセル信号を出力する。そしてそのキャンセ
ル信号により、パイプライン914のDステージで検知
するパイプラインインターロック信号をキャンセルす
る。これにより、実施の形態3のマイクロプロセッサ1
では、パイプライン914のアドレス計算用データのた
めのパイプラインインターロックが発生しないために、
後続パイプライン914をペナルティなしに実行するこ
とが可能となる。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
21に示す異なる実行ユニット間でのパイプラインイン
ターロックキャンセル処理を示すタイミング図を用い
て、異なる実行ユニット間でのパイプラインインターロ
ックキャンセル処理について説明する。
命令が、図10〜図13に示す命令RAM6からI2I
DBUSを介して読み出されると、読み出されたロード
命令は、図15に示すセレクタ700を介して各制御回
路に転送される。デコーダ回路(データ干渉判定回路)
719では、セレクタ700からのロード命令の命令コ
ードと、Dステージの命令コードとを保持するレジスタ
702の出力とを比較し、パイプラインインターロック
が発生していることを検知する。そして、パイプライン
インターロック信号731を生成し、セレクタ制御回路
721と命令コードライト信号生成回路720に出力す
る。命令コードライト信号生成回路720からはライト
信号が出力され、レジスタ701の値をフィードバック
レジスタ706に取り込む。
ドバックレジスタ706の値を選択するようにセレクタ
700を制御して、そのロード命令のコードを各制御回
路に出力する。この処理により、図21に示すのパイプ
ライン912のD/Aステージが2クロックインターロ
ックされることになる。
内の加算器20で実行された図21に示すパイプライン
911の加算処理結果が、レジスタ55及びライトバッ
クレジスタ54を介して汎用レジスタ(GPR)5内に
W2期間中に書き込まれてから、図21に示すパイプラ
イン912のロード命令では汎用レジスタ(GPR)5
からのデータのリード動作を開始し、アドレス加算器3
2でデータRAMアクセス用のアドレスを生成する。
ニット間のパイプラインインターロックキャンセル処理
を実行するマイクロプロセッサ1によれば、パイプライ
ン913の加算命令のように、条件実行判定で不実行と
なった場合、図15に示す条件実行制御回路722から
条件実行キャンセル信号723がデコーダ回路719に
出力され、パイプラインインターロック信号をキャンセ
ルする。
のパイプラインインターロックキャンセル処理のタイミ
ング図、図10〜図13に示すこの発明のマイクロプロ
セッサ1のブロック図、および図15に示す命令デコー
ドユニット2内に組み込まれている制御回路のブロック
図を用いて、図21に示す異なる実行ユニット間でのパ
イプラインインターロックキャンセル処理の他の例に関
して説明する。
ト4で実行される加算命令のパイプライン、916はパ
イプライン915の1クロック後のメモリアクセス部で
実行されるロード命令のパイプラインである。917
は、条件実行判定で不実行となる整数演算ユニット4で
実行される加算命令のパイプラインである。918は、
パイプライン917の1クロック後のメモリアクセス部
で実行されるロード命令のパイプラインである。
では前記した機能に加え、さらに以下の機能を備える。
即ち、実施の形態3のマイクロプロセッサ1では、パイ
プライン915の加算命令の書き込みレジスタr10か
らパイプライン916のロード命令のアドレス計算用の
データ読み出しが発生した場合、そのデータ干渉をパイ
プライン916のDステージで検知し、パイプラインイ
ンターロック信号を生成する。パイプラインインターロ
ック信号は、パイプライン915のWステージが完了し
データr10がGPRに書き込まれてから、パイプライ
ン916のD/Aステージでの汎用レジスタ(GPR)
5からのデータの読み出しが実行できるまでの1クロッ
ク分生成される。そしてパイプラインインターロック信
号は、パイプライン916のD/Aステージを1クロッ
ク停止するためのセレクタ信号を生成する。このような
アドレス計算用データのデータ干渉が発生した場合、パ
イプラインインターロックのためのペナルティが1クロ
ック発生する。
7では、Dステージで条件実行判定を行い、D2から条
件実行キャンセル信号を出力する。そしてそのキャンセ
ル信号により、パイプライン918のDステージで検知
するパイプラインインターロック信号をキャンセルす
る。これにより、実施の形態3のマイクロプロセッサ1
は、パイプライン918のアドレス計算用データのため
のパイプラインインターロックが発生しないため、後続
パイプライン918をペナルティなしに実行することが
できるものである。
なる実行ユニット間のパイプラインインターロックキャ
ンセル処理の他の例について説明する。図22に示すパ
イプライン916のロード命令が、図10〜図13に示
す命令RAM6からI2IDBUSを介して読み出され
ると、図15に示すセレクタ700を介して各制御回路
に転送される。
レクタ700から送信されたロード命令の命令コード
と、Eステージの命令コードを保持するレジスタ704
の出力とを比較し、パイプラインインターロックが発生
していることを検知する。そしてパイプラインインター
ロック信号731を生成し、セレクタ制御回路721と
命令コードライト信号生成回路720に出力する。
イト信号を出力し、レジスタ701の値をフィードバッ
クレジスタ706内に取り込む。そしてセレクタ制御回
路721では、フィードバックレジスタ706の値を選
択するようにセレクタ700を制御して、そのロード命
令のコードを各制御回路に出力する。この処理により、
図22に示すパイプライン916のD/Aステージが1
クロックインターロックされることになる。
内の加算器20で実行された図22に示すパイプライン
915の加算処理結果が、レジスタ55及びライトバッ
クレジスタ54を介して汎用レジスタ(GPR)5内へ
W2期間中に書き込まれた後、図22に示すパイプライ
ン916のロード命令では、汎用レジスタ(GPR)5
に対するデータのリード動作を開始し、アドレス加算器
32でデータRAMアクセス用のアドレスを生成する。
令のように、条件実行判定で不実行となった場合、図1
5に示す条件実行制御回路722から条件実行キャンセ
ル信号723がデコーダ回路(データ干渉判定回路)7
19へ出力され、パイプラインインターロック信号をキ
ャンセルする。
ば、異なる命令実行ユニット間でデータ干渉を起こして
おり、かつその先行命令が条件実行判定で不実行となっ
た場合に、その条件実行キャンセル信号でパイプライン
インターロック信号をキャンセルするので、パイプライ
ンのペナルティを削除することができる。
の形態4によるマイクロプロセッサ1の乗算データのパ
イプラインインターロックキャンセル処理を示すタイミ
ング図であり、図において、白の部分はメモリアクセス
ユニット3で実行されているパイプライン、斜線部分
は、整数演算ユニット4で実行されているパイプライン
を示す。
行されるロード命令のパイプラインである。922は、
パイプライン921の後続の整数演算ユニット4で実行
される乗算命令のパイプラインである。923は、条件
実行判定で不実行となるメモリアクセスユニット3で実
行されるロード命令のパイプラインである。924は、
パイプライン923の後続の整数演算ユニット4で実行
される乗算命令のパイプラインである。
は、図23に示すパイプライン921のロード命令の書
き込みレジスタr20からパイプライン922の乗算命
令のソースデータ読み出しが発生した場合、そのデータ
干渉をパイプライン922のDステージで検知し、パイ
プラインインターロック信号を生成する。パイプライン
インターロック信号が生成されると、パイプライン92
2のDステージを1クロック停止するためのセレクタ信
号を生成する。そして、パイプライン921のMステー
ジでロードしたデータをパイプライン922にバイパス
するための制御信号を生成しバイパス処理を実行する。
発生した場合、パイプラインインターロックのためのペ
ナルティが1クロック発生する。不実行となる加算命令
のパイプライン923では、Dステージで条件実行判定
を行い、D2から条件実行キャンセル信号を出力する。
そしてそのキャンセル信号により、パイプライン924
のDステージで検知するパイプラインインターロック信
号をキャンセルする。これにより、実施の形態4のマイ
クロプロセッサ1では、パイプライン924の乗算デー
タのためのパイプラインインターロックが発生しないの
で、後続パイプライン924をペナルティなしに実行す
ることができるものである。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
23に示す乗算データのパイプラインインターロックキ
ャンセル処理を示すタイミング図を用いて、乗算データ
のパイプラインインターロックキャンセル処理について
説明する。
令が、図10〜図13に示す命令RAM6からI2ID
BUSを介して読み出されると、読み出された命令は、
図15に示すセレクタ700を介して各制御回路に転送
される。図15に示すデコーダ回路(データ干渉判定回
路)719では、セレクタ700からの乗算命令の命令
コードと、Dステージの命令コードを保持するレジスタ
702の出力とを比較し、パイプラインインターロック
が発生していることを検知する。そして、パイプライン
インターロック信号731,735を生成し、セレクタ
制御回路721と命令コードライト信号生成回路720
とデコーダ回路718へ出力する。
はライト信号が出力され、レジスタ701の値をフィー
ドバックレジスタ706に取り込む。そしてセレクタ制
御回路721では、フィードバックレジスタ706の値
を選択するようにセレクタ700を制御して、その乗算
命令のコードを各制御回路に出力する。この処理によ
り、図23に示すのパイプライン922のDステージが
1クロックインターロックされることになる。
コーダ回路719からのパイプラインインターロック信
号735を受け、バイパス経路選択信号をさらに1クロ
ック余分に生成し、図10〜図13に示すバイパス経路
208を経由して、オペランドデータバスM2ODBU
Sの値を符号拡張部200で処理した値を整数演算ユニ
ット4のD2同期バス群へ出力する。そして、図23に
示すパイプライン922の乗算命令は、そのバイパスさ
れたデータを、図10〜図13に示す乗算器17の入力
ラッチ22内4に取り込み、乗算処理を実行し、それ以
降のステージを継続する。
ド命令のように条件実行判定で不実行となった場合、図
15に示す条件実行制御回路722から条件実行キャン
セル信号723がデ、コーダ回路719に出力され、パ
イプラインインターロック信号をキャンセルする。
ば、メモリアクセスユニット3で実行されるロード命令
のロードデータが、整数演算ユニット4で実行される乗
算命令のソースデータとデータ干渉を起こしており、か
つその先行ロード命令が条件実行判定で不実行となった
場合に、その条件実行キャンセル信号でパイプラインイ
ンターロック信号とバイパス経路選択信号をキャンセル
するので、パイプラインのペナルティを削除することが
できる。
の形態5によるマイクロプロセッサ1のキャリーフラグ
のパイプラインインターロックキャンセル処理を示すタ
イミング図であり、図において、白の部分はメモリアク
セスユニット3で実行されているパイプライン、斜線部
分は、整数演算ユニット4で実行されているパイプライ
ンを示す。
行される加算命令のパイプラインである。926は、パ
イプライン925の後続のキャリーフラグを用いる加算
命令のパイプラインである。927は、条件実行判定で
不実行となるメモリアクセスユニット3で実行される加
算命令のパイプラインである。928は、パイプライン
927の後続のキャリーフラグを用いる加算命令のパイ
プラインである。
は、パイプライン925の加算命令がキャリーフラグを
更新し、パイプライン926の命令がその更新されたキ
ャリーフラグを用いて加算処理を行う場合、そのキャリ
ーフラグの干渉をパイプライン926のDステージで検
知し、パイプラインインターロック信号を生成する。パ
イプラインインターロック信号が生成されると、パイプ
ライン926のDステージを1クロック停止するための
セレクタ信号を生成する。そして、キャリーセレクト信
号を生成して、パイプライン925のW1で更新された
キャリーフラグをパイプライン926に転送する。
た場合、パイプラインインターロックのためのペナルテ
ィが1クロック発生する。不実行となる加算命令のパイ
プライン927では、Dステージで条件実行判定を行
い、D2から条件実行キャンセル信号を出力する。そし
てそのキャンセル信号により、パイプライン928のD
ステージで検知するパイプラインインターロック信号を
キャンセルする。これにより、実施の形態5のマイクロ
プロセッサ1は、パイプライン928のキャリーフラグ
のためのパイプラインインターロックが発生しないため
に、後続パイプライン928をペナルティなしに実行す
ることができるものである。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
24に示すキャリーフラグのパイプラインインターロッ
クキャンセル処理を示すタイミング図を用いて、キャリ
ーフラグのパイプラインインターロックキャンセル処理
について説明する。
ーフラグを用いる加算命令が、図10〜図13に示す命
令RAM6からI2IDBUSを介して読み出される
と、図15に示すセレクタ700を介して各制御回路に
転送される。図15に示すデコーダ回路(フラグ干渉判
定回路)719では、セレクタ700からのその加算命
令の命令コードと、Dステージの命令コードを保持する
レジスタ702の出力を比較し、パイプラインインター
ロックが発生していることを検知する。そしてパイプラ
インインターロック信号731を生成し、セレクタ制御
回路721と命令コードライト信号生成回路720に出
力する。
はライト信号が出力され、レジスタ701の値をフィー
ドバックレジスタ706内に取り込む。そしてセレクタ
制御回路721は、フィードバックレジスタ706の値
を選択するようにセレクタ700を制御して、その乗算
命令のコードを各制御回路に出力する。この処理によ
り、図24に示すパイプライン926のDステージが1
クロックインターロックされることになる。
ック間キャリーフラグを用いる加算命令のコードを保持
しているレジスタ702の値をデコードし、キャリーセ
レクト信号を2クロック間生成する。その信号により、
図10〜図13に示すフラグ経路62から更新されたキ
ャリーフラグの値がALU15内へ入力され、そのフラ
グ値を用いた加算命令を実行する。
令のように、条件実行判定で不実行となった場合、図1
5に示す条件実行制御回路722から条件実行キャンセ
ル信号723がデコーダ回路719へ出力され、パイプ
ラインインターロック信号をキャンセルする。
ば、あるフラグを用いる命令の先行命令がそのフラグを
更新し、かつその先行命令が条件実行判定で不実行とな
った場合に、その条件実行キャンセル信号でパイプライ
ンインターロック信号をキャンセルするので、パイプラ
インのペナルティを削除することができる。
の形態6によるマイクロプロセッサ1の条件実行フラグ
のパイプラインインターロックキャンセル処理を示すタ
イミング図であり、図において、白の部分はメモリアク
セスユニット3で実行されているパイプライン、斜線部
分は、整数演算ユニット4で実行されているパイプライ
ンを示す。
行される比較命令のパイプラインである。932は、パ
イプライン931の後続の条件実行判定を伴う加算命令
のパイプラインである。933は、条件実行判定で不実
行となるメモリアクセスユニット3で実行される比較命
令のパイプラインである。934は、パイプライン93
3の後続の条件実行判定を伴う加算命令のパイプライン
である。
は、パイプライン931の比較命令が条件実行フラグを
更新し、パイプライン932の命令がその更新された条
件実行フラグを用いて条件実行判定を伴う場合、その条
件実行フラグの干渉をパイプライン932のDステージ
で検知し、パイプラインインターロック信号を生成す
る。パイプラインインターロック信号が生成されると、
パイプライン932のDステージを1クロック停止する
ためのセレクタ信号を生成する。そして条件実行判定期
間中信号を生成して、パイプライン931のW1で更新
された条件実行フラグをパイプライン932で条件実行
の判定に用いる。このような条件実行フラグの干渉が発
生した場合、パイプラインインターロックのためのペナ
ルティが1クロック発生する。
3では、Dステージで条件実行判定を行い、D2から条
件実行キャンセル信号を出力する。そして、そのキャン
セル信号により、パイプライン934のDステージで検
知するパイプラインインターロック信号をキャンセルす
る。これにより、実施の形態6のマイクロプロセッサ1
では、パイプライン934の条件実行フラグのためのパ
イプラインインターロックが発生しないために、後続パ
イプライン934をペナルティなしに実行することがで
きるものである。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
25に示す条件実行フラグのパイプラインインターロッ
クキャンセル処理を示すタイミング図を用いて、条件実
行フラグのパイプラインインターロックキャンセル処理
について説明する。
行判定を伴う加算命令が、図10〜図13に示す命令R
AM6からI2IDBUSを介して読み出されると、図
15に示すセレクタ700を介して各制御回路に転送さ
れる。デコーダ回路(フラグ干渉判定回路)719は、
セレクタ700からその加算命令の命令コードと、Dス
テージの命令コードを保持するレジスタ702の出力と
を比較し、パイプラインインターロックが発生している
ことを検知する。そして、パイプラインインターロック
信号731を生成し、セレクタ制御回路721と命令コ
ードライト信号生成回路720へ出力する。命令コード
ライト信号生成回路720からレジスタ701へライト
信号が出力され、レジスタ701の値をフィードバック
レジスタ706内へ取り込む。そして、セレクタ制御回
路721は、フィードバックレジスタ706の値を選択
するようにセレクタ700を制御して、その乗算命令の
コードを各制御回路に出力する。この処理により、図2
5に示すパイプライン932のDステージが1クロック
インターロックされることになる。
令のように、条件実行判定で不実行となった場合、図1
5に示す条件実行制御回路722から条件実行キャンセ
ル信号723がデコーダ回路719へ出力され、パイプ
ラインインターロック信号をキャンセルする。
ば、条件実行判定を伴う命令の先行命令が条件実行フラ
グを更新し、かつその先行命令が条件実行判定で不実行
となった場合に、その条件実行キャンセル信号によりパ
イプラインインターロック信号をキャンセルするので、
パイプラインのペナルティを削除することができる。
の形態7によるマイクロプロセッサ1のモードフラグ更
新時のパイプラインインターロックキャンセル処理を示
すタイミング図であり、図において、白の部分はメモリ
アクセスユニット3で実行されているパイプライン、斜
線部分は、整数演算ユニット4で実行されているパイプ
ラインを示す。
行される制御レジスタデータ転送命令のパイプラインで
ある。936は、パイプライン935の後続命令のパイ
プラインである。937は、条件実行判定で不実行とな
るメモリアクセスユニット3で実行される制御レジスタ
データ転送命令のパイプラインである。938は、パイ
プライン937の後続命令のパイプラインである。
は、パイプライン935の制御レジスタデータ転送命令
がモードフラグを更新した場合、そのモードフラグの更
新をパイプライン925のDステージで検知し、パイプ
ラインインターロック信号を生成する。パイプラインイ
ンターロック信号が生成されると、パイプライン935
のE2で更新されたモードフラグの値で後続命令を実行
できるまで、後続命令が2クロック間インターロックさ
れる。このようなモードフラグの更新が発生した場合、
パイプラインインターロックのためのペナルティが2ク
ロック発生する。
のパイプライン937では、Dステージで条件実行判定
を行い、D2から条件実行キャンセル信号を出力する。
そして、そのキャンセル信号によりパイプラインインタ
ーロック信号をキャンセルする。これにより、実施の形
態7のマイクロプロセッサ1は、後続パイプライン93
8をペナルティなしに実行することができるものであ
る。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
26に示すモードフラグ更新時のパイプラインインター
ロックキャンセル処理を示すタイミング図を用いて、モ
ードフラグ更新時のパイプラインインターロックキャン
セル処理について説明する。
フラグを更新する制御レジスタデータ転送命令が、図1
0〜図13に示す命令RAM6からI2IDBUSを介
して読み出されると、読み出された命令は、図15に示
すセレクタ700を介して各制御回路に転送される。デ
コーダ回路(モードフラグ判定回路)719では、セレ
クタ700からのその制御レジスタデータ転送命令の命
令コードからパイプラインインターロック信号を生成す
る。そしてそのパイプラインインターロック信号734
を生成し、デコーダ回路717に出力する。デコーダ回
路717では、図10〜図13に示す命令アドレスレジ
スタ29を更新する制御信号が生成されている。その更
新制御信号をパイプラインインターロック信号でキャン
セルすることにより、命令アドレスレジスタの更新を停
止する。これにより、図26に示す後続のパイプライン
936のIFステージを停止することが可能である。
ジスタデータ転送命令のように条件実行判定で不実行と
なった場合、図15に示す条件実行制御回路722から
条件実行キャンセル信号723がデコーダ回路719へ
出力され、パイプラインインターロック信号をキャンセ
ルする。
ば、モードフラグを更新する命令が条件実行判定で不実
行となった場合に、その条件実行キャンセル信号で後続
命令のパイプラインインターロック信号をキャンセルす
るので、パイプラインのペナルティを削除することがで
きる。
の形態8によるマイクロプロセッサ1のリソースコンフ
リクト発生時のパイプラインインターロックキャンセル
処理を示すタイミング図であり、図において、白の部分
はメモリアクセスユニット3で実行されているパイプラ
イン、斜線部分は、整数演算ユニット4で実行されてい
るパイプラインを示す。
行されるロード命令のパイプラインである。942は、
パイプライン941と同時に整数演算ユニット4で実行
される乗算命令のパイプラインである。943は、パイ
プライン941,942の後続命令のパイプラインであ
る。944は、条件実行判定で不実行となるメモリアク
セスユニット3で実行されるロード命令のパイプライン
である。945は、パイプライン944と同時に整数演
算ユニット4で実行される乗算命令のパイプラインであ
る。946は、パイプライン944,945の後続命令
のパイプラインである。948は、条件実行判定で不実
行となる整数演算ユニット4で実行される乗算命令のパ
イプラインである。947は、パイプライン948と同
時に実行されるメモリアクセスユニット3で実行される
ロード命令のパイプラインである。949は、パイプラ
イン947,948の後続命令のパイプラインである。
は、図27に示すパイプライン941,942のよう
に、メモリアクセスユニット3でのロード命令と整数演
算ユニット4での乗算命令が同時に実行される場合、W
ステージでの汎用レジスタ(GPR)5へのデータの書
き込み時に、同じライトバックバスを用いるためにリソ
ースコンフリクト(リソース衝突)が発生する。
め、パイプライン942のWステージを1クロックスト
ールし、パイプライン941の結果を汎用レジスタ(G
PR)5へ書き込んだ1クロック後に、パイプライン9
42の結果を汎用レジスタ(GPR)5へ書き込む。こ
のパイプラインストール信号は、パイプライン941,
942のDステージで生成し、後続命令のパイプライン
943のIFステージをストールする。そしてGRPラ
イト信号を2クロック間生成し、パイプライン941の
結果を書き込むアドレスAとパイプライン942の結果
を書き込むアドレスBを連続して出力する。このよう
に、リソースコンフリクトが発生した場合、パイプライ
ンストールのためのペナルティが1クロック発生する。
44では、Dステージで条件実行判定を行い、D2から
条件実行キャンセル信号を出力する。そしてこの条件実
行キャンセル信号により、パイプラインストール信号を
キャンセルする。そしてパイプライン945の結果をG
PRに書き込むためのアドレスBをGPRライト信号と
共に出力する。これによりパイプライン945の後続パ
イプライン946をペナルティなしに実行することが可
能である。
8では、Dステージで条件実行判定を行い、D2から条
件実行キャンセル信号を出力する。そしてこの条件実行
キャンセル信号により、パイプラインストール信号をキ
ャンセルする。そしてパイプライン947の結果を汎用
レジスタ(GPR)5へ書き込むためのアドレスAをG
PRライト信号と共に出力する。これにより、実施の形
態8のマイクロプロセッサ1は、パイプライン947の
後続パイプライン949をペナルティなしに実行するこ
とができるものである。
10〜図13に示すこの発明のマイクロプロセッサ1の
ブロック図および図15に示す命令デコードユニット2
内に組み込まれている制御回路のブロック図、および図
27に示すリソースコンフリクト発生時のパイプライン
インターロックキャンセル処理を示すタイミング図を用
いて、リソースコンフリクト発生時のパイプラインイン
ターロックキャンセル処理について説明する。
のロード命令と乗算命令が、図10〜図13に示す命令
RAM6からI2IDBUSを介して読み出されると、
読み出された命令は、図15に示すセレクタ700を介
して各制御回路に転送される。
回路)719は、セレクタ700からのその命令コード
からリソースコンフリクトによるパイプラインインター
ロックが発生していることを検知する。そして、パイプ
ラインインターロック信号730,732,735を生
成し、命令コードライト信号生成回路720とデコーダ
回路(衝突回避回路)718とデコーダ回路(衝突回避
回路)716へ出力する。
レジスタ705へ送信されるライト信号によりレジスタ
705の更新動作を制御し、Wステージの命令コードを
2クロック間保持する。そしてデコーダ回路716で
は、そのWステージの命令コードをデコードして、最初
にメモリアクセスユニット3へのGPRライト信号を出
力し、次に整数演算ユニット4へのGPRライト信号を
出力する。
13に示す命令アドレスレジスタ29の更新制御信号を
加工し、命令アドレスレジスタ29の値を更新しないよ
うに処理する。これにより、パイプライン943のIF
ステージをストールし、それ以降のステージを継続す
る。
命令のように、条件実行判定で不実行となった場合、図
15に示す条件実行制御回路722から条件実行キャン
セル信号723がデコーダ回路719に出力され、パイ
プラインストール信号をキャンセルする。そして、図1
5に示すデコーダ回路(衝突回避回路)716では、整
数演算ユニット4の結果を書き込むためのGPRライト
信号を出力する。また図27に示すパイプライン948
の乗算命令のように、条件実行判定で不実行となった場
合、図15に示す条件実行制御回路722から条件実行
キャンセル信号723が、デコーダ回路719へ出力さ
れ、パイプラインストール信号をキャンセルする。そし
てデコーダ回路716では、メモリアクセスユニット3
での実行結果を書き込むためのGPRライト信号を出力
する。
るリソースコンフリクトによりパイプラインインターロ
ックが発生し、かつそのリソースコンフリクトを発生さ
せるサブ命令のいずれかが条件実行判定で不実行となっ
た場合に、その条件実行キャンセル信号でパイプライン
ストール信号をキャンセルするので、パイプラインのペ
ナルティを削除することができる。
れば、実行停止回路がプログラム内の先行命令の動作に
基づいて現命令の実行を一時的に停止し、条件実行判定
回路が現命令の実行を行うか否かの判定を行い、条件実
行判定回路が先行命令を実行しないと判定した時に条件
実行制御回路が先行命令の動作を開始する信号を無効と
する処理を行い、パイプラインの停止を誘因した原因と
なる命令が条件実行判定で不実行となった場合、そのパ
イプラインの停止動作をキャンセルするように構成した
ので、パイプラインのペナルティを削減できる効果があ
る。
定回路の判定によりロード命令が条件実行判定で不実行
となった場合に、ロードしたデータをGPRに書き込む
処理のみをキャンセルするのではなく、条件実行制御回
路がデータRAMアクセス処理からキャンセルするよう
に構成したので、パイプラインのペナルティを削除でき
る効果がある。
のアドレス計算用データが同じ命令実行ユニットで実行
される先行命令の結果データと干渉を起こし、かつ先行
命令が条件実行判定回路の条件実行判定で不実行となっ
た場合に、条件実行制御回路がその条件実行キャンセル
信号でパイプラインインターロック信号とバイパス経路
選択信号をキャンセルするように構成したので、パイプ
ラインのペナルティを削除できる効果がある。
実行ユニット間でデータ干渉が発生し、かつその先行命
令が条件実行判定回路の条件実行判定で不実行となった
場合に、条件実行制御回路がその条件実行キャンセル信
号でパイプラインインターロック信号をキャンセルする
ように構成したので、パイプラインのペナルティを削除
できる効果がある。
セス部で実行されるロード命令のロードデータが、整数
演算部で実行される乗算命令のソースデータと干渉を起
こし、かつその先行ロード命令が条件実行判定回路の条
件実行判定で不実行となった場合に、条件実行制御回路
がその条件実行キャンセル信号でパイプラインインター
ロック信号とバイパス経路選択信号をキャンセルするよ
うに構成したので、パイプラインのペナルティを削除で
きる効果がある。
を用いる命令の先行命令がそのフラグを更新し、かつそ
の先行命令が条件実行判定回路の条件実行判定で不実行
となった場合に、条件実行制御回路が条件実行キャンセ
ル信号でパイプラインインターロック信号をキャンセル
するように構成したので、パイプラインのペナルティを
削除できる効果がある。
定を伴う命令の先行命令が条件実行フラグを更新し、か
つその先行命令が条件実行判定回路の条件実行判定で不
実行となった場合に、条件実行制御回路がその条件実行
キャンセル信号でパイプラインインターロック信号をキ
ャンセルするように構成したので、パイプラインのペナ
ルティを削除できる効果がある。
グを更新する命令が条件実行判定回路の条件実行判定で
不実行となった場合に、条件実行制御回路がその条件実
行キャンセル信号で後続命令のパイプラインインターロ
ック信号をキャンセルするように構成したので、パイプ
ラインのペナルティを削除できる効果がある。
スコンフリクトによりパイプラインインターロックが発
生し、かつそのリソースコンフリクトを発生させるサブ
命令のいずれかが条件実行判定回路の条件実行判定で不
実行となった場合に、条件実行制御回路が条件実行キャ
ンセル信号でパイプラインストール信号をキャンセルす
るように構成したので、パイプラインのペナルティを削
除できる効果がある。
クロプロセッサの基本構成を示すブロック図である。
を備えるマイクロプロセッサで用いられる命令フォーマ
ットを示す説明図である。
を備えるマイクロプロセッサで用いられる命令フォーマ
ットを示す説明図である。
を備えるマイクロプロセッサで用いられる命令フォーマ
ットを示す説明図である。
を備えるマイクロプロセッサで用いられる命令フォーマ
ットを示す説明図である。
を備えるマイクロプロセッサのレジスタの構成を示す説
明図である。
を備えるマイクロプロセッサのレジスタの構成を示す説
明図である。
を備えるマイクロプロセッサのパイプライン動作を示す
説明図である。
を備えるマイクロプロセッサのパイプライン動作を示す
説明図である。
令を備えるマイクロプロセッサの実行ユニットを中心と
した詳細な構成を示すブロック図であり、図10〜図1
3で一つのブロック図を示す。
である。
である。
である。
干渉を示す説明図である。
るパイプラインインターロックキャンセル処理を制御す
る制御回路を示すブロック図である。
示すブロック図である。
ック図である。
る。
令を備えるマイクロプロセッサのメモリアクセス時のパ
イプラインインターロックキャンセル処理を示すタイミ
ング図である。
令を備えるマイクロプロセッサのアドレス計算データの
パイプラインインターロックキャンセル処理を示すタイ
ミング図である。
令を備えるマイクロプロセッサの異なる実行ユニット間
でのパイプラインインターロックキャンセル処理を示す
タイミング図である。
令を備えるマイクロプロセッサの異なる実行ユニット間
でのパイプラインインターロックキャンセル処理を示す
タイミング図である。
令を備えるマイクロプロセッサの乗算データのパイプラ
インインターロックキャンセル処理を示すタイミング図
である。
令を備えるマイクロプロセッサのキャリーフラグのパイ
プラインインターロックキャンセル処理を示すタイミン
グ図である。
令を備えるマイクロプロセッサの条件実行フラグのパイ
プラインインターロックキャンセル処理を示すタイミン
グ図である。
令を備えるマイクロプロセッサのモードフラグ更新時の
パイプラインインターロックキャンセル処理を示すタイ
ミング図である。
令を備えるマイクロプロセッサのリソースコンフリクト
発生時のパイプラインインターロックキャンセル処理を
示すタイミング図である。
ッサコアの構成を示すブロック図である。
セッサ内に組み込まれている実行ユニットの一部の回路
をパイプライン的に配置したブロック図である。
ッサで実行される命令のパイプライン図である。
リアクセスユニット(命令実行ユニット)、4 整数演
算ユニット(命令実行ユニット)、5 汎用レジスタ、
6 命令RAM(メモリ)、7 データRAM(メモ
リ)、716,718 デコーダ回路(衝突回避回
路)、719 デコーダ回路(データ干渉判定回路、フ
ラグ干渉判定回路、モードフラグ判定回路、同時使用判
定回路)、720 命令コードライト信号生成回路(実
行停止回路)、722 条件実行制御回路、862,8
63 条件実行判定回路。
Claims (9)
- 【請求項1】 命令やデータを格納する命令RAMやデ
ータRAM等からなるメモリと、前記メモリへ接続され
命令をデコードする命令デコーダと、命令の実行を制御
する情報を格納する制御レジスタと、データを格納する
複数個のレジスタと、算術演算等を実行する演算ユニッ
トと、前記命令デコーダに接続され前記命令デコーダか
ら出力された出力に従い前記命令を実行する命令実行ユ
ニットと、前記プログラム内の先行命令の動作に基づい
て現命令の実行を一時的に停止する実行停止回路と、前
記現命令の実行を行うか否かの判定を行う条件実行判定
回路と、前記条件実行判定回路が前記先行命令を実行し
ないと判定した場合、前記先行命令の動作を開始する信
号を無効とする処理を行う条件実行制御回路とを備える
ことを特徴とする条件実行命令を備えるマイクロプロセ
ッサ。 - 【請求項2】 実行停止回路は、先行命令がメモリをア
クセスし、そのアクセス完了を示すメモリアクセス完了
信号が前記メモリから送信されるまでに複数クロック必
要とする場合、前記先行命令のメモリアクセスが完了す
るまで現命令の実行を停止し、前記メモリから送信され
る前記アクセス完了信号に基づいて条件実行判定回路の
動作は制御され、前記条件実行判定回路は、前記現命令
内の実行条件フィールドと制御レジスタ内の汎用フラグ
の値に基づいて前記先行命令の実行を行うか否かの判定
を行い、前記条件実行判定回路が前記先行命令を実行し
ないと判定した場合に、条件実行制御回路は、前記先行
命令の前記メモリへのアクセス処理を開始するアクセス
開始信号を無効とすることを特徴とする請求項1記載の
条件実行命令を備えるマイクロプロセッサ。 - 【請求項3】 先行命令の処理結果を汎用レジスタへ書
き込む以前に、現命令が前記処理結果を前記汎用レジス
タから読み出す場合、前記先行命令のデスティネーショ
ンレジスタ指定フィールドと前記現命令のソースレジス
タ指定フィールドが一致することを判定するデータ干渉
判定回路と、前記先行命令の処理結果を前記汎用レジス
タを経由することなく前記現命令を実行する命令実行ユ
ニットに転送するバイパス経路とをさらに備え、実行停
止回路は、前記バイパス経路を介して前記先行命令の処
理結果が転送可能になるまで、前記現命令の実行を停止
し、条件実行判定回路は、前記先行命令内の実行条件フ
ィールドの値および制御レジスタから得られる汎用フラ
グの値により前記先行命令の実行を行うか否かの判定を
行い、前記データ干渉判定回路から送信される制御信号
に基づいて前記実行停止回路と前記バイパス経路の動作
が制御され、前記条件実行判定回路が、前記先行命令を
実行しないと判定した場合、条件実行制御回路は、前記
実行停止回路から送信される前記現命令の動作を停止す
る制御信号および前記先行命令の処理結果を前記現命令
を実行する命令実行ユニットへ転送するための前記バイ
パス経路の動作を制御する制御信号を無効とすることを
特徴とする請求項1記載の条件実行命令を備えるマイク
ロプロセッサ。 - 【請求項4】 先行命令の処理結果を汎用レジスタへ書
き込む以前に、現命令が前記処理結果を前記汎用レジス
タから読み出す場合、前記先行命令のデスティネーショ
ンレジスタ指定フィールドと前記現命令のソースレジス
タ指定フィールドとが一致することを判定するデータ干
渉判定回路とをさらに備え、実行停止回路は、前記先行
命令の処理結果が前記汎用レジスタへ書き込み完了され
るまで前記現命令の実行を停止させ、条件実行判定回路
は、前記先行命令内の実行条件フィールドの値および制
御レジスタから得られる汎用フラグの値により前記先行
命令の実行を行うか否かの判定を行い、前記データ干渉
判定回路から送信される制御信号により前記実行停止回
路の動作が制御され、前記条件実行判定回路で前記先行
命令を実行しないと判定した場合、条件実行制御回路
は、前記実行停止回路から送信される前記現命令の動作
の停止を制御する制御信号を無効とすることを特徴とす
る請求項1記載の条件実行命令を備えるマイクロプロセ
ッサ。 - 【請求項5】 先行命令の処理結果を汎用レジスタへ書
き込む以前に、異なる命令実行ユニットで実行される現
命令が前記処理結果を前記汎用レジスタから読み出す場
合、前記先行命令のデスティネーションレジスタ指定フ
ィールドと前記現命令のソースレジスタ指定フィールド
とが一致することを判定するデータ干渉判定回路と、前
記先行命令の処理結果を前記汎用レジスタを経由するこ
となく前記現命令を実行する前記異なる命令実行ユニッ
トへ転送するバイパス経路とをさらに備え、実行停止回
路は、前記バイパス経路を介して前記先行命令の処理結
果を転送可能な時まで前記現命令の実行を停止し、条件
実行判定回路は、前記先行命令内の実行条件フィールド
および制御レジスタから得られる汎用フラグの値により
前記先行命令の実行を行うか否かの判定を行い、前記デ
ータ干渉判定回路から送信される制御信号に基づいて前
記実行停止回路および前記バイパス経路の動作が制御さ
れ、前記条件実行判定回路が前記先行命令を実行しない
と判定した場合、条件実行制御回路は、前記実行停止回
路から送信される前記現命令の実行停止を指示する制御
信号と、前記現命令の実行を行う前記異なる命令実行ユ
ニットへ前記先行命令の処理結果を転送するための前記
バイパス経路の動作を制御する制御信号を無効とするこ
とを特徴とする請求項1記載の条件実行命令を備えるマ
イクロプロセッサ。 - 【請求項6】 先行命令の処理結果を制御レジスタ内の
汎用フラグへ書き込む以前に、現命令が前記処理結果を
前記制御レジスタ内の前記汎用フラグから読み出す場
合、前記先行命令のデスティネーションフラグ指定フィ
ールドと前記現命令のソースフラグ指定フィールドとが
一致することを判定するフラグ干渉判定回路とをさらに
備え、実行停止回路は前記先行命令の処理結果が前記制
御レジスタ内の前記汎用フラグへの書き込み動作が完了
するまで前記現命令の実行を停止させ、条件実行判定回
路は、前記先行命令内の実行条件フィールドの値と前記
制御レジスタ内の前記汎用フラグの値とにより前記先行
命令の実行を行うか否かの判定を行い、前記フラグ干渉
判定回路から送信された制御信号に基づいて前記実行停
止回路の動作が制御され、前記条件実行判定回路が前記
先行命令を実行しないと判定した場合、条件実行制御回
路は、前記実行停止回路から送信された前記現命令の実
行を停止する制御信号を無効とすることを特徴とする請
求項1記載の条件実行命令を備えるマイクロプロセッ
サ。 - 【請求項7】 先行命令の処理結果を制御レジスタ内の
汎用フラグへ書き込む以前に、現命令が前記制御レジス
タ内の汎用フラグを用いて条件実行判定を行う場合、前
記先行命令のデスティネーションフラグ指定フィールド
と前記現命令のソースフラグ指定フィールドとが一致す
ることを判定するフラグ干渉判定回路とをさらに備え、
実行停止回路は前記先行命令の前記処理結果が前記制御
レジスタ内の前記汎用フラグへ書き込み完了されるまで
前記現命令の実行を停止させ、条件実行判定回路は、前
記先行命令内の実行条件フィールドと前記制御レジスタ
から得られる前記汎用フラグの値により前記先行命令の
実行を行うか否かの判定を行い、前記フラグ干渉判定回
路から送信される制御信号に基づいて前記実行停止回路
の動作が制御され、前記条件実行判定回路が前記先行命
令を実行しないと判定した場合、条件実行制御回路は、
前記実行停止回路から送信される前記現命令の実行停止
を指示する制御信号を無効とすることを特徴とする請求
項1記載の条件実行命令を備えるマイクロプロセッサ。 - 【請求項8】 先行命令が制御レジスタ内のモードフラ
グを更新する場合、前記先行命令が前記制御レジスタ内
の前記モードフラグを更新する命令であることを検知す
るモードフラグ判定回路をさらに備え、実行停止回路
は、前記先行命令が前記制御レジスタ内の前記モードフ
ラグの値を更新完了するまで現命令の動作を停止させ、
条件実行判定回路は、前記先行命令内の実行条件フィー
ルドと前記制御レジスタから得られる汎用フラグの値に
より前記先行命令の実行を行うか否かの判定を行い、前
記条件実行判定回路から送信される制御信号に基づいて
前記実行停止回路の動作が制御され、前記条件実行判定
回路で前記先行命令を実行しないと判定した場合、前記
条件実行制御回路は、前記実行停止回路から送信される
前記現命令の動作の停止を指示する制御信号を無効とす
ることを特徴とする請求項1記載の条件実行命令を備え
るマイクロプロセッサ。 - 【請求項9】 先行命令が含んでいる少なくとも1つ以
上の副命令である先行副命令を実行するため、演算回路
及び前記演算回路と汎用レジスタとの間のデータ読み出
し及び書き込み経路等が同時に使用される場合、前記先
行副命令の組み合わせにより前記データ読み出し及び書
き込み経路の同時使用が行われるか否かを検知する同時
使用判定回路と、前記先行副命令の実行で前記データ読
み出し及び書き込み経路の同時使用を回避するため前記
先行副命令のいずれかの動作を停止する衝突回避回路と
をさらに備え、実行停止回路は、前記先行副命令の動作
が停止される期間と同一期間だけ前記現命令の動作を停
止し、条件実行判定回路は、前記先行命令内の実行条件
フィールドと制御レジスタ内の汎用フラグの値により前
記先行副命令の実行を行うか否かの判定を行い、前記条
件実行判定回路から送信される制御信号に基づいて前記
衝突回避回路と前記実行停止回路の動作が制御され、前
記条件実行判定回路が前記先行副命令を実行しないと判
定し、前記データ読み出し及び書き込み経路の同時使用
が発生しない場合に、条件実行制御回路は、前記衝突回
避回路から送信される前記先行副命令の実行を指示する
制御信号と、前記実行停止回路から送信される前記現命
令の実行を停止する制御信号を無効とすることを特徴と
する先行副命令記載の条件実行命令を備えるマイクロプ
ロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12452697A JP3568737B2 (ja) | 1997-05-14 | 1997-05-14 | 条件実行命令を備えるマイクロプロセッサ |
US08/942,295 US6016543A (en) | 1997-05-14 | 1997-10-01 | Microprocessor for controlling the conditional execution of instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12452697A JP3568737B2 (ja) | 1997-05-14 | 1997-05-14 | 条件実行命令を備えるマイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10320197A true JPH10320197A (ja) | 1998-12-04 |
JP3568737B2 JP3568737B2 (ja) | 2004-09-22 |
Family
ID=14887672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12452697A Expired - Fee Related JP3568737B2 (ja) | 1997-05-14 | 1997-05-14 | 条件実行命令を備えるマイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3568737B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366876B1 (en) | 2000-10-31 | 2008-04-29 | Analog Devices, Inc. | Efficient emulation instruction dispatch based on instruction width |
-
1997
- 1997-05-14 JP JP12452697A patent/JP3568737B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366876B1 (en) | 2000-10-31 | 2008-04-29 | Analog Devices, Inc. | Efficient emulation instruction dispatch based on instruction width |
Also Published As
Publication number | Publication date |
---|---|
JP3568737B2 (ja) | 2004-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6016543A (en) | Microprocessor for controlling the conditional execution of instructions | |
US6560697B2 (en) | Data processor having repeat instruction processing using executed instruction number counter | |
EP0789297B1 (en) | Data processor loading data and performing multiply-add operation in parallel | |
JP3881763B2 (ja) | データ処理装置 | |
US20010021970A1 (en) | Data processor | |
JP3745039B2 (ja) | 遅延命令を有するマイクロプロセッサ | |
JP3543181B2 (ja) | データ処理装置 | |
JP2507638B2 (ja) | デ―タ処理装置 | |
EP0855648A2 (en) | Data processing with parallel or sequential execution of program instructions | |
JPH1049368A (ja) | 条件実行命令を有するマイクロプロセッサ | |
JPH0496825A (ja) | データ・プロセッサ | |
JP3578883B2 (ja) | データ処理装置 | |
JPH01214932A (ja) | データ処理装置 | |
JP3789583B2 (ja) | データ処理装置 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
JP2007102333A (ja) | データ処理装置およびデータ処理方法 | |
JPH07120284B2 (ja) | データ処理装置 | |
JP2002229779A (ja) | 情報処理装置 | |
JP2000207210A (ja) | マイクロプロセッサ | |
JP2710994B2 (ja) | データ処理装置 | |
JP3568737B2 (ja) | 条件実行命令を備えるマイクロプロセッサ | |
JPH10124312A (ja) | 中央処理装置 | |
JP3547585B2 (ja) | 条件実行命令を有するマイクロプロセッサ | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040407 |
|
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: 20040518 |
|
A61 | First payment of annual fees (during grant procedure) |
Effective date: 20040616 Free format text: JAPANESE INTERMEDIATE CODE: A61 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 4 Free format text: PAYMENT UNTIL: 20080625 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |