JPH07219771A - 命令プロセッサ - Google Patents
命令プロセッサInfo
- Publication number
- JPH07219771A JPH07219771A JP1278094A JP1278094A JPH07219771A JP H07219771 A JPH07219771 A JP H07219771A JP 1278094 A JP1278094 A JP 1278094A JP 1278094 A JP1278094 A JP 1278094A JP H07219771 A JPH07219771 A JP H07219771A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- processing
- previous
- data
- 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)
Abstract
(57)【要約】
【目的】 ある命令の実行結果が前命令の実行結果によ
り決まる時、高速化のために、前命令の実行結果を仮定
してその命令の実行を行い、この時、前命令の実行結果
に誤りがあれば、その誤りに起因する後続命令の誤りを
正す処理のペナルティを減少させる。 【構成】 前命令0bの実行結果により決まる命令1aを判
定して該命令の複写命令1a'を作成し、前命令0bの演算
結果に基づき命令1aを実行すると共に、レジスタの前デ
ータを用いて複写命令1a'の演算を実行する。その後、
命令0bが無効化されなかったときは、複写命令1a'の演
算結果の書き込みを抑止し、命令0bが無効化されたとき
は、複写命令1a'の演算結果を有効とし、命令1aの演算
結果の無効化を行う。これにより、実行が前命令の実行
結果により決まる命令において、その前命令の実行結果
に誤りが生じても、小ペナルティによって処理でき、プ
ロセッサの性能向上を実現できる。
り決まる時、高速化のために、前命令の実行結果を仮定
してその命令の実行を行い、この時、前命令の実行結果
に誤りがあれば、その誤りに起因する後続命令の誤りを
正す処理のペナルティを減少させる。 【構成】 前命令0bの実行結果により決まる命令1aを判
定して該命令の複写命令1a'を作成し、前命令0bの演算
結果に基づき命令1aを実行すると共に、レジスタの前デ
ータを用いて複写命令1a'の演算を実行する。その後、
命令0bが無効化されなかったときは、複写命令1a'の演
算結果の書き込みを抑止し、命令0bが無効化されたとき
は、複写命令1a'の演算結果を有効とし、命令1aの演算
結果の無効化を行う。これにより、実行が前命令の実行
結果により決まる命令において、その前命令の実行結果
に誤りが生じても、小ペナルティによって処理でき、プ
ロセッサの性能向上を実現できる。
Description
【0001】
【産業上の利用分野】本発明はパイプライン化された複
数の命令を並列処理するときに前命令の実行結果を待た
ずにその実行結果を仮定して次命令を実行するプロセッ
サに係り、特に、仮定した値が前命令の実行結果と異な
ったときに次命令の再実行を実行するまでの時間を減少
させるのに好適な命令プロセッサに関する。
数の命令を並列処理するときに前命令の実行結果を待た
ずにその実行結果を仮定して次命令を実行するプロセッ
サに係り、特に、仮定した値が前命令の実行結果と異な
ったときに次命令の再実行を実行するまでの時間を減少
させるのに好適な命令プロセッサに関する。
【0002】
【従来の技術】RISCプロセッサ等の高機能情報処理装置
の性能向上の手段として、命令の処理を段階的に実行す
るパイプライン技術と、1つのプロセッサ内で複数の命
令を並列に処理するスーパスカラ技術が知られている。
の性能向上の手段として、命令の処理を段階的に実行す
るパイプライン技術と、1つのプロセッサ内で複数の命
令を並列に処理するスーパスカラ技術が知られている。
【0003】パイプライン技術は、1つの命令の実行を
行うために命令をメモリからフェッチする処理、命令を
デコードする処理、データの演算等を行う処理、レジス
タ書き込みを行う処理等の処理が必要となるため、1つ
の命令を複数のステージに分割し、各ステージを個別に
実行することにより命令を段階的に実行する技術であ
る。このパイプライン技術により、1つの命令の実行中
に次の命令の実行が開始でき、命令の効率の良い実行が
可能となる。
行うために命令をメモリからフェッチする処理、命令を
デコードする処理、データの演算等を行う処理、レジス
タ書き込みを行う処理等の処理が必要となるため、1つ
の命令を複数のステージに分割し、各ステージを個別に
実行することにより命令を段階的に実行する技術であ
る。このパイプライン技術により、1つの命令の実行中
に次の命令の実行が開始でき、命令の効率の良い実行が
可能となる。
【0004】スーパスカラ技術は、複数の命令を同時に
実行することを可能とする技術である。これを実現する
ためには、例えば複数の演算ユニットを持つことが必要
である。
実行することを可能とする技術である。これを実現する
ためには、例えば複数の演算ユニットを持つことが必要
である。
【0005】パイプライン技術を利用する場合、ある命
令の実行結果が前命令の実行結果により決まる場合があ
る。このような場合の処理を高速に行なうには、前命令
の実行結果を仮定し、その命令の実行を行うという方法
がよく用いられる。しかし、もし仮定した前命令の実行
結果に誤りがあれば、その結果を用いた命令にも誤りが
生じ、その誤りを処理するためのペナルティが発生す
る。
令の実行結果が前命令の実行結果により決まる場合があ
る。このような場合の処理を高速に行なうには、前命令
の実行結果を仮定し、その命令の実行を行うという方法
がよく用いられる。しかし、もし仮定した前命令の実行
結果に誤りがあれば、その結果を用いた命令にも誤りが
生じ、その誤りを処理するためのペナルティが発生す
る。
【0006】ある命令の演算結果を次命令が必要とする
場合、パイプラインを止めずに処理するには、最初の命
令の演算結果をレジスタに書き込む前にその結果を次の
命令に送ることがしばしば行なわれる。これをショート
パス、もしくはフォワーディングと呼ぶ。
場合、パイプラインを止めずに処理するには、最初の命
令の演算結果をレジスタに書き込む前にその結果を次の
命令に送ることがしばしば行なわれる。これをショート
パス、もしくはフォワーディングと呼ぶ。
【0007】ショートパスを行なった後に最初の命令が
プログラムの流れにより無効になれば、次の命令も無効
化されたデータを用いたことになるため、やり直す必要
がある。ここで命令が無効になることをナリファイと呼
び、ナリファイにより別の命令をやり直すことをリトラ
イと呼ぶ。リトライを行なうためには、パイプラインに
より実行中の全命令を中断し、ショートパスされた命令
を最初から実行し直す必要がある。その結果、数クロッ
クサイクルの間、命令を1つも実行できないペナルティ
が生じる。
プログラムの流れにより無効になれば、次の命令も無効
化されたデータを用いたことになるため、やり直す必要
がある。ここで命令が無効になることをナリファイと呼
び、ナリファイにより別の命令をやり直すことをリトラ
イと呼ぶ。リトライを行なうためには、パイプラインに
より実行中の全命令を中断し、ショートパスされた命令
を最初から実行し直す必要がある。その結果、数クロッ
クサイクルの間、命令を1つも実行できないペナルティ
が生じる。
【0008】図8は、従来のプロセッサの構成図であ
る。100は主記憶、102は命令キャッシュ、104
は命令発行ユニット、106は命令処理ユニットであ
る。命令処理ユニット106は、アドレス信号191を
用い、命令キャッシュ102に該当命令を読み出させ、
読み出させた命令をバス103a〜103dを通し命令発
行ユニット104に送らせる。命令発行ユニット104
は、受け取った命令の中から並列に処理できるものを選
び出し、バス105a〜105dを通し、命令処理ユニッ
ト106に送る。命令処理ユニット106はその命令の
演算を行い、さらにショートパスとナリファイの判定を
行い、命令アドレス信号191によりリトライを行う。
る。100は主記憶、102は命令キャッシュ、104
は命令発行ユニット、106は命令処理ユニットであ
る。命令処理ユニット106は、アドレス信号191を
用い、命令キャッシュ102に該当命令を読み出させ、
読み出させた命令をバス103a〜103dを通し命令発
行ユニット104に送らせる。命令発行ユニット104
は、受け取った命令の中から並列に処理できるものを選
び出し、バス105a〜105dを通し、命令処理ユニッ
ト106に送る。命令処理ユニット106はその命令の
演算を行い、さらにショートパスとナリファイの判定を
行い、命令アドレス信号191によりリトライを行う。
【0009】尚、従来技術に関連するものとして、特開
昭61−107435号公報記載のものがある。しか
し、この従来技術は、先行命令に依存する命令の処理を
予測により行い、予測が正しいと判断された場合のみ結
果をメモリに書き込むにすぎず、予測が間違っていたと
きにリトライするものではない。
昭61−107435号公報記載のものがある。しか
し、この従来技術は、先行命令に依存する命令の処理を
予測により行い、予測が正しいと判断された場合のみ結
果をメモリに書き込むにすぎず、予測が間違っていたと
きにリトライするものではない。
【0010】
【発明が解決しようとする課題】図9は、図8に示す従
来のプロセッサにおけるリトライに起因するペナルティ
サイクルを示す図である。この図の例では、4つの命令
a,b,c,dが並列処理されている。この図9の例で
は、パイプライン段数は6段であり、演算はEステージ
で行われる。このEステージでの命令bの演算結果が、
次命令aにショートパス143される。しかし、次のF
ステージで命令aが命令bを無効にするナリファイ信号
153が発せられると、命令bはWステージで演算結果
をレジスタに格納することはせず、次命令aをリトライ
する信号191を発行する。この図から明らかなよう
に、ショートパス信号143,ナリファイ信号153,
命令アドレスを再度フェッチする信号191に夫々1サ
イクル必要であり、また、リトライが発生すれば4サイ
クルのペナルティが生じる。
来のプロセッサにおけるリトライに起因するペナルティ
サイクルを示す図である。この図の例では、4つの命令
a,b,c,dが並列処理されている。この図9の例で
は、パイプライン段数は6段であり、演算はEステージ
で行われる。このEステージでの命令bの演算結果が、
次命令aにショートパス143される。しかし、次のF
ステージで命令aが命令bを無効にするナリファイ信号
153が発せられると、命令bはWステージで演算結果
をレジスタに格納することはせず、次命令aをリトライ
する信号191を発行する。この図から明らかなよう
に、ショートパス信号143,ナリファイ信号153,
命令アドレスを再度フェッチする信号191に夫々1サ
イクル必要であり、また、リトライが発生すれば4サイ
クルのペナルティが生じる。
【0011】本発明の目的は、ある命令の実行結果が前
命令の実行結果により決る場合における前述した様なペ
ナルティを減少させることが可能な命令プロセッサを提
供することにある。
命令の実行結果により決る場合における前述した様なペ
ナルティを減少させることが可能な命令プロセッサを提
供することにある。
【0012】
【課題を解決するための手段】上記目的は、複数の命令
を繰り返し並列にパイプライン処理する命令プロセッサ
において、パイプライン処理の終段で命令の演算結果を
保持するデータ保持手段と、命令が前命令の実行結果の
ショートパスを受けて実行するものであり且つ該前命令
がナリファイされる可能性のある命令を複写し2つの同
一の第1命令と第2命令にする命令複写手段と、前記第
1命令を前記ショートパスによるデータに基づいて実行
させる共に前記第2命令を前記データ保持手段の格納デ
ータに基づいて実行させる命令処理手段と、前記前命令
がナリファイされた場合には前記第2命令の演算結果を
前記データ保持手段に保持させ前記前命令がナリファイ
されなかった場合には前記第1命令の演算結果を前記デ
ータ保持手段に保持させるデータ書き込みの抑止手段と
を設けることで、達成される。
を繰り返し並列にパイプライン処理する命令プロセッサ
において、パイプライン処理の終段で命令の演算結果を
保持するデータ保持手段と、命令が前命令の実行結果の
ショートパスを受けて実行するものであり且つ該前命令
がナリファイされる可能性のある命令を複写し2つの同
一の第1命令と第2命令にする命令複写手段と、前記第
1命令を前記ショートパスによるデータに基づいて実行
させる共に前記第2命令を前記データ保持手段の格納デ
ータに基づいて実行させる命令処理手段と、前記前命令
がナリファイされた場合には前記第2命令の演算結果を
前記データ保持手段に保持させ前記前命令がナリファイ
されなかった場合には前記第1命令の演算結果を前記デ
ータ保持手段に保持させるデータ書き込みの抑止手段と
を設けることで、達成される。
【0013】
【作用】前命令からショートパスを受けて実行した第1
命令の演算結果が、前命令のナリファイにより無効にな
った場合には、この第1命令と並列または該第1命令の
直後に実行する第2命令の演算結果を有効とすること
で、ペナルティが減少する。即ち、第1命令の実行結果
が無効となったことが判明した後に第2命令に必要デー
タを渡して実行させる場合に比べ、第2命令の演算結果
を直に得ることができる。第1命令の実行と第2命令の
実行のいずれかは無駄な実行となるが、その無駄による
不利益よりも減少するペナルティの方が命令プロセッサ
になって遥かに利益となる。
命令の演算結果が、前命令のナリファイにより無効にな
った場合には、この第1命令と並列または該第1命令の
直後に実行する第2命令の演算結果を有効とすること
で、ペナルティが減少する。即ち、第1命令の実行結果
が無効となったことが判明した後に第2命令に必要デー
タを渡して実行させる場合に比べ、第2命令の演算結果
を直に得ることができる。第1命令の実行と第2命令の
実行のいずれかは無駄な実行となるが、その無駄による
不利益よりも減少するペナルティの方が命令プロセッサ
になって遥かに利益となる。
【0014】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。図1は本発明の第1実施例に係る命令プロセッ
サの構成図である。10は命令を保持する手段、20は
複写を判定する手段、30は命令を複写する手段、40
は命令を並列処理する手段、50は誤演算の書き込みを
抑止する手段、60はデータを保持する手段である。
明する。図1は本発明の第1実施例に係る命令プロセッ
サの構成図である。10は命令を保持する手段、20は
複写を判定する手段、30は命令を複写する手段、40
は命令を並列処理する手段、50は誤演算の書き込みを
抑止する手段、60はデータを保持する手段である。
【0015】命令を保持する手段10から読み出された
各命令は、信号線11を通して複写を判定する手段20
に送られる。複写を判定する手段20は、 (a)その命令が前命令の実行結果を必要とするか否か (b)上記前命令がプログラムの流れによりナリファイ
される可能性があるか否か の2つの条件により、複写すべきか否かの判定を行う。
その命令が前命令の実行結果を必要とししかもナリファ
イされる可能性がある場合には、その命令を複写すべき
と判定し、命令を複写する手段30でその命令を同一の
2つの命令にし、信号線31,32を通して、命令を処
理する手段40に送る。
各命令は、信号線11を通して複写を判定する手段20
に送られる。複写を判定する手段20は、 (a)その命令が前命令の実行結果を必要とするか否か (b)上記前命令がプログラムの流れによりナリファイ
される可能性があるか否か の2つの条件により、複写すべきか否かの判定を行う。
その命令が前命令の実行結果を必要とししかもナリファ
イされる可能性がある場合には、その命令を複写すべき
と判定し、命令を複写する手段30でその命令を同一の
2つの命令にし、信号線31,32を通して、命令を処
理する手段40に送る。
【0016】命令を処理する手段40は、複写した2つ
の命令を、データを保持する手段60から夫々必要なデ
ータをもらって実行する。つまり、一方の命令は、前命
令の結果をショートパスで受け取り処理し、他方の命令
は、ショートパスによりデータを受け取るのではなく以
前の前命令の実行結果を格納してあるレジスタの格納デ
ータを使用して処理する。各処理結果は、信号線43,
44を通してデータを保持する手段60に送られる。誤
演算の書き込みを抑止する手段50は、信号線41,4
2を通して命令を処理する手段40から処理結果をもら
う。このとき、ナリファイが発生すると、ショートパス
によるデータで処理された命令の処理結果を無効化(該
処理結果の手段60に対する書き込みを抑止)すべく、
信号線51を通しデータを保持する手段60に対しする
書き込みを抑止する制御信号を発行する。また、ナリフ
ァイされなかった場合には、ショートパスによらないデ
ータで処理された命令の処理結果が無効化される。
の命令を、データを保持する手段60から夫々必要なデ
ータをもらって実行する。つまり、一方の命令は、前命
令の結果をショートパスで受け取り処理し、他方の命令
は、ショートパスによりデータを受け取るのではなく以
前の前命令の実行結果を格納してあるレジスタの格納デ
ータを使用して処理する。各処理結果は、信号線43,
44を通してデータを保持する手段60に送られる。誤
演算の書き込みを抑止する手段50は、信号線41,4
2を通して命令を処理する手段40から処理結果をもら
う。このとき、ナリファイが発生すると、ショートパス
によるデータで処理された命令の処理結果を無効化(該
処理結果の手段60に対する書き込みを抑止)すべく、
信号線51を通しデータを保持する手段60に対しする
書き込みを抑止する制御信号を発行する。また、ナリフ
ァイされなかった場合には、ショートパスによらないデ
ータで処理された命令の処理結果が無効化される。
【0017】複写を判定する手段20が命令の複写を必
要としないと判定した場合は、複写は行なわれず、その
命令は信号線31を通して命令を処理する手段40に送
られ、処理された結果は、信号線43を通して データ
を保持する手段60に書き込まれる。
要としないと判定した場合は、複写は行なわれず、その
命令は信号線31を通して命令を処理する手段40に送
られ、処理された結果は、信号線43を通して データ
を保持する手段60に書き込まれる。
【0018】図2は、本発明の第2実施例に係る命令プ
ロセッサの構成図である。100は主記憶、110は命
令キャッシュ(図1の命令を保持する手段10に相
当)、115は予測ビット生成ユニット、120は命令
発行ユニット(図1の複写を判定する手段20に相
当)、125はセレクタユニット(図1の命令を複写す
る手段30に相当)、130はデコードユニット、14
0は整数,浮動小数点等を含む演算ユニット(図1の命
令を処理する手段40に相当)、150はナリファイ生
成ユニット、160はショートパス制御ユニット、17
0は命令無効化ユニット(図1の誤演算の書き込みを抑
止する手段50に相当)、180はレジスタ(図1のデ
ータを保持する手段60)、190は命令アドレス生成
ユニットである。命令キャッシュ110には誤演算予測
ビット112が保持される。この実施例では最大4命令
を並列に処理することが可能である。
ロセッサの構成図である。100は主記憶、110は命
令キャッシュ(図1の命令を保持する手段10に相
当)、115は予測ビット生成ユニット、120は命令
発行ユニット(図1の複写を判定する手段20に相
当)、125はセレクタユニット(図1の命令を複写す
る手段30に相当)、130はデコードユニット、14
0は整数,浮動小数点等を含む演算ユニット(図1の命
令を処理する手段40に相当)、150はナリファイ生
成ユニット、160はショートパス制御ユニット、17
0は命令無効化ユニット(図1の誤演算の書き込みを抑
止する手段50に相当)、180はレジスタ(図1のデ
ータを保持する手段60)、190は命令アドレス生成
ユニットである。命令キャッシュ110には誤演算予測
ビット112が保持される。この実施例では最大4命令
を並列に処理することが可能である。
【0019】命令キャッシュ110は命令アドレス信号
191、に基づき、該当命令をバス111を通して命令
発行ユニット120に出力する。この時、必要であれ
ば、バス101を通して主記憶100から該当命令を読
み出し、命令発行ユニット120に出力する。命令発行
ユニット120に出力される命令は、予測ビット112
(上記の(a)(b)の条件により複写すべきとされた
命令を示す。)が付加される。
191、に基づき、該当命令をバス111を通して命令
発行ユニット120に出力する。この時、必要であれ
ば、バス101を通して主記憶100から該当命令を読
み出し、命令発行ユニット120に出力する。命令発行
ユニット120に出力される命令は、予測ビット112
(上記の(a)(b)の条件により複写すべきとされた
命令を示す。)が付加される。
【0020】命令発行ユニット120は、命令選択信号
122をセレクタユニット125に送り、誤演算予測ビ
ット112の立っている命令を複写し、その2つの命令
を同時にデコードユニット130に発行する。デコード
ユニット130は命令をデコードし、演算制御信号13
3を演算ユニット140へ、複写が発生したことを示す
制御信号131を命令無効化ユニット170へ、ナリフ
ァイが発生する可能性のあることを示す制御信号132
をナリファイ生成ユニット150へ、ショートパスをが
発生することを示す制御信号134をショートパス制御
ユニット160へ送る。
122をセレクタユニット125に送り、誤演算予測ビ
ット112の立っている命令を複写し、その2つの命令
を同時にデコードユニット130に発行する。デコード
ユニット130は命令をデコードし、演算制御信号13
3を演算ユニット140へ、複写が発生したことを示す
制御信号131を命令無効化ユニット170へ、ナリフ
ァイが発生する可能性のあることを示す制御信号132
をナリファイ生成ユニット150へ、ショートパスをが
発生することを示す制御信号134をショートパス制御
ユニット160へ送る。
【0021】もし誤演算予測ビット112が立っていた
ため、複写を行ない、かつ、予測が当たってショートパ
スする命令がナリファイされた場合、命令無効化ユニッ
ト170は、ショートパス制御ユニット160からのシ
ョートパス発生信号161と、ナリファイ生成ユニット
150からのナリファイ発生信号151と、デコードユ
ニット130からの複写発生信号131の三つの信号よ
り、無効にする命令を判定し、命令無効化信号171に
よりその命令の実行結果のレジスタ180への書き込み
を抑止する。ナリファイ発生信号151はナリファイが
発生する可能性のあることを示す制御信号132と演算
ユニット140の演算結果141より、ナリファイ生成
ユニット150で作られる。
ため、複写を行ない、かつ、予測が当たってショートパ
スする命令がナリファイされた場合、命令無効化ユニッ
ト170は、ショートパス制御ユニット160からのシ
ョートパス発生信号161と、ナリファイ生成ユニット
150からのナリファイ発生信号151と、デコードユ
ニット130からの複写発生信号131の三つの信号よ
り、無効にする命令を判定し、命令無効化信号171に
よりその命令の実行結果のレジスタ180への書き込み
を抑止する。ナリファイ発生信号151はナリファイが
発生する可能性のあることを示す制御信号132と演算
ユニット140の演算結果141より、ナリファイ生成
ユニット150で作られる。
【0022】もし誤演算予測ビット112が立っていな
かったためナリファイされる命令の複写が行われず、か
つ、ショートパスする命令がナリファイされたら、従来
例と同様リトライによる処理が行われ、次にその命令を
実行する時に予測できるようにするために、誤演算予測
ビット112に“1”が書き込まれる。リトライ動作
は、ナリファイ生成ユニット150からのナリファイ発
生信号151とショートパス制御ユニット160からの
ショートパス発生信号161を用いて、命令アドレス生
成ユニット190でリトライアドレスを生成し、命令キ
ャッシュに命令アドレス信号191を通してリトライア
ドレスを送ることにより実現される。誤演算予測ビット
112に“1”を書き込むため、ショートパス制御ユニ
ット160とナリファイ生成ユニット150は、ショー
トパスとナリファイの発生信号161と151を予測ビ
ット生成ユニット115に送り、予測ビット生成ユニッ
ト115は予測ビット信号116を作り、それを命令キ
ャッシュ110に送る。
かったためナリファイされる命令の複写が行われず、か
つ、ショートパスする命令がナリファイされたら、従来
例と同様リトライによる処理が行われ、次にその命令を
実行する時に予測できるようにするために、誤演算予測
ビット112に“1”が書き込まれる。リトライ動作
は、ナリファイ生成ユニット150からのナリファイ発
生信号151とショートパス制御ユニット160からの
ショートパス発生信号161を用いて、命令アドレス生
成ユニット190でリトライアドレスを生成し、命令キ
ャッシュに命令アドレス信号191を通してリトライア
ドレスを送ることにより実現される。誤演算予測ビット
112に“1”を書き込むため、ショートパス制御ユニ
ット160とナリファイ生成ユニット150は、ショー
トパスとナリファイの発生信号161と151を予測ビ
ット生成ユニット115に送り、予測ビット生成ユニッ
ト115は予測ビット信号116を作り、それを命令キ
ャッシュ110に送る。
【0023】もし誤演算予測ビット112が立っていた
ため、ショートパスする命令が、ナリファイされるとい
う予測をした場合に、予測が外れ、ショートパスした命
令がナリファイされなかったら、ショートパス制御ユニ
ット160とナリファイ生成ユニット150は予測ビッ
ト生成ユニット115に信号161,151を送り、予
測ビット生成ユニット115は誤演算予測ビット信号1
16を作り、命令キャッシュ110に送り、誤演算する
と予測された命令の誤演算予測ビット112を“0”に
する。
ため、ショートパスする命令が、ナリファイされるとい
う予測をした場合に、予測が外れ、ショートパスした命
令がナリファイされなかったら、ショートパス制御ユニ
ット160とナリファイ生成ユニット150は予測ビッ
ト生成ユニット115に信号161,151を送り、予
測ビット生成ユニット115は誤演算予測ビット信号1
16を作り、命令キャッシュ110に送り、誤演算する
と予測された命令の誤演算予測ビット112を“0”に
する。
【0024】図3は、図2のセレクタユニット125の
構成図である。121a〜121dは命令発行ユニット
120から発行される命令、122は命令発行ユニット
120から出る命令選択信号、126は命令複写セレク
タである。命令121a〜121dには誤演算予測ビッ
ト112が含まれている。もし命令121a〜121d
の誤演算予測ビット112が1つも立っていなければ、
通常の処理が行われ、命令の複写は行われない。もし命
令121b,121c,121dのどれかの誤演算予測
ビット112が立っていれば、命令発行ユニット120
はそれ以前の命令を先に発行し、後の命令のシフトを行
う。従って、次のサイクルでは命令121aの誤演算予
測ビット112が立つことになる。もし命令121aの
誤演算ビット112が立っていれば、命令発行ユニット
120は命令選択信号122を命令複写セレクタ126
に送ることにより該セレクタ126を制御し、命令12
1aを複写する。この場合、命令121b,121c,
121dは、次のサイクルで発行される。
構成図である。121a〜121dは命令発行ユニット
120から発行される命令、122は命令発行ユニット
120から出る命令選択信号、126は命令複写セレク
タである。命令121a〜121dには誤演算予測ビッ
ト112が含まれている。もし命令121a〜121d
の誤演算予測ビット112が1つも立っていなければ、
通常の処理が行われ、命令の複写は行われない。もし命
令121b,121c,121dのどれかの誤演算予測
ビット112が立っていれば、命令発行ユニット120
はそれ以前の命令を先に発行し、後の命令のシフトを行
う。従って、次のサイクルでは命令121aの誤演算予
測ビット112が立つことになる。もし命令121aの
誤演算ビット112が立っていれば、命令発行ユニット
120は命令選択信号122を命令複写セレクタ126
に送ることにより該セレクタ126を制御し、命令12
1aを複写する。この場合、命令121b,121c,
121dは、次のサイクルで発行される。
【0025】図4は、図2,図3で説明した実施例の動
作を示すパイプライン説明図である。IFAステージで
は、命令を命令キャッシュに取りに行く。IFBステージ
では、複写の判定を行ない、命令を命令発行ユニットか
らデコードユニットに移す。Dステージでは命令をデコ
ードする。Eステージではデータの演算等を行う。Fス
テージでは、必要に応じてナリファイ信号を作る。Wス
テージではレジスタ書き込みを行なう。143はショー
トパス信号、153はナリファイ信号のタイミングであ
る。
作を示すパイプライン説明図である。IFAステージで
は、命令を命令キャッシュに取りに行く。IFBステージ
では、複写の判定を行ない、命令を命令発行ユニットか
らデコードユニットに移す。Dステージでは命令をデコ
ードする。Eステージではデータの演算等を行う。Fス
テージでは、必要に応じてナリファイ信号を作る。Wス
テージではレジスタ書き込みを行なう。143はショー
トパス信号、153はナリファイ信号のタイミングであ
る。
【0026】IFAステージでは、0a,0b,0c,0d等の連
続するアドレスの4命令を命令キャッシュへ取りに行
き、IFBステージでその4命令を命令発行ユニットに移
し、誤演算予測ビットが立っているがどうかを判定し、
命令の発行を制御する。図4の例では、命令1aの誤演算
予測ビット112が立っているため、命令1aを複写し、
複写命令1a'を作る。この例では、Eステージの命令0b
からDステージの命令1aのショートパス143が発生す
る。そして、Dステージでは、ショートパスされた命令
1aと、ショートパスされなかった複写命令1a'の各デコ
ードを行う。命令1aはEステージではショートパスされ
たデータに基づいて演算を行い、複写命令1a'は、Eス
テージでは、レジスタに格納されている前のデータを用
いて演算を行う。
続するアドレスの4命令を命令キャッシュへ取りに行
き、IFBステージでその4命令を命令発行ユニットに移
し、誤演算予測ビットが立っているがどうかを判定し、
命令の発行を制御する。図4の例では、命令1aの誤演算
予測ビット112が立っているため、命令1aを複写し、
複写命令1a'を作る。この例では、Eステージの命令0b
からDステージの命令1aのショートパス143が発生す
る。そして、Dステージでは、ショートパスされた命令
1aと、ショートパスされなかった複写命令1a'の各デコ
ードを行う。命令1aはEステージではショートパスされ
たデータに基づいて演算を行い、複写命令1a'は、Eス
テージでは、レジスタに格納されている前のデータを用
いて演算を行う。
【0027】ここで、命令0bが、ナリファイ信号153
によりFステージでナリファイされると、Wステージで
は、命令1aの演算結果がレジスタ180へ書き込まれる
のを抑止する。もし、予測が外れ、ナリファイ信号15
3が発生しなければ、複写命令1a'の演算結果がレジス
タへ書き込まれるのを抑止する。従って、この実施例で
は、ペナルティは0サイクルとなる。
によりFステージでナリファイされると、Wステージで
は、命令1aの演算結果がレジスタ180へ書き込まれる
のを抑止する。もし、予測が外れ、ナリファイ信号15
3が発生しなければ、複写命令1a'の演算結果がレジス
タへ書き込まれるのを抑止する。従って、この実施例で
は、ペナルティは0サイクルとなる。
【0028】図5は、命令0bの演算結果を用いて実行す
る命令1cに誤演算予測ビット112が立っている場合の
パイプライン説明図である。命令1cは図3の命令121
cに対応する。命令発行ユニット120は、発行位置1
21aに誤演算予測ビットが立っている命令を発行しな
ければいけないため、命令1cの前にある命令1aと命令1b
を先に発行する。次のサイクルでは、予測ビット112
が立っている命令1cを複写し、命令1cと複写命令1c'を
同時に並列に実行する。他の動作は図4の場合と同様で
あり、この例でも、ペナルティは0サイクルである。
る命令1cに誤演算予測ビット112が立っている場合の
パイプライン説明図である。命令1cは図3の命令121
cに対応する。命令発行ユニット120は、発行位置1
21aに誤演算予測ビットが立っている命令を発行しな
ければいけないため、命令1cの前にある命令1aと命令1b
を先に発行する。次のサイクルでは、予測ビット112
が立っている命令1cを複写し、命令1cと複写命令1c'を
同時に並列に実行する。他の動作は図4の場合と同様で
あり、この例でも、ペナルティは0サイクルである。
【0029】図6は、図2のセレクタユニット125の
別実施例に係る構成図である。図3の構成では、セレク
タが命令121aと命令121bを入力としているのに
対し、図6の構成では、命令121aとセレクタ127
自身の出力を入力としていることが異なっている。本実
施例では、斯かる構成とすることで、複写命令を本来の
命令から1サイクル遅れて実行することになるが、次の
図7で説明するように、ペナルティは少なくなる。。
別実施例に係る構成図である。図3の構成では、セレク
タが命令121aと命令121bを入力としているのに
対し、図6の構成では、命令121aとセレクタ127
自身の出力を入力としていることが異なっている。本実
施例では、斯かる構成とすることで、複写命令を本来の
命令から1サイクル遅れて実行することになるが、次の
図7で説明するように、ペナルティは少なくなる。。
【0030】図7は、図6の構成を用いた実施例におけ
るパイプライン説明図である。Dステージではまずショ
ートパスされる命令1aを実行し、次のサイクルで同じ
命令をショートパスされない状態1a'として実行する。
この図7に示す例では、ショートパスした命令がナリフ
ァイされるため、命令1aのレジスタ書き込みを抑止す
る。もしナリファイが発生しなければ、次の複写命令1
a'のレジスタ書き込みを抑止する。複写命令1a'が次の
サイクルに実行されるため、命令1aのレジスタ書き込
み抑止の場合、ペナルティは1サイクル、命令1a'のレ
ジスタ書き込み抑止の場合、ペナルティは0サイクルと
なる。
るパイプライン説明図である。Dステージではまずショ
ートパスされる命令1aを実行し、次のサイクルで同じ
命令をショートパスされない状態1a'として実行する。
この図7に示す例では、ショートパスした命令がナリフ
ァイされるため、命令1aのレジスタ書き込みを抑止す
る。もしナリファイが発生しなければ、次の複写命令1
a'のレジスタ書き込みを抑止する。複写命令1a'が次の
サイクルに実行されるため、命令1aのレジスタ書き込
み抑止の場合、ペナルティは1サイクル、命令1a'のレ
ジスタ書き込み抑止の場合、ペナルティは0サイクルと
なる。
【0031】尚、本発明は上述した実施例に限定される
ものではなく、その要旨を逸脱しない範囲において種々
変更可能であることは勿論である。
ものではなく、その要旨を逸脱しない範囲において種々
変更可能であることは勿論である。
【0032】
【発明の効果】本発明によれば、下記の効果が得られ
る。 (1)実行結果が前命令の実行結果により決まる命令に
おいて、その前命令の実行結果に誤りが生じても、小ペ
ナルティによって処理できる。 (2)上記のような処理を通して、プロセッサの性能向
上を実現できる。
る。 (1)実行結果が前命令の実行結果により決まる命令に
おいて、その前命令の実行結果に誤りが生じても、小ペ
ナルティによって処理できる。 (2)上記のような処理を通して、プロセッサの性能向
上を実現できる。
【図1】本発明の第1実施例に係る命令プロセッサの構
成図である。
成図である。
【図2】本発明の第2実施例に係る命令プロセッサの構
成図である。
成図である。
【図3】図2に示すセレクタユニットの構成図である。
【図4】図2に示す命令プロセッサのパイプライン処理
を説明する図である。
を説明する図である。
【図5】図2に示す命令プロセッサの別のパイプライン
処理を説明する図である。
処理を説明する図である。
【図6】図2に示すセレクタユニットの別実施例の構成
図である。
図である。
【図7】図6のセレクタユニットを用いた命令プロセッ
サのパイプライン処理を説明する図である。
サのパイプライン処理を説明する図である。
【図8】従来の命令プロセッサの構成図である。
【図9】図8の命令プロセッサのパイプライン処理を説
明する図である。
明する図である。
10…命令を保持する手段、20…複写を判定する手
段、30…命令を複写する手段、40…命令を処理する
手段、50…誤演算の書き込みを抑止する手段、60…
データを保持する手段、100…主記憶、110…誤演
算予測ビットを含む命令キャッシュ、112…誤演算予
測ビット、115…予測ビット生成ユニット、120…
命令発行ユニット、122…命令選択信号、125…セ
レクタユニット、126…命令複写セレクタ、130…
デコードユニット、140…演算ユニット、143…シ
ョートパス信号、150…ナリファイ生成ユニット、1
53…ナリファイ信号、160…ショートパス制御ユニ
ット、170…命令無効化ユニット、180…レジス
タ、190…命令アドレス生成ユニット。
段、30…命令を複写する手段、40…命令を処理する
手段、50…誤演算の書き込みを抑止する手段、60…
データを保持する手段、100…主記憶、110…誤演
算予測ビットを含む命令キャッシュ、112…誤演算予
測ビット、115…予測ビット生成ユニット、120…
命令発行ユニット、122…命令選択信号、125…セ
レクタユニット、126…命令複写セレクタ、130…
デコードユニット、140…演算ユニット、143…シ
ョートパス信号、150…ナリファイ生成ユニット、1
53…ナリファイ信号、160…ショートパス制御ユニ
ット、170…命令無効化ユニット、180…レジス
タ、190…命令アドレス生成ユニット。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 堀田 多加志 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内
Claims (13)
- 【請求項1】 命令保持手段と、命令処理手段と、デー
タ保持手段とを備える命令プロセッサにおいて、複写判
定手段と、命令複写手段と、誤演算書込抑止手段を設
け、前記命令保持手段より取り出した各命令に対し前記
複写判定手段により複写すべきか否かの判定を行い、複
写すべきであると判定した場合には前記命令複写手段に
より該当命令を同一の2つの命令とし、前記命令処理手
段により前記同一の2つの命令を並列に異なる演算デー
タを用いて処理し、2つの命令の演算結果のうち誤った
演算結果が前記データ保持手段に書き込まれるのを前記
誤演算書込抑止手段で抑止し他方の演算結果を前記デー
タ保持手段に書き込む構成としたことを特徴とする命令
プロセッサ。 - 【請求項2】 命令保持手段と、命令処理手段と、デー
タ保持手段とを備える命令プロセッサにおいて、複写判
定手段と、命令複写手段と、誤演算書込抑止手段を設
け、前記命令保持手段より取り出した各命令に対し前記
複写判定手段により複写すべきか否かの判定を行い、複
写すべきであると判定した場合には前記命令複写手段に
より該当命令を同一の2つの命令とし、前記命令処理手
段により前記同一の2つの命令を逐次に異なる演算デー
タを用いて処理し、2つの命令の演算結果のうち誤った
演算結果が前記データ保持手段に書き込まれるのを前記
誤演算書込抑止手段で抑止し他方の演算結果を前記デー
タ保持手段に書き込む構成としたことを特徴とする命令
プロセッサ。 - 【請求項3】 請求項1または2記載において、前記命
令保持手段の中に誤演算予測ビットを設け、前記複写判
定手段は、前記誤演算予測ビットの値に基づいて複写す
べきか否かの判定を行なう構成としたことを特徴とする
命令プロセッサ。 - 【請求項4】 請求項1または請求項2において、複写
判定手段は、命令が前命令の実行結果を必要とし且つ該
前命令がプログラムの流れによりナリファイされる可能
性があるとき命令を複写するものであることを特徴とす
る命令プロセッサ。 - 【請求項5】 請求項4において、複写された同一2つ
の命令のうち一方の第1命令を前命令からショートパス
されたデータを用いて実行処理し他方の第2命令は前回
の命令処理でデータ保持手段に格納されたデータを用い
て実行処理し、前記前命令がナリファイされたときは第
1命令の実行処理結果を無効化して第2命令の実行処理
結果を前記データ保持手段に格納する構成としたことを
特徴とする命令プロセッサ。 - 【請求項6】 請求項4において、複写された同一2つ
の命令のうち一方の第1命令を前命令からショートパス
されたデータを用いて実行処理し他方の第2命令は前回
の命令処理でデータ保持手段に格納されたデータを用い
て実行処理し、前記前命令がナリファイされなかったと
きは第2命令の実行処理結果を無効化して第1命令の実
行処理結果を前記データ保持手段に格納する構成とした
ことを特徴とする命令プロセッサ。 - 【請求項7】 請求項1乃至請求項6のいずかれにおい
て、複数の命令を並列にパイプライン処理する時にある
命令の複写を行って同一の2つの命令を並列処理すると
きには前記複数の命令のうち該複写対象命令よりもパイ
プライン処理が前段となる命令を先に実行し次のサイク
ルで前記複写を行う構成とすることを特徴とする命令プ
ロセッサ。 - 【請求項8】 複数の命令を繰り返し並列にパイプライ
ン処理する命令プロセッサにおいて、パイプライン処理
の終段で命令の演算結果を保持するデータ保持手段と、
命令が前命令の実行結果のショートパスを受けて実行す
るものであり且つ該前命令がナリファイされる可能性の
ある命令を複写し2つの同一の第1命令と第2命令にす
る命令複写手段と、前記第1命令を前記ショートパスに
よるデータに基づいて実行させる共に前記第2命令を前
記データ保持手段の格納データに基づいて実行させる命
令処理手段と、前記前命令がナリファイされた場合には
前記第2命令の演算結果を前記データ保持手段に保持さ
せ前記前命令がナリファイされなかった場合には前記第
1命令の演算結果を前記データ保持手段に保持させるデ
ータ書き込みの抑止手段とを設けたことを特徴とする命
令プロセッサ。 - 【請求項9】 請求項8において、前記命令処理手段
は、前記第1命令と前記第2命令とを並列に実行するも
のであることを特徴とする命令プロセッサ。 - 【請求項10】 請求項8において、前記命令処理手段
は、前記第1命令と前記第2命令を順番に逐次実行させ
るものであることを特徴とする命令プロセッサ。 - 【請求項11】 請求項8乃至請求項10のいずれかに
おいて、前記複数の命令のうち前記複写対象命令よりパ
イプライン処理が前段となる命令を先に実行しその後に
複写対象命令を実行する構成としたことを特徴とする命
令プロセッサ。 - 【請求項12】 請求項8乃至請求項11のいずれかに
おいて、命令が前命令の実行結果のショートパスを受け
て実行するものであり且つ該前命令がナリファイされる
可能性のあるか否かを判定する誤演算予測ビットを命令
に付加しておく構成とすることを特徴とする命令プロセ
ッサ。 - 【請求項13】 請求項12において、複数の命令を繰
り返し並列にパイプライン処理する過程でのショートパ
スとナリファイの状態に基づいて各命令における誤演算
予測ビットを書き換え次サイクルにおける当該命令の複
写の判定を行う構成としたことを特徴とする命令プロセ
ッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1278094A JPH07219771A (ja) | 1994-02-04 | 1994-02-04 | 命令プロセッサ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1278094A JPH07219771A (ja) | 1994-02-04 | 1994-02-04 | 命令プロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07219771A true JPH07219771A (ja) | 1995-08-18 |
Family
ID=11814921
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1278094A Pending JPH07219771A (ja) | 1994-02-04 | 1994-02-04 | 命令プロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07219771A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999045463A1 (fr) * | 1998-03-04 | 1999-09-10 | Hitachi, Ltd. | Processeur de donnees |
| US8549263B2 (en) | 2006-03-07 | 2013-10-01 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
-
1994
- 1994-02-04 JP JP1278094A patent/JPH07219771A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999045463A1 (fr) * | 1998-03-04 | 1999-09-10 | Hitachi, Ltd. | Processeur de donnees |
| US6810474B1 (en) * | 1998-03-04 | 2004-10-26 | Hitachi, Ltd. | Information processor |
| US8549263B2 (en) | 2006-03-07 | 2013-10-01 | Intel Corporation | Counter-based memory disambiguation techniques for selectively predicting load/store conflicts |
| US8812823B2 (en) | 2006-03-07 | 2014-08-19 | Intel Corporation | Memory disambiguation techniques using counter ratio to selectively disable load/store conflict prediction |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5421020A (en) | Counter register implementation for speculative execution of branch on count instructions | |
| US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
| JP5209933B2 (ja) | データ処理装置 | |
| JP2010526392A (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
| JP2002522841A (ja) | 異なる待ち時間を伴う命令のスケジューリング | |
| JPH04367936A (ja) | スーパースカラープロセッサ | |
| JP2000020326A (ja) | プロセッサにおけるレジスタ内容の継承装置 | |
| JP2742393B2 (ja) | オペレーションの処理システム及び方法 | |
| JPH06259253A (ja) | データプロセッサおよびその動作方法 | |
| JP3400458B2 (ja) | 情報処理装置 | |
| JPH02227730A (ja) | データ処理システム | |
| US20050102659A1 (en) | Methods and apparatus for setting up hardware loops in a deeply pipelined processor | |
| JP4243271B2 (ja) | データ処理装置およびデータ処理方法 | |
| JPH07219771A (ja) | 命令プロセッサ | |
| JPH08263288A (ja) | パイプライン・プロセッサ内において、誤って予測された実行分岐後にアネックス内のヤング・ビットを回復する方法及び装置 | |
| US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
| JPH1196006A (ja) | 情報処理装置 | |
| EP0212132A1 (en) | Method and digital computer for recovering from errors | |
| JPH06168263A (ja) | ベクトル処理装置 | |
| US20040098564A1 (en) | Status register update logic optimization | |
| JP2783285B2 (ja) | 情報処理装置 | |
| JP2894438B2 (ja) | パイプライン処理装置 | |
| JPH06131180A (ja) | 命令処理方式および命令処理装置 | |
| JP2819733B2 (ja) | 情報処理装置 | |
| JP2503223B2 (ja) | 先行制御方式 |