JPH0619709A - パイプラインプロセッサを有するコンピュータシステム - Google Patents
パイプラインプロセッサを有するコンピュータシステムInfo
- Publication number
- JPH0619709A JPH0619709A JP5122101A JP12210193A JPH0619709A JP H0619709 A JPH0619709 A JP H0619709A JP 5122101 A JP5122101 A JP 5122101A JP 12210193 A JP12210193 A JP 12210193A JP H0619709 A JPH0619709 A JP H0619709A
- Authority
- JP
- Japan
- Prior art keywords
- instructions
- instruction
- exception
- execution
- pipeline
- 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)
- Retry When Errors Occur (AREA)
Abstract
(57)【要約】
【目的】 多重命令を同時にフェッチ、デコードおよび
実行することのできるプロセッサ用の正確な例外メカニ
ズムを提供すること。 【構成】 命令のグループからの結果を同時にフェッ
チ、デコード、実行および書き戻すことが可能なパイプ
ラインプロセッサは、例外が何時でも発生する。例外が
起こると、これによって「ハードブレイク」が形成され
る。この例外が起こる前に完了したすべての命令を用い
て、マシーンの状態を更新する。しかし、この例外が起
こる前に完了しなかったすべての命令を用いて、マシー
ンの状態を更新出来ない。この命令を、この例外状態が
終了してしまった後で、可能ならば再び実行する。これ
ら例外を位置的に順位付けすることによって、次に続く
例外の優先レベルに拘らず、最初の例外は、ハードブレ
イクを起こす例外となる。
実行することのできるプロセッサ用の正確な例外メカニ
ズムを提供すること。 【構成】 命令のグループからの結果を同時にフェッ
チ、デコード、実行および書き戻すことが可能なパイプ
ラインプロセッサは、例外が何時でも発生する。例外が
起こると、これによって「ハードブレイク」が形成され
る。この例外が起こる前に完了したすべての命令を用い
て、マシーンの状態を更新する。しかし、この例外が起
こる前に完了しなかったすべての命令を用いて、マシー
ンの状態を更新出来ない。この命令を、この例外状態が
終了してしまった後で、可能ならば再び実行する。これ
ら例外を位置的に順位付けすることによって、次に続く
例外の優先レベルに拘らず、最初の例外は、ハードブレ
イクを起こす例外となる。
Description
【0001】
【産業上の利用分野】本発明はコンピュータシステム分
野に関し、特にパイプラインプロセッサを有するコンピ
ュータシステムに関するものである。また、本発明は、
パイプラインプロセッサに関し、このプロセッサにおい
てマルチプル命令をグループ分けし、同時にこれら命令
を発生し、更にこれら命令を実行する場合に発生する例
外を処理することに関する。
野に関し、特にパイプラインプロセッサを有するコンピ
ュータシステムに関するものである。また、本発明は、
パイプラインプロセッサに関し、このプロセッサにおい
てマルチプル命令をグループ分けし、同時にこれら命令
を発生し、更にこれら命令を実行する場合に発生する例
外を処理することに関する。
【0002】
【従来の技術】所定のコンピュータプログラムに必要な
実行時間は、以下の3つの要素の積となる。即ち、この
プログラムのダイナミックアセンブリ言語命令の計数、
命令当たりのサイクル数、およびプロセッサの基本クロ
ックレートである。この第1の要素は、所定のプログラ
ムに対するダイナミック命令計数の合計値を減少させる
コンパイラ技術によって決定される。最後の要素は、高
速トランジスタ相互間に低いキャパシタンスを形成する
集積回路製造技術における速度の限界値によって決定さ
れる。また、第2の要素は、プロセッサのアーキテクチ
ュアによって決定され、特に、本発明の目的となる、命
令の発行および実行のためのアーキテクチュアによって
決定される。
実行時間は、以下の3つの要素の積となる。即ち、この
プログラムのダイナミックアセンブリ言語命令の計数、
命令当たりのサイクル数、およびプロセッサの基本クロ
ックレートである。この第1の要素は、所定のプログラ
ムに対するダイナミック命令計数の合計値を減少させる
コンパイラ技術によって決定される。最後の要素は、高
速トランジスタ相互間に低いキャパシタンスを形成する
集積回路製造技術における速度の限界値によって決定さ
れる。また、第2の要素は、プロセッサのアーキテクチ
ュアによって決定され、特に、本発明の目的となる、命
令の発行および実行のためのアーキテクチュアによって
決定される。
【0003】今日において、実行性能を向上させるため
に、多くのコンピュータシステムはパイプラインプロセ
ッサを利用することを提案している。このパイプライン
処理は、プロセッサインプリメンテーション技術であ
り、この結果、マルチプル命令が重複して同時に実行さ
れる。また、このパイプライン処理によってプロセッサ
による命令実行のスループットが増大する。即ち、追加
されたパイプラインコントロールのために個々の命令の
実行時間が僅かに増加するにも拘らず、パイプラインか
ら出る命令の割合いが増大することである。パイプライ
ンプロセッサは、マルチステージを有するアッセンブリ
ラインに類似しており、このラインの各パイプステージ
は、実行すべき命令の一部を実行する。一般的に、この
パイプラインを以下の6個のステージに分解することが
できる。即ち、命令のフェッチ、命令のデコード、デー
タメモリアドレスの発生、現存するオペランドのフェッ
チ、命令の実行および結果の書込みステージである。多
重命令は、パイプステージを介して重複形態で移動され
る。
に、多くのコンピュータシステムはパイプラインプロセ
ッサを利用することを提案している。このパイプライン
処理は、プロセッサインプリメンテーション技術であ
り、この結果、マルチプル命令が重複して同時に実行さ
れる。また、このパイプライン処理によってプロセッサ
による命令実行のスループットが増大する。即ち、追加
されたパイプラインコントロールのために個々の命令の
実行時間が僅かに増加するにも拘らず、パイプラインか
ら出る命令の割合いが増大することである。パイプライ
ンプロセッサは、マルチステージを有するアッセンブリ
ラインに類似しており、このラインの各パイプステージ
は、実行すべき命令の一部を実行する。一般的に、この
パイプラインを以下の6個のステージに分解することが
できる。即ち、命令のフェッチ、命令のデコード、デー
タメモリアドレスの発生、現存するオペランドのフェッ
チ、命令の実行および結果の書込みステージである。多
重命令は、パイプステージを介して重複形態で移動され
る。
【0004】従来より、すべてのパイプステージを同時
に処理および準備する必要がある。従って、マシーンサ
イクル、即ち、命令を1ステップパイプラインで下降さ
せるのに必要な時間、その結果として、パイプラインプ
ロセッサのスループットは、最も遅いパイプステージで
決定され、制限されていた。高速のパイプステージを利
用するという明らかなアプローチは別として、多くの近
代的なパイプラインプロセッサは、自己のペースで独自
に処理する機能単位が許容できるように設計されてい
る。
に処理および準備する必要がある。従って、マシーンサ
イクル、即ち、命令を1ステップパイプラインで下降さ
せるのに必要な時間、その結果として、パイプラインプ
ロセッサのスループットは、最も遅いパイプステージで
決定され、制限されていた。高速のパイプステージを利
用するという明らかなアプローチは別として、多くの近
代的なパイプラインプロセッサは、自己のペースで独自
に処理する機能単位が許容できるように設計されてい
る。
【0005】例外は、プロセッサにおいて、何時でも発
生する。この例外が発生しそうな要因として多くのもの
がある。例外は特定の命令(例えば、0で割算するこ
と)によるものであり、また現在実行しているプログラ
ムに対して、全体として非同期(例えば、入/出力デバ
イス動作からの中断)となることによって起こるもので
ある。命令内で例外条件を、マシーンの臨界タイミング
パス上で時々、検出することが出来る。これによって、
クロックサイクルタイムならびに性能に対して悪影響を
与えることがある。
生する。この例外が発生しそうな要因として多くのもの
がある。例外は特定の命令(例えば、0で割算するこ
と)によるものであり、また現在実行しているプログラ
ムに対して、全体として非同期(例えば、入/出力デバ
イス動作からの中断)となることによって起こるもので
ある。命令内で例外条件を、マシーンの臨界タイミング
パス上で時々、検出することが出来る。これによって、
クロックサイクルタイムならびに性能に対して悪影響を
与えることがある。
【0006】更に、例外をパイプラインプロセッサ中で
取扱うことは困難なことである。その理由は、複数の命
令がオーバーラップすることによって、1つの命令によ
ってマシーンの性能を安全に変更できるかどうかを認識
することは更に難しいためである。パイプラインマシー
ンにおいて、命令を1ピース単位で処理実行している
が、所定数のクロックサイクルで処理している訳ではな
い。例外が現れる時間まで、数個の他の命令を数ステー
ジで実行中である。
取扱うことは困難なことである。その理由は、複数の命
令がオーバーラップすることによって、1つの命令によ
ってマシーンの性能を安全に変更できるかどうかを認識
することは更に難しいためである。パイプラインマシー
ンにおいて、命令を1ピース単位で処理実行している
が、所定数のクロックサイクルで処理している訳ではな
い。例外が現れる時間まで、数個の他の命令を数ステー
ジで実行中である。
【0007】次に、従来の1スカラープロセッサパイプ
ラインで、例外を処理する動作について考察する。これ
らの例外はあらゆるプロセッサパイプラインステージに
おいて何れの命令に対しても存在する。マルチプル例外
ソースは所定の命令に対して現れるものである。また、
これらマルチプル例外ソースは、命令の異なったステー
ジで異なった命令に現れる。また、これら例外は、種々
の命令で存在することが可能である。これら例外は、パ
イプラインに入った命令に現れるが、ブランチ(分岐)
の廃止や、ブランチの誤った予測や、プロセッサパイプ
における後のステージで先行する例外ソースによってつ
ぶされる。更にまた、1つの優先レベルを有する例外が
プロセッサパイプライン中の1ステージで起こり、一
方、異なった優先レベルを有する例外が、後のパイプラ
インステージで起こる。
ラインで、例外を処理する動作について考察する。これ
らの例外はあらゆるプロセッサパイプラインステージに
おいて何れの命令に対しても存在する。マルチプル例外
ソースは所定の命令に対して現れるものである。また、
これらマルチプル例外ソースは、命令の異なったステー
ジで異なった命令に現れる。また、これら例外は、種々
の命令で存在することが可能である。これら例外は、パ
イプラインに入った命令に現れるが、ブランチ(分岐)
の廃止や、ブランチの誤った予測や、プロセッサパイプ
における後のステージで先行する例外ソースによってつ
ぶされる。更にまた、1つの優先レベルを有する例外が
プロセッサパイプライン中の1ステージで起こり、一
方、異なった優先レベルを有する例外が、後のパイプラ
インステージで起こる。
【0008】正確な例外は2つの特性を有している。第
1は、これらの例外が命令間で発生する必要があること
であり、第2は、命令が再スタート可能なものである必
要がある。メカニズム対処用の正確な例外は、従来の1
スカラープロセッサパイプラインに対して存在してお
り、これらは周知なものである。これらメカニズム対処
用の正確な例外については、以下の文献に記載されてい
る。IEEEコンピュータ、1982年5月、J.E. Smithおよび
A.R. Plszkun著の「Implementing Precise Interrupt o
n Pipelined Processors」。
1は、これらの例外が命令間で発生する必要があること
であり、第2は、命令が再スタート可能なものである必
要がある。メカニズム対処用の正確な例外は、従来の1
スカラープロセッサパイプラインに対して存在してお
り、これらは周知なものである。これらメカニズム対処
用の正確な例外については、以下の文献に記載されてい
る。IEEEコンピュータ、1982年5月、J.E. Smithおよび
A.R. Plszkun著の「Implementing Precise Interrupt o
n Pipelined Processors」。
【0009】従来より命令はその長さが変化できるもの
であり、1スカラープロセッサのように一度にパイプラ
イン中にフェッチされると共に、ディスパッチされるよ
うになっていた。メモリの比較的高いコストのために、
メモリ中の命令の効果的な圧縮が奨励されるので、これ
ら命令の長さが変化できるようになっていた。このた
め、命令デコーディングステージには沢山の高価なハー
ドウェアを必要としていた。また、最初の命令がデコー
ドされるまで、次の命令の開始バイトポジションが決定
出来なかったので命令を順次デコードしていた。更にま
た、各命令はマルチクロックサイクルを利用してデコー
ディングしていた。
であり、1スカラープロセッサのように一度にパイプラ
イン中にフェッチされると共に、ディスパッチされるよ
うになっていた。メモリの比較的高いコストのために、
メモリ中の命令の効果的な圧縮が奨励されるので、これ
ら命令の長さが変化できるようになっていた。このた
め、命令デコーディングステージには沢山の高価なハー
ドウェアを必要としていた。また、最初の命令がデコー
ドされるまで、次の命令の開始バイトポジションが決定
出来なかったので命令を順次デコードしていた。更にま
た、各命令はマルチクロックサイクルを利用してデコー
ディングしていた。
【0010】しかし乍ら、メモリのコストは比較的安価
なものになると共に、多くの最近のパイプラインプロセ
ッサ、特に、命令圧縮型パイプラインは、現在、固定長
の命令を提供するようになってきた。このため、命令デ
コーディングステージとして、最早、沢山の高価なハー
ドウェアを必要としなくなった。多数の命令を同時にデ
コード(複号)することができる。これは、各命令の開
始位置が決定できるからである。更にまた、これら命令
を1クロックサイクル内に、十分なリソースでデコード
することができる。
なものになると共に、多くの最近のパイプラインプロセ
ッサ、特に、命令圧縮型パイプラインは、現在、固定長
の命令を提供するようになってきた。このため、命令デ
コーディングステージとして、最早、沢山の高価なハー
ドウェアを必要としなくなった。多数の命令を同時にデ
コード(複号)することができる。これは、各命令の開
始位置が決定できるからである。更にまた、これら命令
を1クロックサイクル内に、十分なリソースでデコード
することができる。
【0011】従って、固定長の命令によって実行スピー
ドの増大、その結果として、パイプラインプロセッサの
スループットを増大させるための新しい機会が与えられ
るようになった。この結果として、独立したファンクシ
ョンユニットに対して多重命令を1クロックサイクル内
に、フェッチしたり、デコードしたり、更に発生するこ
とが可能なスーパースカラープロセッサが所望されるよ
うになる。更に、マルチ命令が、中心集中型または非中
心集中型同期化のいずれかに対して、最小のハードウェ
アで発生できることが特に所望されている。
ドの増大、その結果として、パイプラインプロセッサの
スループットを増大させるための新しい機会が与えられ
るようになった。この結果として、独立したファンクシ
ョンユニットに対して多重命令を1クロックサイクル内
に、フェッチしたり、デコードしたり、更に発生するこ
とが可能なスーパースカラープロセッサが所望されるよ
うになる。更に、マルチ命令が、中心集中型または非中
心集中型同期化のいずれかに対して、最小のハードウェ
アで発生できることが特に所望されている。
【0012】多重命令を同時に、フェッチ、デコードお
よび発生でき、これによって実行スピードならびにパイ
プラインプロセッサのスループットを増大できるパイプ
ライン式スーパースカラープロセッサが、出願中の米国
特許第 号に記載されている。この出願中の米国
特許出願の名称は「多重命令のグループ化、グループ化
命令を同時に発生およびこれらグループ化命令をパイプ
ラインプロセッサで実行する方法および装置」であり、
1992年 月 日に出願されたもので、この内容を本願で
は参照している。
よび発生でき、これによって実行スピードならびにパイ
プラインプロセッサのスループットを増大できるパイプ
ライン式スーパースカラープロセッサが、出願中の米国
特許第 号に記載されている。この出願中の米国
特許出願の名称は「多重命令のグループ化、グループ化
命令を同時に発生およびこれらグループ化命令をパイプ
ラインプロセッサで実行する方法および装置」であり、
1992年 月 日に出願されたもので、この内容を本願で
は参照している。
【0013】上述したように、上記米国出願明細書に
は、多重命令をグループ化し、これら命令を同時に発生
させると共に、これら命令をパイプラインプロセッサで
実行するための方法および装置が記載されている。命令
キュー(待ち行列)および命令コントロールユニットが
パイプラインプロセッサに設けられており、このプロセ
ッサによって、1クロックサイクル当たりm個までの命
令を、オーバーラップした実行のためにグループ化およ
び発行を行っている。更にまた、このパイプラインプロ
セッサには、整数ユニットおよび浮動小数点ユニットが
設けられ、これらユニットによってn1とn2までの整数
と、浮動小数点の結果が各クロックサイクル毎に発生で
きる。ここでn1とn2とは、クロックサイクル毎に発生さ
れたm個の命令を支持し、命令キューおよび命令コント
ロールユニットを実現できるようになるのに十分な大き
さである。更にまた、このプロセッサのパイプラインス
テージを、初期の浮動小数点パイプラインステージが後
の整数パイプラインステージにオーバーラップするよう
に整数パイプラインステージと浮動小数点パイプライン
ステージに分割する。
は、多重命令をグループ化し、これら命令を同時に発生
させると共に、これら命令をパイプラインプロセッサで
実行するための方法および装置が記載されている。命令
キュー(待ち行列)および命令コントロールユニットが
パイプラインプロセッサに設けられており、このプロセ
ッサによって、1クロックサイクル当たりm個までの命
令を、オーバーラップした実行のためにグループ化およ
び発行を行っている。更にまた、このパイプラインプロ
セッサには、整数ユニットおよび浮動小数点ユニットが
設けられ、これらユニットによってn1とn2までの整数
と、浮動小数点の結果が各クロックサイクル毎に発生で
きる。ここでn1とn2とは、クロックサイクル毎に発生さ
れたm個の命令を支持し、命令キューおよび命令コント
ロールユニットを実現できるようになるのに十分な大き
さである。更にまた、このプロセッサのパイプラインス
テージを、初期の浮動小数点パイプラインステージが後
の整数パイプラインステージにオーバーラップするよう
に整数パイプラインステージと浮動小数点パイプライン
ステージに分割する。
【0014】多重命令を同時にフェッチ、デコードおよ
び実行することが可能なパイプラインプロセッサでは、
これら命令の各々が21個までの例外をトリガできる。待
ち行列における3つの命令グループは、47個までの例外
が生じる。更に、これら命令の他に1個またはそれ以上
の例外が何時でも発生できる。例外が発生すると、1つ
またはそれ以上の命令は、書き戻され、マシーンの状態
を安全に更新できる有効な結果を有するようになる。他
方、1つまたはそれ以上の命令は、マシーンの状態を更
新することが許可されていない有効な結果を有すること
もできる。
び実行することが可能なパイプラインプロセッサでは、
これら命令の各々が21個までの例外をトリガできる。待
ち行列における3つの命令グループは、47個までの例外
が生じる。更に、これら命令の他に1個またはそれ以上
の例外が何時でも発生できる。例外が発生すると、1つ
またはそれ以上の命令は、書き戻され、マシーンの状態
を安全に更新できる有効な結果を有するようになる。他
方、1つまたはそれ以上の命令は、マシーンの状態を更
新することが許可されていない有効な結果を有すること
もできる。
【0015】パイプライン式のスカラープロセッサを設
計する場合に、パイプラインをグループとして伝送され
る命令を選択する必要がある。1つのグループにおける
1個またはそれ以上の命令に対して例外が起ると、すべ
ての命令の結果を単に無視することができる。次に、可
能であれば、このグループ各命令を、この例外の原因と
なった条件が無くなった後で、再動作するようにする。
しかし乍ら、このようなアプローチは不十分なものであ
る。その理由としては、グループ内の僅か1つの命令に
例外が生じても、このグループ内のすべての命令を無効
にするようになるからである。このグループの他の命令
は有効な結果を生じている。グループ実行の行き詰まり
を避けるために十分な注意を払う必要がある。
計する場合に、パイプラインをグループとして伝送され
る命令を選択する必要がある。1つのグループにおける
1個またはそれ以上の命令に対して例外が起ると、すべ
ての命令の結果を単に無視することができる。次に、可
能であれば、このグループ各命令を、この例外の原因と
なった条件が無くなった後で、再動作するようにする。
しかし乍ら、このようなアプローチは不十分なものであ
る。その理由としては、グループ内の僅か1つの命令に
例外が生じても、このグループ内のすべての命令を無効
にするようになるからである。このグループの他の命令
は有効な結果を生じている。グループ実行の行き詰まり
を避けるために十分な注意を払う必要がある。
【0016】更に有効な設計としては、グループ内の命
令のあらゆる依存性を排除するグループ化のルールを実
行することである。これらルールの内の1つは、グルー
プ内の命令が、このグループの他の命令の入力として、
カスケード(縦列)状態で利用する結果とならないよう
にするルールである。従って、例えば、例外のために命
令が失敗すると、この例外によって影響を受けなかった
グループの他の命令の結果を安全に利用して、マシーン
の状態を更新すると共に、これを後で再動作させる必要
がなくなる。このプロセスは、上述した1つのグループ
内のすべての命令を無効にするものに比べて、より有効
なものであるが、このプロセスによってグループ内に設
置できる命令の数量およびタイプが制限されてしまう。
令のあらゆる依存性を排除するグループ化のルールを実
行することである。これらルールの内の1つは、グルー
プ内の命令が、このグループの他の命令の入力として、
カスケード(縦列)状態で利用する結果とならないよう
にするルールである。従って、例えば、例外のために命
令が失敗すると、この例外によって影響を受けなかった
グループの他の命令の結果を安全に利用して、マシーン
の状態を更新すると共に、これを後で再動作させる必要
がなくなる。このプロセスは、上述した1つのグループ
内のすべての命令を無効にするものに比べて、より有効
なものであるが、このプロセスによってグループ内に設
置できる命令の数量およびタイプが制限されてしまう。
【0017】
【発明が解決しようとする課題】従って、本発明の目的
は、多重命令を同時にフェッチ、デコードおよび実行す
ることのできるプロセッサ用の正確な例外メカニズムを
提供することである。更にまた、本発明の他の目的は、
有効な結果を有するすべての命令を正確に反映するマシ
ーンの状態を更新し、例外のためにその結果が無効とな
るような命令を除外する(問題の命令の前か、その時
に)例外メカニズムを提供することである。また、本発
明の他の目的は、グループ内の命令をカスケード状態に
することができる例外メカニズムを提供することであ
る。すなわち、1つの命令の結果を、このグループ内の
少なくとも他の1つの命令によってその結果を得るため
に利用することができるようになる。
は、多重命令を同時にフェッチ、デコードおよび実行す
ることのできるプロセッサ用の正確な例外メカニズムを
提供することである。更にまた、本発明の他の目的は、
有効な結果を有するすべての命令を正確に反映するマシ
ーンの状態を更新し、例外のためにその結果が無効とな
るような命令を除外する(問題の命令の前か、その時
に)例外メカニズムを提供することである。また、本発
明の他の目的は、グループ内の命令をカスケード状態に
することができる例外メカニズムを提供することであ
る。すなわち、1つの命令の結果を、このグループ内の
少なくとも他の1つの命令によってその結果を得るため
に利用することができるようになる。
【0018】
【課題を解決するための手段】命令のグループからの結
果を同時にフェッチ、デコード、実行および書き戻すこ
とが可能なパイプラインプロセッサでは、例外が何時で
も発生する。また例外が起こった場合、「ハードブレイ
ク」が創作される。この例外が起こる前に完了したすべ
ての命令はマシーンの状態を更新する。しかし乍ら、パ
イプラインの実行ステージ(段階)における命令グルー
プの第1例外の発生前または発生時に、未完了の命令は
すべて、マシーンの状態を更新しないようにすると共
に、例外から回復した後に、可能ならば、順次、再起動
するようにする。
果を同時にフェッチ、デコード、実行および書き戻すこ
とが可能なパイプラインプロセッサでは、例外が何時で
も発生する。また例外が起こった場合、「ハードブレイ
ク」が創作される。この例外が起こる前に完了したすべ
ての命令はマシーンの状態を更新する。しかし乍ら、パ
イプラインの実行ステージ(段階)における命令グルー
プの第1例外の発生前または発生時に、未完了の命令は
すべて、マシーンの状態を更新しないようにすると共
に、例外から回復した後に、可能ならば、順次、再起動
するようにする。
【0019】命令のフェッチ、デコード、または実行中
に、例外が起こった場合に、例外が発生した事実を、パ
イプラインの実行フェーズの終端まで伝えるようにす
る。次に、これら例外を位置的に優先順位付け、グルー
プ内の命令の最初の例外が、このグループ内の後から起
こる例外の絶対順位レベルとは無関係に、前述の「ハー
ドブレイク」引き起こす例外となる。
に、例外が起こった場合に、例外が発生した事実を、パ
イプラインの実行フェーズの終端まで伝えるようにす
る。次に、これら例外を位置的に優先順位付け、グルー
プ内の命令の最初の例外が、このグループ内の後から起
こる例外の絶対順位レベルとは無関係に、前述の「ハー
ドブレイク」引き起こす例外となる。
【0020】典型的なプロセッサによれば、所定のパイ
プラインステージにおけるグループの命令中による1個
以上の命令により同一のレジスタを更新することができ
る。通常、レジスタの内容は書き戻しフェーズ中にグル
ープ内の最後の命令によって演算された値を利用して更
新すべきレジスタを参照して更新される。しかし乍ら、
所定のレジスタを更新する命令グループ中の最後の命令
の発生中、またはそれ以前、および命令グループが特定
のレジスタを更新する初期の命令の発生中、またはそれ
以前において例外が発生した場合には、このグループは
この初期の命令からの結果でレジスタを更新する。
プラインステージにおけるグループの命令中による1個
以上の命令により同一のレジスタを更新することができ
る。通常、レジスタの内容は書き戻しフェーズ中にグル
ープ内の最後の命令によって演算された値を利用して更
新すべきレジスタを参照して更新される。しかし乍ら、
所定のレジスタを更新する命令グループ中の最後の命令
の発生中、またはそれ以前、および命令グループが特定
のレジスタを更新する初期の命令の発生中、またはそれ
以前において例外が発生した場合には、このグループは
この初期の命令からの結果でレジスタを更新する。
【0021】
【実施例】以下図面を参照し乍ら、本発明の一実施例の
例外処理方法および処理装置を詳述する。即ち、これら
例外処理方法および処理装置では、パイプラインプロセ
ッサで多重命令を実行するに当たり、これら命令を同時
にグループ化し、更に同時に発生させた場合に発生する
例外を処理している。また、以下に示した目的の説明に
おいて特別な数値、材料および形状は本発明を理解する
ために与えられたものである。しかし、本発明はこれら
特別な詳細なデータを用いずに実現できることは、当業
者にとって明らかである。例えば他の例において、周知
のシステムが簡易なブロックダイヤグラム形態で図示さ
れており、これは本発明を不必要に不明確に表さないた
めである。
例外処理方法および処理装置を詳述する。即ち、これら
例外処理方法および処理装置では、パイプラインプロセ
ッサで多重命令を実行するに当たり、これら命令を同時
にグループ化し、更に同時に発生させた場合に発生する
例外を処理している。また、以下に示した目的の説明に
おいて特別な数値、材料および形状は本発明を理解する
ために与えられたものである。しかし、本発明はこれら
特別な詳細なデータを用いずに実現できることは、当業
者にとって明らかである。例えば他の例において、周知
のシステムが簡易なブロックダイヤグラム形態で図示さ
れており、これは本発明を不必要に不明確に表さないた
めである。
【0022】図1は本発明の趣旨を包含した典型的なパ
イプラインプロセッサを表す機能ブロック線図である。
図示したパイプラインプロセッサ10は、プログラムカウ
ンタ12、命令キュー(待ち行列)14および命令コントロ
ールユニット16を有している。これらプログラムカウン
タ12、命令キュー14および命令コントロールユニット16
は相互に結合されている。これらユニット12、14、16は
協動して、クロックサイクル毎に、最大で3つの命令を
同時に発行する。
イプラインプロセッサを表す機能ブロック線図である。
図示したパイプラインプロセッサ10は、プログラムカウ
ンタ12、命令キュー(待ち行列)14および命令コントロ
ールユニット16を有している。これらプログラムカウン
タ12、命令キュー14および命令コントロールユニット16
は相互に結合されている。これらユニット12、14、16は
協動して、クロックサイクル毎に、最大で3つの命令を
同時に発行する。
【0023】このプログラムカウンタ12が命令コントロ
ールユニット16と協動する方法を除いて、このプログラ
ムカウンタ12によって、多くのパイプラインプロセッサ
中で見られるプログラムカウンタの広範なカテゴリを表
している。これの基本的な機能および構成は周知であ
り、またこれ以上説明しない。この命令コントロールユ
ニット16の一実施例および整数機能回路20や命令コント
ロールユニット16と協動するの方法については、図7〜
10を参照しながら後に説明する。
ールユニット16と協動する方法を除いて、このプログラ
ムカウンタ12によって、多くのパイプラインプロセッサ
中で見られるプログラムカウンタの広範なカテゴリを表
している。これの基本的な機能および構成は周知であ
り、またこれ以上説明しない。この命令コントロールユ
ニット16の一実施例および整数機能回路20や命令コント
ロールユニット16と協動するの方法については、図7〜
10を参照しながら後に説明する。
【0024】図1に戻って、このパイプラインプロセッ
サ10は、更に、整数単位レジスタファイル18と整数機能
ユニット20とを有する。この整数基準レジスタ18を命令
コントロールユニット16に接続すると共に、整数機能ユ
ニット20にも接続する。これら整数単位レジスタファイ
ル18と整数機能ユニット20とが協動することによって、
最大でもクロックサイクル毎に2つの整数結果を発生す
る。
サ10は、更に、整数単位レジスタファイル18と整数機能
ユニット20とを有する。この整数基準レジスタ18を命令
コントロールユニット16に接続すると共に、整数機能ユ
ニット20にも接続する。これら整数単位レジスタファイ
ル18と整数機能ユニット20とが協動することによって、
最大でもクロックサイクル毎に2つの整数結果を発生す
る。
【0025】整数単位レジスタファイル18には4つの独
立のレジスタポートが設けられている。時間が多重化さ
れれば、これら4つの独立のレジスタポートは、6つの
読取りポートと2つの書込みポートと等価なキャパシテ
ィが得られ、これらは2つのアドレスレジスタの同時読
取りまたは、4つのデータの同時読取り、またはいずれ
か2つのレジスタの同時書込みをサポートするのに十分
なものである。この整数単位レジスタファイル18の読取
り/書込み帯域および、整数単位レジスタファイル18と
整数機能ユニット20とが協動する方法を除いて、この整
数単位レジスタファイル18は、大部分のパイプラインプ
ロセッサで見られるレジスタファイルの広範なカテゴリ
を表している。これの基本的な機能および構成は周知な
ものであり、従って、これ以上詳述しない。この整数機
能ユニット20の一実施例およびこのユニット20が整数単
位レジスタファイル18と協動する方法については、図2
を参照し乍ら、後述する。
立のレジスタポートが設けられている。時間が多重化さ
れれば、これら4つの独立のレジスタポートは、6つの
読取りポートと2つの書込みポートと等価なキャパシテ
ィが得られ、これらは2つのアドレスレジスタの同時読
取りまたは、4つのデータの同時読取り、またはいずれ
か2つのレジスタの同時書込みをサポートするのに十分
なものである。この整数単位レジスタファイル18の読取
り/書込み帯域および、整数単位レジスタファイル18と
整数機能ユニット20とが協動する方法を除いて、この整
数単位レジスタファイル18は、大部分のパイプラインプ
ロセッサで見られるレジスタファイルの広範なカテゴリ
を表している。これの基本的な機能および構成は周知な
ものであり、従って、これ以上詳述しない。この整数機
能ユニット20の一実施例およびこのユニット20が整数単
位レジスタファイル18と協動する方法については、図2
を参照し乍ら、後述する。
【0026】再び、図1に戻って、この代表的なパイプ
ラインプロセッサ10には、浮動小数点命令キュー(待ち
行列)24と、浮動小数点命令コントロールキー26と、浮
動小数点単位命令レジスタファイル28と、浮動小数点機
能ユニット30と、マルチプレクサ32とが更に設けられて
いる。この浮動小数点命令キュー24を命令コントロール
ユニット16と浮動小数点命令コントロールユニット26と
に接続し、次に、これを浮動小数点単位レジスタファイ
ル28に接続する。また、この浮動小数点単位レジスタフ
ァイル28を浮動小数点機能ユニット30とマルチプレクサ
32とに接続する。これらユニットは協動して、クロック
サイクル毎に最大で1つの浮動小数点結果を発生する。
ラインプロセッサ10には、浮動小数点命令キュー(待ち
行列)24と、浮動小数点命令コントロールキー26と、浮
動小数点単位命令レジスタファイル28と、浮動小数点機
能ユニット30と、マルチプレクサ32とが更に設けられて
いる。この浮動小数点命令キュー24を命令コントロール
ユニット16と浮動小数点命令コントロールユニット26と
に接続し、次に、これを浮動小数点単位レジスタファイ
ル28に接続する。また、この浮動小数点単位レジスタフ
ァイル28を浮動小数点機能ユニット30とマルチプレクサ
32とに接続する。これらユニットは協動して、クロック
サイクル毎に最大で1つの浮動小数点結果を発生する。
【0027】上記浮動小数点命令キュー24と命令コント
ロールユニット16とが協動する方法を除いて、これら浮
動小数点命令キュー24、浮動小数点命令コントロールユ
ニット26、浮動小数点単位レジスタファイル28、浮動小
数点ユニット30およびマルチプレクサ32は、多くのパイ
プラインプロセッサ中で見つかるこれらのエレメントの
広範なカテゴリを表している。これらの基本的な機能お
よび構成は周知なものであり、従ってこれ以上詳述しな
い。
ロールユニット16とが協動する方法を除いて、これら浮
動小数点命令キュー24、浮動小数点命令コントロールユ
ニット26、浮動小数点単位レジスタファイル28、浮動小
数点ユニット30およびマルチプレクサ32は、多くのパイ
プラインプロセッサ中で見つかるこれらのエレメントの
広範なカテゴリを表している。これらの基本的な機能お
よび構成は周知なものであり、従ってこれ以上詳述しな
い。
【0028】図1において、このパイプラインプロセッ
サ10に、命令キャッシュ34、データキャッシュ36、共有
メモリマネージメントユニット38、書込みバッファ40お
よびキャッシュコヒーレントバスインターフェイスユニ
ット42が更に設けられている。この命令キャッシュ34
を、プログラムカウンタ12、命令キュー14、共有メモリ
マネージメントユニット36およびキャッシュコヒーレン
トバスインターフェイスユニット42に接続する。データ
キャッシュ36をアドレスアダー22、整数機能ユニット2
0、浮動小数点単位レジスタファイル28、マルチプレク
サ32、共有メモリマネージメントユニット38、書込みバ
ッファ40ならびにキャッシュコヒーレントバスインター
フェイスユニット42に接続する。これら共有メモリマネ
ージメントユニット38と書込みバッファ40とをキャッシ
ュコヒーレントバスインターフェイスユニット42に接続
する。
サ10に、命令キャッシュ34、データキャッシュ36、共有
メモリマネージメントユニット38、書込みバッファ40お
よびキャッシュコヒーレントバスインターフェイスユニ
ット42が更に設けられている。この命令キャッシュ34
を、プログラムカウンタ12、命令キュー14、共有メモリ
マネージメントユニット36およびキャッシュコヒーレン
トバスインターフェイスユニット42に接続する。データ
キャッシュ36をアドレスアダー22、整数機能ユニット2
0、浮動小数点単位レジスタファイル28、マルチプレク
サ32、共有メモリマネージメントユニット38、書込みバ
ッファ40ならびにキャッシュコヒーレントバスインター
フェイスユニット42に接続する。これら共有メモリマネ
ージメントユニット38と書込みバッファ40とをキャッシ
ュコヒーレントバスインターフェイスユニット42に接続
する。
【0029】命令キャッシュ34と命令キュー14とが協動
する方法およびデータキャッシュ36と整数機能ユニット
20とが協動する方法を除いて、これらデータキャッシュ
36、共有メモリマネージメントユニット38、書込みバッ
ファ40、キャッシュコヒーレントバスインターフェイス
ユニット42によって、大部分のパイプラインプロセッサ
で見つかるこれらエレメントの広範なカテゴリを現して
いる。これらの基本的な機能および構造は周知なもの
で、これ以上詳述しない。
する方法およびデータキャッシュ36と整数機能ユニット
20とが協動する方法を除いて、これらデータキャッシュ
36、共有メモリマネージメントユニット38、書込みバッ
ファ40、キャッシュコヒーレントバスインターフェイス
ユニット42によって、大部分のパイプラインプロセッサ
で見つかるこれらエレメントの広範なカテゴリを現して
いる。これらの基本的な機能および構造は周知なもの
で、これ以上詳述しない。
【0030】また、本発明を容易に理解し得るように、
典型的なプロセッサ10を用いて説明した。即ち、このプ
ロセッサ10のプログラムカウンタ12、命令キュー14およ
び命令コントロールユニット16は協動して、1クロック
サイクルに対して、最大で3個の命令を以下の説明に基
づいて、同時に発生していたが、この代わりに、これら
のエレメントが協動して1クロックサイクルに対して最
大でm個の命令を同時に発生することも可能であり、こ
の場合、その他の相補的な設計思想のすべてを調整可能
と仮定している。更にまた、比較的小さな「m」である
数「m」を選択することは、実行における複雑性と、実
行性能ゲイン対命令グループを決定するために必要な時
間における増大性との相殺関係となる。しかし、命令グ
ループを決定するのに必要な時間と実行の複雑性とは、
数値mが増加するように非直線的な方法で増大すると共
に、ある点においては、命令グループを決定するために
必要な時間および/または実行の複雑性は、命令の実行
時間における節約より重要なものとなる。
典型的なプロセッサ10を用いて説明した。即ち、このプ
ロセッサ10のプログラムカウンタ12、命令キュー14およ
び命令コントロールユニット16は協動して、1クロック
サイクルに対して、最大で3個の命令を以下の説明に基
づいて、同時に発生していたが、この代わりに、これら
のエレメントが協動して1クロックサイクルに対して最
大でm個の命令を同時に発生することも可能であり、こ
の場合、その他の相補的な設計思想のすべてを調整可能
と仮定している。更にまた、比較的小さな「m」である
数「m」を選択することは、実行における複雑性と、実
行性能ゲイン対命令グループを決定するために必要な時
間における増大性との相殺関係となる。しかし、命令グ
ループを決定するのに必要な時間と実行の複雑性とは、
数値mが増加するように非直線的な方法で増大すると共
に、ある点においては、命令グループを決定するために
必要な時間および/または実行の複雑性は、命令の実行
時間における節約より重要なものとなる。
【0031】上述したのと同様に、本発明を容易に理解
できるようにするため、この代表的なプロセッサ10によ
って、多くても2つの整数結果と、多くても1つの浮動
小数点結果を各クロック毎に発生させている。また以下
の記載から明らかなように、本発明を他のエレメントを
用いて実現でき、これらエレメントを協動させて多くて
もn1個の整数結果と最大でもn2個の浮動小数点結果とを
各クロックサイクル毎に発生させる。この場合には、他
のすべての相補的な設計思想を変形する必要がある。
できるようにするため、この代表的なプロセッサ10によ
って、多くても2つの整数結果と、多くても1つの浮動
小数点結果を各クロック毎に発生させている。また以下
の記載から明らかなように、本発明を他のエレメントを
用いて実現でき、これらエレメントを協動させて多くて
もn1個の整数結果と最大でもn2個の浮動小数点結果とを
各クロックサイクル毎に発生させる。この場合には、他
のすべての相補的な設計思想を変形する必要がある。
【0032】図2は、図1に示したパイプラインプロセ
ッサの整数機能ユニットの一実施例を示す機能ブロック
図である。この整数機能ユニット20は、アドレスアダー
22、3個のデータアダー44、46、48、シフタ50および3
個のマルチプレクサ52、54、56を有している。これら回
路エレメントが協動して最大でも2個の整数結果を各ク
ロックサイクル毎に発生する。
ッサの整数機能ユニットの一実施例を示す機能ブロック
図である。この整数機能ユニット20は、アドレスアダー
22、3個のデータアダー44、46、48、シフタ50および3
個のマルチプレクサ52、54、56を有している。これら回
路エレメントが協動して最大でも2個の整数結果を各ク
ロックサイクル毎に発生する。
【0033】アドレスアダー22を第2のマルチプレクサ
54、データキャッシュ36、共有メモリマネージメントユ
ニット38に接続する。次に、この第2マルチプレクサ54
を整数単位レジスタファイル18に接続する。第1、第2
データアダー44、46およびシフタ50を第1、第2マルチ
プレクサ52、54に接続する。この第1マルチプレクサを
整数単位レジスタファイル18に接続する。第3データア
ダー48を第2、第3マルチプレクサ54、56に接続する。
この第3マルチプレクサ56をデータキャッシュ36に接続
する。
54、データキャッシュ36、共有メモリマネージメントユ
ニット38に接続する。次に、この第2マルチプレクサ54
を整数単位レジスタファイル18に接続する。第1、第2
データアダー44、46およびシフタ50を第1、第2マルチ
プレクサ52、54に接続する。この第1マルチプレクサを
整数単位レジスタファイル18に接続する。第3データア
ダー48を第2、第3マルチプレクサ54、56に接続する。
この第3マルチプレクサ56をデータキャッシュ36に接続
する。
【0034】アドレスアダー22は、第2マルチプレクサ
54を経て、整数単位レジスタファイル18からのアドレス
を入力として受信すると共に、アドレスをデータキャッ
シュ36と共有メモリマネージメントユニット38とに出力
する。3つのデータアダー44、46、48およびシフタ50と
が協動して、2つの論理アダーとして機能する。第1デ
ータアダー44は、整数単位レジスタファイル18からのデ
ータを第1マルチプレクサ52を介して入力として受信す
ると共に、第2マルチプレクサ54にデータを出力し、次
に、このデータは選択的に第3データアダー48および/
または第3マルチプレクサ56に供給される。またこのデ
ータを、データキャッシュ36および/または次の命令に
選択的に供給される。第2データアダー46とシフタ50
は、整数単位レジスタファイル18からのデータを受信す
るか、またはデータキャッシュ36からのデータを受信す
るか、更に、またはデータを第1マルチプレクサ52を介
して入力とし供給し、更に、データを第2マルチプレク
サ54に出力する。次に、このデータは、第3データアダ
ー48および/または第3マルチプレクサ56へ選択的に供
給される。同様、これらデータをデータキャッシュ36お
よび/または次の命令用に選択的に供給する。
54を経て、整数単位レジスタファイル18からのアドレス
を入力として受信すると共に、アドレスをデータキャッ
シュ36と共有メモリマネージメントユニット38とに出力
する。3つのデータアダー44、46、48およびシフタ50と
が協動して、2つの論理アダーとして機能する。第1デ
ータアダー44は、整数単位レジスタファイル18からのデ
ータを第1マルチプレクサ52を介して入力として受信す
ると共に、第2マルチプレクサ54にデータを出力し、次
に、このデータは選択的に第3データアダー48および/
または第3マルチプレクサ56に供給される。またこのデ
ータを、データキャッシュ36および/または次の命令に
選択的に供給される。第2データアダー46とシフタ50
は、整数単位レジスタファイル18からのデータを受信す
るか、またはデータキャッシュ36からのデータを受信す
るか、更に、またはデータを第1マルチプレクサ52を介
して入力とし供給し、更に、データを第2マルチプレク
サ54に出力する。次に、このデータは、第3データアダ
ー48および/または第3マルチプレクサ56へ選択的に供
給される。同様、これらデータをデータキャッシュ36お
よび/または次の命令用に選択的に供給する。
【0035】アダー22、44〜48およびシフタ50は、1ク
ロックサイクル毎に、4個までのアドレス/データ入力
を受信できる。これらアダー22、44〜48およびシフタ50
は1クロックサイクルの半分だけでオペレーションを完
了できる。
ロックサイクル毎に、4個までのアドレス/データ入力
を受信できる。これらアダー22、44〜48およびシフタ50
は1クロックサイクルの半分だけでオペレーションを完
了できる。
【0036】図3には、本発明のパイプラインを介して
セットされる命令のフロー(流れ)に関して高いレベル
で記載されている。ハイレベルにおいて、このパイプラ
イン中の各命令は、フェッチ、デコード、実行およびラ
イトバック(書き戻し)ステージを経て進行する。この
図3は、パイプラインプロセスを容易に理解するための
概念図である。また、図5は本発明のパイプラインステ
ージの一実施例を示すブロックダイヤグラムであり、こ
こでは図3の各フェーズをサブフェーズに分割してい
る。
セットされる命令のフロー(流れ)に関して高いレベル
で記載されている。ハイレベルにおいて、このパイプラ
イン中の各命令は、フェッチ、デコード、実行およびラ
イトバック(書き戻し)ステージを経て進行する。この
図3は、パイプラインプロセスを容易に理解するための
概念図である。また、図5は本発明のパイプラインステ
ージの一実施例を示すブロックダイヤグラムであり、こ
こでは図3の各フェーズをサブフェーズに分割してい
る。
【0037】図3において、記号「T1」〜「T7」は時間
を表し、記号「G0」〜「G3」は命令のグループを表す。
本発明の一実施例では、これら命令の各グループは、最
大でも3つの命令を有している。時間T1において、グル
ープG0中の命令はパイプラインに入ると共に、フェッチ
される。
を表し、記号「G0」〜「G3」は命令のグループを表す。
本発明の一実施例では、これら命令の各グループは、最
大でも3つの命令を有している。時間T1において、グル
ープG0中の命令はパイプラインに入ると共に、フェッチ
される。
【0038】時刻T2において、グループG0からの命令が
フェッチされており、デコード(複号)される状態にな
っている。同時に、グループG1からの命令がパイプライ
ンに入り、フェッチされる。グループG0の命令がデコー
ドされてしまった後で、これら命令は時刻T3でパイプラ
インの実行フェーズに入る。フェッチされているグルー
プG1からの命令が時刻T3でパイプラインのデコードフェ
ーズに入る。更に、G2からの命令が時刻T3でパイプライ
ンに入り、フェッチされる。グループG0の命令からの結
果が有効であり、且つ、例外が全く起こっていない場合
には、時刻T4において、これら命令の結果が書き戻され
る。これによりマシーンの状態を更新する。グループG1
からの命令が実行フェーズに入ると同時に、グループG2
からの命令がデコードフェーズに入ると共に、グループ
G3からの命令が、これら命令がパイプライン中に入るよ
うにフェッチされる。
フェッチされており、デコード(複号)される状態にな
っている。同時に、グループG1からの命令がパイプライ
ンに入り、フェッチされる。グループG0の命令がデコー
ドされてしまった後で、これら命令は時刻T3でパイプラ
インの実行フェーズに入る。フェッチされているグルー
プG1からの命令が時刻T3でパイプラインのデコードフェ
ーズに入る。更に、G2からの命令が時刻T3でパイプライ
ンに入り、フェッチされる。グループG0の命令からの結
果が有効であり、且つ、例外が全く起こっていない場合
には、時刻T4において、これら命令の結果が書き戻され
る。これによりマシーンの状態を更新する。グループG1
からの命令が実行フェーズに入ると同時に、グループG2
からの命令がデコードフェーズに入ると共に、グループ
G3からの命令が、これら命令がパイプライン中に入るよ
うにフェッチされる。
【0039】時刻T5において、グループG0中の命令がパ
イプラインを離れている。グループG1〜G3の命令はパイ
プラインを介して進行し続ける。これは、グループG3の
命令が時刻T7で書き戻されると共に、このパイプライン
が空になるまで行われる。勿論、実際には、4グループ
以上の命令が順次パイプライン中に入力される。パイプ
ラインの各フェーズにおいて命令のグループが存在する
ことが望ましい。従って、第1グループを書き戻し乍
ら、第2グループを実行し、第3グループをデコード
し、更に、第4グループをフェッチする。そのため、時
刻T4のパイプラインの状態は、パイプラインの通常の状
態を更に表すものである。
イプラインを離れている。グループG1〜G3の命令はパイ
プラインを介して進行し続ける。これは、グループG3の
命令が時刻T7で書き戻されると共に、このパイプライン
が空になるまで行われる。勿論、実際には、4グループ
以上の命令が順次パイプライン中に入力される。パイプ
ラインの各フェーズにおいて命令のグループが存在する
ことが望ましい。従って、第1グループを書き戻し乍
ら、第2グループを実行し、第3グループをデコード
し、更に、第4グループをフェッチする。そのため、時
刻T4のパイプラインの状態は、パイプラインの通常の状
態を更に表すものである。
【0040】図4には、命令の2つのグループが表示さ
れており、これによってパイプライン式スーパースカラ
ープロセッサ中に発生する例外が起こった時の種々の問
題点を表す。説明しやすくするために、本例では、グル
ープG0には1つの命令のみが包含されている。しかし乍
ら、このグループG0に1つ以上の命令を包含できること
は、当業者にとって明らかである。グループG0の命令は
I0で、この命令によって、整数レジスタファイル18の整
数レジスタの内容3を、ラベル「VALUE1」を有する変数
の値にセットする。
れており、これによってパイプライン式スーパースカラ
ープロセッサ中に発生する例外が起こった時の種々の問
題点を表す。説明しやすくするために、本例では、グル
ープG0には1つの命令のみが包含されている。しかし乍
ら、このグループG0に1つ以上の命令を包含できること
は、当業者にとって明らかである。グループG0の命令は
I0で、この命令によって、整数レジスタファイル18の整
数レジスタの内容3を、ラベル「VALUE1」を有する変数
の値にセットする。
【0041】命令グループG1は3つの命令から構成され
る。これら2つの命令は整数命令であり、残りの1つは
浮動小数点オペレーションである。グループG1の命令I0
は整数加算オペレーションであり、このオペレーション
によって数「1」を整数レジスタ3の内容に加算し、こ
の整数レジスタ3に結果の「3」をストアする。グルー
プG0が適切に完了した場合に、この整数レジスタ3の結
果は、グループG1の命令が実行される前に「VALUE1」の
値にセットされている。従って、グループG1の命令I0の
実行の終わりにおいて、この値VALUE1は、命令I0によっ
て1が加算されRUと共に、新たな値を整数レジスタ3に
設定する。この結果は、VALUE1が1つだけインクレメン
ト(増加)され、整数レジスタ3にストアされる。
る。これら2つの命令は整数命令であり、残りの1つは
浮動小数点オペレーションである。グループG1の命令I0
は整数加算オペレーションであり、このオペレーション
によって数「1」を整数レジスタ3の内容に加算し、こ
の整数レジスタ3に結果の「3」をストアする。グルー
プG0が適切に完了した場合に、この整数レジスタ3の結
果は、グループG1の命令が実行される前に「VALUE1」の
値にセットされている。従って、グループG1の命令I0の
実行の終わりにおいて、この値VALUE1は、命令I0によっ
て1が加算されRUと共に、新たな値を整数レジスタ3に
設定する。この結果は、VALUE1が1つだけインクレメン
ト(増加)され、整数レジスタ3にストアされる。
【0042】グループG1の命令I1は浮動小数点オペレー
ションであり、この特別なケースでは、このオペレーシ
ョンは浮動小数点加算オペレーションであり、ここでは
浮動小数点レジスタf18の内容が浮動小数点レジスタf14
の内容へ加算されると共に、この加算結果がこの浮動小
数点レジスタf18へストアされる。
ションであり、この特別なケースでは、このオペレーシ
ョンは浮動小数点加算オペレーションであり、ここでは
浮動小数点レジスタf18の内容が浮動小数点レジスタf14
の内容へ加算されると共に、この加算結果がこの浮動小
数点レジスタf18へストアされる。
【0043】最後に、グループG1の命令I2はもう1つの
加算命令であり、ここでは整数レジスタ3の内容が1だ
けインクレメントされると共に、整数レジスタ3に再度
ストアされる。グループG1の命令I0の実行の終わりにお
いて、整数レジスタ3の内容には1だけインクレメント
されたVALUE1の値が包含される。従って、命令I2が完了
すると、整数レジスタ3にはVALUE1が収納され、これは
1だけ2回インクレメントされているか、またはVALUE1
に2を加えたものである。従って、命令10、12は、この
命令12用の引数を供給する命令10の結果とカスケード関
係が成立する。
加算命令であり、ここでは整数レジスタ3の内容が1だ
けインクレメントされると共に、整数レジスタ3に再度
ストアされる。グループG1の命令I0の実行の終わりにお
いて、整数レジスタ3の内容には1だけインクレメント
されたVALUE1の値が包含される。従って、命令I2が完了
すると、整数レジスタ3にはVALUE1が収納され、これは
1だけ2回インクレメントされているか、またはVALUE1
に2を加えたものである。従って、命令10、12は、この
命令12用の引数を供給する命令10の結果とカスケード関
係が成立する。
【0044】しかし乍ら、何時でも、例外が起こる可能
性がある。この例外はパイプラインの外側にすることが
できる。例えば、完了を知らせるI/Oデバイスからの
割り込みによって例外を起こすことができる。他方、こ
の例外は、命令をパイプライン中で処理したときにも起
こる。例えば、グループG1の命令I2中に整数レジスタ3
の内容に1を加算することによってオーバーフロー状態
が起こった場合に、このオーバーフロー状態を表す例外
が発生される。
性がある。この例外はパイプラインの外側にすることが
できる。例えば、完了を知らせるI/Oデバイスからの
割り込みによって例外を起こすことができる。他方、こ
の例外は、命令をパイプライン中で処理したときにも起
こる。例えば、グループG1の命令I2中に整数レジスタ3
の内容に1を加算することによってオーバーフロー状態
が起こった場合に、このオーバーフロー状態を表す例外
が発生される。
【0045】例外の発生源が多く存在している。これら
例外は特定の命令の結果として生じるか、または現在実
行しているプログラムに対する全体的な非同期で生じ
る。共通の例外発生源の例として以下のものが存在す
る。
例外は特定の命令の結果として生じるか、または現在実
行しているプログラムに対する全体的な非同期で生じ
る。共通の例外発生源の例として以下のものが存在す
る。
【0046】1) 命令メモリフェッチ中の仮想メモリ保
護(例えば、ページがディスク上にあるためにページが
メインメモリ中に存在しない)、アドレスブレークポイ
ント、またはデータ保全(即ち、パリティ)例外。 2) ユーザモードから特例の例外を実行する場合。 3) 不特定の命令エンコーディング処理の場合(即ち、
違法な命令)。 4) 浮動小数点ユニット(FPU)がプログラムステータス
レジスタ(PSR)を介してディスエーブル(不作動)され
た場合に、浮動小数点オペレート命令を発生する場合。
護(例えば、ページがディスク上にあるためにページが
メインメモリ中に存在しない)、アドレスブレークポイ
ント、またはデータ保全(即ち、パリティ)例外。 2) ユーザモードから特例の例外を実行する場合。 3) 不特定の命令エンコーディング処理の場合(即ち、
違法な命令)。 4) 浮動小数点ユニット(FPU)がプログラムステータス
レジスタ(PSR)を介してディスエーブル(不作動)され
た場合に、浮動小数点オペレート命令を発生する場合。
【0047】5) そのアドレスが、要求されたオペラン
ドサイズの「自然」の境界に一致していない場合のデー
タメモリアクセス。 6) FPU内の浮動小数点演算例外(即ち、IEEE 754にお
ける不正確な結果)。 7) データメモリ参照動作中の仮想メモリ保護(例え
ば、ページが書込み不可能)、アドレスブレークポイン
ト、またはデータ保全例外(即ち、負荷または保留され
たストアの誤ったデータパリティ)。
ドサイズの「自然」の境界に一致していない場合のデー
タメモリアクセス。 6) FPU内の浮動小数点演算例外(即ち、IEEE 754にお
ける不正確な結果)。 7) データメモリ参照動作中の仮想メモリ保護(例え
ば、ページが書込み不可能)、アドレスブレークポイン
ト、またはデータ保全例外(即ち、負荷または保留され
たストアの誤ったデータパリティ)。
【0048】8) 整数演算例外(例えば、ゼロによる割
算、演算上のオーバーフロー、タグが付されたオペラン
ドデータタイプの例外)。 9) ベクトル処理されたトラップ命令を介してシステム
サービスを動作させるためのユーザリクエスト。 10) 終了する命令またはサイクルカウンタで命令の実行
をトレースする割込み。 11) 命令またはデータアドレスブレークポイント用の割
り込み。 12) I/Oデバイス完了の割り込み。 13) リモートデバッカまたはハードウェアの故障による
インターラプト。 14) エミュレーションリクエスト(1992年 月 日出願
の米国特許明細書第号参照)。
算、演算上のオーバーフロー、タグが付されたオペラン
ドデータタイプの例外)。 9) ベクトル処理されたトラップ命令を介してシステム
サービスを動作させるためのユーザリクエスト。 10) 終了する命令またはサイクルカウンタで命令の実行
をトレースする割込み。 11) 命令またはデータアドレスブレークポイント用の割
り込み。 12) I/Oデバイス完了の割り込み。 13) リモートデバッカまたはハードウェアの故障による
インターラプト。 14) エミュレーションリクエスト(1992年 月 日出願
の米国特許明細書第号参照)。
【0049】正確な例外(precise exceptions)は2つの
特性を有している。第1の特性としては、これら例外は
命令の間で発生する必要があり、第2特性としては、こ
れら命令は再スタート可能とする必要がある。従って、
グループG1には3つの位置があり、ここでは正確な例外
が起こり得る。正確な例外がグループG1内の命令I0、I1
またはI2で発生することが可能となる。
特性を有している。第1の特性としては、これら例外は
命令の間で発生する必要があり、第2特性としては、こ
れら命令は再スタート可能とする必要がある。従って、
グループG1には3つの位置があり、ここでは正確な例外
が起こり得る。正確な例外がグループG1内の命令I0、I1
またはI2で発生することが可能となる。
【0050】図4の命令の例を利用して、例外が命令I0
で起こった場合に、整数レジスタ3にストアされた値
は、これに1を加えた値を有してはならない。従って、
正確な例外処理器によってこの整数レジスタ3の値を更
新せず、グループG0の命令I0中にセットされたVALUE1を
残しておく。この例外の原因によって、グループG1のす
べての命令(命令I0を含む)を後で実行することができ
る。
で起こった場合に、整数レジスタ3にストアされた値
は、これに1を加えた値を有してはならない。従って、
正確な例外処理器によってこの整数レジスタ3の値を更
新せず、グループG0の命令I0中にセットされたVALUE1を
残しておく。この例外の原因によって、グループG1のす
べての命令(命令I0を含む)を後で実行することができ
る。
【0051】一方、グループG1の命令I1の時に例外が起
こると、命令I0は適切に実行されたことになる。このこ
とは、グループG1の命令I0の終わりにおいて、整数レジ
スタ3には、グループG1の命令I0の結果として1だけイ
ンクレメントしたVALUE1が包含されることを意味する。
命令I1は浮動小数点オペレーションであり、これによっ
ていずれの整数レジスタの内容に影響を与えるものでは
ない。従って、整数レジスタ3の内容が有効なものとな
ると共に、これらを用いてマシーンの状態を更新するた
めに利用すべきであり、この結果、グループG1の命令I0
を再び動作させる必要がない。
こると、命令I0は適切に実行されたことになる。このこ
とは、グループG1の命令I0の終わりにおいて、整数レジ
スタ3には、グループG1の命令I0の結果として1だけイ
ンクレメントしたVALUE1が包含されることを意味する。
命令I1は浮動小数点オペレーションであり、これによっ
ていずれの整数レジスタの内容に影響を与えるものでは
ない。従って、整数レジスタ3の内容が有効なものとな
ると共に、これらを用いてマシーンの状態を更新するた
めに利用すべきであり、この結果、グループG1の命令I0
を再び動作させる必要がない。
【0052】命令I2で例外が起こると、命令I0とI1の結
果が有効となる。本例では、命令I1は浮動小数点オペレ
ーションであり、従って、命令I1によっていずれの整数
レジスタの内容に影響を与えるものではない。従って、
整数レジスタ3には一度インクレメントされたVALUE1が
包含され、このVALUE1は例外なしで実行されたグループ
G1の命令I0からの結果である。若し、いずれの命令中に
例外が起こらないならば、整数レジスタ3には、2回イ
ンクレメントされたVALUE1が包含され、このVALUE1はグ
ループG1の命令I2からの結果である。
果が有効となる。本例では、命令I1は浮動小数点オペレ
ーションであり、従って、命令I1によっていずれの整数
レジスタの内容に影響を与えるものではない。従って、
整数レジスタ3には一度インクレメントされたVALUE1が
包含され、このVALUE1は例外なしで実行されたグループ
G1の命令I0からの結果である。若し、いずれの命令中に
例外が起こらないならば、整数レジスタ3には、2回イ
ンクレメントされたVALUE1が包含され、このVALUE1はグ
ループG1の命令I2からの結果である。
【0053】再び図2を参照しながら説明すると、図4
の例におけるカスケード加算命令12がアダー48で演算さ
れる。この命令I0の結果を、アダー48とマルチプレクサ
56にマルチプレクサ54を制御することによって選択的に
与える。
の例におけるカスケード加算命令12がアダー48で演算さ
れる。この命令I0の結果を、アダー48とマルチプレクサ
56にマルチプレクサ54を制御することによって選択的に
与える。
【0054】特定の実施例のパイプラインマシーンにお
いて、4つの命令グループを設定でき、これらグループ
の各々には、所定時刻にパイプライン中に最大で3つの
命令が設けられている。多重例外がパイプラインの12個
の命令(4ステージで、1ステージ当たり3個の命令)
の各々において発生され得る。異なった優先レベルを有
する例外が、単一命令のパイプラインフェーズ期間内の
それぞれ異なる時刻に同時に発生できる。また1つ以上
の命令のパイプラインフェーズ期間内のそれぞれ異なる
時刻に同時に発生できる。更に、これら例外は、パイプ
ラインの命令に非同期で起こることが可能となる。
いて、4つの命令グループを設定でき、これらグループ
の各々には、所定時刻にパイプライン中に最大で3つの
命令が設けられている。多重例外がパイプラインの12個
の命令(4ステージで、1ステージ当たり3個の命令)
の各々において発生され得る。異なった優先レベルを有
する例外が、単一命令のパイプラインフェーズ期間内の
それぞれ異なる時刻に同時に発生できる。また1つ以上
の命令のパイプラインフェーズ期間内のそれぞれ異なる
時刻に同時に発生できる。更に、これら例外は、パイプ
ラインの命令に非同期で起こることが可能となる。
【0055】本発明によれば、例外が発生すると、これ
によって「ハードブレイク」が形成される。例外が起こ
る前に完了してしまったすべての命令を利用して、マシ
ーンの状態を更新することができる。しかし乍ら、この
例外のとき完了していない命令の総ては、これらを用い
てマシーンの状態を更新することは出来ない。これら命
令は、命令受け入れ例外から回復してから後で、可能な
らば、再び作動させることもできる。本発明の命令処理
器によって、1つまたはそれ以上の例外が起こったこと
を検出すると、この処理器によってパイプライン中のど
の命令によって安全に利用してマシーンの状態を更新す
ることができる有効な結果を生成したかを決定する必要
がある。更にまた、この例外処理器はどの命令がマシー
ン状態を更新できないが決める必要がある。
によって「ハードブレイク」が形成される。例外が起こ
る前に完了してしまったすべての命令を利用して、マシ
ーンの状態を更新することができる。しかし乍ら、この
例外のとき完了していない命令の総ては、これらを用い
てマシーンの状態を更新することは出来ない。これら命
令は、命令受け入れ例外から回復してから後で、可能な
らば、再び作動させることもできる。本発明の命令処理
器によって、1つまたはそれ以上の例外が起こったこと
を検出すると、この処理器によってパイプライン中のど
の命令によって安全に利用してマシーンの状態を更新す
ることができる有効な結果を生成したかを決定する必要
がある。更にまた、この例外処理器はどの命令がマシー
ン状態を更新できないが決める必要がある。
【0056】図5には、本発明のパイプラインステージ
の一実施例ブロックダイヤグラムが表されており、これ
らパイプラインステージは図1のパイプラインプロセッ
サに組込まれている。図5に示したパイプラインステー
ジ100には、複数の整数パイプラインステージ102−116
および複数の浮動小数点パイプラインステージ118−126
が設けられている。また、図5には7つのクロックサイ
クルより成る一連のクロックパルス128が示されてい
る。
の一実施例ブロックダイヤグラムが表されており、これ
らパイプラインステージは図1のパイプラインプロセッ
サに組込まれている。図5に示したパイプラインステー
ジ100には、複数の整数パイプラインステージ102−116
および複数の浮動小数点パイプラインステージ118−126
が設けられている。また、図5には7つのクロックサイ
クルより成る一連のクロックパルス128が示されてい
る。
【0057】これら整数パイプラインステージ102−116
には、2つの命令フェッチステージ(F0、F1)102、103
と、3つの命令デコードステージ(D0、D1、D2)106−11
0、2つの実行ステージ(E0、E1)112、114、および1つ
の書き戻しステージ(WB)116が設けられている。また浮
動小数点パイプラインステージ118−126には、2つの命
令デコード(複号)ステージ(FD、FRF)118、120と、2
つの実行ステージ(FADD/FMULおよびFNORM/FRND)122、
124とならびに1つの書き戻しステージ(FWB)126とが設
けられている。これら浮動小数点実行ステージ(FADD/FM
ULとFNORM/FRND)122、124を除いて、これらパイプライ
ンステージ102、・・・、120または126の各々は、1ク
ロックサイクルの半分を占有する。また、浮動小数点実
行ステージ(FADD/FMULまたはFNORM/FRND)の各々は、1
クロックサイクルを占有する。
には、2つの命令フェッチステージ(F0、F1)102、103
と、3つの命令デコードステージ(D0、D1、D2)106−11
0、2つの実行ステージ(E0、E1)112、114、および1つ
の書き戻しステージ(WB)116が設けられている。また浮
動小数点パイプラインステージ118−126には、2つの命
令デコード(複号)ステージ(FD、FRF)118、120と、2
つの実行ステージ(FADD/FMULおよびFNORM/FRND)122、
124とならびに1つの書き戻しステージ(FWB)126とが設
けられている。これら浮動小数点実行ステージ(FADD/FM
ULとFNORM/FRND)122、124を除いて、これらパイプライ
ンステージ102、・・・、120または126の各々は、1ク
ロックサイクルの半分を占有する。また、浮動小数点実
行ステージ(FADD/FMULまたはFNORM/FRND)の各々は、1
クロックサイクルを占有する。
【0058】パイプラインステージF0 102とF1 104期間
中、4つの命令が命令キャッシュ34からフェッチされ
る。また0〜3の命令がデコードステージD0 106期間中
に発生される。2つのアドレスレジスタが読取られ、パ
イプラインステージD1期間中演算されたターゲットおよ
び4つのデータレジスタが読取られ、更に、フェーズD2
110期間中にロードストアアドレスが演算される。フェ
ーズE0 112期間中に、データキャッシュ36へのアクセス
が起こり、浮動小数点オペレーションポイントオペレー
ションが発生され、更に第1実行ステージが起こる。ま
たフェーズE1 114期間中に、第2の実行ステージが起こ
り、データがロードされ、更に、例外が解決される。最
終的に、書き戻しステージ(WB)116期間中、2つまでの
整数ユニット結果が書き戻されて、整数レジスタファイ
ル18を更新する。
中、4つの命令が命令キャッシュ34からフェッチされ
る。また0〜3の命令がデコードステージD0 106期間中
に発生される。2つのアドレスレジスタが読取られ、パ
イプラインステージD1期間中演算されたターゲットおよ
び4つのデータレジスタが読取られ、更に、フェーズD2
110期間中にロードストアアドレスが演算される。フェ
ーズE0 112期間中に、データキャッシュ36へのアクセス
が起こり、浮動小数点オペレーションポイントオペレー
ションが発生され、更に第1実行ステージが起こる。ま
たフェーズE1 114期間中に、第2の実行ステージが起こ
り、データがロードされ、更に、例外が解決される。最
終的に、書き戻しステージ(WB)116期間中、2つまでの
整数ユニット結果が書き戻されて、整数レジスタファイ
ル18を更新する。
【0059】浮動小数点パイプライン中に、第1フェー
ズはFD 118となり、ここで浮動小数点命令がデコードさ
れる。フェーズFRF 120期間中、浮動小数点レジスタフ
ァイル28の浮動小数点レジスタが読取られる。次に、浮
動小数点の合計または積が、フェーズFADD/FMUL 122期
間中に演算される。ステージFNORM/FRND 124期間中、こ
の浮動小数点合計が正規化される、と共に、または、こ
の浮動小数点積が循環する。最後にフェーズFWB 126期
間中、これら浮動小数点レジスタが書込まれる。
ズはFD 118となり、ここで浮動小数点命令がデコードさ
れる。フェーズFRF 120期間中、浮動小数点レジスタフ
ァイル28の浮動小数点レジスタが読取られる。次に、浮
動小数点の合計または積が、フェーズFADD/FMUL 122期
間中に演算される。ステージFNORM/FRND 124期間中、こ
の浮動小数点合計が正規化される、と共に、または、こ
の浮動小数点積が循環する。最後にフェーズFWB 126期
間中、これら浮動小数点レジスタが書込まれる。
【0060】本発明の特定の実施例で発生する例外状態
は、命令グループを構成するために利用されるグループ
化ルールの機能である。グループ化ルールの例として
は、2つ以下の整数命令と1つの浮動小数点命令を1つ
のグループに包含できることである。これらグループ化
ルールの一組については、上述した出願中の米国特許明
細書に記載されている。
は、命令グループを構成するために利用されるグループ
化ルールの機能である。グループ化ルールの例として
は、2つ以下の整数命令と1つの浮動小数点命令を1つ
のグループに包含できることである。これらグループ化
ルールの一組については、上述した出願中の米国特許明
細書に記載されている。
【0061】図6は表を表す。この表には、1つのグル
ープ中の3つの命令の各々に対して、本発明による可能
な限りの例外のすべてが表されており、更に、この例外
を発生する単位が表されている。即ち、21個の可能な例
外が存在しており、これら例外は命令10に対して発生し
得るものである。しかし乍ら、命令I1とI2のみ、14個の
可能な例外状態によって影響される。従って、例えば、
データストア例外は、命令10のみに対して起こると共
に、データフェーズE1中にバス単位で発生される。一
方、命令INSTCN_ACCESS_EXCEPTIONは、グループの3
つの命令のいずれについても起こり、これはパイプライ
ンのフェーズD0期間中、命令キュー14によって発生され
る。
ープ中の3つの命令の各々に対して、本発明による可能
な限りの例外のすべてが表されており、更に、この例外
を発生する単位が表されている。即ち、21個の可能な例
外が存在しており、これら例外は命令10に対して発生し
得るものである。しかし乍ら、命令I1とI2のみ、14個の
可能な例外状態によって影響される。従って、例えば、
データストア例外は、命令10のみに対して起こると共
に、データフェーズE1中にバス単位で発生される。一
方、命令INSTCN_ACCESS_EXCEPTIONは、グループの3
つの命令のいずれについても起こり、これはパイプライ
ンのフェーズD0期間中、命令キュー14によって発生され
る。
【0062】図7には、命令コントロールユニット16が
詳細なブロックダイヤグラムで表示されている。この命
令コントロールユニット16を6個のロジック(論理)ブ
ロックに区分けし、これらブロックを相互に結合してい
る。
詳細なブロックダイヤグラムで表示されている。この命
令コントロールユニット16を6個のロジック(論理)ブ
ロックに区分けし、これらブロックを相互に結合してい
る。
【0063】ロジックブロックXH 130には本発明の例外
処理ロジックが含まれており、これについては図8〜10
を参照し乍ら詳述する。ロジックブロックMUXC 132はマ
ルチプレクサソースコントロールへ進又は倍パスする整
数単位機能20経路である。MUXC 132によって、この整数
機能ユニット20のマルチプレクサ52、54、56を制御す
る。ロジックブロックALLOC 134には、図2の整数機能
ユニット20の資源へディスパッチされた命令のマッピン
グが包含されている。このALLOC 134には、図2のアダ
ー44〜48とシフタ50とへの命令10、11、12のマッピング
が包含されている。ロジックブロックALLOCからの出力
は6ビット信号ラインINSTCN_TO_RESULT_PORT_MAPP
INGである。この信号ラインにはポートマッピングの結
果への命令が設けられており、これについては、図10を
参照し乍ら詳述する。
処理ロジックが含まれており、これについては図8〜10
を参照し乍ら詳述する。ロジックブロックMUXC 132はマ
ルチプレクサソースコントロールへ進又は倍パスする整
数単位機能20経路である。MUXC 132によって、この整数
機能ユニット20のマルチプレクサ52、54、56を制御す
る。ロジックブロックALLOC 134には、図2の整数機能
ユニット20の資源へディスパッチされた命令のマッピン
グが包含されている。このALLOC 134には、図2のアダ
ー44〜48とシフタ50とへの命令10、11、12のマッピング
が包含されている。ロジックブロックALLOCからの出力
は6ビット信号ラインINSTCN_TO_RESULT_PORT_MAPP
INGである。この信号ラインにはポートマッピングの結
果への命令が設けられており、これについては、図10を
参照し乍ら詳述する。
【0064】ロジックブロックIPCNT 136は出力とし
て、ディスパッチされた命令を持っている。信号ライン
I(012)OPC_E0は、ロジックブロックIPCNT 136の出力で
ある。そしてグループ内のどの二つの命令が同じ整数レ
ジスタファイル20レジスタ更新するかを示す。また信号
ラインSAME_XRD(01,02,12)_E0はロジックブロックIPC
NT 136の出力であり、更に、グループ内のいずれか2つ
の命令によって、同一の整数レジスタファイル20を何時
更新したかを表す。信号ラインI(012)_IWE_E0は、グ
ループのどの命令によってWBパイプラインステージにお
ける整数レジスタファイル20実行状態を更新したかを表
す。
て、ディスパッチされた命令を持っている。信号ライン
I(012)OPC_E0は、ロジックブロックIPCNT 136の出力で
ある。そしてグループ内のどの二つの命令が同じ整数レ
ジスタファイル20レジスタ更新するかを示す。また信号
ラインSAME_XRD(01,02,12)_E0はロジックブロックIPC
NT 136の出力であり、更に、グループ内のいずれか2つ
の命令によって、同一の整数レジスタファイル20を何時
更新したかを表す。信号ラインI(012)_IWE_E0は、グ
ループのどの命令によってWBパイプラインステージにお
ける整数レジスタファイル20実行状態を更新したかを表
す。
【0065】ロジックブロックSCHED 138はその内部ロ
ジックブロックGRP 140内の命令をグループ分けすると
共に、各命令に対してロジックブロックVMAN 142に有効
なビットを、それがプロセッサパイプラインを遂行する
ように管理する。6ビットの信号ラインI_VI(012)_(D
1,E0)がコントロールブロックSCHED 138から出力される
と共に、グループの3つの命令の内のいずれかが、デコ
ードフェーズD1において有効かどうか、およびパイプラ
インの実行フェーズE0において有効かどうかを表す。命
令をこのデコードフェーズで有効に出来るが、実行フェ
ーズでは有効に出来ない。これは、この命令が、初期の
命令上で条件ブランチ期間中に、却下されたからであ
る。最後に、ロジックブロックPCNTL 144によって、命
令キュー14とプログラムカウンタ12(図1)により命令
の予備フェッチング動作を制御する。
ジックブロックGRP 140内の命令をグループ分けすると
共に、各命令に対してロジックブロックVMAN 142に有効
なビットを、それがプロセッサパイプラインを遂行する
ように管理する。6ビットの信号ラインI_VI(012)_(D
1,E0)がコントロールブロックSCHED 138から出力される
と共に、グループの3つの命令の内のいずれかが、デコ
ードフェーズD1において有効かどうか、およびパイプラ
インの実行フェーズE0において有効かどうかを表す。命
令をこのデコードフェーズで有効に出来るが、実行フェ
ーズでは有効に出来ない。これは、この命令が、初期の
命令上で条件ブランチ期間中に、却下されたからであ
る。最後に、ロジックブロックPCNTL 144によって、命
令キュー14とプログラムカウンタ12(図1)により命令
の予備フェッチング動作を制御する。
【0066】命令コントロールユニット16への入力は信
号ラインであり、この信号ラインには、命令グループ内
の各命令に対して35ビットから成る情報が包含されてい
る。この35ビットは、32ビットの命令と、信号フラグと
から構成されており、これら信号フラグによって、命令
が有効かどうか、命令・アクセス・例外が発生したかど
うか、およびこの命令がフェッチされたとしても、コー
ドブレークポイント事象が存在していたかどうかを表
す。
号ラインであり、この信号ラインには、命令グループ内
の各命令に対して35ビットから成る情報が包含されてい
る。この35ビットは、32ビットの命令と、信号フラグと
から構成されており、これら信号フラグによって、命令
が有効かどうか、命令・アクセス・例外が発生したかど
うか、およびこの命令がフェッチされたとしても、コー
ドブレークポイント事象が存在していたかどうかを表
す。
【0067】図8には例外処理器ブロックXH 130が詳細
に図示されている。ロジックブロックXH_(D0) 150、ラ
ッチD1 152、ロジックブロックHX_(D2) 154、およびラ
ッチE0 156によって、各例外に対して例外状態情報が保
持されており、この例外は、パイプラインのD0、D1、D2
およびE0フェーズの各々の期間中に発生できる。ロジッ
クブロックXH_E1 158によって、パイプラインのステー
ジE1における3つの命令の各々に対して例外の状態を決
定する。例外処理器ロジックブロックXH_E1 158につい
ては、図9を参照し乍ら後に詳述する。
に図示されている。ロジックブロックXH_(D0) 150、ラ
ッチD1 152、ロジックブロックHX_(D2) 154、およびラ
ッチE0 156によって、各例外に対して例外状態情報が保
持されており、この例外は、パイプラインのD0、D1、D2
およびE0フェーズの各々の期間中に発生できる。ロジッ
クブロックXH_E1 158によって、パイプラインのステー
ジE1における3つの命令の各々に対して例外の状態を決
定する。例外処理器ロジックブロックXH_E1 158につい
ては、図9を参照し乍ら後に詳述する。
【0068】このロジック例外ブロックXH_E1からの出
力は2ビット信号ラインXMAT(12)_E1であり、これはパ
イプラインの実行ステージにおける命令グループに対す
る第1例外が、命令I1またはI2で発生したかどうかを表
す。また、出力は3ビット信号ラインXMAB(012)_E1で
あり、これによって、例外が命令I0の処またはそれより
前で、または命令I1の処またはそれより前で、または命
令I2の処またはそれより前で起こった時を表す。これら
信号をロジックブロックXH_COM 160に入力し、このブ
ロックXH_COM 160によってグループの3の命令の内の
どれが結果を有するかどうかを決定する。これら結果
を、命令グループ中の各命令に対して起こった例外の数
量およびタイプに依存して、整数単位レジスタファイル
20へ書き戻されるために委ねることができる。このロジ
ックブロックXH_COM 160用の論理については、図10を
参照し乍ら、後で詳述する。
力は2ビット信号ラインXMAT(12)_E1であり、これはパ
イプラインの実行ステージにおける命令グループに対す
る第1例外が、命令I1またはI2で発生したかどうかを表
す。また、出力は3ビット信号ラインXMAB(012)_E1で
あり、これによって、例外が命令I0の処またはそれより
前で、または命令I1の処またはそれより前で、または命
令I2の処またはそれより前で起こった時を表す。これら
信号をロジックブロックXH_COM 160に入力し、このブ
ロックXH_COM 160によってグループの3の命令の内の
どれが結果を有するかどうかを決定する。これら結果
を、命令グループ中の各命令に対して起こった例外の数
量およびタイプに依存して、整数単位レジスタファイル
20へ書き戻されるために委ねることができる。このロジ
ックブロックXH_COM 160用の論理については、図10を
参照し乍ら、後で詳述する。
【0069】図9は、ロジックブロックXH_E1 158用の
論理が図示されている。本発明では、例外情報がパイプ
ラインに与えられると共に、パイプラインのE1フェーズ
で解読される。次に、このフェーズE1における例外状態
に基づいて、結果がWBフェーズ中に書き戻される。この
ロジックブロックXH_E1 158によって、パイプラインの
フェーズE1における各命令用の例外状態を決定する。位
置的な優先順位が実行されて、優先レベルに拘らず、E0
命令グループ内の最も早く発生する例外を決定する。
論理が図示されている。本発明では、例外情報がパイプ
ラインに与えられると共に、パイプラインのE1フェーズ
で解読される。次に、このフェーズE1における例外状態
に基づいて、結果がWBフェーズ中に書き戻される。この
ロジックブロックXH_E1 158によって、パイプラインの
フェーズE1における各命令用の例外状態を決定する。位
置的な優先順位が実行されて、優先レベルに拘らず、E0
命令グループ内の最も早く発生する例外を決定する。
【0070】21個の可能な例外クラスが存在し、これら
例外クラスは、命令I0に対して発生することができ、実
行フェーズE1の最後に現れることが可能となる。例外の
各クラスに対する1信号ラインを21入力ORゲート 162
へ入力すると共に、その出力信号I0_ANYX_E1は、パイ
プラインのE1実行フェーズまで命令I0に対していずれか
の例外が発生するかどうかを示す。
例外クラスは、命令I0に対して発生することができ、実
行フェーズE1の最後に現れることが可能となる。例外の
各クラスに対する1信号ラインを21入力ORゲート 162
へ入力すると共に、その出力信号I0_ANYX_E1は、パイ
プラインのE1実行フェーズまで命令I0に対していずれか
の例外が発生するかどうかを示す。
【0071】同様に、14個の例外/エミュレーションリ
クエストが存在し、これらリクエストを、命令I1に対し
て実行フェーズE1までに発生させることができる。これ
ら14個の信号を14入力ORゲート164に入力し、それの
結果を示す信号I1_ANYX_E1は、命令I1に対して、フェ
ーズE1までいずれかの例外が発生したかどうかを表示す
る。信号 I1_ANYX_E1と信号I0_ANYX_E1とを2−入
力ORゲート166へ組込むことによって、1出力信号XMAB1
_E1が得られる。この出力信号によって、命令I1、また
はその前に例外が発生したかどうかを表すことができ
る。信号 I1_ANYX_E1を反転信号I0_ANYX_E1と一緒
にANDゲート168へ組込むことによって、出力信号XMAT1
_E1 が得られる。この出力信号によって、命令I1で例
外が発生し、命令I0で例外が発生しないことを表すこと
ができる。
クエストが存在し、これらリクエストを、命令I1に対し
て実行フェーズE1までに発生させることができる。これ
ら14個の信号を14入力ORゲート164に入力し、それの
結果を示す信号I1_ANYX_E1は、命令I1に対して、フェ
ーズE1までいずれかの例外が発生したかどうかを表示す
る。信号 I1_ANYX_E1と信号I0_ANYX_E1とを2−入
力ORゲート166へ組込むことによって、1出力信号XMAB1
_E1が得られる。この出力信号によって、命令I1、また
はその前に例外が発生したかどうかを表すことができ
る。信号 I1_ANYX_E1を反転信号I0_ANYX_E1と一緒
にANDゲート168へ組込むことによって、出力信号XMAT1
_E1 が得られる。この出力信号によって、命令I1で例
外が発生し、命令I0で例外が発生しないことを表すこと
ができる。
【0072】また、14個の可能な、例外/エミュレーシ
ョンリクエスト状態が存在し、これらの状態は、命令I2
のE1フェーズまでに起こり得るものである。この命令I2
の可能な例外状態の各々に対して14ビット信号が14ビッ
トORゲート 170に入力されると共に、これの出力信号
I2_ANYX_E1によって命令I2に対して、E1実行フェーズ
までにいずれかの例外が起こったかどうかを表す。信号
I0_ANYX_E1と、I1_ANYX_E1と、I2_ANYX_E1を3入
力ORゲート172に入力することによって、信号XMAB2_
E1が得られ、この信号は、例外が命令I2または、それま
でに起こったかどうかを表す。
ョンリクエスト状態が存在し、これらの状態は、命令I2
のE1フェーズまでに起こり得るものである。この命令I2
の可能な例外状態の各々に対して14ビット信号が14ビッ
トORゲート 170に入力されると共に、これの出力信号
I2_ANYX_E1によって命令I2に対して、E1実行フェーズ
までにいずれかの例外が起こったかどうかを表す。信号
I0_ANYX_E1と、I1_ANYX_E1と、I2_ANYX_E1を3入
力ORゲート172に入力することによって、信号XMAB2_
E1が得られ、この信号は、例外が命令I2または、それま
でに起こったかどうかを表す。
【0073】図10には、例外処理器委任ロジックブロッ
クXH_COM160が詳述されている。整数単位データパス20
の2つの結果ポートに対するライトイネーブル信号がブ
ロックXH_COM 160から出力される。信号 EAOW_WE_WB
は、結果信号EAOW_DATA_WBに対するライトイネーブル
信号である。また、信号EXW_WE_WBは、結果信号EXW_
DATA_WBに対するライトイネーブル信号である。
クXH_COM160が詳述されている。整数単位データパス20
の2つの結果ポートに対するライトイネーブル信号がブ
ロックXH_COM 160から出力される。信号 EAOW_WE_WB
は、結果信号EAOW_DATA_WBに対するライトイネーブル
信号である。また、信号EXW_WE_WBは、結果信号EXW_
DATA_WBに対するライトイネーブル信号である。
【0074】信号RFWE0_E1は、命令I0が、レジスタフ
ァイルをそれがWBステージに入力されるように、書込み
可能であるかどうかを表示する。同様に、信号RFWE1_E
1とRFWE2_E2とによって、レジスタファイルライトイネ
ーブルが命令I1およびI2のそれぞれに対して起こるべき
かどうかを表示する。
ァイルをそれがWBステージに入力されるように、書込み
可能であるかどうかを表示する。同様に、信号RFWE1_E
1とRFWE2_E2とによって、レジスタファイルライトイネ
ーブルが命令I1およびI2のそれぞれに対して起こるべき
かどうかを表示する。
【0075】信号RFWE2_E1は、信号XMAB2_E1を反転す
ると共に、これを3入力ANDゲート176で信号I_VI2_E0
と信号I2_IWE_E0とによって論理積をとることによっ
て形成される。信号I_VI2_E0は命令I2が有効な命令で
あるかどうかを表示する。また、信号I2_IWE_E0によ
って命令I2が、ライトイネーブルを整数レジスタファイ
ル20に発生するタイプの命令であるかどうかを表す。
ると共に、これを3入力ANDゲート176で信号I_VI2_E0
と信号I2_IWE_E0とによって論理積をとることによっ
て形成される。信号I_VI2_E0は命令I2が有効な命令で
あるかどうかを表示する。また、信号I2_IWE_E0によ
って命令I2が、ライトイネーブルを整数レジスタファイ
ル20に発生するタイプの命令であるかどうかを表す。
【0076】信号RFWE1_E1は、2入力ANDゲート178
で、2入力ANDゲート180の出力と、3−2−1入力AND−OR
ゲート182の出力との論理積をとることによって形成さ
れる。信号I_VI1_E0と信号I1_IWE_E0とを論理積処
理することによって、命令I1がフェーズE0で有効な命令
であるかどうかを表すと共に、命令I1が、整数レジスタ
ファイル20に対する書込み可能なタイプの命令であるか
を表す。この3−2−1入力AND−ORゲート182によって、
3つのAND(論理積処理)オペレーションの出力に対し
てOR(論理和処理)オペレーションを実行する。信号SA
ME_XRD01_E0、SAME_XRD12_E0およびXMAB1_E1が反
転され、ANDオペレーションがこれら反転信号に対して
実行される。また、信号SAME_XRD12_E0とXMAT1_E1と
を反転し、これら反転信号に対してANDオペレーション
を実行する。1入力ANDオペレーションを信号MXAT2_E1
に対しても実行し、この結果をANDゲート178に入力す
る。このゲート178はそれの出力として信号RFWE1_E1を
有する。
で、2入力ANDゲート180の出力と、3−2−1入力AND−OR
ゲート182の出力との論理積をとることによって形成さ
れる。信号I_VI1_E0と信号I1_IWE_E0とを論理積処
理することによって、命令I1がフェーズE0で有効な命令
であるかどうかを表すと共に、命令I1が、整数レジスタ
ファイル20に対する書込み可能なタイプの命令であるか
を表す。この3−2−1入力AND−ORゲート182によって、
3つのAND(論理積処理)オペレーションの出力に対し
てOR(論理和処理)オペレーションを実行する。信号SA
ME_XRD01_E0、SAME_XRD12_E0およびXMAB1_E1が反
転され、ANDオペレーションがこれら反転信号に対して
実行される。また、信号SAME_XRD12_E0とXMAT1_E1と
を反転し、これら反転信号に対してANDオペレーション
を実行する。1入力ANDオペレーションを信号MXAT2_E1
に対しても実行し、この結果をANDゲート178に入力す
る。このゲート178はそれの出力として信号RFWE1_E1を
有する。
【0077】信号RFWE0_E1は、2入力ANDゲート184
で、2入力ANDゲート186および3−2−1入力AND−ORゲー
ト188の出力を論理積処理することによって形成され
る。信号I_VI0_E0と信号I0_IWE_E0とをAND(論理
積)処理することによって、命令I0がフェーズE0で有効
な命令であるかどうかを表し、更に、命令I0が、整数レ
ジスタファイル20への書込み可能なタイプの命令である
かどうかを表す。この3−2−1入力AND−ORゲート188に
よって、3つのANDオペレーションの出力に対してORオ
ペレーションが行われる。信号SAME_XRD01_E0、SAME
_XRD02_E0、およびXMAB1_E1を反転すると共に、これ
ら反転信号に対してANDオペレーションを実行する、ま
た、信号SAME_XRD01_E0とXMAB0_E1を反転し、これら
反転信号をAND処理する。1入力AND処理を、信号XMAT1
_E1に対して実行する。これら3つのAND処理の結果をO
Rオペレーションで組合わせ、これの結果をANDゲート18
4に入力する。このANDゲート184は、その出力として、
信号RFWE0_E1を有する。
で、2入力ANDゲート186および3−2−1入力AND−ORゲー
ト188の出力を論理積処理することによって形成され
る。信号I_VI0_E0と信号I0_IWE_E0とをAND(論理
積)処理することによって、命令I0がフェーズE0で有効
な命令であるかどうかを表し、更に、命令I0が、整数レ
ジスタファイル20への書込み可能なタイプの命令である
かどうかを表す。この3−2−1入力AND−ORゲート188に
よって、3つのANDオペレーションの出力に対してORオ
ペレーションが行われる。信号SAME_XRD01_E0、SAME
_XRD02_E0、およびXMAB1_E1を反転すると共に、これ
ら反転信号に対してANDオペレーションを実行する、ま
た、信号SAME_XRD01_E0とXMAB0_E1を反転し、これら
反転信号をAND処理する。1入力AND処理を、信号XMAT1
_E1に対して実行する。これら3つのAND処理の結果をO
Rオペレーションで組合わせ、これの結果をANDゲート18
4に入力する。このANDゲート184は、その出力として、
信号RFWE0_E1を有する。
【0078】信号RFWE0_E1、RFWE1_E1、およびRFWE2
_E1を一対の2−2−2入力AND−ORゲート190と192内で、
6ビットの信号ラインINSTCN_TO_RESULT PORT_MAPPI
NGSと共に組合わせることによって、ポートA0用のイネ
ーブル信号EA0W_WE_WBおよびポートX用のイネーブル
信号EXW_WE_WBを得るようになる。この6ビット信号
ラインINSCN_TO_RESULT PORT_MAPPINGSは、6本の別
個な信号ラインから構成される。信号I0_IS_A0RMX_E
0とI1_IS_A0RMX_E0と、I2_IS_A0_RMX_E0とによ
って、命令I0、I1またはI2が順序化されて、例外無し結
果を結果ポートA0に供給するかどうかを表示する。同様
に、信号ラインI0_IS_XRMX_E0とI1_IS_XRMX_E0
と、I2_IS_XRMX_E0とによって、命令I0、I1またはI2
を順序化されて、例外無し結果を結果ポートXへ供給す
るかどうかを表示する。
_E1を一対の2−2−2入力AND−ORゲート190と192内で、
6ビットの信号ラインINSTCN_TO_RESULT PORT_MAPPI
NGSと共に組合わせることによって、ポートA0用のイネ
ーブル信号EA0W_WE_WBおよびポートX用のイネーブル
信号EXW_WE_WBを得るようになる。この6ビット信号
ラインINSCN_TO_RESULT PORT_MAPPINGSは、6本の別
個な信号ラインから構成される。信号I0_IS_A0RMX_E
0とI1_IS_A0RMX_E0と、I2_IS_A0_RMX_E0とによ
って、命令I0、I1またはI2が順序化されて、例外無し結
果を結果ポートA0に供給するかどうかを表示する。同様
に、信号ラインI0_IS_XRMX_E0とI1_IS_XRMX_E0
と、I2_IS_XRMX_E0とによって、命令I0、I1またはI2
を順序化されて、例外無し結果を結果ポートXへ供給す
るかどうかを表示する。
【0079】以上詳述したように、本発明の好適実施例
についてのみ説明したが、本発明はこれらのみに限定さ
れず、種々の変形を加え得ることは当業者にとって明ら
かである。即ち、本発明による方法および装置は、添付
した請求の範囲の技術的思想の範囲内で変更できるもの
である。従って、上述した記載に限定されるものではな
い。
についてのみ説明したが、本発明はこれらのみに限定さ
れず、種々の変形を加え得ることは当業者にとって明ら
かである。即ち、本発明による方法および装置は、添付
した請求の範囲の技術的思想の範囲内で変更できるもの
である。従って、上述した記載に限定されるものではな
い。
【0080】
【発明の効果】以上、詳述したように本発明の方法およ
び装置によって以下の利点が得られる。即ち、多重命令
を同時に、フェッチ、デコード、および実行できるプロ
セッサ用の正確な例外処理メカニズムが実現する。ま
た、マシーンの状態を更新して、有効な結果を有するす
べての命令を正確に反映できると共に、無効となった結
果を有する命令を正確に除外できる例外処理メカニズム
を実現する。また、1つのグループ内の命令をカスケー
ド状態にすることができ、この結果、1つの命令の結果
を、このグループの他の命令の少なくとも1つの命令に
よって利用できる例外処理メカニズムを実現する。
び装置によって以下の利点が得られる。即ち、多重命令
を同時に、フェッチ、デコード、および実行できるプロ
セッサ用の正確な例外処理メカニズムが実現する。ま
た、マシーンの状態を更新して、有効な結果を有するす
べての命令を正確に反映できると共に、無効となった結
果を有する命令を正確に除外できる例外処理メカニズム
を実現する。また、1つのグループ内の命令をカスケー
ド状態にすることができ、この結果、1つの命令の結果
を、このグループの他の命令の少なくとも1つの命令に
よって利用できる例外処理メカニズムを実現する。
【図1】本発明の技術思想を採用したパイプラインプロ
セッサの機能ブロック図。
セッサの機能ブロック図。
【図2】図1のパイプラインプロセッサにおける整数機
能ユニットの機能ブロック図。
能ユニットの機能ブロック図。
【図3】パイプラインにおける4つのグループの命令の
フローチャート。
フローチャート。
【図4】パイプラインで実行される命令のグループの例
を示す図。
を示す図。
【図5】整数および浮動小数点パイプラインステージを
示す図。
示す図。
【図6】グループにおける各命令に対する、すべての可
能な例外状態を示す図。
能な例外状態を示す図。
【図7】図1の命令コントロールボックス16のブロック
線図。
線図。
【図8】図7の例外処理器XHブロック130のブロック線
図。
図。
【図9】図8の例外処理器XH_E1ブロック158のブロッ
ク線図。
ク線図。
【図10】図8の例外処理器XH_COMブロック160のブロ
ック線図。
ック線図。
10,100 パイプラインプロセッサ 12 プログラムカウンタ 14 命令キュー 16 命令コントロールユニット 18 整数単位レジスタファイル 20 整数機能ユニット 24 浮動小数点命令キュー 26 浮動小数点命令コントロールユニット 28 浮動小数点単位レジスタファイル 30 浮動小数点機能ユニット 32 マルチプレクサ 36 データキャッシュ 40 ライトバッファ 42 キャッシュコヒーレントバスインターフェイスユ
ニット
ニット
Claims (3)
- 【請求項1】 プロセッサの1クロックサイクル中に複
数個の順序付けられた命令を実行する装置において、 選択的に互いに結合され、前記命令を受信すると共に実
行する複数個の対応した実行手段と、 前記実行の少なくとも1つの結果を受信する少なくとも
1つの宛先手段と、 前記実行手段の各々と前記少なくとも1つの宛先手段と
に結合され、前記少なくとも1つの宛先手段の最大でも
1つの宛先手段に書込むために前記実行手段の各々をマ
ッピングするマッピング手段と、 前記実行手段の各々に結合され、前記実行中に発生した
例外を検出するエラー検出手段と、 前記命令を受信すると共に、カスケード状の命令の組を
検出するカスケード検出手段と、 前記エラー検出手段に接続され、前記検出された例外の
1つを発生ために前記命令の第1の命令を決定する優先
順位手段と、 更に、前記書込みマッピング手段と、カスケード検出手
段と、優先順位手段とに結合され、前記カスケード状態
の命令組の検出結果と、前記検出された例外の優先順位
とに基づいて、前記マップ処理された少なくとも1つの
宛先手段に対するマッピングの内、多くとも1つのマッ
ピングを選択する書込み選択手段とを具備したことを特
徴とするプロセッサ用例外処理装置。 - 【請求項2】 プロセッサで単一のクロックサイクル中
に複数個の順序付けられた命令を実行する実行方法にお
いて、 (a) 互いに選択的に結合した実行手段の対応するものに
前記命令を供給してこれら命令を実行し、 (b) 前記実行手段の各々を宛先手段にマッピングして、
前記実行手段からの実行結果を受信し、 (c) これら命令をカスケード検出手段に供給して、カス
ケード状態の命令の組を検出し、 (d) これら実行中に起こった例外を検出し、 (e) これら検出された例外に優先順位を付けると共に、
これら検出された例外の1つに起こる第1の命令を識別
し、 (f) 前記カスケード状態の命令の組の検出結果と、前記
検出された例外の優先順位に基づいて、前記マッピング
された宛先手段の内の、多くとも1つのマッピングを選
択し、更に、 (g) 選択された宛先手段マッピングを有する前記実行手
段からの実行結果を、これらマッピング処理した宛先手
段へ書込むステップから構成されたことを特徴とするプ
ロセッサ用例外処理方法。 - 【請求項3】 1クロックサイクル中に、複数個の順序
付けられた命令を実行し、実行結果を書き戻す動作を制
御する正確な例外処理方法を採用した装置を設けたこと
を特徴とするスーパースカラープロセッサ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US87596392A | 1992-04-29 | 1992-04-29 | |
| US875,963 | 1992-04-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0619709A true JPH0619709A (ja) | 1994-01-28 |
Family
ID=25366676
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5122101A Pending JPH0619709A (ja) | 1992-04-29 | 1993-04-27 | パイプラインプロセッサを有するコンピュータシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0619709A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU666836B2 (en) * | 1991-05-16 | 1996-02-29 | Senetek Plc | Method and composition for ameliorating the adverse effects of aging |
| US20240012948A1 (en) * | 2020-09-02 | 2024-01-11 | SiFive, Inc. | Efficient processing of masked memory accesses |
-
1993
- 1993-04-27 JP JP5122101A patent/JPH0619709A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU666836B2 (en) * | 1991-05-16 | 1996-02-29 | Senetek Plc | Method and composition for ameliorating the adverse effects of aging |
| US20240012948A1 (en) * | 2020-09-02 | 2024-01-11 | SiFive, Inc. | Efficient processing of masked memory accesses |
| US12437121B2 (en) * | 2020-09-02 | 2025-10-07 | SiFive, Inc. | Efficient processing of masked memory accesses |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Smith et al. | Implementing precise interrupts in pipelined processors | |
| US6138230A (en) | Processor with multiple execution pipelines using pipe stage state information to control independent movement of instructions between pipe stages of an execution pipeline | |
| Jouppi et al. | Available instruction-level parallelism for superscalar and superpipelined machines | |
| US5630149A (en) | Pipelined processor with register renaming hardware to accommodate multiple size registers | |
| JP3120152B2 (ja) | コンピューターシステム | |
| JP3209205B2 (ja) | プロセッサにおけるレジスタ内容の継承装置 | |
| US6088788A (en) | Background completion of instruction and associated fetch request in a multithread processor | |
| US5500943A (en) | Data processor with rename buffer and FIFO buffer for in-order instruction completion | |
| JP3678444B2 (ja) | パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ | |
| US5450560A (en) | Pointer for use with a buffer and method of operation | |
| JPH07506445A (ja) | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 | |
| JPH07160501A (ja) | データ処理システム | |
| JP3678443B2 (ja) | スーパーパイプライン式スーパースカラーマイクロプロセッサ用の書き込みバッファ | |
| JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
| US5596735A (en) | Circuit and method for addressing segment descriptor tables | |
| US6073231A (en) | Pipelined processor with microcontrol of register translation hardware | |
| EP0649086B1 (en) | Microprocessor with speculative execution | |
| US5996059A (en) | System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline | |
| Keckler et al. | Concurrent event handling through multithreading | |
| KR0133237B1 (ko) | 다중 실행장치 처리시스템 상태의 선택적 저장방법 및 시스템 | |
| JPH02227730A (ja) | データ処理システム | |
| JP2951580B2 (ja) | 非プログラム順序の命令実行をサポートする方法及びデータ処理システム | |
| US7302553B2 (en) | Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue | |
| US6115730A (en) | Reloadable floating point unit | |
| JP6882320B2 (ja) | ベクトル命令の処理 |