JPH07262007A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH07262007A JPH07262007A JP6045977A JP4597794A JPH07262007A JP H07262007 A JPH07262007 A JP H07262007A JP 6045977 A JP6045977 A JP 6045977A JP 4597794 A JP4597794 A JP 4597794A JP H07262007 A JPH07262007 A JP H07262007A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- operand
- instructions
- information 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.)
- Pending
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 命令を複合化すること及び分岐先命令の読み
出しを早めることによりパイプラインの処理速度を向上
させ、情報処理装置の処理速度を改善する。 【構成】 第1の命令取り出し手段に加え、第1の命令
取り出し手段が取り出す命令に後続する命令を取り出す
第2の命令取り出し手段と、第1の命令取り出し手段が
取り出した命令と第2の命令取り出し手段が取り出した
命令とを検査し、それらが予定の命令の組み合わせの場
合、それらの2命令を複合命令に置き換える置換命令発
生回路と、第2の命令取り出し手段が取り出した命令が
分岐命令であるか否かを検査し、分岐命令であるならば
分岐先命令の読み出しを開始させる分岐命令検出回路と
を備える。この構成により、予め定められた2命令を複
合化して1命令として処理し、分岐命令の分岐先命令読
み出しの少なくとも一部を分岐命令に先行する命令に並
行して行うことができる。
出しを早めることによりパイプラインの処理速度を向上
させ、情報処理装置の処理速度を改善する。 【構成】 第1の命令取り出し手段に加え、第1の命令
取り出し手段が取り出す命令に後続する命令を取り出す
第2の命令取り出し手段と、第1の命令取り出し手段が
取り出した命令と第2の命令取り出し手段が取り出した
命令とを検査し、それらが予定の命令の組み合わせの場
合、それらの2命令を複合命令に置き換える置換命令発
生回路と、第2の命令取り出し手段が取り出した命令が
分岐命令であるか否かを検査し、分岐命令であるならば
分岐先命令の読み出しを開始させる分岐命令検出回路と
を備える。この構成により、予め定められた2命令を複
合化して1命令として処理し、分岐命令の分岐先命令読
み出しの少なくとも一部を分岐命令に先行する命令に並
行して行うことができる。
Description
【0001】
【産業上の利用分野】本発明は、情報処理装置に係り、
特に、命令の処理速度の向上を図ることができるように
したパイプライン方式の情報処理装置に関する。
特に、命令の処理速度の向上を図ることができるように
したパイプライン方式の情報処理装置に関する。
【0002】
【従来の技術】図6は従来技術によるパイプライン方式
の情報処理装置の構成例を示すブロック図、図7は使用
される命令の例を説明する図、図8〜図11は命令のパ
イプライン処理を説明するタイムチャートであり、以
下、これらの図面を参照して従来技術による情報処理装
置について説明する。図6において、10は命令バッフ
ァレジスタ(以下、IBRという)、20は命令取り出
しシフタ、30は命令レジスタ(以下、IRという)、
32は命令長コード(以下、ILCという)デコーダ、
60はポインタ(以下、IBROPという)、70は加
算器、100は分岐命令検出回路、110は命令デコー
ダ、130は制御記憶、140はオペランド用アドレス
加算器、150はオペランド用TLB、160はオペラ
ンド用バッファ記憶装置、170は演算実行部、180
は汎用レジスタ、200は命令用アドレス加算器、21
0は命令用TLB、220は命令用バッファ記憶装置で
ある。
の情報処理装置の構成例を示すブロック図、図7は使用
される命令の例を説明する図、図8〜図11は命令のパ
イプライン処理を説明するタイムチャートであり、以
下、これらの図面を参照して従来技術による情報処理装
置について説明する。図6において、10は命令バッフ
ァレジスタ(以下、IBRという)、20は命令取り出
しシフタ、30は命令レジスタ(以下、IRという)、
32は命令長コード(以下、ILCという)デコーダ、
60はポインタ(以下、IBROPという)、70は加
算器、100は分岐命令検出回路、110は命令デコー
ダ、130は制御記憶、140はオペランド用アドレス
加算器、150はオペランド用TLB、160はオペラ
ンド用バッファ記憶装置、170は演算実行部、180
は汎用レジスタ、200は命令用アドレス加算器、21
0は命令用TLB、220は命令用バッファ記憶装置で
ある。
【0003】図6に示す従来技術による情報処理装置
は、図示のような機能ブロックを備えて構成されてお
り、各機能ブロックは、次に説明する機能を備えるよう
に構成されている。
は、図示のような機能ブロックを備えて構成されてお
り、各機能ブロックは、次に説明する機能を備えるよう
に構成されている。
【0004】IBR10は、命令の高速アクセスを可能
とするために命令を保持しているレジスタであり、命令
取り出しシフタ20は、次に処理を開始すべき命令をI
BR10から取り出すための機能を備える。IR30
は、命令取り出しシフタ20から供給される命令が格納
されるレジスタであり、ILCデコーダ32は、IR3
0に格納された命令の命令長を示すILC32をデコー
ドして、IR30に格納された命令の命令長を求める。
加算器70は、IR30に取り出された命令のIBR1
0内における先頭位置を保持するIBROP60の内容
とILCデコーダ32の出力とを加算し、IBROP6
0の内容を更新する機能を備える。
とするために命令を保持しているレジスタであり、命令
取り出しシフタ20は、次に処理を開始すべき命令をI
BR10から取り出すための機能を備える。IR30
は、命令取り出しシフタ20から供給される命令が格納
されるレジスタであり、ILCデコーダ32は、IR3
0に格納された命令の命令長を示すILC32をデコー
ドして、IR30に格納された命令の命令長を求める。
加算器70は、IR30に取り出された命令のIBR1
0内における先頭位置を保持するIBROP60の内容
とILCデコーダ32の出力とを加算し、IBROP6
0の内容を更新する機能を備える。
【0005】分岐命令検出回路100は、IR30に分
岐命令が格納されたことを検出し、命令デコーダ110
は、IR30に格納された命令の解読を行う機能を備
え、また、制御記憶130は、演算実行部170で行わ
れる演算を制御するための情報をマイクロプログラムと
して記憶する。オペランド用アドレス加算器140は、
オペランドの論理アドレスの計算を行い、オペランド用
TLB150は、論理アドレスを物理アドレスに変換す
る機能を備える。
岐命令が格納されたことを検出し、命令デコーダ110
は、IR30に格納された命令の解読を行う機能を備
え、また、制御記憶130は、演算実行部170で行わ
れる演算を制御するための情報をマイクロプログラムと
して記憶する。オペランド用アドレス加算器140は、
オペランドの論理アドレスの計算を行い、オペランド用
TLB150は、論理アドレスを物理アドレスに変換す
る機能を備える。
【0006】オペランド用バッファ記憶装置160は、
オペランド用TLB150からの物理アドレスにより指
定されるデータを演算実行部170に供給し、演算実行
部170は、オペランド用バッファ記憶装置160、例
えば16本のレジスタ群で構成される汎用レジスタ18
0から供給されるオペランドデータを用いて、制御記憶
130からの出力に制御されて演算を実行する。命令用
アドレス加算器200は、命令の論理アドレスを計算
し、命令用TLB210は、命令用アドレス加算器20
0からの論理アドレスを物理アドレスに変換する。命令
用バッファ記憶装置220は、命令用TLB210から
の物理アドレスにより指定される命令をIBR10に供
給する。
オペランド用TLB150からの物理アドレスにより指
定されるデータを演算実行部170に供給し、演算実行
部170は、オペランド用バッファ記憶装置160、例
えば16本のレジスタ群で構成される汎用レジスタ18
0から供給されるオペランドデータを用いて、制御記憶
130からの出力に制御されて演算を実行する。命令用
アドレス加算器200は、命令の論理アドレスを計算
し、命令用TLB210は、命令用アドレス加算器20
0からの論理アドレスを物理アドレスに変換する。命令
用バッファ記憶装置220は、命令用TLB210から
の物理アドレスにより指定される命令をIBR10に供
給する。
【0007】次に、前述のような構成を備える情報処理
装置で使用される命令の例を図7に示すフォーマットを
参照して説明する。
装置で使用される命令の例を図7に示すフォーマットを
参照して説明する。
【0008】CLI命令は、2つのオペランドデータの
大小を比較し、その結果を条件コードに反映させるとい
う命令である。OPはこの命令がCLI命令であること
を示すオペレーションコード、I2は演算に使用される
第2オペランドデータを示すフィールド、B1は基底ア
ドレスレジスタを指定するフィールド、D1は変位アド
レスを示すフィールドである。この命令において、主記
憶装置上に格納されている第1オペランドの論理アドレ
スは、B1フィールドの示す基底アドレスレジスタの内
容とD1フィールドの内容とを加算することにより得る
ことができる。
大小を比較し、その結果を条件コードに反映させるとい
う命令である。OPはこの命令がCLI命令であること
を示すオペレーションコード、I2は演算に使用される
第2オペランドデータを示すフィールド、B1は基底ア
ドレスレジスタを指定するフィールド、D1は変位アド
レスを示すフィールドである。この命令において、主記
憶装置上に格納されている第1オペランドの論理アドレ
スは、B1フィールドの示す基底アドレスレジスタの内
容とD1フィールドの内容とを加算することにより得る
ことができる。
【0009】BC命令は、条件コードがマスクフィール
ドにより指定されている状態にセットされているとき
に、第2オペランドにより指定される分岐先アドレスに
分岐するという条件付分岐命令である。OPはこの命令
がBC命令であることを示すオペレーションコード、M
1はマスクフィールド、X2は指標アドレスレジスタを
指定するフィールド、B2は基底アドレスレジスタを指
定するフィールド、D2は変位アドレスを示すフィール
ドである。この命令において、主記憶装置上に格納され
ている分岐先命令の論理アドレスは、X2フィールドに
示される指標アドレスレジスタの内容とB2フィールド
に示される基底アドレスレジスタの内容とD2フィール
ドの内容とを加算することにより得ることができる。
ドにより指定されている状態にセットされているとき
に、第2オペランドにより指定される分岐先アドレスに
分岐するという条件付分岐命令である。OPはこの命令
がBC命令であることを示すオペレーションコード、M
1はマスクフィールド、X2は指標アドレスレジスタを
指定するフィールド、B2は基底アドレスレジスタを指
定するフィールド、D2は変位アドレスを示すフィール
ドである。この命令において、主記憶装置上に格納され
ている分岐先命令の論理アドレスは、X2フィールドに
示される指標アドレスレジスタの内容とB2フィールド
に示される基底アドレスレジスタの内容とD2フィール
ドの内容とを加算することにより得ることができる。
【0010】BCT命令は、R1フィールドによって指
定される汎用レジスタの値から“1”を減算し、減算後
のレジスタの内容が“0”でない場合に、第2オペラン
ドにより指定される分岐先アドレスに分岐するという命
令である。OPはこの命令がBCT命令であることを示
すオペレーションコード、R1は汎用レジスタの値を示
す前述のR1フィールド、X2は指標アドレスレジスタ
を指定するフィールド、B2は基底アドレスレジスタを
指定するフィールド、D2は変位アドレスを示すフィー
ルドである。この命令において、主記憶装置上に格納さ
れている分岐先命令の論理アドレスは、X2フィールド
に示される指標アドレスレジスタの内容とB2フィール
ドに示される基底アドレスレジスタの内容とD2フィー
ルドの内容とを加算することにより得ることができる。
定される汎用レジスタの値から“1”を減算し、減算後
のレジスタの内容が“0”でない場合に、第2オペラン
ドにより指定される分岐先アドレスに分岐するという命
令である。OPはこの命令がBCT命令であることを示
すオペレーションコード、R1は汎用レジスタの値を示
す前述のR1フィールド、X2は指標アドレスレジスタ
を指定するフィールド、B2は基底アドレスレジスタを
指定するフィールド、D2は変位アドレスを示すフィー
ルドである。この命令において、主記憶装置上に格納さ
れている分岐先命令の論理アドレスは、X2フィールド
に示される指標アドレスレジスタの内容とB2フィール
ドに示される基底アドレスレジスタの内容とD2フィー
ルドの内容とを加算することにより得ることができる。
【0011】L命令は、第2オペランドにより指定され
る主記憶装置上のデータを、第1オペランドにより指定
される汎用レジスタに転送するという命令である。OP
はこの命令がL命令であることを示すオペレーションコ
ード、R1は前述の第1オペランドを示すフィールド、
X2は指標アドレスレジスタを指定するフィールド、B
2は基底アドレスレジスタを指定するフィールド、D2
は変位アドレスを示すフィールドである。この命令にお
いて、主記憶装置上に格納されている第2オペランドデ
ータのアドレスは、X2フィールドに示される指標アド
レスレジスタの内容とB2フィールドに示される基底ア
ドレスレジスタの内容とD2フィールドの内容とを加算
することにより得ることができる。
る主記憶装置上のデータを、第1オペランドにより指定
される汎用レジスタに転送するという命令である。OP
はこの命令がL命令であることを示すオペレーションコ
ード、R1は前述の第1オペランドを示すフィールド、
X2は指標アドレスレジスタを指定するフィールド、B
2は基底アドレスレジスタを指定するフィールド、D2
は変位アドレスを示すフィールドである。この命令にお
いて、主記憶装置上に格納されている第2オペランドデ
ータのアドレスは、X2フィールドに示される指標アド
レスレジスタの内容とB2フィールドに示される基底ア
ドレスレジスタの内容とD2フィールドの内容とを加算
することにより得ることができる。
【0012】LTR命令は、第2オペランドにより指定
される汎用レジスタの内容を第1オペランドにより指定
される汎用レジスタに転送すると共に、第2オペランド
の符号を検査しその結果を条件コードに反映させるとい
う命令である。OPはこの命令がLTR命令であること
を示すオペレーションコード、R1、R2は前述の第
1、第2オペランドを示すフィールドである。
される汎用レジスタの内容を第1オペランドにより指定
される汎用レジスタに転送すると共に、第2オペランド
の符号を検査しその結果を条件コードに反映させるとい
う命令である。OPはこの命令がLTR命令であること
を示すオペレーションコード、R1、R2は前述の第
1、第2オペランドを示すフィールドである。
【0013】次に、図8〜図11を参照して、前述のよ
うに構成される従来技術において、前述したような命令
を持つある命令列を処理する場合の処理動作を説明す
る。これらの図において、上部の横軸は、パイプライン
の実行サイクルを示しており、参照の都合上番号付けし
て示している。また、図中のD、A、T、B、L、Eは
パイプラインステージを表わし、それぞれ、次のような
処理を行う。
うに構成される従来技術において、前述したような命令
を持つある命令列を処理する場合の処理動作を説明す
る。これらの図において、上部の横軸は、パイプライン
の実行サイクルを示しており、参照の都合上番号付けし
て示している。また、図中のD、A、T、B、L、Eは
パイプラインステージを表わし、それぞれ、次のような
処理を行う。
【0014】Dステージは、IR30に格納された命令
を解読して、Aステージで行う論理アドレス生成のため
に汎用レジスタ180を参照する処理を行う。このと
き、加算器70は、IBROP60の内容とILCデコ
ーダ32により求まる命令長とを加算することによりI
BROP60の内容をIR30に格納された命令の次の
命令を指すように更新する。また、この加算結果は、後
続命令の取り出しのために命令取り出しシフタ20にも
供給される。従って、次のサイクルには、IR30に格
納されている命令の後続の命令をIR30に格納するこ
とが可能となる。また、IR30に格納された命令は、
命令デコーダ110に送られその解読が行われる。
を解読して、Aステージで行う論理アドレス生成のため
に汎用レジスタ180を参照する処理を行う。このと
き、加算器70は、IBROP60の内容とILCデコ
ーダ32により求まる命令長とを加算することによりI
BROP60の内容をIR30に格納された命令の次の
命令を指すように更新する。また、この加算結果は、後
続命令の取り出しのために命令取り出しシフタ20にも
供給される。従って、次のサイクルには、IR30に格
納されている命令の後続の命令をIR30に格納するこ
とが可能となる。また、IR30に格納された命令は、
命令デコーダ110に送られその解読が行われる。
【0015】Aステージは、Dステージで参照した汎用
レジスタ180の内容、IR30の内容の一部を用い
て、オペランド用アドレス加算器140により、オペラ
ンドの論理アドレスを求める処理を行う。また、分岐命
令の場合、このステージで命令用アドレス加算器200
により分岐先命令の論理アドレスを求める処理を行う。
レジスタ180の内容、IR30の内容の一部を用い
て、オペランド用アドレス加算器140により、オペラ
ンドの論理アドレスを求める処理を行う。また、分岐命
令の場合、このステージで命令用アドレス加算器200
により分岐先命令の論理アドレスを求める処理を行う。
【0016】Tステージは、Aステージにおいて、オペ
ランド用アドレス加算器140で求めたオペランドの論
理アドレスを、オペランド用TLB150によって物理
アドレスに変換する処理を行う。また、分岐命令の場
合、命令用アドレス加算器200により求められた分岐
先命令の論理アドレスを、命令用TLBによって物理ア
ドレスに変換する処理を行う。
ランド用アドレス加算器140で求めたオペランドの論
理アドレスを、オペランド用TLB150によって物理
アドレスに変換する処理を行う。また、分岐命令の場
合、命令用アドレス加算器200により求められた分岐
先命令の論理アドレスを、命令用TLBによって物理ア
ドレスに変換する処理を行う。
【0017】Bステージは、Tステージにおいて、オペ
ランド用TLB150で求められたオペランドの物理ア
ドレスにより、オペランド用バッファ記憶装置160を
参照して、オペランドデータを得る処理を行う。また、
分岐命令の場合、Tステージにおいて、命令用TLB2
10で求められた分岐先命令の物理アドレスにより、命
令用バッファ記憶装置220を参照して、分岐先の命令
列を得る処理を行う。さらに、命令デコーダ110から
の命令解読情報により制御記憶130を参照して、命令
実行のために演算実行部180が必要とする制御情報を
得る処理を行う。
ランド用TLB150で求められたオペランドの物理ア
ドレスにより、オペランド用バッファ記憶装置160を
参照して、オペランドデータを得る処理を行う。また、
分岐命令の場合、Tステージにおいて、命令用TLB2
10で求められた分岐先命令の物理アドレスにより、命
令用バッファ記憶装置220を参照して、分岐先の命令
列を得る処理を行う。さらに、命令デコーダ110から
の命令解読情報により制御記憶130を参照して、命令
実行のために演算実行部180が必要とする制御情報を
得る処理を行う。
【0018】Lステージは、Bステージにおいて、オペ
ランド用バッファ記憶装置160で得たオペランドデー
タを演算実行部170に転送し、汎用レジスタ180に
格納されたデータをオペランドデータとして使用する命
令のために汎用レジスタ180を参照し、その内容を演
算実行部170に転送する処理を行う。また、分岐命令
の場合、Bステージにおいて、命令用バッファ記憶装置
160から得た分岐先命令列をIBR10に転送する処
理を行う。そして、分岐命令の分岐が成立している場
合、分岐先命令をIR30に格納する。すなわち、分岐
命令の分岐が成立している場合、分岐先命令がパイプラ
インに投入されるのは、この分岐命令のLステージの次
サイクルとなる。一方、Bステージで制御記憶130か
ら得られた制御情報は演算実行部170に転送される。
ランド用バッファ記憶装置160で得たオペランドデー
タを演算実行部170に転送し、汎用レジスタ180に
格納されたデータをオペランドデータとして使用する命
令のために汎用レジスタ180を参照し、その内容を演
算実行部170に転送する処理を行う。また、分岐命令
の場合、Bステージにおいて、命令用バッファ記憶装置
160から得た分岐先命令列をIBR10に転送する処
理を行う。そして、分岐命令の分岐が成立している場
合、分岐先命令をIR30に格納する。すなわち、分岐
命令の分岐が成立している場合、分岐先命令がパイプラ
インに投入されるのは、この分岐命令のLステージの次
サイクルとなる。一方、Bステージで制御記憶130か
ら得られた制御情報は演算実行部170に転送される。
【0019】Eステージは、演算実行部170により、
先に求めたオペランドデータを使用し、制御情報に基づ
いた演算を実行する処理を行う。その演算結果は、汎用
レジスタ180に書き込まれ、あるいは、条件コードに
反映されて条件分岐命令の分岐判定のために用いられ
る。
先に求めたオペランドデータを使用し、制御情報に基づ
いた演算を実行する処理を行う。その演算結果は、汎用
レジスタ180に書き込まれ、あるいは、条件コードに
反映されて条件分岐命令の分岐判定のために用いられ
る。
【0020】前述した処理の各ステージは、使用される
論理の競合なく行うことができるもので、これを利用し
て各ステージをオーバラップさせて処理を実行すること
ができる。前述した従来技術は、これにより、図8〜図
11に示すようなパイプライン処理を実行している。
論理の競合なく行うことができるもので、これを利用し
て各ステージをオーバラップさせて処理を実行すること
ができる。前述した従来技術は、これにより、図8〜図
11に示すようなパイプライン処理を実行している。
【0021】図8に示すタイムチャートは、CLI命
令、BC命令を連続して実行させた場合に、BC命令の
分岐が不成立の場合のパイプラインフローを示してい
る。
令、BC命令を連続して実行させた場合に、BC命令の
分岐が不成立の場合のパイプラインフローを示してい
る。
【0022】図8において、命令0〜命令4が順に実行
されるものとし、命令1がCLI命令、命令2がBC命
令であるとする。通常、BC命令の分岐が成立するか否
かは、その命令のDステージで予測することができる。
このため、図8に示すようなBC命令の分岐が不成立の
場合、BC命令のDステージの次のサイクルで命令4を
パイプライン投入して処理を続けることができる。
されるものとし、命令1がCLI命令、命令2がBC命
令であるとする。通常、BC命令の分岐が成立するか否
かは、その命令のDステージで予測することができる。
このため、図8に示すようなBC命令の分岐が不成立の
場合、BC命令のDステージの次のサイクルで命令4を
パイプライン投入して処理を続けることができる。
【0023】すなわち、この例の場合、命令を毎サイク
ルに1つずつパイプラインに投入することができ、演算
結果も毎サイクル毎に得ることができ、命令処理速度を
1サイクル当り1命令とする理想的な処理を行うことが
できる。
ルに1つずつパイプラインに投入することができ、演算
結果も毎サイクル毎に得ることができ、命令処理速度を
1サイクル当り1命令とする理想的な処理を行うことが
できる。
【0024】しかし、実際には様々な要因により1サイ
クル当り1命令の処理速度を得ることができない。この
要因の1つとして分岐先命令読み出しのオーバヘッドが
ある。
クル当り1命令の処理速度を得ることができない。この
要因の1つとして分岐先命令読み出しのオーバヘッドが
ある。
【0025】図9に示すタイムチャートは、このような
場合の例を示すもので、CLI命令、BC命令を連続し
て実行させた場合に、BC命令の分岐が成立した場合の
パイプラインフローを示している。
場合の例を示すもので、CLI命令、BC命令を連続し
て実行させた場合に、BC命令の分岐が成立した場合の
パイプラインフローを示している。
【0026】図9において、命令0〜命令2は図8の場
合と同一であり、命令5はBC命令の分岐が成立した結
果得られた分岐先命令であり、命令6はその命令5に続
く命令である。この例の場合、BC命令のDステージで
分岐の成立を予測することができるが、分岐先命令であ
る命令5がパイプラインに投入されるのは、既に説明し
たようにBC命令のLステージの後となる。このため、
図9の例では、分岐命令が第3サイクルにパイプライン
に投入されているのに対して、その分岐先命令である命
令5がパイプラインに投入されるのが第8サイクルとな
り、4マシンサイクルの空きが生じている。
合と同一であり、命令5はBC命令の分岐が成立した結
果得られた分岐先命令であり、命令6はその命令5に続
く命令である。この例の場合、BC命令のDステージで
分岐の成立を予測することができるが、分岐先命令であ
る命令5がパイプラインに投入されるのは、既に説明し
たようにBC命令のLステージの後となる。このため、
図9の例では、分岐命令が第3サイクルにパイプライン
に投入されているのに対して、その分岐先命令である命
令5がパイプラインに投入されるのが第8サイクルとな
り、4マシンサイクルの空きが生じている。
【0027】図10に示すタイムチャートは、BCT命
令の分岐が成立した場合のパイプラインフローを示して
いる。
令の分岐が成立した場合のパイプラインフローを示して
いる。
【0028】図10において、命令0、1は命令2のB
CT命令に先行する命令であり、命令5、6はBCT命
令の分岐が成立した結果得られた分岐先命令とそれに続
く命令である。この例の場合も、図9の同様にBCT命
令のDステージで分岐の成立を予測することができる
が、分岐先命令である命令5がパイプラインに投入され
るのは第8サイクルとなり、4マシンサイクルの空きを
生じることになる。
CT命令に先行する命令であり、命令5、6はBCT命
令の分岐が成立した結果得られた分岐先命令とそれに続
く命令である。この例の場合も、図9の同様にBCT命
令のDステージで分岐の成立を予測することができる
が、分岐先命令である命令5がパイプラインに投入され
るのは第8サイクルとなり、4マシンサイクルの空きを
生じることになる。
【0029】図11に示すタイムチャートは、L命令、
LTR命令のパイプラインフローを示している。
LTR命令のパイプラインフローを示している。
【0030】図11において、命令1、2がそれぞれL
命令、LTR命令である以外、図8の場合と同一であ
る。この例の場合、図8に示した場合と同様に、命令を
毎サイクルに1つずつパイプラインに投入することがで
き、演算結果も毎サイクル毎に得ることができる。
命令、LTR命令である以外、図8の場合と同一であ
る。この例の場合、図8に示した場合と同様に、命令を
毎サイクルに1つずつパイプラインに投入することがで
き、演算結果も毎サイクル毎に得ることができる。
【0031】なお、前述したようなパイプライン処理方
式の情報処理装置に関する従来技術として、例えば、特
開昭63−195736号公報に記載された技術が知ら
れている。
式の情報処理装置に関する従来技術として、例えば、特
開昭63−195736号公報に記載された技術が知ら
れている。
【0032】
【発明が解決しようとする課題】前述した従来技術にに
よるパイプライン処理機構を持った情報処理装置は、処
理速度が最大でも1サイクル当り1命令に制限されると
いう問題点を有しており、また、分岐先命令の読み出し
のためのオーバヘッド等の様々なオーバヘッドにより、
実際には1命令の処理に平均して数サイクルを必要とす
るという問題点を有している。
よるパイプライン処理機構を持った情報処理装置は、処
理速度が最大でも1サイクル当り1命令に制限されると
いう問題点を有しており、また、分岐先命令の読み出し
のためのオーバヘッド等の様々なオーバヘッドにより、
実際には1命令の処理に平均して数サイクルを必要とす
るという問題点を有している。
【0033】本発明の目的は、前記従来技術の問題点を
解決し、予め決められた2命令の組み合せをこの2命令
に等価な複合命令の1命令に置き換えることにより、1
サイクルに最大2命令の処理を可能とした情報処理装置
を提供することにある。
解決し、予め決められた2命令の組み合せをこの2命令
に等価な複合命令の1命令に置き換えることにより、1
サイクルに最大2命令の処理を可能とした情報処理装置
を提供することにある。
【0034】また、本発明の他の目的は、分岐命令の処
理の少なくとも一部を、その分岐命令に先行する命令の
パイプライン処理と並行して処理することを可能とし、
これにより、分岐先命令の読み出しオーバヘッドを低減
することのできる情報処理装置を提供することにある。
理の少なくとも一部を、その分岐命令に先行する命令の
パイプライン処理と並行して処理することを可能とし、
これにより、分岐先命令の読み出しオーバヘッドを低減
することのできる情報処理装置を提供することにある。
【0035】
【課題を解決するための手段】本発明によれば前記目的
は、命令の複合化を行い、この復号化命令を1つの命令
として実行可能とし、また、分岐先命令の読み出しを早
めるようにすることにより達成される。
は、命令の複合化を行い、この復号化命令を1つの命令
として実行可能とし、また、分岐先命令の読み出しを早
めるようにすることにより達成される。
【0036】すなわち、前記目的は、通常のパイプライ
ン処理のための第1の命令取り出し手段に加えて、第1
の命令取り出し手段が取り出す命令の後続命令を取り出
す第2の命令取り出し手段と、第1の命令取り出し手段
が取り出す命令を格納するための第1の命令格納手段に
加えて、第2の命令取り出し手段が取り出す命令を格納
するための第2の命令格納手段と、第1の命令格納手段
と第2の命令格納手段とに格納された命令が予定の命令
組み合せであるか否かを検査し、予定の命令組み合わせ
であるならばそれらの2命令を等価な複合命令に置き換
える置換命令発生手段と、置換命令発生手段が置換命令
を発生したとき、第1の命令格納手段に、第2の命令格
納手段に格納されている命令の直後の命令を格納するよ
うに第1の命令取り出し手段を制御する手段と、第2の
命令格納手段に格納された命令が分岐命令であるか否か
を検査し、分岐命令であるならば分岐先命令の読み出し
を開始させる第2の分岐命令検出回路と、第1の命令格
納手段に格納された命令が分岐命令であり、その分岐命
令の分岐先命令の読み出しが第2の分岐命令検出回路に
よって開始されている場合、第1の命令格納手段にその
分岐命令が格納されたことによる分岐先命令の読み出し
を抑止する第1の分岐命令検出回路と備えることにより
達成される。
ン処理のための第1の命令取り出し手段に加えて、第1
の命令取り出し手段が取り出す命令の後続命令を取り出
す第2の命令取り出し手段と、第1の命令取り出し手段
が取り出す命令を格納するための第1の命令格納手段に
加えて、第2の命令取り出し手段が取り出す命令を格納
するための第2の命令格納手段と、第1の命令格納手段
と第2の命令格納手段とに格納された命令が予定の命令
組み合せであるか否かを検査し、予定の命令組み合わせ
であるならばそれらの2命令を等価な複合命令に置き換
える置換命令発生手段と、置換命令発生手段が置換命令
を発生したとき、第1の命令格納手段に、第2の命令格
納手段に格納されている命令の直後の命令を格納するよ
うに第1の命令取り出し手段を制御する手段と、第2の
命令格納手段に格納された命令が分岐命令であるか否か
を検査し、分岐命令であるならば分岐先命令の読み出し
を開始させる第2の分岐命令検出回路と、第1の命令格
納手段に格納された命令が分岐命令であり、その分岐命
令の分岐先命令の読み出しが第2の分岐命令検出回路に
よって開始されている場合、第1の命令格納手段にその
分岐命令が格納されたことによる分岐先命令の読み出し
を抑止する第1の分岐命令検出回路と備えることにより
達成される。
【0037】
【作用】置換命令発生回路は、前記第1の命令格納手段
と第2の命令格納手段とに格納された2命令が予定の命
令の組み合せであることを検出すると、それらの2命令
を1つの命令に複合化した複合命令で置き換える。そし
て、次サイクルにおいて、それらの2命令に後続する命
令が第1の命令格納手段に格納される。置き換えられた
複合命令は、1つの命令としてパイプラインの各ステー
ジで処理される。
と第2の命令格納手段とに格納された2命令が予定の命
令の組み合せであることを検出すると、それらの2命令
を1つの命令に複合化した複合命令で置き換える。そし
て、次サイクルにおいて、それらの2命令に後続する命
令が第1の命令格納手段に格納される。置き換えられた
複合命令は、1つの命令としてパイプラインの各ステー
ジで処理される。
【0038】この結果、本発明は、前述の2命令に後続
する命令のパイプライン投入を1サイクル早めることが
でき、処理速度を向上させることができる。
する命令のパイプライン投入を1サイクル早めることが
でき、処理速度を向上させることができる。
【0039】また、第2の命令取り出し手段が取り出し
た命令が分岐命令であるとき、分岐命令検出回路は、分
岐先命令の読み出しを直ちに開始させる。従って、第1
の命令取り出し手段が取り出した分岐命令に先行する命
令のパイプラインの各ステージにおける処理に並行し
て、分岐先命令の読み出しがパイプラインの各ステージ
で処理されることとなり、分岐先命令の読み出しのオー
バヘッドを低減することができる。
た命令が分岐命令であるとき、分岐命令検出回路は、分
岐先命令の読み出しを直ちに開始させる。従って、第1
の命令取り出し手段が取り出した分岐命令に先行する命
令のパイプラインの各ステージにおける処理に並行し
て、分岐先命令の読み出しがパイプラインの各ステージ
で処理されることとなり、分岐先命令の読み出しのオー
バヘッドを低減することができる。
【0040】
【実施例】以下、本発明による情報処理装置の一実施例
を図面により詳細に説明する。
を図面により詳細に説明する。
【0041】図1は本発明の一実施例によるパイプライ
ン処理方式による情報処理装置の構成を示すブロック
図、図2はBC命令の分岐が不成立の場合のパイプライ
ンフローを示すタイムチャート、図3はBC命令の分岐
が成立した場合のパイプラインフローを示すタイムチャ
ート、図4はBCT命令の分岐が成立した場合のパイプ
ラインフローを示すタイムチャート、図5はL命令、L
TR命令を復号化して実行するパイプラインフローを示
すタイムチャートである。図1において、40は第2の
命令取り出しシフタ、50は第2の命令レジスタ、52
は第2のILCデコーダ、80はセレクタ、90は置換
命令発生回路、105は第2の分岐命令検出回路であ
り、他の符号は図6の場合と同一である。但し、本発明
の一実施例で「第2の」として従来技術に加えて同一機
能ブロックが加えられたものについて、従来から備えら
れているものについては、「第1の」を付与して説明す
る。
ン処理方式による情報処理装置の構成を示すブロック
図、図2はBC命令の分岐が不成立の場合のパイプライ
ンフローを示すタイムチャート、図3はBC命令の分岐
が成立した場合のパイプラインフローを示すタイムチャ
ート、図4はBCT命令の分岐が成立した場合のパイプ
ラインフローを示すタイムチャート、図5はL命令、L
TR命令を復号化して実行するパイプラインフローを示
すタイムチャートである。図1において、40は第2の
命令取り出しシフタ、50は第2の命令レジスタ、52
は第2のILCデコーダ、80はセレクタ、90は置換
命令発生回路、105は第2の分岐命令検出回路であ
り、他の符号は図6の場合と同一である。但し、本発明
の一実施例で「第2の」として従来技術に加えて同一機
能ブロックが加えられたものについて、従来から備えら
れているものについては、「第1の」を付与して説明す
る。
【0042】図1に示す本発明の一実施例は、図6によ
り説明した従来技術に、第2の命令取り出しシフタ4
0、第2の命令レジスタ50、第2のILCデコーダ5
2、セレクタ80、置換命令発生回路90、第2の分岐
命令検出回路105を加えて構成されるものであり、ま
ず、これらの機能ブロックについて説明する。なお、従
来技術の同一のブロックは、既に従来技術として説明し
たと同一の機能を有しているので、その説明を省略す
る。
り説明した従来技術に、第2の命令取り出しシフタ4
0、第2の命令レジスタ50、第2のILCデコーダ5
2、セレクタ80、置換命令発生回路90、第2の分岐
命令検出回路105を加えて構成されるものであり、ま
ず、これらの機能ブロックについて説明する。なお、従
来技術の同一のブロックは、既に従来技術として説明し
たと同一の機能を有しているので、その説明を省略す
る。
【0043】第2の命令取り出しシフタ40は、第1の
命令取り出しシフタ20により取り出された命令列の先
頭の命令の命令長を示す命令長コードILC21に基づ
いて、第1の命令取り出しシフタ20により取り出され
た命令列の先頭より、ILC21が示すだけ後の位置か
ら命令を取り出すことにより、IRP30に格納された
命令の直後の命令を取り出す機能を有する。第2の命令
レジスタIRS50は、第2の命令取り出しシフタ40
によって取り出された命令を格納する。
命令取り出しシフタ20により取り出された命令列の先
頭の命令の命令長を示す命令長コードILC21に基づ
いて、第1の命令取り出しシフタ20により取り出され
た命令列の先頭より、ILC21が示すだけ後の位置か
ら命令を取り出すことにより、IRP30に格納された
命令の直後の命令を取り出す機能を有する。第2の命令
レジスタIRS50は、第2の命令取り出しシフタ40
によって取り出された命令を格納する。
【0044】第2のILCデコーダ52は、IRS50
に格納された命令の命令長を示す第2のILC51から
IRS50に格納された命令の命令長を求める機能を有
する。加算器70は、IBROP60の内容と第1のI
LCデコーダ32の内容とセレクタ80により供給され
る値とを加算し、IBROP60の内容を更新する機能
を有する。セレクタ80は、“0”または第2のILC
デコーダ52の出力のいずれかを選択し加算器70に供
給する。
に格納された命令の命令長を示す第2のILC51から
IRS50に格納された命令の命令長を求める機能を有
する。加算器70は、IBROP60の内容と第1のI
LCデコーダ32の内容とセレクタ80により供給され
る値とを加算し、IBROP60の内容を更新する機能
を有する。セレクタ80は、“0”または第2のILC
デコーダ52の出力のいずれかを選択し加算器70に供
給する。
【0045】置換命令発生回路90は、IRP30及び
IRS50に予め決められた組み合せの命令が格納され
た場合、それらを複合化された1つの命令に置き換え、
それ以外の場合、IRP30の内容をそのまま出力する
機能を備える。第2の分岐命令検出回路105は、IR
S50に分岐命令が格納されたことを検出する。
IRS50に予め決められた組み合せの命令が格納され
た場合、それらを複合化された1つの命令に置き換え、
それ以外の場合、IRP30の内容をそのまま出力する
機能を備える。第2の分岐命令検出回路105は、IR
S50に分岐命令が格納されたことを検出する。
【0046】次に、前述のように構成される本発明の一
実施例の動作を説明する。なお、本発明の一実施例にお
ける情報処理装置においても、前述した従来技術による
場合と同様に、図7により説明した命令が使用されるも
のとする。
実施例の動作を説明する。なお、本発明の一実施例にお
ける情報処理装置においても、前述した従来技術による
場合と同様に、図7により説明した命令が使用されるも
のとする。
【0047】まず、CLI命令及びBC命令がこの順で
連続し、これらの命令がCLI−BC複合命令に置換さ
れる場合を例に挙げ、図2、図3を参照して説明する。
連続し、これらの命令がCLI−BC複合命令に置換さ
れる場合を例に挙げ、図2、図3を参照して説明する。
【0048】図2はBC命令の分岐が不成立の場合のパ
イプラインフローを示す図であり、以下、このパイプラ
インフローを説明する。
イプラインフローを示す図であり、以下、このパイプラ
インフローを説明する。
【0049】図2において、命令0はCLI命令に先行
する命令、命令3はBC命令に後続する命令、命令4は
命令3に後続する命令であり、それぞれ説明の便宜上加
えられたものである。
する命令、命令3はBC命令に後続する命令、命令4は
命令3に後続する命令であり、それぞれ説明の便宜上加
えられたものである。
【0050】図1に示す本発明の一実施例において、ま
ず、命令0が第1の命令取り出しシフタ20によりIB
R10から取り出されてIRP30に格納される。そし
て、第1サイクルに命令0のDステージが開始される。
これと同時に、命令0の後続命令であるCLI命令は、
第2の命令取り出しシフタ40によってIRS50に取
り出される。
ず、命令0が第1の命令取り出しシフタ20によりIB
R10から取り出されてIRP30に格納される。そし
て、第1サイクルに命令0のDステージが開始される。
これと同時に、命令0の後続命令であるCLI命令は、
第2の命令取り出しシフタ40によってIRS50に取
り出される。
【0051】命令0のDステージにおいて、置換命令発
生回路90は、IRP30及びIRS50の内容を検査
する。置換命令発生回路90は、予め複合化可能な命令
の組み合わせを保持しており、この場合の命令の組み合
わせが命令複合化の対象ではないことを検出する。この
結果により、セレクタ80は、置換命令発生回路90に
より“0”を選択するよう制御され、“0”を加算器7
0に供給する。
生回路90は、IRP30及びIRS50の内容を検査
する。置換命令発生回路90は、予め複合化可能な命令
の組み合わせを保持しており、この場合の命令の組み合
わせが命令複合化の対象ではないことを検出する。この
結果により、セレクタ80は、置換命令発生回路90に
より“0”を選択するよう制御され、“0”を加算器7
0に供給する。
【0052】従って、IBROP60の内容は、その旧
値と、IRP30内の命令すなわち命令0の長さとの和
に更新される。そして、この値が第1の命令取り出しシ
フタ20に供給される。
値と、IRP30内の命令すなわち命令0の長さとの和
に更新される。そして、この値が第1の命令取り出しシ
フタ20に供給される。
【0053】この結果、第2サイクルにおいて、IRP
30には、第1の命令取り出しシフタ20によりCLI
命令が格納され、IRS50には、第2の命命令取り出
しシフタ40によりBC命令が格納される。置換命令発
生回路90は、命令複合化の対象であるCLI命令とB
C命令との組合せがIRP30及びIRS50に格納さ
れたことを検出し、CLI−BC複合命令を発生する。
30には、第1の命令取り出しシフタ20によりCLI
命令が格納され、IRS50には、第2の命命令取り出
しシフタ40によりBC命令が格納される。置換命令発
生回路90は、命令複合化の対象であるCLI命令とB
C命令との組合せがIRP30及びIRS50に格納さ
れたことを検出し、CLI−BC複合命令を発生する。
【0054】一方、第2の分岐命令検出回路105はI
RS50に分岐命令が格納されたことを検出し、分岐先
命令の読み出しを開始させる。
RS50に分岐命令が格納されたことを検出し、分岐先
命令の読み出しを開始させる。
【0055】これにより、第2サイクルにおいて、CL
I−BC命令のDステージと分岐先命令読み出しのDス
テージとが並行して処理される。このDステージにおい
て、BC命令の分岐成立か否かを予測することができ、
図2に示す例の場合、分岐不成立と予測される。これに
より、置換命令発生回路90は、CLI−BC命令に割
り当てた擬似オペレーションコードを命令デコーダ11
0に供給すると共に、第2のILCデコーダ52の出力
を選択するようセレクタ80を制御する。
I−BC命令のDステージと分岐先命令読み出しのDス
テージとが並行して処理される。このDステージにおい
て、BC命令の分岐成立か否かを予測することができ、
図2に示す例の場合、分岐不成立と予測される。これに
より、置換命令発生回路90は、CLI−BC命令に割
り当てた擬似オペレーションコードを命令デコーダ11
0に供給すると共に、第2のILCデコーダ52の出力
を選択するようセレクタ80を制御する。
【0056】この結果、加算器70は、セレクタ80か
らBC命令の命令長が供給され、このBC命令の命令長
とIBROP60の旧値とCLI命令の命令長とを加算
して得られた和をIBROP60に格納する。すなわ
ち、IBROP60の内容は、BC命令の後続命令であ
る命令3を指すように更新される。加算器70の出力
は、第1の命令取り出しシフタ20にも供給されるの
で、第3サイクルには第1の命令取り出しシフタ20に
より命令3がIRP30に取り出される。
らBC命令の命令長が供給され、このBC命令の命令長
とIBROP60の旧値とCLI命令の命令長とを加算
して得られた和をIBROP60に格納する。すなわ
ち、IBROP60の内容は、BC命令の後続命令であ
る命令3を指すように更新される。加算器70の出力
は、第1の命令取り出しシフタ20にも供給されるの
で、第3サイクルには第1の命令取り出しシフタ20に
より命令3がIRP30に取り出される。
【0057】第2サイクルにおいて、命令デコーダ11
0は、置換命令発生回路90より供給されるCLI−B
C命令に割り当てた擬似オペレーションコードの解読情
報を生成する。また、IRP30に格納されたCLI命
令のB1フィールドにより汎用レジスタ180が参照さ
れ、その内容と、CLI命令のD1フィールドの内容と
がオペランド用アドレス加算器140に供給される。さ
らに、IRS50に格納されたBC命令のX2、B2フ
ィールドにより汎用レジスタ180が参照され、その内
容と、BC命令のD2フィールドの内容とが命令用アド
レス加算器200に供給される。
0は、置換命令発生回路90より供給されるCLI−B
C命令に割り当てた擬似オペレーションコードの解読情
報を生成する。また、IRP30に格納されたCLI命
令のB1フィールドにより汎用レジスタ180が参照さ
れ、その内容と、CLI命令のD1フィールドの内容と
がオペランド用アドレス加算器140に供給される。さ
らに、IRS50に格納されたBC命令のX2、B2フ
ィールドにより汎用レジスタ180が参照され、その内
容と、BC命令のD2フィールドの内容とが命令用アド
レス加算器200に供給される。
【0058】第3サイクルにおいて、CLI−BC複合
命令のAステージと分岐先命令読み出しのAステージが
並行して処理される。オペランド用アドレス加算器14
0は、汎用レジスタ180とIRP30とから供給され
るデータを加算することにより、CLI−BC複合命令
の第1オペランドの論理アドレスを求める。また、命令
用アドレス加算器200は、汎用レジスタ180とIR
S50とから供給されるデータを加算することにより、
分岐先命令の論理アドレスを求める。
命令のAステージと分岐先命令読み出しのAステージが
並行して処理される。オペランド用アドレス加算器14
0は、汎用レジスタ180とIRP30とから供給され
るデータを加算することにより、CLI−BC複合命令
の第1オペランドの論理アドレスを求める。また、命令
用アドレス加算器200は、汎用レジスタ180とIR
S50とから供給されるデータを加算することにより、
分岐先命令の論理アドレスを求める。
【0059】第4サイクルにおいて、CLI−BC複合
命令のTステージと分岐先命令読み出しのTステージが
並行して処理される。オペランド用TLB150は、オ
ペランド用アドレス加算器140で求められたCLI−
BC複合命令の第1オペランドの論理アドレスを物理ア
ドレスに変換する。また、命令用TLB210は、命令
用アドレス加算器200で求められた分岐先命令の論理
アドレスを物理アドレスに変換する。
命令のTステージと分岐先命令読み出しのTステージが
並行して処理される。オペランド用TLB150は、オ
ペランド用アドレス加算器140で求められたCLI−
BC複合命令の第1オペランドの論理アドレスを物理ア
ドレスに変換する。また、命令用TLB210は、命令
用アドレス加算器200で求められた分岐先命令の論理
アドレスを物理アドレスに変換する。
【0060】第5サイクルにおいて、CLI−BC複合
命令のBステージと分岐先命令読み出しのBステージが
並行して処理される。制御記憶130は、命令デコーダ
110から取り出された命令解読情報により参照され、
CLI−BC複合命令の実行に必要な制御情報が演算実
行部170に供給可能となる。オペランド用バッファ記
憶装置160は、オペランド用TLB150で求められ
たCLI−BC複合命令の第1オペランドの物理アドレ
スにより参照され、演算の実行に必要となる第1オペラ
ンドデータが演算実行部170に供給可能となる。ま
た、命令用バッファ記憶装置220は、命令用TLB2
10で求められた分岐先命令の物理アドレスにより参照
され、分岐先命令がIBR10に供給可能となる。
命令のBステージと分岐先命令読み出しのBステージが
並行して処理される。制御記憶130は、命令デコーダ
110から取り出された命令解読情報により参照され、
CLI−BC複合命令の実行に必要な制御情報が演算実
行部170に供給可能となる。オペランド用バッファ記
憶装置160は、オペランド用TLB150で求められ
たCLI−BC複合命令の第1オペランドの物理アドレ
スにより参照され、演算の実行に必要となる第1オペラ
ンドデータが演算実行部170に供給可能となる。ま
た、命令用バッファ記憶装置220は、命令用TLB2
10で求められた分岐先命令の物理アドレスにより参照
され、分岐先命令がIBR10に供給可能となる。
【0061】第6サイクルにおいて、CLI−BC複合
命令のLステージと分岐先命令読み出しのLステージが
並行して処理される。制御記憶130から取り出された
CLI−BC複合命令の制御情報は、演算実行部170
に転送され、オペランド用バッファ記憶装置160から
取り出されたCLI−BC複合命令の第1オペランドデ
ータとCLI命令中のI2フィールドの内容である第2
オペランドデータも演算実行部に転送される。また、命
令用バッファ記憶装置220から取り出された分岐先命
令は、IBR10に供給される。但し、分岐が不成立の
場合、この分岐先命令は使用されない。従って、図2に
示す例の場合、この分岐先命令は使用されない。
命令のLステージと分岐先命令読み出しのLステージが
並行して処理される。制御記憶130から取り出された
CLI−BC複合命令の制御情報は、演算実行部170
に転送され、オペランド用バッファ記憶装置160から
取り出されたCLI−BC複合命令の第1オペランドデ
ータとCLI命令中のI2フィールドの内容である第2
オペランドデータも演算実行部に転送される。また、命
令用バッファ記憶装置220から取り出された分岐先命
令は、IBR10に供給される。但し、分岐が不成立の
場合、この分岐先命令は使用されない。従って、図2に
示す例の場合、この分岐先命令は使用されない。
【0062】第7サイクルにおいて、演算実行部170
は、CLI−BC複合命令の演算を実行する。すなわ
ち、演算実行部170は、オペランド用バッファ記憶装
置160から読み出される第1オペランドデータと、C
LI命令中のI2フィールドの内容である第2オペラン
ドデータとを比較し、その比較結果により条件コードを
設定する処理を行う。
は、CLI−BC複合命令の演算を実行する。すなわ
ち、演算実行部170は、オペランド用バッファ記憶装
置160から読み出される第1オペランドデータと、C
LI命令中のI2フィールドの内容である第2オペラン
ドデータとを比較し、その比較結果により条件コードを
設定する処理を行う。
【0063】一方、前述したように、第2サイクルにお
いて、第1の命令取り出しシフタ20は、命令3の位置
から命令列を取り出すように制御されるので、第3サイ
クルににおいて、命令3がIRP30にセットされる。
また、続く第4サイクルにおいて、命令4が順次パイプ
ラインに投入される。
いて、第1の命令取り出しシフタ20は、命令3の位置
から命令列を取り出すように制御されるので、第3サイ
クルににおいて、命令3がIRP30にセットされる。
また、続く第4サイクルにおいて、命令4が順次パイプ
ラインに投入される。
【0064】前述したように、本発明の実施例は、CL
I命令とBC命令とが連続する場合に、これらの命令を
複合化して、BC命令の処理をCLI命令のパイプライ
ン処理と並行して実行することが可能となり、かつ、B
C命令の分岐が不成立の場合、BC命令の後続命令であ
る命令3、命令4のパイプラインへの投入を第3サイク
ルから行うことができる。この結果、本発明の実施例
は、同一の条件における従来技術の場合の動作を説明す
る図8に示すフローと比較して命令3、命令4のパイプ
ラインへの投入を1サイクル早めることができ、情報処
理装置の処理速度を向上させることができる。
I命令とBC命令とが連続する場合に、これらの命令を
複合化して、BC命令の処理をCLI命令のパイプライ
ン処理と並行して実行することが可能となり、かつ、B
C命令の分岐が不成立の場合、BC命令の後続命令であ
る命令3、命令4のパイプラインへの投入を第3サイク
ルから行うことができる。この結果、本発明の実施例
は、同一の条件における従来技術の場合の動作を説明す
る図8に示すフローと比較して命令3、命令4のパイプ
ラインへの投入を1サイクル早めることができ、情報処
理装置の処理速度を向上させることができる。
【0065】図3はBC命令の分岐が成立した場合のパ
イプラインフローを示す図であり、以下、このパイプラ
インフローを説明する。
イプラインフローを示す図であり、以下、このパイプラ
インフローを説明する。
【0066】図3において、命令0はCLI命令に先行
する命令、命令5はBC命令の分岐先命令、命令6は命
令5に後続する命令でありそれぞれ説明の便宜上加えら
れたものである。
する命令、命令5はBC命令の分岐先命令、命令6は命
令5に後続する命令でありそれぞれ説明の便宜上加えら
れたものである。
【0067】図3において、第1サイクルで命令0のD
ステージが実行され、第2サイクルでCLI−BC複合
命令のDステージと、分岐先命令読み出しのDステージ
とが並行して処理されるのは前述した図2の分岐不成立
の場合と同一である。そして、この例の場合、第2サイ
クルのDステージの処理で、分岐成立を予測することが
できるので、命令3の読み出し処理を開始することな
く、CLI−BC複合命令及び分岐先命令読み出しのA
ステージ、Tステージ、Bステージ、Lステージがそれ
ぞれ、並行して順次処理される。この処理も、前述した
図2の分岐不成立の場合と同一である。
ステージが実行され、第2サイクルでCLI−BC複合
命令のDステージと、分岐先命令読み出しのDステージ
とが並行して処理されるのは前述した図2の分岐不成立
の場合と同一である。そして、この例の場合、第2サイ
クルのDステージの処理で、分岐成立を予測することが
できるので、命令3の読み出し処理を開始することな
く、CLI−BC複合命令及び分岐先命令読み出しのA
ステージ、Tステージ、Bステージ、Lステージがそれ
ぞれ、並行して順次処理される。この処理も、前述した
図2の分岐不成立の場合と同一である。
【0068】第7サイクルにおいて、前述したように演
算実行部170は、CLI−BC複合命令の演算を実行
し、条件コードの設定が行われる。
算実行部170は、CLI−BC複合命令の演算を実行
し、条件コードの設定が行われる。
【0069】一方、第6サイクルにおけるLステージ
で、命令用バッファ記憶装置220からIBR10に転
送された分岐先命令である命令5は、続く第7サイクル
においてIRP30にセットされ、パイプラインによる
処理が開始される。また、続く第8サイクルには命令6
が順次パイプラインに投入される。
で、命令用バッファ記憶装置220からIBR10に転
送された分岐先命令である命令5は、続く第7サイクル
においてIRP30にセットされ、パイプラインによる
処理が開始される。また、続く第8サイクルには命令6
が順次パイプラインに投入される。
【0070】前述したように、本発明の実施例は、CL
I命令とBC命令とを複合化して、BC命令の処理をC
LI命令のパイプライン処理と並行して実行し、BC命
令の分岐が不成立の場合、分岐先命令である命令5、そ
の後続命令6のパイプラインへの投入を第7サイクルか
ら行うことができる。この結果、本発明の実施例は、同
一の条件における従来技術の場合の動作を説明する図9
に示すフローと比較して命令5、命令6のパイプライン
への投入を1サイクル早めることができ、情報処理装置
の処理速度を向上させることができる。
I命令とBC命令とを複合化して、BC命令の処理をC
LI命令のパイプライン処理と並行して実行し、BC命
令の分岐が不成立の場合、分岐先命令である命令5、そ
の後続命令6のパイプラインへの投入を第7サイクルか
ら行うことができる。この結果、本発明の実施例は、同
一の条件における従来技術の場合の動作を説明する図9
に示すフローと比較して命令5、命令6のパイプライン
への投入を1サイクル早めることができ、情報処理装置
の処理速度を向上させることができる。
【0071】次に、分岐先命令の読み出しによるオーバ
ヘッドを低減させることができる動作例として、BCT
命令の処理について説明する。BCT命令は、R1で示
された汎用レジスタの演算が必要なため、演算器に競合
が生じ、全ての処理を先行する命令と並行して実行する
ことができない。従って、複合命令化することはせずに
分岐先命令の読み出し処理のみを並行して実行する。
ヘッドを低減させることができる動作例として、BCT
命令の処理について説明する。BCT命令は、R1で示
された汎用レジスタの演算が必要なため、演算器に競合
が生じ、全ての処理を先行する命令と並行して実行する
ことができない。従って、複合命令化することはせずに
分岐先命令の読み出し処理のみを並行して実行する。
【0072】図4はBCT命令を含む命令列を、図1に
示す情報処理装置で実行した場合のパイプラインフロー
を示す図であり、以下、これについて説明する。
示す情報処理装置で実行した場合のパイプラインフロー
を示す図であり、以下、これについて説明する。
【0073】図4に示すフローは、BCT命令の分岐が
成立する場合の例であり、命令0、命令1は、BCT命
令に先行する命令、命令5はBCT命令の分岐先命令、
命令6は命令5に後続する命令でありそれぞれ説明の便
宜上加えられたものである。
成立する場合の例であり、命令0、命令1は、BCT命
令に先行する命令、命令5はBCT命令の分岐先命令、
命令6は命令5に後続する命令でありそれぞれ説明の便
宜上加えられたものである。
【0074】第1サイクルににおいて、命令0がパイプ
ラインに投入されるのに続き、第2サイクルにおいて、
命令1がパイプラインに投入される。このとき、第1の
命令取り出しシフタ20は、取り出した命令1をIRP
30に格納するが、これと同時に、第2の命令取り出し
シフタ40は、命令1の後続命令であるBCT命令をI
RS50に格納する。第2の分岐命令検出回路105
は、IRS50に分岐命令であるBCT命令がセットさ
れたことを検出し、分岐先命令読み出しを開始させる。
ラインに投入されるのに続き、第2サイクルにおいて、
命令1がパイプラインに投入される。このとき、第1の
命令取り出しシフタ20は、取り出した命令1をIRP
30に格納するが、これと同時に、第2の命令取り出し
シフタ40は、命令1の後続命令であるBCT命令をI
RS50に格納する。第2の分岐命令検出回路105
は、IRS50に分岐命令であるBCT命令がセットさ
れたことを検出し、分岐先命令読み出しを開始させる。
【0075】これにより、第2サイクルにおいて、命令
1のDステージと分岐先命令読み出しのDステージとが
並行して処理される。なお、この第2サイクルのDステ
ージにおいて、BCT命令の分岐成立が予測される。ま
た、前述したように命令1とBCT命令とは命令複合化
の対象ではないので、置換命令発生回路90は、命令1
のオペレーションコードをそのまま命令デコーダ110
に供給すると共に、セレクタ80を、“0”を選択する
ように制御する。加算器70は、セレクタ80から供給
される“0”と、IBROP60の旧値と、第1のIL
Cデコーダ32の出力との和を演算してIBROP60
の値を更新する。この結果、IBROP60は、命令1
の後続命令であるBCT命令を指すように更新される。
1のDステージと分岐先命令読み出しのDステージとが
並行して処理される。なお、この第2サイクルのDステ
ージにおいて、BCT命令の分岐成立が予測される。ま
た、前述したように命令1とBCT命令とは命令複合化
の対象ではないので、置換命令発生回路90は、命令1
のオペレーションコードをそのまま命令デコーダ110
に供給すると共に、セレクタ80を、“0”を選択する
ように制御する。加算器70は、セレクタ80から供給
される“0”と、IBROP60の旧値と、第1のIL
Cデコーダ32の出力との和を演算してIBROP60
の値を更新する。この結果、IBROP60は、命令1
の後続命令であるBCT命令を指すように更新される。
【0076】加算器70の出力は、第1の命令取り出し
シフタ20にも供給されるので、続く第3サイクルにお
いて、BCT命令が第1の命令取り出しシフタ20によ
り取り出されてIRP30に格納される。また、命令1
がメモリオペランドを必要とする命令であるとすれば、
オペランドの論理アドレスを求めるのに必要となる汎用
レジスタ180の参照が行われる。
シフタ20にも供給されるので、続く第3サイクルにお
いて、BCT命令が第1の命令取り出しシフタ20によ
り取り出されてIRP30に格納される。また、命令1
がメモリオペランドを必要とする命令であるとすれば、
オペランドの論理アドレスを求めるのに必要となる汎用
レジスタ180の参照が行われる。
【0077】一方、BCT命令の分岐先命令の論理アド
レスを求めるために、IRS50にセットされたBCT
命令のX2、B2フィールドにより汎用レジスタ180
が参照され、その内容と、BCT命令のD2フィールド
の内容とが命令用アドレス加算器200に供給される。
また、第2の分岐命令検出回路105の検出結果と、置
換命令発生回路90の結果とが第1の分岐命令検出回路
100に送られ、第3サイクルにおける分岐先命令読み
出し処理が抑止される。
レスを求めるために、IRS50にセットされたBCT
命令のX2、B2フィールドにより汎用レジスタ180
が参照され、その内容と、BCT命令のD2フィールド
の内容とが命令用アドレス加算器200に供給される。
また、第2の分岐命令検出回路105の検出結果と、置
換命令発生回路90の結果とが第1の分岐命令検出回路
100に送られ、第3サイクルにおける分岐先命令読み
出し処理が抑止される。
【0078】第3サイクルにおいて、命令1のAステー
ジと分岐先命令読み出しのAステージとが並行して処理
される。命令デコーダ110は、置換命令発生回路90
から供給される命令1のオペレーションコードを解読
し、その解読情報を生成する。また、オペランド用アド
レス加算器140は、汎用レジスタ180とIRP30
とから供給されるデータを加算することにより、命令1
のオペランドの論理アドレスを求める。命令用アドレス
加算器200は、汎用レジスタ180とIRS50とか
ら供給されるデータを加算することにより、分岐先命令
の論理アドレスを求める。
ジと分岐先命令読み出しのAステージとが並行して処理
される。命令デコーダ110は、置換命令発生回路90
から供給される命令1のオペレーションコードを解読
し、その解読情報を生成する。また、オペランド用アド
レス加算器140は、汎用レジスタ180とIRP30
とから供給されるデータを加算することにより、命令1
のオペランドの論理アドレスを求める。命令用アドレス
加算器200は、汎用レジスタ180とIRS50とか
ら供給されるデータを加算することにより、分岐先命令
の論理アドレスを求める。
【0079】第4サイクルにおいて、命令1のTステー
ジと分岐先命令読み出しのTステージとが並行して処理
される。オペランド用TLB150は、オペランド用ア
ドレス加算器140で求められた命令1のオペランドの
論理アドレスを物理アドレスに変換する。命令用TLB
210は、命令用アドレス加算器200で求められた分
岐先命令の論理アドレスを物理アドレスに変換する。
ジと分岐先命令読み出しのTステージとが並行して処理
される。オペランド用TLB150は、オペランド用ア
ドレス加算器140で求められた命令1のオペランドの
論理アドレスを物理アドレスに変換する。命令用TLB
210は、命令用アドレス加算器200で求められた分
岐先命令の論理アドレスを物理アドレスに変換する。
【0080】第5サイクルにおいて、命令1のBステー
ジと分岐先命令読み出しのBステージとが並行して処理
される。制御記憶130は、命令デコーダ110より供
給される命令解読情報により参照され、命令1の実行に
必要な制御情報を用意する。オペランド用バッファ記憶
装置160は、オペランド用TLB150で求められた
命令1のオペランドの物理アドレスにより参照され、命
令1の演算実行に必要となるオペランドデータを用意す
る。命令用バッファ記憶装置220は、命令用TLB2
10で求められた分岐先命令の物理アドレスにより参照
され、分岐先命令を用意する。
ジと分岐先命令読み出しのBステージとが並行して処理
される。制御記憶130は、命令デコーダ110より供
給される命令解読情報により参照され、命令1の実行に
必要な制御情報を用意する。オペランド用バッファ記憶
装置160は、オペランド用TLB150で求められた
命令1のオペランドの物理アドレスにより参照され、命
令1の演算実行に必要となるオペランドデータを用意す
る。命令用バッファ記憶装置220は、命令用TLB2
10で求められた分岐先命令の物理アドレスにより参照
され、分岐先命令を用意する。
【0081】第6サイクルにおいて、命令1のLステー
ジと分岐先命令読み出しのLステージとが並行して処理
される。制御記憶130で用意された命令1の制御情報
は、演算実行部170に転送され、オペランド用バッフ
ァ記憶装置160で用意された命令1のオペランドデー
タも演算実行部170に転送される。命令用バッファ記
憶装置220で用意された分岐先命令はIBR10に供
給される。
ジと分岐先命令読み出しのLステージとが並行して処理
される。制御記憶130で用意された命令1の制御情報
は、演算実行部170に転送され、オペランド用バッフ
ァ記憶装置160で用意された命令1のオペランドデー
タも演算実行部170に転送される。命令用バッファ記
憶装置220で用意された分岐先命令はIBR10に供
給される。
【0082】第7サイクルにおいて、演算実行部170
は、命令1の演算を実行する。また、BCT命令の分岐
先命令である命令5が第1の命令取り出しシフタ20を
経由してIRP30に格納される。一方、BCT命令
は、前述したように第3サイクルにおいて、IRP30
に格納された後、分岐先命令の読み出し以外の処理が実
行され、第8サイクルにおいて、その演算が実行され
る。
は、命令1の演算を実行する。また、BCT命令の分岐
先命令である命令5が第1の命令取り出しシフタ20を
経由してIRP30に格納される。一方、BCT命令
は、前述したように第3サイクルにおいて、IRP30
に格納された後、分岐先命令の読み出し以外の処理が実
行され、第8サイクルにおいて、その演算が実行され
る。
【0083】前述したように、本発明の一実施例は、復
号化を行うことができないBCT命令の処理を行う場
合、BCT命令の分岐先命令の読み出しを分岐命令に先
行する通常の命令と並行して行うことができる。この結
果、本発明の実施例は、同一の条件における従来技術の
場合の動作を説明する図10に示すフローと比較して命
令5、命令6のパイプラインへの投入を1サイクル早め
ることができ、情報処理装置の処理速度を向上させるこ
とができる。
号化を行うことができないBCT命令の処理を行う場
合、BCT命令の分岐先命令の読み出しを分岐命令に先
行する通常の命令と並行して行うことができる。この結
果、本発明の実施例は、同一の条件における従来技術の
場合の動作を説明する図10に示すフローと比較して命
令5、命令6のパイプラインへの投入を1サイクル早め
ることができ、情報処理装置の処理速度を向上させるこ
とができる。
【0084】前述までに説明した動作例は、分岐命令を
含む命令列を処理する例であったが、次に、分岐命令を
含まない命令列の複合化を行って処理を行う例を説明す
る。
含む命令列を処理する例であったが、次に、分岐命令を
含まない命令列の複合化を行って処理を行う例を説明す
る。
【0085】図5はL命令及びLTR命令がこの順で連
続し、これらの命令がL−LTR複合命令に置換されて
処理される場合のパイプラインフローを示す図である。
続し、これらの命令がL−LTR複合命令に置換されて
処理される場合のパイプラインフローを示す図である。
【0086】L命令とLTR命令とが複合化される条件
は、図7のL命令のR1フィールド、LTR命令のR1
フィールド、R2フィールドの全てが同一の値を有する
場合である。このような条件でL命令及びLTR命令が
使用されるのは、主記憶装置から汎用レジスタに取り出
したデータの符号を検査し、その結果を条件コードに反
映したい場合である。すなわち、L命令は、主記憶装置
から汎用レジスタへデータを転送するものであるが、転
送結果を条件コードに反映しないため、通常、L命令の
後にLTR命令を置き条件コードに反映させるようにし
ている。
は、図7のL命令のR1フィールド、LTR命令のR1
フィールド、R2フィールドの全てが同一の値を有する
場合である。このような条件でL命令及びLTR命令が
使用されるのは、主記憶装置から汎用レジスタに取り出
したデータの符号を検査し、その結果を条件コードに反
映したい場合である。すなわち、L命令は、主記憶装置
から汎用レジスタへデータを転送するものであるが、転
送結果を条件コードに反映しないため、通常、L命令の
後にLTR命令を置き条件コードに反映させるようにし
ている。
【0087】本発明の一実施例は、このような場合に、
L命令とLTR命令とを複合化して、あたかも転送結果
を条件コードに反映するL命令を実行したと同様な動作
を行うことができるものである。すなわち、本発明の一
実施例は、主記憶装置上のデータを汎用レジスタに転送
すると共にその符号を検査し、その結果を条件コードに
反映することができる。
L命令とLTR命令とを複合化して、あたかも転送結果
を条件コードに反映するL命令を実行したと同様な動作
を行うことができるものである。すなわち、本発明の一
実施例は、主記憶装置上のデータを汎用レジスタに転送
すると共にその符号を検査し、その結果を条件コードに
反映することができる。
【0088】L−LTR複合命令の動作は、まず、元の
L命令が必要とする主記憶装置上のオペランドデータを
読み出し、このオペランドデータを演算実行部170を
経由して汎用レジスタ180に転送する処理を実行し、
その際演算実行部170がオペランドデータの符号の検
査を行い、その結果を条件コードに反映させる処理を行
うことにより実行される。
L命令が必要とする主記憶装置上のオペランドデータを
読み出し、このオペランドデータを演算実行部170を
経由して汎用レジスタ180に転送する処理を実行し、
その際演算実行部170がオペランドデータの符号の検
査を行い、その結果を条件コードに反映させる処理を行
うことにより実行される。
【0089】以下、図5を参照してL−LTR複合命令
のパイプラインフローを説明する。図5において、命令
0はL命令に先行する命令、命令3はLTR命令に後続
する命令、命令4は命令3に後続する命令である。
のパイプラインフローを説明する。図5において、命令
0はL命令に先行する命令、命令3はLTR命令に後続
する命令、命令4は命令3に後続する命令である。
【0090】第1サイクルにおいて、第1の命令取り出
しシフタ20は、IBR10から命令0を取り出してI
RP30に格納し、同時に、第2の命令取り出しシフタ
40は、命令0の後続命令であるL命令を取り出してI
RS50に格納する。置換命令発生回路90は、IRP
30及びIRS50の内容を検査し、命令0とL命令の
組み合わせが命令複合化の対象ではないことを検出す
る。このため、セレクタ80は、置換命令発生回路90
により“0”を選択するよう制御され、“0”を加算器
70に供給する。従って、IBROP60の内容は、加
算器70を介して、その旧値と、IRP30内の命令す
なわち命令0の長さとの和に更新される。また、この加
算器70からの値は、第1の命令取り出しシフタ20に
も供給される。
しシフタ20は、IBR10から命令0を取り出してI
RP30に格納し、同時に、第2の命令取り出しシフタ
40は、命令0の後続命令であるL命令を取り出してI
RS50に格納する。置換命令発生回路90は、IRP
30及びIRS50の内容を検査し、命令0とL命令の
組み合わせが命令複合化の対象ではないことを検出す
る。このため、セレクタ80は、置換命令発生回路90
により“0”を選択するよう制御され、“0”を加算器
70に供給する。従って、IBROP60の内容は、加
算器70を介して、その旧値と、IRP30内の命令す
なわち命令0の長さとの和に更新される。また、この加
算器70からの値は、第1の命令取り出しシフタ20に
も供給される。
【0091】その結果、第2サイクルにおいて、第1の
命令取り出しシフタ20は、IRP30にL命令を格納
し、第2の命令取り出しシフタ40は、IRS50にL
TR命令を格納する。このとき、置換命令発生回路90
は、IRP30及びIRS50の内容を検査し、L命令
とLTR命令との組み合せが複合化命令の対象であるこ
とを検出し、L−LTR複合命令を発生する。これによ
り、第2サイクルは、L−LTR複合命令のDステージ
となる。
命令取り出しシフタ20は、IRP30にL命令を格納
し、第2の命令取り出しシフタ40は、IRS50にL
TR命令を格納する。このとき、置換命令発生回路90
は、IRP30及びIRS50の内容を検査し、L命令
とLTR命令との組み合せが複合化命令の対象であるこ
とを検出し、L−LTR複合命令を発生する。これによ
り、第2サイクルは、L−LTR複合命令のDステージ
となる。
【0092】さらに、第2サイクルにおいて、置換命令
発生回路90は、L−LTR複合命令に割り当てた擬似
オペレーションコードを命令デコーダ110に供給する
と共に、第2のILCデコーダ52の出力を選択するよ
うにセレクタ80を制御する。加算器70は、セレクタ
80からのLTR命令の命令長が供給されるので、IB
ROP60は、その旧値とL命令の命令長とLTR命令
の命令長との和、すなわち、LTR命令の後続命令であ
る命令3を指すように加算器70により更新される。ま
た、加算器70の値は、第1の命令取り出しシフタ20
にも供給されるので第3サイクルには命令3がIRP3
0に格納される。命令デコーダ110は、置換命令発生
回路90から供給される擬似オペレーションコードを解
読し、その解読情報を生成する。さらに、IRP30に
格納されたL命令のX2、B2フィールドにより汎用レ
ジスタ180が参照され、その汎用レジスタの内容と、
L命令のD2フィールドの内容とが合わせてオペランド
用アドレス加算器140に供給される。
発生回路90は、L−LTR複合命令に割り当てた擬似
オペレーションコードを命令デコーダ110に供給する
と共に、第2のILCデコーダ52の出力を選択するよ
うにセレクタ80を制御する。加算器70は、セレクタ
80からのLTR命令の命令長が供給されるので、IB
ROP60は、その旧値とL命令の命令長とLTR命令
の命令長との和、すなわち、LTR命令の後続命令であ
る命令3を指すように加算器70により更新される。ま
た、加算器70の値は、第1の命令取り出しシフタ20
にも供給されるので第3サイクルには命令3がIRP3
0に格納される。命令デコーダ110は、置換命令発生
回路90から供給される擬似オペレーションコードを解
読し、その解読情報を生成する。さらに、IRP30に
格納されたL命令のX2、B2フィールドにより汎用レ
ジスタ180が参照され、その汎用レジスタの内容と、
L命令のD2フィールドの内容とが合わせてオペランド
用アドレス加算器140に供給される。
【0093】第3サイクルにおいて、L−LTR複合命
令のAステージが実行される。オペランド用アドレス加
算器140は、汎用レジスタ180とIRP30とから
供給されるデータを加算することにより、元のL命令の
第2オペランドの論理アドレスを求める。
令のAステージが実行される。オペランド用アドレス加
算器140は、汎用レジスタ180とIRP30とから
供給されるデータを加算することにより、元のL命令の
第2オペランドの論理アドレスを求める。
【0094】第4サイクルにおいて、L−LTR複合命
令のTステージが実行される。オペランド用TLB15
0は、オペランド用アドレス加算器140で求められた
元のL命令の第2オペランドの論理アドレスを物理アド
レスに変換する。
令のTステージが実行される。オペランド用TLB15
0は、オペランド用アドレス加算器140で求められた
元のL命令の第2オペランドの論理アドレスを物理アド
レスに変換する。
【0095】第5サイクルにおいて、L−LTR複合命
令のBステージが実行される。オペランド用バッファ記
憶装置160は、オペランド用TLB150で求められ
た元のL命令の第2オペランドの物理アドレスにより参
照され、演算実行部180で用いられる元のL命令の第
2オペランドデータを用意する。また、制御記憶130
は、命令デコーダ110から取り出された命令解読情報
により参照され、L−LTR複合命令の実行に必要な制
御情報を用意する。
令のBステージが実行される。オペランド用バッファ記
憶装置160は、オペランド用TLB150で求められ
た元のL命令の第2オペランドの物理アドレスにより参
照され、演算実行部180で用いられる元のL命令の第
2オペランドデータを用意する。また、制御記憶130
は、命令デコーダ110から取り出された命令解読情報
により参照され、L−LTR複合命令の実行に必要な制
御情報を用意する。
【0096】第6サイクルにおいて、L−LTR複合命
令のLステージが実行される。制御記憶130で用意さ
れたL−LTR複合命令の制御情報は、演算実行部17
0に転送され、同時に、オペランド用バッファ記憶装置
160で用意された元のL命令の第2オペランドデータ
も演算実行部170に転送される。
令のLステージが実行される。制御記憶130で用意さ
れたL−LTR複合命令の制御情報は、演算実行部17
0に転送され、同時に、オペランド用バッファ記憶装置
160で用意された元のL命令の第2オペランドデータ
も演算実行部170に転送される。
【0097】第7サイクルにおいて、L−LTR複合命
令のEステージが実行され、L−LTR複合命令の演算
が行われる。元のL命令の第2オペランドデータは、元
のL命令の第1オペランド、すなわち、元のLTR命令
の第1オペランドが示す汎用レジスタに転送されると共
にその符号が検査され、その結果が条件コードに反映さ
れる。
令のEステージが実行され、L−LTR複合命令の演算
が行われる。元のL命令の第2オペランドデータは、元
のL命令の第1オペランド、すなわち、元のLTR命令
の第1オペランドが示す汎用レジスタに転送されると共
にその符号が検査され、その結果が条件コードに反映さ
れる。
【0098】一方、前述したように、第3サイクルには
命令3がパイプラインに投入され、次の第4サイクルに
は次の命令4がパイプラインに投入される。
命令3がパイプラインに投入され、次の第4サイクルに
は次の命令4がパイプラインに投入される。
【0099】前述したように、本発明の実施例は、L命
令とLTR命令とを複合化して実行することができ、こ
れにより、同一の条件における従来技術の場合の動作を
説明する図11に示すフローと比較して、命令3、命令
4のパイプラインへの投入を1サイクル早めることがで
き、情報処理装置の処理速度の向上を図ることができ
る。
令とLTR命令とを複合化して実行することができ、こ
れにより、同一の条件における従来技術の場合の動作を
説明する図11に示すフローと比較して、命令3、命令
4のパイプラインへの投入を1サイクル早めることがで
き、情報処理装置の処理速度の向上を図ることができ
る。
【0100】
【発明の効果】以上説明したように本発明によれば、予
め決められた組合せの2命令を複合化して1命令として
処理することができ、また、分岐先命令読み出しの少な
くとも一部を分岐命令に先行する命令に並行して行い、
分岐先命令読み出しのオーバヘッドを低減することがで
き、これらにより、情報処理装置の処理速度の向上を図
ることができる。
め決められた組合せの2命令を複合化して1命令として
処理することができ、また、分岐先命令読み出しの少な
くとも一部を分岐命令に先行する命令に並行して行い、
分岐先命令読み出しのオーバヘッドを低減することがで
き、これらにより、情報処理装置の処理速度の向上を図
ることができる。
【図1】本発明の一実施例による情報処理装置の構成を
示すブロック図である。
示すブロック図である。
【図2】本発明の一実施例によるCLI−BC複合化命
令の分岐不成立の場合のパイプラインフローを説明する
図である。
令の分岐不成立の場合のパイプラインフローを説明する
図である。
【図3】本発明の一実施例によるCLI−BC複合化命
令の分岐成立の場合のパイプラインフローを説明する図
である。
令の分岐成立の場合のパイプラインフローを説明する図
である。
【図4】本発明の一実施例によるBCT命令の分岐成立
の場合のパイプラインフローを説明する図である。
の場合のパイプラインフローを説明する図である。
【図5】本発明一実施例によるL−LTR複合命令のパ
イプラインフローを説明する図である。
イプラインフローを説明する図である。
【図6】従来技術による情報処理装置の構成例を示すブ
ロック図である。
ロック図である。
【図7】使用される命令の例を説明する図である。
【図8】従来技術におけるCLI命令、BC命令の分岐
不成立の場合のパイプラインフローを説明する図であ
る。
不成立の場合のパイプラインフローを説明する図であ
る。
【図9】従来技術におけるCLI命令、BC命令の分岐
成立の場合のパイプラインフローを説明する図である。
成立の場合のパイプラインフローを説明する図である。
【図10】従来技術におけるBCT命令の分岐成立の場
合のパイプラインフローを説明する図である。
合のパイプラインフローを説明する図である。
【図11】従来技術におけるL命令、LTR命令のパイ
プラインフローを説明する図である。
プラインフローを説明する図である。
10 命令バッファレジスタ(IBR) 20 第1の命令取り出しシフタ 30 第1の命令レジスタ(IRP) 32 第1のILCデコーダ 40 第2の命令取り出しシフタ 50 第2の命令レジスタ(IRS) 52 第2のILCデコーダ 60 ポインタ(IBROP) 70 加算器 80 セレクタ 90 置換命令発生回路 100 第1の分岐命令検出回路 105 第2の分岐命令検出回路 110 命令デコーダ 130 制御記憶 140 オペランド用アドレス加算器 150 オペランド用TLB 160 オペランド用バッファ記憶装置 170 演算実行部 180 汎用レジスタ 200 命令用アドレス加算器 210 命令用TLB 220 命令用バッファ記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 尾島 和郎 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内
Claims (4)
- 【請求項1】 パイプライン方式の情報処理装置におい
て、メモリから逐次読み出される命令列を一時的に保持
する命令バッファ手段と、前記命令バッファ手段から命
令を逐次取り出してパイプライン処理を起動する第1の
命令取り出し手段と、前記第1の命令取り出し手段によ
り取り出される命令の次の命令を前記命令バッファ手段
から逐次取り出す第2の命令取り出し手段と、前記第1
の命令取り出し手段により取り出される命令を格納する
第1の命令格納手段と、前記第2の命令取り出し手段に
より取り出される命令を格納する第2の命令格納手段
と、前記第1の命令格納手段に格納された命令と前記第
2の命令格納手段に格納された命令との組み合わせが予
め定められた命令の組み合せと一致する場合に、前記命
令の組み合せをそれらの命令と等価な複合命令に置換す
る置換命令発生手段と、前記第2の命令格納手段に格納
された命令が分岐命令であることを検出する分岐命令検
出手段とを備えたことを特徴とする情報処理装置。 - 【請求項2】 前記置換命令発生手段が置換命令を発生
したとき、前記第1の命令取り出し手段は、前記第1の
命令格納手段に前記第2の命令格納手段に格納されてい
る命令の直後の命令を格納することを特徴とする請求項
1記載の情報処理装置。 - 【請求項3】 前記置換命令発生手段が置換命令を発生
したとき、前記第2の命令格納手段に格納された命令の
処理が、前記第1の命令格納手段に格納された命令のパ
イプライン処理と並行して実行されることを特徴とする
請求項1または2記載の情報処理装置。 - 【請求項4】 前記分岐命令検出手段が分岐命令を検出
したとき、前記第2の命令格納手段に格納される分岐命
令の処理の少なくとも一部の処理が、前記第1の命令格
納手段に格納される命令のパイプライン処理と並行して
実行されることを特徴とする請求項1、2または3記載
の情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6045977A JPH07262007A (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6045977A JPH07262007A (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07262007A true JPH07262007A (ja) | 1995-10-13 |
Family
ID=12734270
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6045977A Pending JPH07262007A (ja) | 1994-03-16 | 1994-03-16 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07262007A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100265332B1 (ko) * | 1997-05-23 | 2000-09-15 | 김영환 | 분기예측방법 |
-
1994
- 1994-03-16 JP JP6045977A patent/JPH07262007A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100265332B1 (ko) * | 1997-05-23 | 2000-09-15 | 김영환 | 분기예측방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
| US6615333B1 (en) | Data processing device, method of executing a program and method of compiling | |
| US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
| EP1157329B1 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
| EP0380849B1 (en) | Method and data processing unit for preprocessing implied specifiers in a pipelined processor | |
| KR100254008B1 (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타 프로세서 | |
| JPH0773036A (ja) | 命令シーケンスを識別してタグを付加する方法 | |
| US5313644A (en) | System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word | |
| EP0094535B1 (en) | Pipe-line data processing system | |
| EP0742517B1 (en) | A program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions | |
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| KR930003124B1 (ko) | 파이프라인방식의 분기명령제어장치 | |
| JPH06266556A (ja) | データ処理装置 | |
| JPH07262007A (ja) | 情報処理装置 | |
| JP3708022B2 (ja) | プロセッサ | |
| US6789185B1 (en) | Instruction control apparatus and method using micro program | |
| JP2000181707A (ja) | 命令制御装置及びその方法 | |
| JP2591325B2 (ja) | 分岐制御装置 | |
| JP2581565B2 (ja) | ガード付命令を実行するデータ処理装置 | |
| JPH06131180A (ja) | 命令処理方式および命令処理装置 | |
| JP3102846B2 (ja) | ロードアドレスキャッシュ装置及び方法 | |
| JP2843844B2 (ja) | 並列演算処理装置 | |
| JPS6411973B2 (ja) | ||
| JPH0774992B2 (ja) | データ処理装置 | |
| JPS586972B2 (ja) | 情報処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990615 |