JPH0991139A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0991139A
JPH0991139A JP25059795A JP25059795A JPH0991139A JP H0991139 A JPH0991139 A JP H0991139A JP 25059795 A JP25059795 A JP 25059795A JP 25059795 A JP25059795 A JP 25059795A JP H0991139 A JPH0991139 A JP H0991139A
Authority
JP
Japan
Prior art keywords
instruction
branch
register
address
branch destination
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.)
Withdrawn
Application number
JP25059795A
Other languages
English (en)
Inventor
Akihiro Nakatani
明洋 中谷
Tomonaga Itoi
朋永 糸井
Tsukasa Inoue
司 井上
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 Microcomputer System Ltd
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Microcomputer System Ltd
Hitachi Ltd
Hitachi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Microcomputer System Ltd, Hitachi Ltd, Hitachi Information Technology Co Ltd filed Critical Hitachi Microcomputer System Ltd
Priority to JP25059795A priority Critical patent/JPH0991139A/ja
Publication of JPH0991139A publication Critical patent/JPH0991139A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 命令アドレス加算器の未使用サイクル時に、
先行演算または分岐先命令先行読み出しの何れかを選択
して使用することにより、パイプラインの処理速度を向
上させる。 【解決手段】 命令アドレス加算器使用方法判定回路1
8は、先行命令用命令レジスタ4内に格納された先行命
令がLR命令であり、後続命令用命令レジスタ5内に格
納された後続命令が分岐命令であるとき、命令アドレス
加算器13に対して、分岐先命令先行読み出しを指示
し、先行命令がLA命令で、後続命令が分岐命令である
とき、命令アドレス加算器13に対して、先行演算を指
示する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、パイプライン方式
の情報処理装置に関し、特に、分岐命令を含む命令列を
高速に処理する情報処理装置に関する。
【0002】
【従来の技術】図2は、従来技術によるパイプライン方
式の情報処理装置を説明するブロック図、図3は、使用
される命令の例を説明する図、図4〜図7は、命令列の
パイプラインを説明するタイムチャートであり、以下、
これらの図面を参照して従来の情報処理装置について説
明する。
【0003】図2において、1は命令バッファレジス
タ、2は命令切出しアライナA、3は命令切出しアライ
ナB、4は先行命令用命令レジスタ、5は後続命令用命
令レジスタ、6は先行演算可能命令検出回路、7は分岐
命令検出回路、8は汎用レジスタ、9はオペランドアド
レス加算器、10はオペランド用TLB、11はオペラ
ンドバッファ記憶装置、12は演算器、13は命令アド
レス加算器、14は命令用TLB、15は命令バッファ
記憶装置、16は先行演算結果レジスタ、17は加算器
入力セレクト信号生成回路である。
【0004】図2に示す従来の情報処理装置は、図示の
ような機能ブロックを備えて構成され、各機能ブロック
は、次に説明する機能を備えるように構成されている。
【0005】命令バッファレジスタ1は、命令の高速ア
クセスを可能とするために命令を保持しているレジスタ
であり、命令切出しアライナA2は、次に処理を開始す
べき命令を命令バッファレジスタ1から切出すための機
能を備える。命令切出しアライナB3は、命令切出しア
ライナA2で切出した命令に続く命令を切出すための機
能を備える。
【0006】先行命令用命令レジスタ4は、命令切出し
アライナA2から供給される命令が格納されるレジスタ
である。後続命令用命令レジスタ5は、命令切出しアラ
イナB3から供給される命令が格納されるレジスタであ
る。先行演算可能命令検出回路6は、先行命令用命令レ
ジスタ4に格納された命令が、先行演算可能な命令であ
るか否かを判定する。先行演算可能な命令については後
述する。なお、各命令レジスタ内の命令は、図示しない
デコーダで解読される。
【0007】分岐命令検出回路7は、後続命令用命令レ
ジスタ5に格納された命令が、分岐命令であるか否かを
検出する。加算器入力セレクト信号生成回路17は、先
行命令用命令レジスタ4に格納された命令、および、先
行演算可能命令検出回路6、分岐命令検出回路7で求め
た情報を基に、命令アドレス加算器13に入力するデー
タをセレクトする機能を備える。
【0008】オペランドアドレス加算器9は、先行命令
用命令レジスタ4に格納された命令により、その演算内
容が決定され、例えば16本のレジスタ群で構成された
汎用レジスタ8から供給される指標または基底レジスタ
データ、または、先行命令用命令レジスタ4の一部等を
用いてオペランドの論理アドレスの計算を行う。オペラ
ンド用TLB10は、オペランドアドレス加算器9から
の論理アドレスを物理アドレスに変換する機能を備え
る。オペランドバッファ記憶装置11は、オペランド用
TLB10からの物理アドレスにより指定されるデータ
を演算器12に供給する。演算器12は、オペランドバ
ッファ記憶装置11、汎用レジスタ8から供給されるオ
ペランドデータを用いて演算を実行する機能を備える。
【0009】命令アドレス加算器13は、先行命令用命
令レジスタ4に格納された命令が分岐命令である場合、
例えば汎用レジスタ8から供給される指標または基底レ
ジスタデータ、または、先行命令用命令レジスタ4の一
部等を用いて分岐先論理アドレスを計算する機能を備え
る。
【0010】また、先行命令用命令レジスタ4に格納さ
れた命令が分岐命令でなく、かつ、分岐命令検出回路7
において、後続命令用命令レジスタ5に格納された命令
が分岐命令であると検出した場合、後続命令用命令レジ
スタ5に格納された分岐命令の分岐先論理アドレスを命
令アドレス加算器13で計算する機能を備える。
【0011】命令用TLB14は、命令アドレス加算器
13からの論理アドレスを物理アドレスに変換し、命令
バッファ記憶装置15は、命令用TLB14からの物理
アドレスにより指定される命令列を、命令バッファレジ
スタ1と先行命令用命令レジスタ4に供給する機能を備
える。
【0012】先行命令が分岐命令でなく、後続命令が分
岐命令であり、各命令のオペランドで指定される汎用レ
ジスタが異なるとき、先行命令と後続命令を同時にパイ
プラインに投入し、分岐命令の分岐先アドレスを命令ア
ドレス加算器13で計算する。これにより、分岐先の命
令列を、通常よりも1サイクル先に供給することができ
る。この機能を分岐先命令先行読出しという。
【0013】命令アドレス加算器13の別の機能とし
て、先行演算機能を備えている。先行演算可能命令検出
回路6は、先行命令用命令レジスタ4に格納された命令
が、汎用レジスタ8のデータのみを演算に用いる命令で
あることを検出し、先行演算可能な命令であるか否かを
判定する。すなわち、先行演算可能な命令とは、演算器
12で得られる値と同じ値を、命令アドレス加算器13
で得ることが可能な命令である。
【0014】先行演算可能命令検出回路6において、先
行命令用命令レジスタ4に格納された命令が、先行演算
可能な命令であることを検出すると、加算器入力セレク
ト信号生成回路17では、先行命令用命令レジスタ4に
格納された命令が必要とするデータをセレクトすべき信
号を生成する。このため、命令アドレス加算器13にお
いて、先行命令用命令レジスタ4に格納された命令の演
算結果が求まり、演算結果を先行演算結果レジスタ16
に格納する。よって、演算器12で演算して汎用レジス
タ8に格納するよりも前のサイクルで、先行演算結果レ
ジスタ16に演算結果が格納される。
【0015】その後、加算器入力信号セレクト回路17
が、後続の分岐先アドレス計算に用いるべき汎用レジス
タの番号と、先行演算結果レジスタ16に格納された演
算結果の格納先汎用レジスタ番号の一致を検出すると、
汎用レジスタ8の代わりに先行演算結果レジスタ16の
データを、命令アドレス加算器13に供給する。
【0016】次に、前述した機能を備える情報処理装置
で使用される命令の例を、図3に示すフォーマットを使
用して説明する。
【0017】L命令(ロード命令)は、第2オペランド
により指定される主記憶のデータを、第1オペランドに
より指定される汎用レジスタに転送するという命令であ
る。OPはこの命令がL命令であることを示すオペレー
ションコード、R1は前述の第1オペランドを示すフィ
ールド、X2は第2オペランドの指標アドレスレジスタ
を指定するフィールド、B2は第2オペランドの基底ア
ドレスレジスタを指定するフィールド、D2は第2オペ
ランドの変位アドレスを示すフィールドである。この命
令において、第2オペランドにより指定されるアドレス
は、X2フィールドにより指定される指標アドレスレジ
スタの内容とB2フィールドにより指定される基底アド
レスレジスタの内容とD2フィールドの内容とを加算す
ることにより得ることができる。
【0018】LR命令(ロード・レジスタ・ツー・レジ
スタ命令)は、第2オペランドにより指定される汎用レ
ジスタの内容を第1オペランドにより指定される汎用レ
ジスタに転送する命令である。OPはこの命令がLR命
令であることを示すオペレーションコード、R1、R2
は前述の第1、第2オペランドを示すフィールドであ
る。
【0019】LA命令(ロードアドレス命令)は、第2
オペランドにより指定されるアドレス値を、第1オペラ
ンドにより指定される汎用レジスタに転送するという命
令である。OPはこの命令がLA命令であることを示す
オペレーションコード、R1は前述の第1オペランドを
示すフィールド、X2は第2オペランドの指標アドレス
レジスタを指定するフィールド、B2は第2オペランド
の基底アドレスレジスタを指定するフィールド、D2は
第2オペランドの変位アドレスを示すフィールドであ
る。この命令において、第2オペランドにより指定され
るアドレス値は、X2フィールドにより指定される指標
アドレスレジスタの内容とB2フィールドにより指定さ
れる基底アドレスレジスタの内容とD2フィールドの内
容とを加算することにより得ることができる。
【0020】BC命令は、条件コードがマスクフィール
ドにより指定されている状態にセットされているとき
に、第2オペランドにより指定される分岐先アドレスに
分岐するという条件付分岐命令である。OPはこの命令
がBC命令であることを示すオペレーションコード、M
1はマスクフィールド、X2は第2オペランドの指標ア
ドレスレジスタを指定するフィールド、B2は第2オペ
ランドの基底アドレスレジスタを指定するフィールド、
D2は第2オペランドの変位アドレスを示すフィールド
である。
【0021】この命令において、第2オペランドにより
指定される分岐先アドレスは、X2フィールドにより指
定される指標アドレスレジスタの内容とB2フィールド
により指定される基底アドレスレジスタの内容とD2フ
ィールドの内容とを加算することにより得ることができ
る。M1は、BC命令実行時点におけるコンディション
コードと比較され、両者が一致すれば分岐が行われる
が、不一致ならば、BC命令の次の命令が実行される。
【0022】なお、上記した分岐命令は、条件付分岐命
令に限定されないが、ここでは、分岐命令の一例である
BC命令を例に挙げて説明する。
【0023】次に、図4〜図7を参照して、前述のよう
に構成される従来技術において、前述したような命令を
含む命令列を処理する場合の処理動作を説明する。これ
らの図において、上部の横軸は、パイプラインの実行サ
イクルを示している。また、図中のD、A、T、B、
L、Eはパイプラインステージを表し、それぞれ、次の
ような処理を行う。
【0024】Dステージは、先行命令用命令レジスタ4
に格納された命令を解読して、Aステージで行うオペラ
ンドまたは命令アドレス生成用の汎用レジスタ8を参照
する処理を行う。
【0025】Aステージは、Dステージで参照した汎用
レジスタ8の内容、先行命令用命令レジスタ4の一部を
用いて、オペランドアドレス加算器9によりオペランド
の論理アドレスを求める処理を行う。また、分岐命令の
場合、Aステージで命令アドレス加算器13により分岐
先の論理アドレスを求める処理を行う。
【0026】Tステージは、Aステージにおいて、オペ
ランドアドレス加算器9で求めたオペランドの論理アド
レスを、オペランド用TLB10によって物理アドレス
に変換する処理を行う。また、分岐命令の場合、命令ア
ドレス加算器13で求めた分岐先命令の論理アドレス
を、命令用TLB14によって物理アドレスに変換する
処理を行う。
【0027】Bステージは、Tステージにおいて、オペ
ランド用TLB10で求められたオペランドの物理アド
レスにより、オペランドバッファ記憶装置11を参照し
て、オペランドデータを得る処理を行う。また、分岐命
令の場合、Tステージにおいて、命令用TLB14で求
められた分岐先命令の物理アドレスにより、命令バッフ
ァ記憶装置15を参照して、分岐先の命令列を得る処理
を行う。
【0028】Lステージは、Bステージにおいて、オペ
ランドバッファ記憶装置11で得たオペランドデータを
演算器12に転送する。汎用レジスタ8に格納されたデ
ータをオペランドデータとして使用する命令の場合、汎
用レジスタ8の内容を演算器12に転送する処理を行
う。また、分岐命令の場合、Bステージにおいて、命令
バッファ記憶装置15から得た分岐先命令列を命令バッ
ファレジスタ1に転送する処理を行う。そして、分岐命
令の分岐が成立している場合、分岐先命令を先行命令用
命令レジスタ4に格納する。すなわち、分岐命令の分岐
が成立している場合、分岐先命令がパイプラインに投入
されDステージが開始されるのは、この分岐命令のLス
テージの次サイクルとなる。
【0029】Eステージは、演算器12により、先に求
めたオペランドデータを使用し、演算を実行する処理を
行う。その演算結果は命令によって、汎用レジスタ8、
または、オペランドバッファ記憶装置11に書き込まれ
る。
【0030】前述した処理の各ステージは、使用される
論理の競合がなく処理できるので、これを利用した各ス
テージをオーバラップさせて処理を実行することができ
る。
【0031】以下に、命令アドレス加算器13の使用方
法のうち、従来の情報処理装置における分岐先命令先行
読出し機能と先行演算機能について説明する。
【0032】(分岐先命令先行読出し機能)まず、従来
の情報処理装置で分岐先命令先行読出しを実行した場合
について説明する。図4に示すタイムチャートは、L命
令、BC命令が連続していて、L命令が変更するR1フ
ィールドで示された汎用レジスタと、BC命令のX2ま
たはB2フィールドで示された汎用レジスタが一致しな
い時で、かつ、BC命令の分岐が成立する場合のパイプ
ラインフローを示している。
【0033】図2の情報処理装置において、命令レジス
タは、先行命令用命令レジスタ4と後続命令用命令レジ
スタ5の、2命令分のレジスタを備えている。そして、
上記したように、先行するL命令は分岐命令ではなく、
かつ、先行するL命令のR1フィールドで示された汎用
レジスタ番号と、後続するBC命令のX2またはB2フ
ィールドで示された汎用レジスタ番号が一致しないの
で、分岐先命令先行読出しが可能となる。
【0034】すなわち、図4の第2サイクルで、先行命
令用命令レジスタ4のL命令、後続命令用命令レジスタ
5のBC命令のDステージが開始される。上記した条件
にないBC命令は、これより1サイクル遅れた第3サイ
クルでDステージの処理が開始される。
【0035】パイプラインに投入されたL命令は、オペ
ランドアドレス加算器9に入力されてAステージの処理
が行われ、前述したように以下T、B、L、Eの処理が
行われる。一方、L命令と同時にパイプラインに投入さ
れたBC命令(分岐先命令先行読出しが可能)は、命令
アドレス加算器13に入力されて、Aステージの処理が
行われ、以下、Lステージまでの処理が行われる。な
お、加算器入力セレクト信号生成回路17は、分岐命令
検出回路7の分岐命令の検出に応じて、BC命令の分岐
先アドレスを計算するために、命令アドレス加算器13
への入力を選択制御する。
【0036】上記したように、BC命令(分岐先命令先
行読出し)が第2サイクルから開始できるので、BC命
令の分岐先命令である命令3は、第7サイクルからパイ
プラインに投入され、通常のBC命令に比べて1サイク
ル早くパイプラインに投入されることになる。
【0037】このように、上記した分岐先命令先行読出
し機能の起動条件は、先行命令用命令レジスタ4に格納
された命令が分岐命令でなく、後続命令用命令レジスタ
5に格納された命令が分岐命令のときである。
【0038】(先行演算機能)先行演算が可能なケース
と不可能なケースとを対比するため、まず先行演算が不
可能なケースを説明する。
【0039】図5に示すタイムチャートは、L命令、B
C命令が連続していて、L命令が変更するR1フィール
ドで示された汎用レジスタと、BC命令のX2またはB
2フィールドで示された汎用レジスタが一致し、かつ、
BC命令の分岐が成立する場合のパイプラインフローを
示している。
【0040】L命令は、第2オペランドにより指定され
る主記憶のデータを第1オペランドで指定される汎用レ
ジスタに書き込む。書き込むデータは、第7サイクルの
Eステージにおいて求めた結果を、第8サイクルで汎用
レジスタ8に転送し、第9サイクルで汎用レジスタ8に
書き込まれる。BC命令は、第3サイクルにパイプライ
ンに投入されるが、L命令の汎用レジスタへの書き込み
が完了するまで、分岐先アドレスを計算できない。この
ため、BC命令の分岐先アドレス計算は第10サイクル
で実行可能になる。その後、分岐先命令の命令3が第1
4サイクルからパイプラインに投入される。
【0041】先行演算が可能なケースは次のようにな
る。図6は、図5に示した命令列のうちL命令をLA命
令に変更したもので、命令アドレス加算器13で先行演
算を実行した場合のパイプラインフローを示している。
【0042】LA命令は、第2オペランドにより指定さ
れるアドレス値を第1オペランドで指定される汎用レジ
スタに書き込む命令で、L命令とは異なり主記憶のデー
タを必要としないため、命令アドレス加算器13で先行
演算の処理が可能である。この処理は、第3サイクルで
命令アドレス加算器13によるLA命令の第2オペラン
ドの演算結果を得て、先行演算結果レジスタ16に格納
される。
【0043】第4サイクルにおいて、加算器入力セレク
ト信号生成回路17が、BC命令の分岐先アドレス計算
に用いるべき汎用レジスタの番号と、先行演算結果レジ
スタ16に格納された演算結果の格納先汎用レジスタ番
号の一致を検出すると、汎用レジスタ8の代わりに先行
演算結果レジスタ16のデータをセレクトするように制
御し、命令アドレス加算器13に供給し、BC命令の分
岐先アドレス計算が可能となる。分岐先命令の命令3は
第8サイクルからパイプラインに投入される。
【0044】図5と図6を比較すると、図6の先行演算
機能によって5サイクルのオーバヘッドが削減されるこ
とがわかる。上記した先行演算機能の起動条件は、先行
命令用命令レジスタ4に格納された命令が分岐命令でな
く、主記憶装置のデータを必要としない命令のときであ
る。後続命令用命令レジスタ5に格納された命令が分岐
命令でない場合は、先行演算機能を起動して問題ない。
しかし、図6で説明した命令列のように後続命令が分岐
命令のときは、前述した分岐先命令先行読出し機能の起
動条件と競合することになる。そして、起動条件が競合
したとき、従来の情報処理装置では、図6に示したよう
に、先行演算機能を実行するように制御していた。
【0045】図7に示すタイムチャートは、LR命令、
BC命令が連続していて、LR命令が変更するR1フィ
ールドで示された汎用レジスタと、BC命令のX2また
はB2フィールドで示された汎用レジスタが一致せず、
かつ、BC命令の分岐が成立する場合のパイプラインフ
ローを示している。
【0046】図7の第2サイクルで先行命令用命令レジ
スタ4にLR命令が、第3サイクルで後続命令用命令レ
ジスタ5にBC命令が格納されている。先行するLR命
令は、分岐命令ではなく主記憶装置のデータを必要とし
ない命令であるので、先行するLR命令のR1フィール
ドで示された汎用レジスタと、後続するBC命令のX2
またはB2フィールドで示された汎用レジスタの一致に
関係なく、先行演算機能を実行するように制御してい
た。
【0047】従って、BC命令の分岐先命令の命令列読
出しは、上記した図4のように第2サイクルから開始さ
れず、第3サイクルから開始され(つまり、分岐先命令
先行読み出しが行われない)、BC命令の分岐先命令で
ある命令3は、第8サイクルからパイプラインに投入さ
れることになる。
【0048】なお、上記した従来技術は、例えば、特開
昭62−262141号公報および特開昭63−195
736号公報に記載されている。
【0049】
【発明が解決しようとする課題】上記したように先行演
算機能を実行しても、先行するLR命令のR1フィール
ドで示された汎用レジスタと、後続するBC命令のX2
またはB2フィールドで示された汎用レジスタが一致し
ていないときは、先行演算機能の効果がない。このよう
な場合には、分岐先命令先行読出し機能を実行した方が
性能が向上するが、従来の情報処理装置では、分岐先命
令先行読出し機能を起動できず、図7に示したパイプラ
インフローとなり、パイプラインの処理速度を向上させ
ることができないという問題があった。
【0050】本発明の目的は、命令アドレス加算器の未
使用サイクル時に、先行演算または分岐先命令先行読み
出しの何れかを選択して使用することにより、パイプラ
インの処理速度を向上させた情報処理装置を提供するこ
とにある。
【0051】
【課題を解決するための手段】前記目的を達成するため
に、本発明では、メモリから逐次読出される命令列を一
時的に保持する命令バッファ手段と、該命令バッファ手
段から命令を逐次取出してパイプライン処理を起動する
第1の命令取出し手段と、該第1の命令取出し手段によ
り取出される命令に後続する命令を前記命令バッファ手
段から取出す第2の命令取出し手段と、分岐先アドレス
を求めるための分岐先アドレス加算手段と、該分岐先ア
ドレス加算手段で演算した結果を保持し前記分岐先アド
レス加算手段に供給する手段と、前記第1の命令取出し
手段によって取出された命令が先行演算可能な命令であ
ることを検出する手段と、前記第2の命令取出し手段に
よって取出された命令が分岐命令であることを検出する
手段と、前記第2の命令取出し手段によって取出された
分岐命令の処理の少なくとも一部の処理が、先行する命
令のパイプライン処理と並行して実行される手段とを備
えたパイプライン方式の情報処理装置において、前記第
1の命令取出し手段によって取出された命令が主記憶の
データを使用しない第1の命令であり、前記第2の命令
取出し手段によって取出された命令が分岐命令であると
き、前記分岐先アドレス加算手段に対して、分岐先命令
先行読み出しを指示し、前記第1の命令取出し手段によ
って取出された命令が主記憶のデータを使用しない第2
の命令であり、前記第2の命令取出し手段によって取出
された命令が分岐命令であるとき、前記分岐先アドレス
加算手段に対して、先行演算を指示する手段を設けたこ
とを特徴としている。
【0052】上記したように、命令アドレス計算用の加
算器の主たる機能は、先行命令が分岐命令のとき、分岐
先アドレスを計算することである。しかし、この機能の
みでは命令アドレス計算用の加算器は、先行命令が分岐
命令以外のとき使用されない状態となる。命令アドレス
加算器使用方法判定回路は、連続した2命令の先行命令
が分岐命令でなく、後続命令が分岐命令であることを検
出して、または、先行命令が変更する汎用レジスタと後
続命令が使用する汎用レジスタが一致することを検出し
て、先行演算機能または分岐先命令先行読出し機能の一
方を選択する。これにより、命令アドレス計算用の加算
器を有効に利用することができ、命令列の処理時間を短
縮できる。
【0053】
【発明の実施の形態】以下、本発明の一実施例を図面を
用いて具体的に説明する。図1は、本発明の実施例に係
るパイプライン方式の情報処理装置の構成を示す。図8
は、本発明のパイプラインフローを説明する図である。
図1において、18は、本発明によって設けられた命令
アドレス加算器使用方法判定回路である。他の構成要素
は図2のものと同一であるので、その説明を省略する。
【0054】命令アドレス加算器使用方法判定回路18
の一方の入力には、先行命令用命令レジスタ4の出力が
接続され、他方の入力には、後続命令用命令レジスタ5
の出力が接続され、判定回路18の出力18Aが加算器
入力セレクト信号生成回路17に入力されている。本発
明によって設けられた命令アドレス加算器使用方法判定
回路18は、先行命令用命令レジスタ4と後続命令用命
令レジスタ5を基に、命令アドレス加算器13で計算す
る内容を決定する回路である。
【0055】また、命令アドレス加算器使用方法判定回
路18には、先行命令用命令レジスタ4に格納された先
行命令の命令コードを解読する回路が設けられ、図3で
示したLR命令、LA命令等を認識し、この認識された
命令コードによって命令アドレス加算器の使用方法を判
定する論理回路も設けられている。
【0056】前述したように、命令アドレス加算器入力
セレクト信号生成回路17は、先行演算機能と分岐先命
令先行読出し機能の起動条件のうち、一方の条件のみ成
立した場合に、その成立した条件の計算を命令アドレス
加算器13で行うように制御するものである。
【0057】本発明は、先行演算機能の起動条件と分岐
先命令先行読出し機能の起動条件の両者が成立した場合
における、命令アドレス加算器13の使用方法の判定回
路を備えたことを特徴とするものであって、以下に、そ
の使用方法の判定について説明する。
【0058】先行演算と分岐先命令先行読出しの両者の
起動条件が成立したとき、従来技術では前述したとお
り、命令の内容に関係なく先行演算を実行していた。こ
のため、先行命令が変更した汎用レジスタを、後続の分
岐命令のアドレス計算に使用しない場合でも、分岐先命
令先行読出しを行わないことから、図7のタイムチャー
トに示すように処理時間の短縮を図ることができないこ
とは前述した通りである。
【0059】ところで、一般の命令列において、LR命
令が変更する汎用レジスタR1と、LR命令に続く分岐
命令の分岐先アドレス計算に使用する汎用レジスタX2
またはB2が競合することは少ない。これに対し、LA
命令が変更する汎用レジスタR1は、分岐命令の分岐先
アドレス計算に使用する汎用レジスタX2またはB2と
一致する場合が多い。
【0060】本発明はこの点に着目し、先行命令用命令
レジスタ4に格納された命令がLR命令で、後続命令用
命令レジスタ5に格納された命令が分岐命令であって、
先行演算と分岐先命令先行読出しの両者の起動条件が成
立したときは、図8に示すように分岐先命令先行読出し
を実行する。また、先行命令用命令レジスタ4に格納さ
れた命令がLA命令で、後続命令用命令レジスタ5に格
納された命令が分岐命令であるときは、図6に示すよう
に先行演算を実行する。
【0061】すなわち、命令アドレス加算器使用方法判
定回路18では、先行命令用命令レジスタ4に格納され
た命令がLR命令の場合は、分岐先命令先行読出しを示
す値(例えばビット1)をライン18Aに出力し、LA
命令の場合は先行演算を示す値(例えばビット0)をラ
イン18Aに出力し、加算器入力セレクト信号生成回路
17に与える。従って、先行命令がLR命令で、後続命
令がBC命令であるとき、加算器入力セレクト信号生成
回路17は、命令アドレス加算器13を分岐先命令先行
読み出し機能として実行させるので、図8に示すよう
に、BC命令の処理が1サイクル速く開始され、その分
岐先命令列である命令3が第7サイクルでパイプライン
に投入される。
【0062】このように、本実施例では、先行演算と分
岐先命令先行読出しの成立条件の両者が成立した場合
に、命令アドレス加算器を有効に利用することができ、
情報処理装置の処理速度を向上させることができる。
【0063】ところで、LR命令、BC命令が連続する
ケースにおいて、LR命令が変更する汎用レジスタR1
と、BC命令の分岐先アドレス計算に使用する汎用レジ
スタX2またはB2が衝突することがある。このような
ケースでは、分岐先命令先行読出しを実行しようとする
が、LR命令が変更する汎用レジスタR1が求まるまで
分岐先アドレスを計算することができない。この場合の
タイムチャートは、図5のL命令をLR命令に置き換え
たものと同じになる。
【0064】また、LA命令、BC命令が連続するケー
スにおいて、LA命令が変更する汎用レジスタR1と、
BC命令の分岐先アドレス計算に使用する汎用レジスタ
X2またはB2が一致しない場合もある。このようなケ
ースでは、先行演算を実行しLA命令の結果が先行演算
結果レジスタに書き込まれるが、LA命令が変更する汎
用レジスタR1を分岐先アドレスの計算に使用しない。
この場合のタイムチャートは図6と同じになり、汎用レ
ジスタの衝突があるなしに係らず同じになってしまう。
【0065】そこで、命令アドレス加算器の使用方法を
決定する他の実施例を説明する。命令アドレス加算器使
用方法判定回路18において、先行命令用命令レジスタ
4に格納された命令が変更する汎用レジスタの番号と、
後続命令用命令レジスタ5に格納された後続分岐命令の
アドレス計算に使用する汎用レジスタの番号が一致して
いるか否か検出する。命令アドレス加算器使用方法判定
回路18は、加算器入力セレクト信号生成回路17に対
して、汎用レジスタの番号が一致している場合は、先行
演算機能の実行を出力信号18A(例えばビット1)で
報告し、また汎用レジスタの番号が一致していない場合
は、分岐先命令先行読出し機能の実行を出力信号18A
(例えばビット0)で報告する。
【0066】先行演算機能を実行する場合は、図6に示
したタイムチャートのようになり、命令0の次命令はL
A命令に限らず、LR命令等でも同じタイムチャートに
なる。図5の先行演算を実行しない場合に比べて、分岐
先命令の命令3が、6サイクル早くパイプラインに投入
される。
【0067】一方、分岐先命令先行読出し機能を実行す
る場合は、図8に示したタイムチャートのようになり、
命令0の次命令はLR命令に限らず、LA命令等でも同
じタイムチャートになる。図7の分岐先命令先行読出し
を実行しない場合に比べて、分岐先命令の命令3が、1
サイクル早くパイプラインに投入される。この結果、本
実施例では命令アドレス加算器が有効に利用され、情報
処理装置の処理速度を向上させることができる。
【0068】
【発明の効果】以上、説明したように、本発明によれ
ば、命令アドレス加算器の使用方法を制御することによ
って、命令が変更する汎用レジスタの番号とアドレス計
算に必要な汎用レジスタの番号が一致したときのアドレ
ス計算オーバヘッド、または、汎用レジスタ番号が一致
しないときの分岐先命令読出しのオーバヘッドを削減で
き、情報処理装置の処理速度の向上を図ることができ
る。
【図面の簡単な説明】
【図1】本発明の実施例に係るパイプライン方式の情報
処理装置の構成を示す。
【図2】従来の情報処理装置の構成を示す。
【図3】使用される命令の例を示す。
【図4】従来技術における、命令アドレス加算器で実行
する分岐先命令先行読み出しのパイプラインフローを説
明する図である。
【図5】従来技術における、命令アドレス加算器で先行
演算を実行できない場合のパイプラインフローを説明す
る図である。
【図6】従来技術における、命令アドレス加算器で先行
演算を実行できる場合のパイプラインフローを説明する
図である。
【図7】従来技術における、命令アドレス加算器で先行
演算機能と分岐先命令先行読出し機能の起動条件が競合
した場合のパイプラインフローを説明する図である。
【図8】本発明のパイプラインフローを説明する図であ
る。
【符号の説明】
1 命令バッファレジスタ 2 命令切出しアライナA 3 命令切出しアライナB 4 先行命令用命令レジスタ 5 後続命令用命令レジスタ 6 先行演算可能命令検出回路 7 分岐命令検出回路 8 汎用レジスタ 9 オペランドアドレス加算器 10 オペランド用TLB 11 オペランドバッファ記憶装置 12 演算器 13 命令アドレス加算器 14 命令用TLB 15 命令バッファ記憶装置 16 先行演算結果レジスタ 17 加算器入力セレクト信号生成回路 18 命令アドレス加算器使用方法判定回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中谷 明洋 東京都小平市上水本町5丁目22番1号 株 式会社日立マイコンシステム内 (72)発明者 糸井 朋永 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 井上 司 神奈川県秦野市堀山下1番地 株式会社日 立コンピュータエレクトロニクス内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 メモリから逐次読出される命令列を一時
    的に保持する命令バッファ手段と、該命令バッファ手段
    から命令を逐次取出してパイプライン処理を起動する第
    1の命令取出し手段と、該第1の命令取出し手段により
    取出される命令に後続する命令を前記命令バッファ手段
    から取出す第2の命令取出し手段と、分岐先アドレスを
    求めるための分岐先アドレス加算手段と、該分岐先アド
    レス加算手段で演算した結果を保持し前記分岐先アドレ
    ス加算手段に供給する手段と、前記第1の命令取出し手
    段によって取出された命令が先行演算可能な命令である
    ことを検出する手段と、前記第2の命令取出し手段によ
    って取出された命令が分岐命令であることを検出する手
    段と、前記第2の命令取出し手段によって取出された分
    岐命令の処理の少なくとも一部の処理が、先行する命令
    のパイプライン処理と並行して実行される手段とを備え
    たパイプライン方式の情報処理装置において、前記第1
    の命令取出し手段によって取出された命令が主記憶のデ
    ータを使用しない第1の命令であり、前記第2の命令取
    出し手段によって取出された命令が分岐命令であると
    き、前記分岐先アドレス加算手段に対して、分岐先命令
    先行読み出しを指示し、前記第1の命令取出し手段によ
    って取出された命令が主記憶のデータを使用しない第2
    の命令であり、前記第2の命令取出し手段によって取出
    された命令が分岐命令であるとき、前記分岐先アドレス
    加算手段に対して、先行演算を指示する手段を設けたこ
    とを特徴とする情報処理装置。
JP25059795A 1995-09-28 1995-09-28 情報処理装置 Withdrawn JPH0991139A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25059795A JPH0991139A (ja) 1995-09-28 1995-09-28 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25059795A JPH0991139A (ja) 1995-09-28 1995-09-28 情報処理装置

Publications (1)

Publication Number Publication Date
JPH0991139A true JPH0991139A (ja) 1997-04-04

Family

ID=17210253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25059795A Withdrawn JPH0991139A (ja) 1995-09-28 1995-09-28 情報処理装置

Country Status (1)

Country Link
JP (1) JPH0991139A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104614A (ja) * 2008-11-25 2009-05-14 Renesas Technology Corp 情報処理装置
US8578135B2 (en) 2004-01-29 2013-11-05 Renesas Electronics Corporation Apparatus for calculating and prefetching a branch target address
US10162631B2 (en) 2016-10-28 2018-12-25 Sanken Electric Co., Ltd. Micro controller unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578135B2 (en) 2004-01-29 2013-11-05 Renesas Electronics Corporation Apparatus for calculating and prefetching a branch target address
JP2009104614A (ja) * 2008-11-25 2009-05-14 Renesas Technology Corp 情報処理装置
US10162631B2 (en) 2016-10-28 2018-12-25 Sanken Electric Co., Ltd. Micro controller unit

Similar Documents

Publication Publication Date Title
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
JP2000222206A (ja) データ処理装置
JPS633337B2 (ja)
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
EP0093430B1 (en) Pipeline data processing system
EP0094535B1 (en) Pipe-line data processing system
US4954947A (en) Instruction processor for processing branch instruction at high speed
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
EP0497485A2 (en) Computer for implementing two-operand instructions
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JP2580396B2 (ja) パイプラインにおける分岐命令制御方式
JPH0991139A (ja) 情報処理装置
US6044455A (en) Central processing unit adapted for pipeline process
JPH04321130A (ja) 分岐予測装置
JP2503984B2 (ja) 情報処理装置
JP2591325B2 (ja) 分岐制御装置
JP3954159B2 (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JP2819733B2 (ja) 情報処理装置
JP3493110B2 (ja) 高速分岐処理装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP3414579B2 (ja) プログラマブルコントローラ
JPH09274566A (ja) 情報処理装置
JPH06332701A (ja) 情報処理装置
JPH0619705A (ja) パイプライン制御方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021203