JP2581565B2 - ガード付命令を実行するデータ処理装置 - Google Patents

ガード付命令を実行するデータ処理装置

Info

Publication number
JP2581565B2
JP2581565B2 JP62234568A JP23456887A JP2581565B2 JP 2581565 B2 JP2581565 B2 JP 2581565B2 JP 62234568 A JP62234568 A JP 62234568A JP 23456887 A JP23456887 A JP 23456887A JP 2581565 B2 JP2581565 B2 JP 2581565B2
Authority
JP
Japan
Prior art keywords
instruction
data
state
register
data processing
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.)
Expired - Fee Related
Application number
JP62234568A
Other languages
English (en)
Other versions
JPS6476325A (en
Inventor
秀和 松本
哲明 中三川
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.)
Hitachi Ltd
Original Assignee
Hitachi 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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62234568A priority Critical patent/JP2581565B2/ja
Publication of JPS6476325A publication Critical patent/JPS6476325A/ja
Application granted granted Critical
Publication of JP2581565B2 publication Critical patent/JP2581565B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置に係り、特に、プログラム
の実行を命令語自身で制御する機能を命令に持たせたマ
イクロプロセサシステムに関する。
〔従来の技術〕
パイプライン処理は、複数の命令を同時に処理でき、
計算機の高速化には有効な手段である。このため、最近
はマイクロプロセサでもこの技術が取り入れられ、多段
のパイプラインを採用する傾向にある。パイプラインの
段数を増やすと、1サイクルに処理する仕事を少なくで
きるので、同一のプロセス技術でもマイクロプロセサの
マシンサイクル時間を短縮可能である。しかし、パイプ
ライン段数が多くなると、逆に、分岐命令の処理が遅く
なる。分岐命令などが実行される場合、それ以降の命令
の処理をクリヤするために、パイプラインがクリヤさ
れ、その結果、パイプラインの中に空きサイクルが生じ
てしまうからである。そこで、多段パイプラインを採る
プロセサでは、分岐処理におけるパイプラインの空きサ
イクルを削減することが重要である。
分岐処理により生じるパイプラインの空きサイクルを
埋める手段として、delayed branchが採られる。この手
法は、分岐命令実行後に生じる空きサイクル(delayed
slotという)を活用するために、delayed slotに分岐命
令の実行と無関係に実行される命令を置く方法である。
delayed slot内の命令は、分岐処理に係わりなしに実行
され、分岐処理で空いたパイプラインを埋める効果があ
る。ただし、delayed slotに置かれる命令は、分岐の成
否に係わらず実行されるから、例えば条件分岐命令にお
いて条件不成立の場合に、delayed slotの命令を実行し
たくないときは、このslotに置くことはできない。その
結果、delayed slotへの命令埋め込み率が低くなること
がある。このslotの命令埋め込み率を向上させる1つの
方法として、命令語中にその命令を実行できるための条
件を付加したガード付命令が提案されている。この方法
は、第13回コンピユータアーキテクチヤ学会(1986年)
第386ページから第395ページ(Proceeding of the13th
ACM Symposium on Computer Archi tecture,1986)に論
じられている。
〔発明が解決しようとする問題点〕
上記従来技術は、ガード条件として命令で指定された
レジスタの値がゼロであるか否かを判定するには、演算
を行わなければならないから、その判定に時間かがかか
る問題があつた。また、レジスタの値がゼロまたはゼロ
でないというガード条件のみを用いていたので、それ以
外の条件で、delayed slotに命令を埋め込むことができ
ない欠点があつた。
本発明の目的は、ガード条件の判定を高速に実行する
データ処理装置を提供することである。
〔問題点を解決するための手段〕
本発明は、上記目的を達成するために、実行できるた
めの条件を付加したガード付命令を含む命令とデータと
を記憶するメモリと、メモリから命令を取り出し実行す
るプロセサユニットとを有しガード付命令を実行するデ
ータ処理装置において、プロセサユニットが、命令で与
えられる実行条件をデコードする手段と、実行条件の判
定対象となるデータの状態を生成する手段と、生成され
たデータの状態を保持する手段と、デコード手段で得ら
れた結果と状態保持手段に保持された状態とを比較判定
しプロセサユニットがガード付命令を実行するか否かを
制御する手段とを備えたガード付命令を実行するデータ
処理装置を提案するものである。
前記実行条件デコード手段は、具体的には、実行条件
の判定対象となるデータを保持している状態保持手段内
のレジスタアドレスを命令から抽出する手段と、比較判
定条件を命令から抽出する手段とを含む。
いずれの場合も、判定対象データ状態生成手段は、デ
ータ状態保持手段に書き込まれるデータがゼロであるこ
とを検出する手段を含み、データ状態保持手段は、ゼロ
検出手段で検出された状態をデータが書き込まれるレジ
スタ内に保持する手段を含むことができる。
また、判定対象データ状態生成手段が、データ状態保
持手段に書き込まれるデータがゼロであることを検出す
る手段を含み、データ状態保持手段が、ゼロ検出手段で
検出された状態をデータが書き込まれるレジスタ内に保
持する手段も含み、比較判定手段が、ゼロ検出手段で検
出された状態およびデータ状態保持手段内の各レジスタ
のMSB(Most Significant Bit)の値とデコード手段で
得られたガード条件とを比較しガード条件を判定する手
段であるようにしてもよい。
〔作用〕
命令によつて指定された処理を実行後、その値をレジ
スタに書き込む場合、その値がゼロであれば、当該レジ
スタのゼロを示すゼロフラグを真とする。ガード条件の
判定機構は、このフラグを見るだけでガード条件を判定
できるので、ガード条件の判定が高速になる。
〔実施例〕
以下、図面を参照して、本発明の一実施例を詳細に説
明する。
第2図は、本発明によるデータ処理装置の一実施例の
全体構成を示している。データ処理装置は、プロセサユ
ニツト(PU)10と、メモリコントロールユニツト(MC
U)20と、メインメモリ(MM)30と、I/Oプロセサ(IO
P)40とを主な構成要素とする。上記以外の要素も存在
するが、本発明の理解には必要ないので、省略する。PU
10は、MM30に格納されている命令およびオペランドデー
タをMCU20を介して取り込み、実行する。IOP40は、入出
力制御用プロセサである。本発明は、この中でPU10に関
するものであるから、以下、PU10を主として説明する。
もちろん、IOP40も基本的にはプロセサであるため、本
発明を適用できる。信号線群15はPU10とMCU20,信号線群
25はMCU20とMM30,信号線群35はMCU20とIOP40を各々結ぶ
ものである。
第3図は、本実施例で採用している命令の一形式を示
す図である。本実施例では、RISC(Reduced Instructio
n Set Computer)アーキテクチヤの命令形式を採る。す
なわち、命令語を32ビツト固定長にして、メモリを直接
アクセスするのはロード,ストア命令だけに限定し、機
能の複雑な命令はもたないことを基本とするアーキテク
チヤに従つている。第3図には、5種類の命令形式を示
してある。Type−1は、レジスタ間の演算命令の形式で
あり、命令の処理内容を与えるオペレーシヨンコードフ
イールド(OP)と、2組のソースオペランドとなるレジ
スタを指定するフイールド(Rs1,Rs2)と、結果が格納
されるレジスタを指定するフイールド(Rd)と、ガード
条件を指定するフイールド(GC)と、ガード条件として
判定されるレジスタを指定するフイールド(Rg)とから
なる。Type−2は、イミーデイエイトデータとの演算を
行う命令形式であり、16ビツトのイミーデイエイトデー
タを指定するフイールド(Imm16)をもつ。Type−3
は、ロード命令またはストア命令の形式であり、ソース
(またはデステイネーシヨン)オペランドレジスタを指
定するフイールド(Rd)と、アドレス計算のベースを与
えるレジスタを指定するフイールド(Rb)と、ベースか
らのオフセツトを与える16ビツトのフイールド(Disp1
6)とからなる。Type−4は、ガード条件をもつロード
命令(またはストア命令)の形式であり、8ビツトのオ
フセツトを与えるフイールド(Disp8)を含む。Type−
5は、分岐命令の形式である。
ガード条件として、命令指定できるのは8種類であ
る。その条件と命令でのビツトパターンを、以下に示
す。
1) always true 000 2) always false 001 3) equal zero 010 4) not equal zero 011 5) greater than zero 100 6) greater than zero or equal 101 7) less than zero 110 8) less than zero or equal 111 第1図は、本発明のPU10の内部構成を示すブロツク図
である。PU10は、命令フエツチポインタ(FP)110と、
命令バツフア(IB)120と、メモリアクセス制御回路(M
AC)130と、命令デコーダ(DEC)140と、ガード条件判
定回路(GCD)150と、ステージ制御回路(STC)160と、
レジスタフアイル(RF)170と、演算器(ALU)180と、
ゼロ検出回路(ZD)190と、プログラムカウンタ(PC)2
00と、メモリアドレスレジスタ(MAR)210と、メモリラ
イトレジスタ(MWR)220と、リードデータレジスタ(RD
R)230と、フラグ(F)240と、ラツチ(L)260,270
と、セレクタ(SEL)290と、ソースデータバス(ABUS,B
BUS)410,420と、デステイネーシヨンバス(CBUS)430
とを主な構成要素とする。その他にも種々の構成要素が
含まれるが、本発明の理解には必要ないので、省略す
る。
命令は、命令フエツチ(IF),デコード(D),実行
(E)の3段のパイプライン処理により実行される。各
パイプラインステージの大まかな処理を、以下に説明す
る。命令フエツチステージにおいて、命令をメモリ(MM
30)からプリフエツチして、IB120に格納する。デコー
ドステージにおいては、IB120から命令を取り出してデ
コードするとともに、そのデコード結果に基づいてレジ
スタフアイル170の値を読み出す。また、ガード条件が
指定されていれば、その条件を判定して、結果をフラグ
240にセツトする。実行ステージにおいては、演算命令
では演算の実行およびレジスタへの書き込み、ロード命
令ではオペランドのアドレス計算後にメモリをアクセス
してオペランドをフエツチしてレジスタに書き込み、ス
トア命令ではオペランドのアドレス計算後にオペランド
データをメモリに書き込む。この3つのパイプラインス
テージは並列に実行され、3つの命令がパイプライン上
で同時に処理される。
第4図は、命令デコーダ(DEC)140のさらに詳しい構
成を説明するブロツク図である。DEC140は、2組のデコ
ーダ(DECF,DECS)141,144と、ラツチ(L)142,143
と、ステージカウンタ(SC)145とを主な構成要素とす
る。DEC140はパイプライン処理のうち、デコードステー
ジと実行ステージを制御する。デコードステージにおい
ては、IB120にある命令が、信号線120aを介して、DECF1
41に入力される。DECF141では、命令をデコードしてイ
ミーデイエイトデータが命令に含まれる場合は、それを
取り出し信号線141aに出力し、ガード条件が含まれる場
合は、その判定条件を信号線141bに、判定対象のレジス
タアドレスを信号線141cに出力し、実行ステージで書き
込みまたは読み出されるレジスタのアドレスを命令から
取り出してラツチ142にセツトし、実行ステージで必要
となる制御情報をラツチ143にセツトする。ラツチ142に
ラツチされたレジスタアドレスは、信号線142aを介して
RF170に送られる。DECS144では、ラツチ143にセツトさ
れた情報から実行ステージの制御信号を出力する。実行
ステージの処理が複数のサイクルにわたつて行われる場
合は、SC145を用いてステージの管理がなされる。
第5図は、RF170の内部構成を説明する図である。RF1
70は、32ビツトレジスタを32本(R0〜R31)内蔵する。
各レジスタは、その値がゼロであるときに真となるゼロ
フラグ(Z)を備える。したがつて、各レジスタのビツ
ト数は、実際には33ビツトとなる。ビツト0がMSB(Mos
t Significant Bit)、ビツト31がLSB(Least Signific
ant Bit)である。全てのレジスタのゼロフラグおよびM
SB(ビツト0)をまとめて信号線170a,170bに出力す
る。その他、通常のアクセスをするためのリード/ライ
トパスを含むが、本発明の理解には必要ないので、省略
する。
第6図は、ガード条件判定回路(GCD)150の内部構成
を示すブロツク図である。GCD150は、2組のセレクタ
(SEL)151,152と、比較器(COMP)153とから構成され
る。
SEL151とSEL152は、命令で指定されるガードレジスタの
ゼロフラグおよびMSBをセレクトし、COMP153に供給す
る。COMP153では、これらセレクタの出力と信号線141b
に出力されたガード判定条件とから、ガード条件を判定
し、ガード条件が成立しない場合は、信号線150aに“0"
を成立時には“1"を出力する。COMP153の入出力の関係
を、第7図に示す。第7図では、信号線151aの値をZ、
信号線152aの値をNとして表わしている。例えば、ガー
ド判定の条件を示す信号線141bが“equal zero"の条件
であると、Zを見て真であれば“1"を信号線151aに出力
し、偽であれば“0"を出力する。信号線150aの値はフラ
グ240にセツトされて、次のサイクルの実行ステージの
動作を制御する。すなわち、フラグ240の出力は、信号
線240aを介してステージ制御回路(STC)160に入力さ
れ、実行ステージの制御が行われる。STC160は、フラグ
240に“1"がセツトされた次のサイクルで実行ステージ
の動作を中止させる。これにより、ガード条件が不成立
になると、そのガード条件を指定した命令は実行されな
いように動作する。
次に、各パイプラインステージでの処理を、第1図,
第4図,第5図,第6図を使つて詳細に説明する。
命令フエツチステージでは、フエツチする命令のアド
レスをFP110に保持し、この内容をSEL290を通してMM30
に送出し、対応するメモリアドレス上の命令をフエツチ
して、IB120に取り込む。MAC130は、このメモリアクセ
スに際して、メモリアクセスの起動信号の送出やメモリ
からの応答の受け取りなどを制御する。ただし、実行ス
テージがメモリをアクセス中である場合には、アクセス
を待たされる。この優先制御は、MAC130でなされる。
デコードステージでは、IB120に保持されている命令
を取り出してデコードし、そのデコード結果に基づい
て、命令で指定されるレジスタの値をRF170から読み出
し、ラツチ260またはラツチ270にセツトする。イミーデ
イエイト値を含む命令では、その値を命令から抽出し、
信号線141a,ABUS410を介して、ラツチ270にセツトす
る。デステイネーシヨンとなるレジスタがある場合、ま
たはストア命令では、そのレジスタアドレスを命令から
抽出してラツチ142にセツトする。分岐命令の場合は、
分岐アドレス計算のためのソースデータをラツチ260,27
0にセツトする。例えば、プログラムカウンタ相対のア
ドレツシングでは、ラツチ260にPC200の値が、BBUS420,
ABUS410を介して、ラツチ270に命令から抽出されたデイ
スプレースメントが、それぞれセツトされる。ガード条
件が指定されていれば、その条件で指定されるレジスタ
の値と条件をGCD150に入力して判定し、結果をフラグ24
0にセツトする。デコードステージでの制御は、DECF141
からの制御信号線141dへの信号によつて行われる。
実行ステージでは、演算命令の場合、デコードステー
ジで読み出したレジスタの値またはイミーデイエイト値
がすでにラツチ260,270にセツトされているので、その
値を使つてALU180で演算し、ラツチ142で指定されるRF1
70上のデステイネーシヨンレジスタに結果を格納する。
その際、ZD190によつてCBUS430上の値がゼロであるか否
かを検出し、ゼロである場合には、デステイネーシヨン
レジスタのゼロフラグをセツトする。
ロード命令の場合、ALU180の出力としてまずオペラン
ドのアドレスが得られるので、ALU180の出力をCBUS430
を介してMAR210にセツト後、SEL290を通してMM30にアド
レスを出力し、オペランドをメモリから取り出す。取り
出されたオペランドデータは、RDR230にラツチされたの
ち、ラツチ270を通してALU180に供給される。
ストア命令の場合、ALU180の出力として、まずオペラ
ンドのアドレスが得られるので、ALU180の出力をCBUS43
0を介してMAR210にセツトする。次のサイクルでは、ラ
ツチ142が指示するレジスタの内容をRF170から読み出し
て、ALU180を通してMWR220にセツトするとともに、SEL2
90を通してMM30にアドレスを出力し、メモリ書き込みの
起動信号をMM30に送出して、メモリに書き込む。
分岐命令の場合、ALU180の出力として分岐アドレスが
得られるので、この値をCBUS430を介してPC200およびFP
110にセツトする。このとき、デコードステージで実行
されている命令はキヤンセルされない。ガード条件はデ
コードステージで評価され、その結果がフラグ240にセ
ツトされる。そこで、フラグ240が“0"にセツトされた
場合は、ガード条件が不成立であるため、STC160の制御
により、実行ステージの動作が中止される。
〔発明の効果〕
本発明によれば、ガード条件の判定を演算によらずに
高速実行でき、ガード条件の判定に伴うロス時間を削減
可能である。また、分岐の実行/不実行に関わりなく、
delayed branchのdelayed slotに命令を埋め込むことが
できるので、分岐命令におけるパイプラインの空サイク
ルが少なくなる。
【図面の簡単な説明】
第1図は本発明によるデータ処理装置の一実施例の特徴
的部分の構成を示すブロツク図、第2図は本発明による
データ処理装置の全体構成の一例を示すブロツク図、第
3図は本発明の実施例で採用している命令形式を示す
図、第4図,第5図,第6図は第1図特徴的部分のさら
に詳細な構成を示すブロツク図、第7図は第6図回路の
判定例を示す図である。 110……命令フエツチポインタ、120……命令バツフア、
130……メモリアクセス制御回路、140……命令デコー
ダ、141,144……デコーダ、142,143……ラツチ、145…
…ステージカウンタ、150……ガード条件判定回路、15
1,152……セレクタ、153……比較器、160……ステージ
制御回路、170……レジスタフアイル、180……演算器、
190……ゼロ検出回路、200……プログラムカウンタ、21
0……メモリアドレスレジスタ、220……メモリライトレ
ジスタ、230……リードデータレジスタ、240……フラ
グ、260,270……ラツチ、290……セレクタ、410,420…
…ソースデータバス、440……デステイネーシヨンバ
ス。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】実行できるための条件を付加したガード付
    命令を含む命令とデータとを記憶するメモリと、前記メ
    モリから命令を取り出し実行するプロセサユニットとを
    有しガード付命令を実行するデータ処理装置において、 前記プロセサユニットが、 命令で与えられる実行条件をデコードする手段と、 実行条件の判定対象となるデータの状態を生成する手段
    と、 生成されたデータの状態を保持する手段と、 前記デコード手段で得られた結果と前記状態保持手段に
    保持された状態とを比較判定し前記プロセサユニットが
    ガード付命令を実行するか否かを制御する手段とを備え
    た ことを特徴とするガード付命令を実行するデータ処理装
    置。
  2. 【請求項2】特許請求の範囲第1項において、 前記実行条件デコード手段が、 実行条件の判定対象となるデータを保持している前記状
    態保持手段内のレジスタアドレスを命令から抽出する手
    段と、 前記比較判定条件を命令から抽出する手段とを含む ことを特徴とするガード付命令を実行するデータ処理装
    置。
  3. 【請求項3】特許請求の範囲第1項または第2項におい
    て、 前記判定対象データ状態生成手段が、前記データ状態保
    持手段に書き込まれるデータがゼロであることを検出す
    る手段を含み、 前記データ状態保持手段が、前記ゼロ検出手段で検出さ
    れた状態を前記データが書き込まれるレジスタ内に保持
    する手段を含む ことを特徴とするガード付命令を実行するデータ処理装
    置。
  4. 【請求項4】特許請求の範囲第1項または第2項におい
    て、 前記判定対象データ状態生成手段が、前記データ状態保
    持手段に書き込まれるデータがゼロであることを検出す
    る手段を含み、 前記データ状態保持手段が、前記ゼロ検出手段で検出さ
    れた状態を前記データが書き込まれるレジスタ内に保持
    する手段を含み、 前記比較判定手段が、前記ゼロ検出手段で検出された状
    態および前記データ状態保持手段内の各レジスタのMSB
    (Most Significant Bit)の値と前記デコード手段で得
    られたガード条件とを比較しガード条件を判定する手段
    であることを特徴とするガード付命令を実行するデータ
    処理装置。
JP62234568A 1987-09-18 1987-09-18 ガード付命令を実行するデータ処理装置 Expired - Fee Related JP2581565B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62234568A JP2581565B2 (ja) 1987-09-18 1987-09-18 ガード付命令を実行するデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62234568A JP2581565B2 (ja) 1987-09-18 1987-09-18 ガード付命令を実行するデータ処理装置

Publications (2)

Publication Number Publication Date
JPS6476325A JPS6476325A (en) 1989-03-22
JP2581565B2 true JP2581565B2 (ja) 1997-02-12

Family

ID=16973055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62234568A Expired - Fee Related JP2581565B2 (ja) 1987-09-18 1987-09-18 ガード付命令を実行するデータ処理装置

Country Status (1)

Country Link
JP (1) JP2581565B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091441A (ja) * 1996-09-13 1998-04-10 Sanyo Electric Co Ltd プログラム実行方法およびその方法を利用した装置
GB2447428A (en) * 2007-03-15 2008-09-17 Linear Algebra Technologies Lt Processor having a trivial operand register
JP5209280B2 (ja) 2007-11-20 2013-06-12 株式会社ジェイテクト 密封装置

Also Published As

Publication number Publication date
JPS6476325A (en) 1989-03-22

Similar Documents

Publication Publication Date Title
US5167026A (en) Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US5398321A (en) Microcode generation for a scalable compound instruction set machine
JPH06236268A (ja) 命令の長さを判定する装置と方法
JPH0429093B2 (ja)
US6725365B1 (en) Branching in a computer system
JP3486690B2 (ja) パイプライン方式プロセッサ
US5461715A (en) Data processor capable of execution of plural instructions in parallel
JPH0743648B2 (ja) 情報処理装置
JP2682217B2 (ja) マイクロプロセッサ
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
US6832334B2 (en) Computer register watch
EP1050805B1 (en) Transfer of guard values in a computer system
JP2904624B2 (ja) 並列演算処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JPS6221131B2 (ja)
JP2597744B2 (ja) 分岐制御方法
JPH0424731B2 (ja)
JPH10124313A (ja) 並列処理計算機
JPH028330B2 (ja)
JPH0752402B2 (ja) データ処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees