JPH1021071A - 複数の命令を処理するプロセッサ動作方法 - Google Patents
複数の命令を処理するプロセッサ動作方法Info
- Publication number
- JPH1021071A JPH1021071A JP33864496A JP33864496A JPH1021071A JP H1021071 A JPH1021071 A JP H1021071A JP 33864496 A JP33864496 A JP 33864496A JP 33864496 A JP33864496 A JP 33864496A JP H1021071 A JPH1021071 A JP H1021071A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- instruction
- prefix
- instructions
- operands
- 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
- 238000011017 operating method Methods 0.000 title abstract 2
- 238000012545 processing Methods 0.000 title description 10
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 マイクロプロセッサにそのアーキテクチャの
複雑さ増大を最少限に抑制して複数の命令を極めて効率
的に処理させる動作方法。 【解決手段】 この動作方法20は、次を含む。複数の
命令の中から1つの命令を受けるステップ(22)。次
いで、受けた命令が第3オペランドを識別するオペラン
ドプレフィックスを含むかどうか判定するステップ2
4、26。受けた命令10がオペランドプレフィックス
を含むと云う判定に応答して、第1オペランド、第2オ
ペランド、及び第3オペランドの中から選択された2つ
のオペランドを使用して、かつ第1オペランド、第2オ
ペランド、第3オペランドのうちの1つが選択されない
ように、この命令を実行して結果を発生するステップ2
8。更に、この結果を、選択されなかったオペランドに
記憶するステップ。
複雑さ増大を最少限に抑制して複数の命令を極めて効率
的に処理させる動作方法。 【解決手段】 この動作方法20は、次を含む。複数の
命令の中から1つの命令を受けるステップ(22)。次
いで、受けた命令が第3オペランドを識別するオペラン
ドプレフィックスを含むかどうか判定するステップ2
4、26。受けた命令10がオペランドプレフィックス
を含むと云う判定に応答して、第1オペランド、第2オ
ペランド、及び第3オペランドの中から選択された2つ
のオペランドを使用して、かつ第1オペランド、第2オ
ペランド、第3オペランドのうちの1つが選択されない
ように、この命令を実行して結果を発生するステップ2
8。更に、この結果を、選択されなかったオペランドに
記憶するステップ。
Description
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ技術、特に命令プレフィックスを使用して2オペラン
ド命令を3オペランド命令に拡張する回路、システム及
び方法に関する。
サ技術、特に命令プレフィックスを使用して2オペラン
ド命令を3オペランド命令に拡張する回路、システム及
び方法に関する。
【0002】
【従来の技術】所与の時間間隔にわたって実行される命
令の数で測られるようなマイクロプロセッサの性能を向
上するために、マイクロプロセッサの設計に顕著な進歩
が遂げられている。このような進歩の1つは、「スーパ
スカラ(superscalar)」型のマイクロプロ
セッサの最近における導入であり、この型のマイクロプ
ロセッサは単一命令ポインタを用いる並列命令計算を達
成する。典型的に、スーパスカラマイクロプロセッサ
は、プログラム命令を実行するために、多整数算術演算
ユニット(以下、ALUと称する)及び浮動小数点ユニ
ット(以下、FPUと称する)のような多重実行ユニッ
トを有する。このような訳で、多数機械命令がスーパス
カラマイクロプロセッサ内で同時に実行されることがあ
り、デバイス及びそのシステム応用の総合性能に明白な
益を持たらす。
令の数で測られるようなマイクロプロセッサの性能を向
上するために、マイクロプロセッサの設計に顕著な進歩
が遂げられている。このような進歩の1つは、「スーパ
スカラ(superscalar)」型のマイクロプロ
セッサの最近における導入であり、この型のマイクロプ
ロセッサは単一命令ポインタを用いる並列命令計算を達
成する。典型的に、スーパスカラマイクロプロセッサ
は、プログラム命令を実行するために、多整数算術演算
ユニット(以下、ALUと称する)及び浮動小数点ユニ
ット(以下、FPUと称する)のような多重実行ユニッ
トを有する。このような訳で、多数機械命令がスーパス
カラマイクロプロセッサ内で同時に実行されることがあ
り、デバイス及びそのシステム応用の総合性能に明白な
益を持たらす。
【0003】性能を向上するために最近のマイクロプロ
セッサに使用される他の普及している技術は、命令の
「パイプライン化(pipelining)」を伴う。
技術上周知のように、マイクロプロセッサ命令は、各
々、命令取出し、命令デコード、レジスタ又はメモリか
らのオペランドの検索、命令の実行、及び命令の結果の
再書き込みのような、いくつかの逐次動作を一般に伴
う。マイクロプロセッサ内の命令のパイプライン化は、
命令の系列内の多数命令を内部系列内の異なるステージ
において同時に処理するような命令系列のステージング
を指す。例えば、もしパイプライン化マイクロプロセッ
サが所与のマイクロプロセッサクロックサイクルに命令
nを実行中であるならば、4ステージパイプライン化マ
イクロプロセッサは、同時に(すなわち、同じ機械サイ
クルに)、命令n+1(すなわち、系列内の次の命令)
に対するオペランドを検索し、命令n+2をデコード
し、かつ命令n+3を取り出す。パイプライン化の使用
を通して、マイクロプロセッサの性能は、命令の系列を
クロックサイクル当たり1つと云う速度で有効に実行す
ることができる。
セッサに使用される他の普及している技術は、命令の
「パイプライン化(pipelining)」を伴う。
技術上周知のように、マイクロプロセッサ命令は、各
々、命令取出し、命令デコード、レジスタ又はメモリか
らのオペランドの検索、命令の実行、及び命令の結果の
再書き込みのような、いくつかの逐次動作を一般に伴
う。マイクロプロセッサ内の命令のパイプライン化は、
命令の系列内の多数命令を内部系列内の異なるステージ
において同時に処理するような命令系列のステージング
を指す。例えば、もしパイプライン化マイクロプロセッ
サが所与のマイクロプロセッサクロックサイクルに命令
nを実行中であるならば、4ステージパイプライン化マ
イクロプロセッサは、同時に(すなわち、同じ機械サイ
クルに)、命令n+1(すなわち、系列内の次の命令)
に対するオペランドを検索し、命令n+2をデコード
し、かつ命令n+3を取り出す。パイプライン化の使用
を通して、マイクロプロセッサの性能は、命令の系列を
クロックサイクル当たり1つと云う速度で有効に実行す
ることができる。
【0004】パイプライン化技術及びスーパスカラ技術
の両方の使用は多くの最近のマイクロプロセッサに命令
を機械クロックサイクル当たり1つより高い速度で実行
させるが、多くの制限が依然として生じて、これらが総
合性能を低下させる。本発明の実施例の目的にとって1
つの重要な例は、数年前に初めて開発された、必然的に
2オペランド命令に制限されているアーキテクチャ(例
えば、X86アーキテクチャ)に起こる。例えば、この
ようなアーキテクチャの命令セット内の加算命令の疑似
コードは、次のような形を呈することがある。
の両方の使用は多くの最近のマイクロプロセッサに命令
を機械クロックサイクル当たり1つより高い速度で実行
させるが、多くの制限が依然として生じて、これらが総
合性能を低下させる。本発明の実施例の目的にとって1
つの重要な例は、数年前に初めて開発された、必然的に
2オペランド命令に制限されているアーキテクチャ(例
えば、X86アーキテクチャ)に起こる。例えば、この
ようなアーキテクチャの命令セット内の加算命令の疑似
コードは、次のような形を呈することがある。
【0005】
【数1】 ADDオペランド1、オペランド2 命令(1)
【0006】命令(1)は、実行されるとき、下に図式
的に示したように動作する。
的に示したように動作する。
【0007】
【数2】オペランド1←オペランド1+オペランド2
【0008】それゆえ、命令(1)は、オペランド1を
オペランド2に加算し、かつその後の再書き込みステー
ジが結果の和をオペランド1内に記憶する。このような
命令に関していくつかの制限があることに注意された
い。例えば、オペランド1は、ソースオペランドとデス
ティネーションオペランドの両方として動作する、すな
わち、加算オペランドに対する加数の1つがオペランド
1から検索され、かつ、その後、結果の和がオペランド
1にまた記憶される。したがって、1つの欠点はオペラ
ンド1に初めに記憶されていた値が加算の結果によって
書き直されると云うこと、及び、それゆえ、初めの値
が、それをどこかにまず複写しておかない限り、喪失す
るおそれがあると云うことであることに注意されたい。
換言すれば、初めのオペランドの値を保存するために、
先行技術の命令セットは、次のように、全部で3つのオ
ペランドを伴う2つの別個の命令の処理を必要とする。
オペランド2に加算し、かつその後の再書き込みステー
ジが結果の和をオペランド1内に記憶する。このような
命令に関していくつかの制限があることに注意された
い。例えば、オペランド1は、ソースオペランドとデス
ティネーションオペランドの両方として動作する、すな
わち、加算オペランドに対する加数の1つがオペランド
1から検索され、かつ、その後、結果の和がオペランド
1にまた記憶される。したがって、1つの欠点はオペラ
ンド1に初めに記憶されていた値が加算の結果によって
書き直されると云うこと、及び、それゆえ、初めの値
が、それをどこかにまず複写しておかない限り、喪失す
るおそれがあると云うことであることに注意されたい。
換言すれば、初めのオペランドの値を保存するために、
先行技術の命令セットは、次のように、全部で3つのオ
ペランドを伴う2つの別個の命令の処理を必要とする。
【0009】
【数3】 MOVオペランド3、オペランド1 命令(2)
【0010】
【数4】 ADDオペランド3、オペランド2 命令(3)
【0011】命令(2)及び(3)は、実行されると
き、下に図式的に示したように動作する。
き、下に図式的に示したように動作する。
【0012】
【数5】オペランド3←オペランド1
【0013】
【数6】オペランド3←オペランド3+オペランド2
【0014】したがって、命令(2)は、オペランド1
の値をオペランド3内へ複写し、かつ、その後、命令
(3)が上掲の命令(1)の場合と同じ和を計算するた
めに加算を遂行するが、しかしオペランド1及び2では
なくてオペランド3及び2を使用する。命令(3)によ
って同じ和が計算されるのは、この時点で命令(3)の
オペランド2及び3がオペランド2及び1が有するのと
同じ値を有するゆえであり、これはオペランド1及び3
の値が命令(2)に起因して同じであるからである。そ
れゆえ、加算動作をさせ、かつ両被加算値を保存させる
には、全部で2つの異なる命令と共に、全部で3つのオ
ペランドが必要とされる。
の値をオペランド3内へ複写し、かつ、その後、命令
(3)が上掲の命令(1)の場合と同じ和を計算するた
めに加算を遂行するが、しかしオペランド1及び2では
なくてオペランド3及び2を使用する。命令(3)によ
って同じ和が計算されるのは、この時点で命令(3)の
オペランド2及び3がオペランド2及び1が有するのと
同じ値を有するゆえであり、これはオペランド1及び3
の値が命令(2)に起因して同じであるからである。そ
れゆえ、加算動作をさせ、かつ両被加算値を保存させる
には、全部で2つの異なる命令と共に、全部で3つのオ
ペランドが必要とされる。
【0015】極く最近数年の間に、縮小命令セットコン
ピュータ(以下、RISCと称する)アーキテクチャの
ようなマイクロプロセッサアーキテクチャが、3つのオ
ペランド命令を含むようになった。例えば、多くのRI
SCアーキテクチャにおける命令は、次のような一般書
式を有する。
ピュータ(以下、RISCと称する)アーキテクチャの
ようなマイクロプロセッサアーキテクチャが、3つのオ
ペランド命令を含むようになった。例えば、多くのRI
SCアーキテクチャにおける命令は、次のような一般書
式を有する。
【0016】
【数7】 ADDオペランド3、オペランド2、オペランド1 命令(4)
【0017】ほとんどのRISC機械において、オペラ
ンド3はデスティネーションオペランドであるのに対し
て、オペランド2及び1はソースオペランドである。そ
れゆえ、命令(4)の場合、この命令の実行はオペラン
ド1及び2を被加算数に対するソースオペランドとする
一方、その和はデスティネーションとしてのオペランド
3に記憶される。これらのオペランドの順序は変わって
よいので、オペランド1又はオペランド2のどちらかが
デスティネーションでありかつオペランド3がソースに
なることもできる。しかし、いずれにしても、かつ古い
アーキテクチャと異なり、3オペランドアーキテクチャ
内の単一オペランドはソースオペランド及びデスティネ
ーションオペランドの両方として働くことはないことに
注意されたい。
ンド3はデスティネーションオペランドであるのに対し
て、オペランド2及び1はソースオペランドである。そ
れゆえ、命令(4)の場合、この命令の実行はオペラン
ド1及び2を被加算数に対するソースオペランドとする
一方、その和はデスティネーションとしてのオペランド
3に記憶される。これらのオペランドの順序は変わって
よいので、オペランド1又はオペランド2のどちらかが
デスティネーションでありかつオペランド3がソースに
なることもできる。しかし、いずれにしても、かつ古い
アーキテクチャと異なり、3オペランドアーキテクチャ
内の単一オペランドはソースオペランド及びデスティネ
ーションオペランドの両方として働くことはないことに
注意されたい。
【0018】したがって、RISCアーキテクチャは3
オペランド命令を可能にするものの、この命令は或る決
まったアーキテクチャ内でかつ上掲の書式に従ってのみ
利用可能である。しかしながら、現在、このような命令
又はこれに匹敵する命令であっても含まない多くの他の
アーキテクチャが存在する。例えば、X86アーキテク
チャは、現在非常に大きな市場占有率を誇っているが、
それでも上掲のような命令を含まない。実際、全く新し
いオプコード(opcode)に基づいてこのようなア
ーキテクチャに非常に多くの命令を付け加えることはデ
コードハードウェアに可なりの負担になるであろうし、
かつまたこのようなアーキテクチャ内に残されたオプコ
ード空間の量を、超えることはなくても、欠乏させるで
あろう。
オペランド命令を可能にするものの、この命令は或る決
まったアーキテクチャ内でかつ上掲の書式に従ってのみ
利用可能である。しかしながら、現在、このような命令
又はこれに匹敵する命令であっても含まない多くの他の
アーキテクチャが存在する。例えば、X86アーキテク
チャは、現在非常に大きな市場占有率を誇っているが、
それでも上掲のような命令を含まない。実際、全く新し
いオプコード(opcode)に基づいてこのようなア
ーキテクチャに非常に多くの命令を付け加えることはデ
コードハードウェアに可なりの負担になるであろうし、
かつまたこのようなアーキテクチャ内に残されたオプコ
ード空間の量を、超えることはなくても、欠乏させるで
あろう。
【0019】
【発明が解決しようとする課題】上述の見地から、現在
普及しているアーキテクチャにビット匹敵性であり、か
つ、命令デコーディング及びオプコード空間のような考
慮に基づいて、複雑性が増すのを最少限に抑制する3オ
ペランド命令アーキテクチャを開発する必要が生じてい
る。
普及しているアーキテクチャにビット匹敵性であり、か
つ、命令デコーディング及びオプコード空間のような考
慮に基づいて、複雑性が増すのを最少限に抑制する3オ
ペランド命令アーキテクチャを開発する必要が生じてい
る。
【0020】
【課題を解決するための手段】本発明の好適実施は、複
数の命令を処理する方法、回路及びシステムに関する。
1実施例の方法においては、複数の命令の中から1つの
命令を受け、この命令は第1オペランド及び第2オペラ
ンドを含む。次に、受けた命令が第3オペランドを識別
するオペランドプレフィックスを含むかどうか判定す
る。受けた命令がオペランドプレフィックスを含むと云
う判定に応答して、第1オペランド、第2オペランド、
及び第3オペランドの中から選択された2つのオペラン
ドを使用して、かつ第1オペランド、第2オペランド、
及び第3オペランドのうちの1つが選択されないように
して、命令を実行して結果を発生する。次に、この結果
を、選択されなかったオペランド内に記憶する。他の回
路、システム、及び方法もまた開示されかつ特許請求の
範囲に掲げられる。
数の命令を処理する方法、回路及びシステムに関する。
1実施例の方法においては、複数の命令の中から1つの
命令を受け、この命令は第1オペランド及び第2オペラ
ンドを含む。次に、受けた命令が第3オペランドを識別
するオペランドプレフィックスを含むかどうか判定す
る。受けた命令がオペランドプレフィックスを含むと云
う判定に応答して、第1オペランド、第2オペランド、
及び第3オペランドの中から選択された2つのオペラン
ドを使用して、かつ第1オペランド、第2オペランド、
及び第3オペランドのうちの1つが選択されないように
して、命令を実行して結果を発生する。次に、この結果
を、選択されなかったオペランド内に記憶する。他の回
路、システム、及び方法もまた開示されかつ特許請求の
範囲に掲げられる。
【0021】
【発明の実施例の形態】図1は、3オペランド命令10
を線図的に示す。命令10のコード化は4つの部分に分
解され、これらの部分にはプレフィックス12、オプコ
ード14、第1オペランド16、及び第2オペランド1
8がある。下に述べるように、命令10は追加情報を含
むことがあり、これらの情報の中には他の型式のプレフ
ィックスがあるが、簡単目的のために、図1には示され
ていない。命令10の書式内にプレフィックス12を含
むことは、単一命令内に全部で3つのオペランドを生
じ、これらのオペランドにはオペランド16、オペラン
ド18ばかりでなくプレフィックス12と関連した第3
オペランドがある。次いで、これらのオペランドに説明
を移すして、次の議論では、まず、オプコード14に続
くオペランド16及び18を、次いでプレフィックス1
2に関連した第3オペランドを取り扱う。
を線図的に示す。命令10のコード化は4つの部分に分
解され、これらの部分にはプレフィックス12、オプコ
ード14、第1オペランド16、及び第2オペランド1
8がある。下に述べるように、命令10は追加情報を含
むことがあり、これらの情報の中には他の型式のプレフ
ィックスがあるが、簡単目的のために、図1には示され
ていない。命令10の書式内にプレフィックス12を含
むことは、単一命令内に全部で3つのオペランドを生
じ、これらのオペランドにはオペランド16、オペラン
ド18ばかりでなくプレフィックス12と関連した第3
オペランドがある。次いで、これらのオペランドに説明
を移すして、次の議論では、まず、オプコード14に続
くオペランド16及び18を、次いでプレフィックス1
2に関連した第3オペランドを取り扱う。
【0022】1実施例においては、オペランド16及び
オペランド18は、好適にはソースオペランドであり、
既知のX86命令セットにおけるのと同様にして指定さ
れる。本明細書中で使用される場合、単にオペランドと
云う用語は、ソースオペランド又はデスティネーション
オペランドのどちらかを表示することがある。ソースオ
ペランドが動作を遂行するためにそれからデータが検索
されるオペランドであるのに対して、デスティネーショ
ンオペランドは動作の結果としてそれにデータが記憶さ
れるオペランドである。更に、ソースオペランドは、動
作用の実際データ(すなわち、即値データ)を表すか、
又は実際データを記憶するプロセッサリソース(例え
ば、レジスタ又はメモリ)を指定することがある。それ
ゆえ、オペランド16及び18が、好適には、X86命
令セットと同じようにして確立される例においては、オ
ペランド16は(上掲の命令(1)関する場合のよう
に)ソースオペランド及びデスティネーションオペラン
ドの両方であることがあるのに対して、オペランド18
は典型的にソースオペランドに限られる。上の説明が与
えられた所で、或る例を考えてみよう。まず、2オペラ
ンドADD即値データ命令に対して、オペランド16は
ソースオペランド及びデスティネーションオペランドの
両方でありかつプロセッサリソースを指定するのに対し
て、オペランド18はオペランド16によって指定され
たリソース内に記憶されたデータに関して作用を受ける
即値データである。他の例として、2オペランドADD
レジスタ対レジスタ命令に対して、オペランド16はや
はりソースオペランド及びデスティネーションオペラン
ドの両方である、すなわち、ソースとして、オペランド
16はソースオペランド18によって指定されたリソー
ス内のデータに加算されるデータを記憶するリソースを
指定し、かつデスティネーションオペランドとしてオペ
ランド16はその和を記憶することになるリソースを指
定する。なお更に、オペランド16及び18は図1に一
般的な意味で示されているが、これらのオペランドは、
1つの以上の変位バイトと共に、ModRMバイト及び
(又は)SIB(scale, index, base、
すなわち、目盛、指標、基準)バイトのような既知の変
動値を使用して、指定されることがある。
オペランド18は、好適にはソースオペランドであり、
既知のX86命令セットにおけるのと同様にして指定さ
れる。本明細書中で使用される場合、単にオペランドと
云う用語は、ソースオペランド又はデスティネーション
オペランドのどちらかを表示することがある。ソースオ
ペランドが動作を遂行するためにそれからデータが検索
されるオペランドであるのに対して、デスティネーショ
ンオペランドは動作の結果としてそれにデータが記憶さ
れるオペランドである。更に、ソースオペランドは、動
作用の実際データ(すなわち、即値データ)を表すか、
又は実際データを記憶するプロセッサリソース(例え
ば、レジスタ又はメモリ)を指定することがある。それ
ゆえ、オペランド16及び18が、好適には、X86命
令セットと同じようにして確立される例においては、オ
ペランド16は(上掲の命令(1)関する場合のよう
に)ソースオペランド及びデスティネーションオペラン
ドの両方であることがあるのに対して、オペランド18
は典型的にソースオペランドに限られる。上の説明が与
えられた所で、或る例を考えてみよう。まず、2オペラ
ンドADD即値データ命令に対して、オペランド16は
ソースオペランド及びデスティネーションオペランドの
両方でありかつプロセッサリソースを指定するのに対し
て、オペランド18はオペランド16によって指定され
たリソース内に記憶されたデータに関して作用を受ける
即値データである。他の例として、2オペランドADD
レジスタ対レジスタ命令に対して、オペランド16はや
はりソースオペランド及びデスティネーションオペラン
ドの両方である、すなわち、ソースとして、オペランド
16はソースオペランド18によって指定されたリソー
ス内のデータに加算されるデータを記憶するリソースを
指定し、かつデスティネーションオペランドとしてオペ
ランド16はその和を記憶することになるリソースを指
定する。なお更に、オペランド16及び18は図1に一
般的な意味で示されているが、これらのオペランドは、
1つの以上の変位バイトと共に、ModRMバイト及び
(又は)SIB(scale, index, base、
すなわち、目盛、指標、基準)バイトのような既知の変
動値を使用して、指定されることがある。
【0023】プレフィックス12に説明を移すと、これ
は第3オペランドを表示するのに充分な情報をコード化
する。プレフィックス12は、2つ以上のバイトの長さ
を有してよいことに注意されたい。1実施例において
は、プレフィックス12内に含まれる第3オペランドは
デスティネーションオペランドであり、したがって、次
の例は、そのより深い理解のためにデスティネーション
オペランドを含むプレフィックスに係わる。しかしなが
ら、下に説明されるように、プレフィックス12内に含
まれるオペランドがソースオペランドである代替実施例
もまた、この技術の習熟者によって理解可能であり、か
つ上に説明したように即値データ又はプロセッサリソー
スを指定することがある。ソースオペランドとしてのプ
レフィックスオペランドの場合、プロセッサリソース
は、直接識別されるか、又は上掲のModRMシステム
及び(又は)SIBシステムに基づくような或る代替方
式によって識別されるかどちらかである。いずれにして
も、下に詳細に説明されるように、命令10のデコーデ
ィング及び実行は、単一命令で以て3オペランド動作を
実施できるようにする。
は第3オペランドを表示するのに充分な情報をコード化
する。プレフィックス12は、2つ以上のバイトの長さ
を有してよいことに注意されたい。1実施例において
は、プレフィックス12内に含まれる第3オペランドは
デスティネーションオペランドであり、したがって、次
の例は、そのより深い理解のためにデスティネーション
オペランドを含むプレフィックスに係わる。しかしなが
ら、下に説明されるように、プレフィックス12内に含
まれるオペランドがソースオペランドである代替実施例
もまた、この技術の習熟者によって理解可能であり、か
つ上に説明したように即値データ又はプロセッサリソー
スを指定することがある。ソースオペランドとしてのプ
レフィックスオペランドの場合、プロセッサリソース
は、直接識別されるか、又は上掲のModRMシステム
及び(又は)SIBシステムに基づくような或る代替方
式によって識別されるかどちらかである。いずれにして
も、下に詳細に説明されるように、命令10のデコーデ
ィング及び実行は、単一命令で以て3オペランド動作を
実施できるようにする。
【0024】図2は、本発明の方法の実施例の流れ図2
0を示す。これは、図1に示された命令10のような命
令に応答する。ステップ22は、典型的な逐次様式に配
置された命令系列からの命令をプロセッサパイプライン
に受ける。例えば、ステップ22は、図1の命令10を
受けるか、又はこれに代えてプレフィックスを持たな
い、又は或る他の動作を意図したプレフィックスを持つ
或る他の型式の命令を受ける。いずれにしても、命令を
受けるタイミングは、プログラムコードの順序によって
授けられるが、技術上知られているように、命令取り出
し、デコーディング、実行、及びその他のステップは同
時に起こるか又は順序に従わないことさえある。例え
ば、いくつかの命令は、実際に、一度に取り出されるこ
とがある。他の例としては、スーパスカラ動作におい
て、或る種の命令は、同時に実行されるか又はそれらの
逐次順序に従わないことさえある。したがって、ステッ
プ22は、命令がともかく検索され、次いで後続のステ
ップに従って分析されることを単に表す。
0を示す。これは、図1に示された命令10のような命
令に応答する。ステップ22は、典型的な逐次様式に配
置された命令系列からの命令をプロセッサパイプライン
に受ける。例えば、ステップ22は、図1の命令10を
受けるか、又はこれに代えてプレフィックスを持たな
い、又は或る他の動作を意図したプレフィックスを持つ
或る他の型式の命令を受ける。いずれにしても、命令を
受けるタイミングは、プログラムコードの順序によって
授けられるが、技術上知られているように、命令取り出
し、デコーディング、実行、及びその他のステップは同
時に起こるか又は順序に従わないことさえある。例え
ば、いくつかの命令は、実際に、一度に取り出されるこ
とがある。他の例としては、スーパスカラ動作におい
て、或る種の命令は、同時に実行されるか又はそれらの
逐次順序に従わないことさえある。したがって、ステッ
プ22は、命令がともかく検索され、次いで後続のステ
ップに従って分析されることを単に表す。
【0025】ステップ24は、ステップ22において受
けた命令が命令プレフィックスを含むかどうかを判定す
る。好適には、ステップ24は、動作のプレデコードス
テージ中に起こり、かつ既知のデコーディング技術を使
用して達成されることがある。事実、本実施例の1つの
利点は、種々の命令セットが、この中にはX86命令セ
ットがあるが、第3オペランドを指定する以外の目的に
使用されるプレフィックスを既に含むと云うことであ
る。それゆえ、これらの命令セットに基づくマイクロプ
ロセッサは、プレフィックスが存在するどうかを判定し
かつこのようにしてプレフィックスに出会うならばこれ
をデコードするための充分なハードウェアを既に含んで
いるはずである。それゆえ、この技術の習熟者は、この
ようなシステムを、ハードウェアの追加をほとんど要せ
ずに、本明細書に説明された命令プレフィックスをデコ
ードするように更に修正することができる。説明をステ
ップ24に戻し、もし判定が否定であるならば、流れは
ステップ22へ復帰して、次の逐次命令を分析する。ス
テップ22への復帰は本実施例の目的のためである、す
なわち、3オペランドプレフィックス命令に応答するた
めであることに注意されたい。それゆえ、実際には、多
くの他のステップ又は方法が命令プレフィックスを含ま
ない命令に対して生ずることがあるが、このような方法
をここで詳細に取り扱う必要はない。
けた命令が命令プレフィックスを含むかどうかを判定す
る。好適には、ステップ24は、動作のプレデコードス
テージ中に起こり、かつ既知のデコーディング技術を使
用して達成されることがある。事実、本実施例の1つの
利点は、種々の命令セットが、この中にはX86命令セ
ットがあるが、第3オペランドを指定する以外の目的に
使用されるプレフィックスを既に含むと云うことであ
る。それゆえ、これらの命令セットに基づくマイクロプ
ロセッサは、プレフィックスが存在するどうかを判定し
かつこのようにしてプレフィックスに出会うならばこれ
をデコードするための充分なハードウェアを既に含んで
いるはずである。それゆえ、この技術の習熟者は、この
ようなシステムを、ハードウェアの追加をほとんど要せ
ずに、本明細書に説明された命令プレフィックスをデコ
ードするように更に修正することができる。説明をステ
ップ24に戻し、もし判定が否定であるならば、流れは
ステップ22へ復帰して、次の逐次命令を分析する。ス
テップ22への復帰は本実施例の目的のためである、す
なわち、3オペランドプレフィックス命令に応答するた
めであることに注意されたい。それゆえ、実際には、多
くの他のステップ又は方法が命令プレフィックスを含ま
ない命令に対して生ずることがあるが、このような方法
をここで詳細に取り扱う必要はない。
【0026】ステップ24に戻り、もしこのステップの
判定が肯定ならば、流れはステップ26へと進む。ステ
ップ26は、そのプレフィックスを分析してその型式を
判定する。もし命令プレフィックスが第3オペランドを
指定するならば、流れはステップ28へ進む。他方、も
し命令プレフィックスが第3オペランド以外のプレフィ
ックスを指定するならば、流れはステップ30へ進む。
判定が肯定ならば、流れはステップ26へと進む。ステ
ップ26は、そのプレフィックスを分析してその型式を
判定する。もし命令プレフィックスが第3オペランドを
指定するならば、流れはステップ28へ進む。他方、も
し命令プレフィックスが第3オペランド以外のプレフィ
ックスを指定するならば、流れはステップ30へ進む。
【0027】ステップ30は、単に他の既知のプレフィ
ックスに応答して動作する。例えば、X86アーキテク
チャにおいて、REP、REPE/REPZ、REPN
E/REPNZ、又はLOCKのような命令プレフィッ
クスに、ステップ26において出会うこともあり、この
場合流れはステップ30及び技術上既知のプレフィック
スに応答する他のステップ(図示されていない)へ進
む。やはり、これらの型式の命令プレフィックスは3オ
ペランドプレフィックスでないので、かつ更にこのよう
な命令プレフィックスの処理は技術上既知であるゆえ
に、それらに係わる方法をここで詳細に取り扱う必要は
ない。いずれにしても、いったん命令が先行技術により
完遂されると、流れはステップ30からステップ22へ
復帰して、次に受けた命令を処理する。
ックスに応答して動作する。例えば、X86アーキテク
チャにおいて、REP、REPE/REPZ、REPN
E/REPNZ、又はLOCKのような命令プレフィッ
クスに、ステップ26において出会うこともあり、この
場合流れはステップ30及び技術上既知のプレフィック
スに応答する他のステップ(図示されていない)へ進
む。やはり、これらの型式の命令プレフィックスは3オ
ペランドプレフィックスでないので、かつ更にこのよう
な命令プレフィックスの処理は技術上既知であるゆえ
に、それらに係わる方法をここで詳細に取り扱う必要は
ない。いずれにしても、いったん命令が先行技術により
完遂されると、流れはステップ30からステップ22へ
復帰して、次に受けた命令を処理する。
【0028】説明をステップ26へ戻すと、もしこのス
テップの判定が肯定ならば、流れはステップ28へ進
む。ステップ28は、第3オペランドプレフィックスが
提供する追加情報に従って第3オペランドプレフィック
ス命令を完遂する。このような命令の完遂の例、及び先
行技術との明確な相違を証明するために、初めのオペラ
ンドを保存し、第1オペランド及び第2オペランド上の
演算の結果である第3オペランドを最終的に記憶するの
に2つの命令が必要とされる上掲の先行技術の例を想起
されたい。
テップの判定が肯定ならば、流れはステップ28へ進
む。ステップ28は、第3オペランドプレフィックスが
提供する追加情報に従って第3オペランドプレフィック
ス命令を完遂する。このような命令の完遂の例、及び先
行技術との明確な相違を証明するために、初めのオペラ
ンドを保存し、第1オペランド及び第2オペランド上の
演算の結果である第3オペランドを最終的に記憶するの
に2つの命令が必要とされる上掲の先行技術の例を想起
されたい。
【0029】
【数8】 MOVオペランド3、オペランド1 命令(2)
【0030】
【数9】 ADDオペランド3、オペランド2 命令(3)
【0031】しかしながら、本実施例においては、図1
の命令10は、次の命令(4)によって示されるような
形を呈することになろう。
の命令10は、次の命令(4)によって示されるような
形を呈することになろう。
【0032】
【数10】 オペランド3、ADDオペランド1、オペランド2 命令(4)
【0033】それゆえ、図1の命令10を書式に表した
命令(4)を用いると、プレフィックス12はオペラン
ド3を含み、このオペランドはオプコード動作の結果を
記憶するデスティネーションリソースを指定するのに対
して、オペランド16及び18はソースオペランドであ
る。したがって、現行の例では、プレフィッス12は、
オペランド1及び2によって表されるデータの和を受け
るオペランド3を指定する。やはり、オペランド2は、
即値データであるか又はプロセッサリソースを指定する
オペランドであるのに対して、オペランド1は、好適に
は、プロセッサリソースを指定する。この動作を達成す
るために、オペランドステージはオペランド1及び2に
アクセスしてソースオペランドを検索し、かつ実行ユニ
ットが先行技術の再書き込み動作と異なるやり方で制御
される。特に、加算の結果をデスティネーションオペラ
ンドとしてのオペランド1に書き込む代わりに、この結
果をプレフィックスオペランドによって識別されたリソ
ースに記憶する。したがって、もし命令(3)が「オペ
ランド3」を含まなかったとしたならば、適当な実行ユ
ニットがオペランド1及び2を加算しかつその結果をオ
ペランド1に(又はもしオペランド1がレジスタであっ
たとしかつレジスタのリネーミング(renamin
g)が実行されていたとしたならばリネームされたレジ
スタ)に記憶することであろう。しかしながら、これと
は全く対照的に、命令(3)の完遂は、記憶ユニットが
結果をオペランド1ではなくオペランド3に書き込むよ
うに実施される。更に、プレフィックスデコードアーキ
テクチャが本場合には存在するばかりでなく、記憶回路
が本場合には利用可能であるために、先行技術ならば2
つのオペランドに関してのみしか働かないであろう所で
も比較的僅かのハードウェアの追加を要するだけで第3
オペランドを含ませることが可能であることを、この技
術の習熟者ならば承知するはずである。それゆえ、僅か
に複雑性を増すだけで、命令(4)のより効率的な実行
及び達成を可能にし、その上、先行技術に比べて命令を
50%減少させることができる。
命令(4)を用いると、プレフィックス12はオペラン
ド3を含み、このオペランドはオプコード動作の結果を
記憶するデスティネーションリソースを指定するのに対
して、オペランド16及び18はソースオペランドであ
る。したがって、現行の例では、プレフィッス12は、
オペランド1及び2によって表されるデータの和を受け
るオペランド3を指定する。やはり、オペランド2は、
即値データであるか又はプロセッサリソースを指定する
オペランドであるのに対して、オペランド1は、好適に
は、プロセッサリソースを指定する。この動作を達成す
るために、オペランドステージはオペランド1及び2に
アクセスしてソースオペランドを検索し、かつ実行ユニ
ットが先行技術の再書き込み動作と異なるやり方で制御
される。特に、加算の結果をデスティネーションオペラ
ンドとしてのオペランド1に書き込む代わりに、この結
果をプレフィックスオペランドによって識別されたリソ
ースに記憶する。したがって、もし命令(3)が「オペ
ランド3」を含まなかったとしたならば、適当な実行ユ
ニットがオペランド1及び2を加算しかつその結果をオ
ペランド1に(又はもしオペランド1がレジスタであっ
たとしかつレジスタのリネーミング(renamin
g)が実行されていたとしたならばリネームされたレジ
スタ)に記憶することであろう。しかしながら、これと
は全く対照的に、命令(3)の完遂は、記憶ユニットが
結果をオペランド1ではなくオペランド3に書き込むよ
うに実施される。更に、プレフィックスデコードアーキ
テクチャが本場合には存在するばかりでなく、記憶回路
が本場合には利用可能であるために、先行技術ならば2
つのオペランドに関してのみしか働かないであろう所で
も比較的僅かのハードウェアの追加を要するだけで第3
オペランドを含ませることが可能であることを、この技
術の習熟者ならば承知するはずである。それゆえ、僅か
に複雑性を増すだけで、命令(4)のより効率的な実行
及び達成を可能にし、その上、先行技術に比べて命令を
50%減少させることができる。
【0034】上掲の実施例は、再書込み中にアクセスさ
れるデスティネーションオペランドを指定する命令プレ
フィックスを考える一方、2つのソースオペランドは先
行技術におけるようにオプコードに続きかつオプコード
ステージ中アクセスされると云うことに注意されたい。
この好適実施例は、2オペランド命令を取り扱うように
既に構成されている機械に対してアーキテクチャに最少
限の変更しか生じない。更に、代替実施例では、図1の
命令10は追加ビットを含むこともでき、又は(フラグ
等のような)命令の外部の指定を受けることもでき、こ
れによって、もしその指定が或るやり方でセットされる
ならば第3オペランドプレフィックスが無視され、この
場合、そのプレフィックスは考慮されずかつその命令が
先行技術におけるように2オペランドの意味に従って動
作する。なお更に、命令プレフィックスを有する好適実
施例がデスティネーションオペランドを識別するのにか
かわらず、この技術の習熟者ならば、上掲の実施例を修
正して、命令プレフィックスがデスティネーションオペ
ランドの代わりにソースオペランドを指定し、かつ命令
オプコードに続くオペランドの1つがデスティネーショ
ンオペランドを指定するような代替実施例を提供するこ
ともできる。このような代替実施例において、かつソー
スオペランドとしてのプレフィックスオペランドを用い
て、プレフィックスオペランドは、即値データを含む
か、又は命令に対するデータを記憶するプロセッサリソ
ースを指定するかのどちかをできる。それゆえ、オペラ
ンドステージ中、2つのオペランドの1つは命令プレフ
ィックスオペランドからアクセスされ、及びその後の再
書込みステージが結果をオプコードの後でその命令内に
配置された2つのオペランドの1つに記憶するであろ
う。
れるデスティネーションオペランドを指定する命令プレ
フィックスを考える一方、2つのソースオペランドは先
行技術におけるようにオプコードに続きかつオプコード
ステージ中アクセスされると云うことに注意されたい。
この好適実施例は、2オペランド命令を取り扱うように
既に構成されている機械に対してアーキテクチャに最少
限の変更しか生じない。更に、代替実施例では、図1の
命令10は追加ビットを含むこともでき、又は(フラグ
等のような)命令の外部の指定を受けることもでき、こ
れによって、もしその指定が或るやり方でセットされる
ならば第3オペランドプレフィックスが無視され、この
場合、そのプレフィックスは考慮されずかつその命令が
先行技術におけるように2オペランドの意味に従って動
作する。なお更に、命令プレフィックスを有する好適実
施例がデスティネーションオペランドを識別するのにか
かわらず、この技術の習熟者ならば、上掲の実施例を修
正して、命令プレフィックスがデスティネーションオペ
ランドの代わりにソースオペランドを指定し、かつ命令
オプコードに続くオペランドの1つがデスティネーショ
ンオペランドを指定するような代替実施例を提供するこ
ともできる。このような代替実施例において、かつソー
スオペランドとしてのプレフィックスオペランドを用い
て、プレフィックスオペランドは、即値データを含む
か、又は命令に対するデータを記憶するプロセッサリソ
ースを指定するかのどちかをできる。それゆえ、オペラ
ンドステージ中、2つのオペランドの1つは命令プレフ
ィックスオペランドからアクセスされ、及びその後の再
書込みステージが結果をオプコードの後でその命令内に
配置された2つのオペランドの1つに記憶するであろ
う。
【0035】上に説明した実施例は、X86マイクロプ
ロセッサ内にいままで存在しなかった少なくとも2つの
命令書式を生じることにまた注意されたい。例えば、次
の2つの命令の図式的指定を考えよう。
ロセッサ内にいままで存在しなかった少なくとも2つの
命令書式を生じることにまた注意されたい。例えば、次
の2つの命令の図式的指定を考えよう。
【0036】
【数11】 メモリ←(レジスタ)オペランド(即値データ) 命令(5)
【0037】
【数12】 メモリ←(レジスタ)オペランド(レジスタ) 命令(6)
【0038】命令(5)は、本実施の下で、メモリ場所
が、命令プレフィッス内のデスティネーションオペラン
ドとして指定され、かつレジスタ内の第1値と即値デー
タである第2値との間の演算の結果を受けることになる
のを図式的に示す。やはり、先行X86命令セットであ
ったならば、こうではなくて、演算結果をソースオペラ
ンドである同じレジスタに(又は適当なリネームレジス
タに)記憶し、かつ第2命令がそのメモリ場所にソース
レジスタの内容を複写することを要求することであろ
う。同様に、命令(6)は、本実施例の下で、メモリ場
所が命令プレフィックス内のデスティネーションオペラ
ンドとして指定され、かつレジスタ内の第1値とこのレ
ジスタと異なるレジスタ内の第2値との間の演算結果を
受けることになるのを図式的に示す。やはり、先行技術
ならば、この動作を達成するために2つの命令を普通必
要とする。
が、命令プレフィッス内のデスティネーションオペラン
ドとして指定され、かつレジスタ内の第1値と即値デー
タである第2値との間の演算の結果を受けることになる
のを図式的に示す。やはり、先行X86命令セットであ
ったならば、こうではなくて、演算結果をソースオペラ
ンドである同じレジスタに(又は適当なリネームレジス
タに)記憶し、かつ第2命令がそのメモリ場所にソース
レジスタの内容を複写することを要求することであろ
う。同様に、命令(6)は、本実施例の下で、メモリ場
所が命令プレフィックス内のデスティネーションオペラ
ンドとして指定され、かつレジスタ内の第1値とこのレ
ジスタと異なるレジスタ内の第2値との間の演算結果を
受けることになるのを図式的に示す。やはり、先行技術
ならば、この動作を達成するために2つの命令を普通必
要とする。
【0039】上の実施例を説明した所で、図3はこの実
施例を含むことができるマイクロプロセッサ実施例のブ
ロック図を示す。図3を参照して、好適実施例が中に実
現される例示のスーパスカラパイプライン化マイクロプ
ロセッサ110を含む例示のデータ処理システム102
を説明する。云うまでもなく、本実施例が種々のアーキ
テクチャのマイクロプロセッサに利用されると考えられ
るので、システム102の及びマイクロプロセッサ11
0のアーキテクチャは、ここではただ例として説明され
る。したがって、本明細書を参照したならば、この技術
の通常の習熟者は本実施例をこのような他のマイクロプ
ロセッサアーキテクチャ内で容易に実現することができ
ると考えられる。
施例を含むことができるマイクロプロセッサ実施例のブ
ロック図を示す。図3を参照して、好適実施例が中に実
現される例示のスーパスカラパイプライン化マイクロプ
ロセッサ110を含む例示のデータ処理システム102
を説明する。云うまでもなく、本実施例が種々のアーキ
テクチャのマイクロプロセッサに利用されると考えられ
るので、システム102の及びマイクロプロセッサ11
0のアーキテクチャは、ここではただ例として説明され
る。したがって、本明細書を参照したならば、この技術
の通常の習熟者は本実施例をこのような他のマイクロプ
ロセッサアーキテクチャ内で容易に実現することができ
ると考えられる。
【0040】図3に示されたマイクロプロセッサ110
は、バスBを介して他のシステムデバイスに接続され
る。この例では、バスBは単一バスとして示されている
が、バスBはPCIローカルバスアーキテクチャを利用
する従来のコンピュータ内で既知のように、異なる速度
及びプロトコルを有する多数バスも表すことを、もちろ
ん考えており、単一バスBはここでは単に例としてかつ
簡単のために示されている。システム102は、通信ポ
ート103(モデムポート、モデム、ネットワークイン
タフェース等を含む)、グラフィックディスプレイシス
テム104(ビデオメモリ、ビデオプロセッサ、グラフ
ィックモニタを含む)、典型的にダイナミックランダム
アクセスメモリ(DRAM)によって実現されかつスタ
ック107を含む主メモリシステム105、入力装置1
06(キボード、位置入力装置、及びこれらに対するイ
ンタフェース回路を含む)、及びディスクシステム10
8(ハードディスク装置、フロッピーディスク装置、及
びCD−ROM駆動装置を含む)のような従来のサブシ
ステムを含む。したがって、図3のシステム102は、
技術上いま普及しているような、従来のデスクトップコ
ンピュータ又はワークステーションに相当すると考えら
れる。もちろん、この技術の通常の熟練者が承知するよ
うに、マイクロプロセッサ110の他のシステム実現も
また、本実施例から受益することができる。
は、バスBを介して他のシステムデバイスに接続され
る。この例では、バスBは単一バスとして示されている
が、バスBはPCIローカルバスアーキテクチャを利用
する従来のコンピュータ内で既知のように、異なる速度
及びプロトコルを有する多数バスも表すことを、もちろ
ん考えており、単一バスBはここでは単に例としてかつ
簡単のために示されている。システム102は、通信ポ
ート103(モデムポート、モデム、ネットワークイン
タフェース等を含む)、グラフィックディスプレイシス
テム104(ビデオメモリ、ビデオプロセッサ、グラフ
ィックモニタを含む)、典型的にダイナミックランダム
アクセスメモリ(DRAM)によって実現されかつスタ
ック107を含む主メモリシステム105、入力装置1
06(キボード、位置入力装置、及びこれらに対するイ
ンタフェース回路を含む)、及びディスクシステム10
8(ハードディスク装置、フロッピーディスク装置、及
びCD−ROM駆動装置を含む)のような従来のサブシ
ステムを含む。したがって、図3のシステム102は、
技術上いま普及しているような、従来のデスクトップコ
ンピュータ又はワークステーションに相当すると考えら
れる。もちろん、この技術の通常の熟練者が承知するよ
うに、マイクロプロセッサ110の他のシステム実現も
また、本実施例から受益することができる。
【0041】マイクロプロセッサ110は、バスBに接
続されるバスインタフェースユニット(以下、BIUと
称する)112を含み、このユニットはマイクロプロセ
ッサ110とシステム102内の他の素子との間の通信
を制御しかつ実施する。BIU112は、この機能を遂
行する適当な制御及びクロック電子回路を含み、動作速
度を向上する書込みバッファを含み、及び内部マイクロ
プロセッサ動作をバスBタイミング制約と同期させるよ
うにタイミング電子回路を含む。マイクロプロセッサ1
10は、また、クロック発生及び制御電子回路120を
含み、この電子回路は、この例示のマイクロプロセッサ
110では、バスBからのバスクロックに基づいて内部
クロック位相を発生し、この内部クロック位相の周波数
は、この例では、バスクロックの周波数の倍数として選
択的にプログラムされる。
続されるバスインタフェースユニット(以下、BIUと
称する)112を含み、このユニットはマイクロプロセ
ッサ110とシステム102内の他の素子との間の通信
を制御しかつ実施する。BIU112は、この機能を遂
行する適当な制御及びクロック電子回路を含み、動作速
度を向上する書込みバッファを含み、及び内部マイクロ
プロセッサ動作をバスBタイミング制約と同期させるよ
うにタイミング電子回路を含む。マイクロプロセッサ1
10は、また、クロック発生及び制御電子回路120を
含み、この電子回路は、この例示のマイクロプロセッサ
110では、バスBからのバスクロックに基づいて内部
クロック位相を発生し、この内部クロック位相の周波数
は、この例では、バスクロックの周波数の倍数として選
択的にプログラムされる。
【0042】図3で明らかなように、マイクロプロセッ
サ110は、内部キャッシュメモリの3つのレベルを有
し、これらのうちの最高のレベル2キャッシュ114
は、BIU112に接続される。この例では、レベル2
キャッシュ114は、統一キャッシュであり、かつBI
U112を経由して全てのキャッシュ可能データ及びキ
ャッシュ可能命令を受けるように構成されているので、
マイクロプロセッサ110によって発せられるバストラ
フィックの多くがレベル2キャッシュ114を経由して
達成される。もちろん、マイクロプロセッサ110は、
或るバス読出し及び書込みを「キャッシュ不能」として
取り扱うことによって、キャッシュ114を迂回するバ
ストラフィックを実施することもまたある。図3に示さ
れたように、レベル2キャッシュ114は、2つのレベ
ル1キャッシュ116に接続され、レベル1データキャ
ッシュ116dはデータに専用され、他方、レベル1命
令キャッシュ116iは命令に専用される。マイクロプ
ロセッサ110による電力消費は、レベル1キャッシュ
116の適当な1つのキャッシュ喪失の際に限りレベル
2キャッシュ114しかアクセスしないことによって最
低限に抑えられる。更に、データ側に、マイクロキャッ
シュ118がレベル0キャッシュとして具備され、かつ
この例では、完全に二重ポートキャッシュである。
サ110は、内部キャッシュメモリの3つのレベルを有
し、これらのうちの最高のレベル2キャッシュ114
は、BIU112に接続される。この例では、レベル2
キャッシュ114は、統一キャッシュであり、かつBI
U112を経由して全てのキャッシュ可能データ及びキ
ャッシュ可能命令を受けるように構成されているので、
マイクロプロセッサ110によって発せられるバストラ
フィックの多くがレベル2キャッシュ114を経由して
達成される。もちろん、マイクロプロセッサ110は、
或るバス読出し及び書込みを「キャッシュ不能」として
取り扱うことによって、キャッシュ114を迂回するバ
ストラフィックを実施することもまたある。図3に示さ
れたように、レベル2キャッシュ114は、2つのレベ
ル1キャッシュ116に接続され、レベル1データキャ
ッシュ116dはデータに専用され、他方、レベル1命
令キャッシュ116iは命令に専用される。マイクロプ
ロセッサ110による電力消費は、レベル1キャッシュ
116の適当な1つのキャッシュ喪失の際に限りレベル
2キャッシュ114しかアクセスしないことによって最
低限に抑えられる。更に、データ側に、マイクロキャッ
シュ118がレベル0キャッシュとして具備され、かつ
この例では、完全に二重ポートキャッシュである。
【0043】図3に示されかつ上述したように、マイク
ロプロセッサ110は、スーパスカラ型のものである。
この例では、多重実行ユニットは、マイクロプロセッサ
110内に具備されて、単一命令ポインタエントリに対
して最高4つまでの命令を同時に並列に実行できるよう
にする。これらの実行ユニットは、条件付き飛越し、整
数演算、及び論理演算を処理する2つのALU14
20 、1421 を含み、またFPU130、2つのロー
ド−記憶ユニット1400 、1401 、マイクロシーケ
ンサ148を含む。2つのロード−記憶ユニット140
は、マイクロキャッシュ118への真の並列アクセスの
ためにこのマイクロキャッシュへの2つのポートを利用
し、かつまたレジスタファイル139内のレジスタへの
ロード動作及び記憶動作を遂行する。データマイクロア
ドレス変換バッファ(データμTLBと称する)138
が具備されて、従来のやり方で論理アドレスを物理アド
レスに変換する。
ロプロセッサ110は、スーパスカラ型のものである。
この例では、多重実行ユニットは、マイクロプロセッサ
110内に具備されて、単一命令ポインタエントリに対
して最高4つまでの命令を同時に並列に実行できるよう
にする。これらの実行ユニットは、条件付き飛越し、整
数演算、及び論理演算を処理する2つのALU14
20 、1421 を含み、またFPU130、2つのロー
ド−記憶ユニット1400 、1401 、マイクロシーケ
ンサ148を含む。2つのロード−記憶ユニット140
は、マイクロキャッシュ118への真の並列アクセスの
ためにこのマイクロキャッシュへの2つのポートを利用
し、かつまたレジスタファイル139内のレジスタへの
ロード動作及び記憶動作を遂行する。データマイクロア
ドレス変換バッファ(データμTLBと称する)138
が具備されて、従来のやり方で論理アドレスを物理アド
レスに変換する。
【0044】これらの多重実行ユニットは、多重7ステ
ージパイプラインを介して制御される。これらのステー
ジは、次の通りである。
ージパイプラインを介して制御される。これらのステー
ジは、次の通りである。
【0045】 F 取出し: このステージは命令アドレスを発
生しかつ命令キャッシュ又は命令メモリから命令を読み
出す。 PD0 プレデコードステージ0: このステージは
最高3つのまでの取り出されたX86型命令の長さ及び
開始位置を決定する。 PD1 プレデコードステージ1: このステージは
X86命令バイトを抽出し、かつデコードのためにそれ
らを固定長書式に記録する。 DC デコード: このステージはX86命令をア
トミック動作(以下、AOpと称する)に変換する。 SC スケジュール: このステージは最高4つま
でのAOpを適当な実行ユニットに割り当てる。 OP オペランド: このステージはAOpによっ
て指示されたレジスタオペランドを検索する。 EX 実行: このステージはAOp及び検索され
たオペランドに従い実行ユニットをランさせる。 WB 再書込み: このステージは実行の結果をレ
ジスタ又はメモリに記憶する。
生しかつ命令キャッシュ又は命令メモリから命令を読み
出す。 PD0 プレデコードステージ0: このステージは
最高3つのまでの取り出されたX86型命令の長さ及び
開始位置を決定する。 PD1 プレデコードステージ1: このステージは
X86命令バイトを抽出し、かつデコードのためにそれ
らを固定長書式に記録する。 DC デコード: このステージはX86命令をア
トミック動作(以下、AOpと称する)に変換する。 SC スケジュール: このステージは最高4つま
でのAOpを適当な実行ユニットに割り当てる。 OP オペランド: このステージはAOpによっ
て指示されたレジスタオペランドを検索する。 EX 実行: このステージはAOp及び検索され
たオペランドに従い実行ユニットをランさせる。 WB 再書込み: このステージは実行の結果をレ
ジスタ又はメモリに記憶する。
【0046】図3を再び参照すると、上掲のパイプライ
ンステージは、マイクロプロセッサ110内の種々の機
能ブロックによって遂行される。取出しユニット126
は、命令マイクロアドレス変換バッファ(命令μTLB
と称する)122を介して、命令ポインタから命令アド
レスを発生し、命令μTLB122は従来のやり方で論
理命令アドレスを物理アドレスに変換して、レベル1命
令キャッシュ116iに供給する。命令キャッシュ11
6iは命令データの流れを発生して取出しユニット12
6へ供給し、後者は、立ち代わって、命令コードをプレ
デコードステージへ所望の順序で供給する。純理論的な
実行が取出しユニット126によって更に下に詳細に説
明されるやり方で、主として制御される。
ンステージは、マイクロプロセッサ110内の種々の機
能ブロックによって遂行される。取出しユニット126
は、命令マイクロアドレス変換バッファ(命令μTLB
と称する)122を介して、命令ポインタから命令アド
レスを発生し、命令μTLB122は従来のやり方で論
理命令アドレスを物理アドレスに変換して、レベル1命
令キャッシュ116iに供給する。命令キャッシュ11
6iは命令データの流れを発生して取出しユニット12
6へ供給し、後者は、立ち代わって、命令コードをプレ
デコードステージへ所望の順序で供給する。純理論的な
実行が取出しユニット126によって更に下に詳細に説
明されるやり方で、主として制御される。
【0047】命令のプレデコーディングは、マイクロプ
ロセッサ110内の2つの部分、すなわち、プレデコー
ド0ステージ128及びプレデコード1ステージ132
に分割される。これら2つのステージは、別個のパイプ
ラインステージとして働き、かつ一緒に動作して最高3
つまでのX86命令を位置決めしかつこれらをデコーダ
134に供給する。このような訳で、マイクロプロセッ
サ110内のパイプラインのプレデコードステージは、
3命令幅である。上述のように、プレデコード0ステー
ジ128は、3つまでのX86命令(これらは、もちろ
ん、可変長である)の寸法及び位置を決定し、かつこの
ような訳で、3つの命令認識ユニット(recogni
zer)から構成され、プレデコード1ステージ132
はマルチバイト命令を固定長書式に記録し、デコーディ
ングを容易にする。
ロセッサ110内の2つの部分、すなわち、プレデコー
ド0ステージ128及びプレデコード1ステージ132
に分割される。これら2つのステージは、別個のパイプ
ラインステージとして働き、かつ一緒に動作して最高3
つまでのX86命令を位置決めしかつこれらをデコーダ
134に供給する。このような訳で、マイクロプロセッ
サ110内のパイプラインのプレデコードステージは、
3命令幅である。上述のように、プレデコード0ステー
ジ128は、3つまでのX86命令(これらは、もちろ
ん、可変長である)の寸法及び位置を決定し、かつこの
ような訳で、3つの命令認識ユニット(recogni
zer)から構成され、プレデコード1ステージ132
はマルチバイト命令を固定長書式に記録し、デコーディ
ングを容易にする。
【0048】この例におけるデコードユニット134は
4つの命令デコーダを含み、これらのデコーダの各々は
プレデコード1ステージ132から固定長X86命令を
受けかつ1つから3つのAOpを発生する能力を有す
る。AOpは、RISC命令と実質的に等価である。4
つのデコーダのうちの3つが並列に動作して、最高9ま
でのAOpをデコードユニット134の出力上のデコー
ド待ち行列内に入れてスケジューリングを待機させる。
第4デコーダは、特別な場合に対する予備である。スケ
ジューラ136は、デコードユニット134の出力上の
デコード待ち行列から最高4つまでのAOpを読み出
し、かつこれらのAOpを適当な実行ユニットに割り当
てる。更に、オペランドユニット144は、オペランド
を受けかつ実行のために用意する。図3に示されたよう
に、オペランドユニット144は、マルチプレクサ14
5を経由して、シーケンサ144及びマイクロコードR
OM146から入力を受け、かつ命令の実行に供される
レジスタオペランドを取り出す。更に、この例によれ
ば、オペランドユニットは、記憶されるように準備を完
了した結果をレジスタに送るためにオペランド転送を遂
行し、かつまたロード及び記憶型のAOpに対してアド
レス発生を遂行する。
4つの命令デコーダを含み、これらのデコーダの各々は
プレデコード1ステージ132から固定長X86命令を
受けかつ1つから3つのAOpを発生する能力を有す
る。AOpは、RISC命令と実質的に等価である。4
つのデコーダのうちの3つが並列に動作して、最高9ま
でのAOpをデコードユニット134の出力上のデコー
ド待ち行列内に入れてスケジューリングを待機させる。
第4デコーダは、特別な場合に対する予備である。スケ
ジューラ136は、デコードユニット134の出力上の
デコード待ち行列から最高4つまでのAOpを読み出
し、かつこれらのAOpを適当な実行ユニットに割り当
てる。更に、オペランドユニット144は、オペランド
を受けかつ実行のために用意する。図3に示されたよう
に、オペランドユニット144は、マルチプレクサ14
5を経由して、シーケンサ144及びマイクロコードR
OM146から入力を受け、かつ命令の実行に供される
レジスタオペランドを取り出す。更に、この例によれ
ば、オペランドユニットは、記憶されるように準備を完
了した結果をレジスタに送るためにオペランド転送を遂
行し、かつまたロード及び記憶型のAOpに対してアド
レス発生を遂行する。
【0049】マイクロシーケンサ148は、マイクロコ
ードROM146と組み合わさって、一般に1サイクル
内で実行する最新AOpであるマイクロコードエントリ
AOpの実行に当たってALU142及びロード−記憶
ユニッ140を制御する。この例では、マイクロシーケ
ンサは148は、マイクロコード化マイクロ命令に対す
るこの制御を実施するためにマイクロコードROM14
6内に記憶されたこれらのマイクロ命令を通じて逐次制
御する。マイクロコード化マイクロ命令の例としては、
マイクロプロセッサ110の場合、複素命令又は稀に使
用されるX86命令、すなわち、セグメントレジスタ又
は制御レジスタを修正する命令であって例外及び割込み
を取り扱うX86命令、及び(REP命令、及び全ての
レジスタをプッシュ(PUSH)及びポップ(POP)
する命令のような)マルチサイクル命令がある。
ードROM146と組み合わさって、一般に1サイクル
内で実行する最新AOpであるマイクロコードエントリ
AOpの実行に当たってALU142及びロード−記憶
ユニッ140を制御する。この例では、マイクロシーケ
ンサは148は、マイクロコード化マイクロ命令に対す
るこの制御を実施するためにマイクロコードROM14
6内に記憶されたこれらのマイクロ命令を通じて逐次制
御する。マイクロコード化マイクロ命令の例としては、
マイクロプロセッサ110の場合、複素命令又は稀に使
用されるX86命令、すなわち、セグメントレジスタ又
は制御レジスタを修正する命令であって例外及び割込み
を取り扱うX86命令、及び(REP命令、及び全ての
レジスタをプッシュ(PUSH)及びポップ(POP)
する命令のような)マルチサイクル命令がある。
【0050】マイクロプロセッサ110は、また、JT
AG走査試験及び或る内蔵自己試験機能の動作を制御し
て、製造完了の際、及びリセット又はその他の事象の際
に、マイクロプロセッサ110の動作の妥当性を保証す
る電子回路124を含む。
AG走査試験及び或る内蔵自己試験機能の動作を制御し
て、製造完了の際、及びリセット又はその他の事象の際
に、マイクロプロセッサ110の動作の妥当性を保証す
る電子回路124を含む。
【0051】図3の説明ばかりでなく先行の図の説明か
ら、この技術の習熟者ならば承知するように、図1及び
図2を使って説明された機能を達成する回路実施例を図
3に示したのと類似の構成要素内に組み込むこともでき
る。例えば、命令のデコーディングは、プレデコードス
テージ128及び132ばかりでなくプレデコードステ
ージ132を用いて行われる。他の例としては、実行が
ALU1420 及び1421 のような多くの実行ユニッ
トを用いて達成される。更に、他の例として、実行の結
果がレジスタファイル139のような多くの異なる記憶
素子、又は主メモリサブシステム105に記憶される。
種々の関連機能が、図3に示された適当な電子回路によ
って更に遂行されることがある。
ら、この技術の習熟者ならば承知するように、図1及び
図2を使って説明された機能を達成する回路実施例を図
3に示したのと類似の構成要素内に組み込むこともでき
る。例えば、命令のデコーディングは、プレデコードス
テージ128及び132ばかりでなくプレデコードステ
ージ132を用いて行われる。他の例としては、実行が
ALU1420 及び1421 のような多くの実行ユニッ
トを用いて達成される。更に、他の例として、実行の結
果がレジスタファイル139のような多くの異なる記憶
素子、又は主メモリサブシステム105に記憶される。
種々の関連機能が、図3に示された適当な電子回路によ
って更に遂行されることがある。
【0052】
【発明の効果】上の説明から承知されるように、上述の
実施例は設計が複雑になるのを最少限に抑制して、先行
技術を著しく改善する。命令処理は、種々の場合に50
%減少される。更に、命令プレフィックス内にデスティ
ネーションオペランドとして又はこれに代えてソースオ
ペランドとして指定されたオペランドを有するような、
種々の代替実施例が上に説明された。その他の例も、こ
の技術の熟練者によって、確実に理解可能である。例え
ば、上述の実施例はX86アーキテクチャを益するが、
他のマイクロプロセッサも同様に受益すると云える。し
たがって、本実施を詳細に説明したが、その種々の置
換、修正、又は代替実施例を、前掲の特許請求の範囲に
よって画定された本発明の範囲から逸脱することなく上
に記載された説明から達成することができる。
実施例は設計が複雑になるのを最少限に抑制して、先行
技術を著しく改善する。命令処理は、種々の場合に50
%減少される。更に、命令プレフィックス内にデスティ
ネーションオペランドとして又はこれに代えてソースオ
ペランドとして指定されたオペランドを有するような、
種々の代替実施例が上に説明された。その他の例も、こ
の技術の熟練者によって、確実に理解可能である。例え
ば、上述の実施例はX86アーキテクチャを益するが、
他のマイクロプロセッサも同様に受益すると云える。し
たがって、本実施を詳細に説明したが、その種々の置
換、修正、又は代替実施例を、前掲の特許請求の範囲に
よって画定された本発明の範囲から逸脱することなく上
に記載された説明から達成することができる。
【0053】以上の説明に関して更に以下の項を開示す
る。
る。
【0054】(1) 複数の命令を処理するためにプロ
セッサを動作させる方法であって、前記複数の命令の中
から1つの命令を受けるステップであって、前記命令が
第1オペランドと第2オペランドとを含む、前記受ける
ステップ、前記受けた命令がオペランドプレフィックス
を含むかどうか判定するステップであって、前記オペラ
ンドプレフィックスが第3オペランドを識別する、前記
判定するステップ、前記受けた命令がオペランドプレフ
ィックスを含むと云う判定に応答して、結果を発生する
ために前記受けた命令を実行するステップであって、前
記第1オペランド、前記第2オペランド、及び前記第3
オペランドの中から選択された2つのオペランドを使用
し、かつ前記第1オペランド、前記第2オペランド、及
び前記第3オペランドのうち1つが選択されないように
する、前記実行するステップ、及び前記選択されなかっ
たオペランド内に前記結果を記憶するステップを含む方
法。
セッサを動作させる方法であって、前記複数の命令の中
から1つの命令を受けるステップであって、前記命令が
第1オペランドと第2オペランドとを含む、前記受ける
ステップ、前記受けた命令がオペランドプレフィックス
を含むかどうか判定するステップであって、前記オペラ
ンドプレフィックスが第3オペランドを識別する、前記
判定するステップ、前記受けた命令がオペランドプレフ
ィックスを含むと云う判定に応答して、結果を発生する
ために前記受けた命令を実行するステップであって、前
記第1オペランド、前記第2オペランド、及び前記第3
オペランドの中から選択された2つのオペランドを使用
し、かつ前記第1オペランド、前記第2オペランド、及
び前記第3オペランドのうち1つが選択されないように
する、前記実行するステップ、及び前記選択されなかっ
たオペランド内に前記結果を記憶するステップを含む方
法。
【0055】(2) 第1項記載の方法において、前記
第3オペランドがデスティネーションオペランドを含
み、かつ前記記憶するステップが前記結果を前記デステ
ィネーションオペランドに記憶することを含む、方法。
第3オペランドがデスティネーションオペランドを含
み、かつ前記記憶するステップが前記結果を前記デステ
ィネーションオペランドに記憶することを含む、方法。
【0056】(3) 第1項記載の方法において、前記
第3オペランドが非レジスタデスティネーションオペラ
ンドを含む、方法。
第3オペランドが非レジスタデスティネーションオペラ
ンドを含む、方法。
【0057】(4) 第3項記載の方法において、前記
非レジスタデスティネーションオペランドがメモリデス
ティネーションオペランドを含む、方法。
非レジスタデスティネーションオペランドがメモリデス
ティネーションオペランドを含む、方法。
【0058】(5) 第3項記載の方法において、前記
第1オペランドがレジスタオペランドを含みかつ前記第
2オペランドがレジスタオペランドを含む、方法。
第1オペランドがレジスタオペランドを含みかつ前記第
2オペランドがレジスタオペランドを含む、方法。
【0059】(6) 第3項記載の方法において、前記
第1オペランドがレジスタオペランドを含みかつ前記第
2オペランドが即値データ値を含む、方法。
第1オペランドがレジスタオペランドを含みかつ前記第
2オペランドが即値データ値を含む、方法。
【0060】(7) 第3項記載の方法において、前記
命令がオプコードと、前記非レジスタデスティネーショ
ンオペランドに続くかつ前記オプコードの前にある少な
くとも1つのオフセットバイトとを更に含む、方法。
命令がオプコードと、前記非レジスタデスティネーショ
ンオペランドに続くかつ前記オプコードの前にある少な
くとも1つのオフセットバイトとを更に含む、方法。
【0061】(8) 第1項記載の方法において、オペ
ランドプレフィックスを含む前記命令がX86命令であ
る、方法。
ランドプレフィックスを含む前記命令がX86命令であ
る、方法。
【0062】(9) 第1項記載の方法において、オペ
ランドプレフィックスを用いない、前記オペランドオプ
レフィックを含む前記命令の実行が2つのオペランド命
令の実行を含む、方法。
ランドプレフィックスを用いない、前記オペランドオプ
レフィックを含む前記命令の実行が2つのオペランド命
令の実行を含む、方法。
【0063】(10) 複数のX86命令を処理するた
めにプロセッサを動作させる方法であって、前記複数の
命令の中から1つのX86命令を受けるステップであっ
て、前記X86命令が第1オペランドと第2オペランド
とを含む、前記受けるステップ、前記受けたX86命令
がオペランドプレフィックスを含むかどうか判定するス
テップであって、前記オペランドプレフィックスが第3
オペランドをデスティネーションオペランドとして識別
する、前記判定するステップ、前記受けた命令がオペラ
ンドプレフィックスを含と云う判定に応答して、結果を
発生するために前記第1オペランドと前記第2オペラン
ドとを使用して前記命令を実行するステップ、及び前記
結果を前記デスティネーションオペランドに記憶するス
テップを含む方法。
めにプロセッサを動作させる方法であって、前記複数の
命令の中から1つのX86命令を受けるステップであっ
て、前記X86命令が第1オペランドと第2オペランド
とを含む、前記受けるステップ、前記受けたX86命令
がオペランドプレフィックスを含むかどうか判定するス
テップであって、前記オペランドプレフィックスが第3
オペランドをデスティネーションオペランドとして識別
する、前記判定するステップ、前記受けた命令がオペラ
ンドプレフィックスを含と云う判定に応答して、結果を
発生するために前記第1オペランドと前記第2オペラン
ドとを使用して前記命令を実行するステップ、及び前記
結果を前記デスティネーションオペランドに記憶するス
テップを含む方法。
【0064】(11) 第10項記載の方法において、
オペランドプレフィックスを用いない、前記オペランド
オプレフィックを含む前記X86命令の実行が2つのオ
ペランド命令の実行を含む、方法。
オペランドプレフィックスを用いない、前記オペランド
オプレフィックを含む前記X86命令の実行が2つのオ
ペランド命令の実行を含む、方法。
【0065】(12) 複数の命令を処理する方法、回
路、及びシステム。方法実施例20において、前記方法
は、前記複数の命令の中から1つの命令を受ける(2
2)。次に、前記方法は、前記受けた命令が第3オペラ
ンドを識別するオペランドプレフィックスを含むかどう
か判定する(24、26)。前記受けた命令10がオペ
ランドプレフィックス12を含むと云う判定に応答し
て、前記方法は、第1オペランド、第2オペランド、及
び前記第3オペランドの中から選択された2つのオペラ
ンドを使用して、かつ前記第1オペランド、前記第2オ
ペランド、及び前記第3オペランドのうちの1つが選択
されないようにして、前記命令を実行して結果を発生す
る(28)。次に、前記方法は、前記結果を、選択され
なかったオペランド内に記憶する。他の回路、システ
ム、及び方法もまた開示されかつ特許請求の範囲に掲げ
られる。
路、及びシステム。方法実施例20において、前記方法
は、前記複数の命令の中から1つの命令を受ける(2
2)。次に、前記方法は、前記受けた命令が第3オペラ
ンドを識別するオペランドプレフィックスを含むかどう
か判定する(24、26)。前記受けた命令10がオペ
ランドプレフィックス12を含むと云う判定に応答し
て、前記方法は、第1オペランド、第2オペランド、及
び前記第3オペランドの中から選択された2つのオペラ
ンドを使用して、かつ前記第1オペランド、前記第2オ
ペランド、及び前記第3オペランドのうちの1つが選択
されないようにして、前記命令を実行して結果を発生す
る(28)。次に、前記方法は、前記結果を、選択され
なかったオペランド内に記憶する。他の回路、システ
ム、及び方法もまた開示されかつ特許請求の範囲に掲げ
られる。
【図1】オペランドプレフィックス、オプコード、及び
オプコードに続く2つのオペランドを有する3オペラン
ド命令を示すダイヤグラム。
オプコードに続く2つのオペランドを有する3オペラン
ド命令を示すダイヤグラム。
【図2】3オペランド命令を検出しかつ処理する本発明
の方法の好適実施例の流れ図。
の方法の好適実施例の流れ図。
【図3】本発明の方法の好適実施例が中で実施される例
示のデータ処理システムの機能ブロック図。
示のデータ処理システムの機能ブロック図。
10 3オペランド命令 12 プレフィックス 14 オプコード 16 第1オペランド 17 第2オペランド 102 データ処理システム 110 スーパスカラパイプライン化マイクロプロセッ
サ 112 バスインタフェースユニット(BIU) 114 レベル2キャッシュ 116d レベル1データキャッシュ 116i レベル1命令キャッシュ 118 マイクロキャッシュ 120 クロック発生及び制御電子回路 122 命令マイクロアドレス変換バッファ(命令μT
LB) 124 JTAG走査試験及び内蔵自己試験制御電子回
路 126 取出しユニット 128 プレデコード0ステージ 130 浮動小数点ユニット 132 プレデコード1ステージ 134 デコードユニット 136 スケジューラ 138 データマイクロアドレス変換バッファ(データ
μTLB) 139 レジスタファイル 1400 、1401 ロード−記憶ユニット 1420 、1421 多整数算術演算ユニット(AL
U) 144 オペランドユニット 145 マルチプレクサ 146 マイクロコードROM 148 マイクロシーケンサ
サ 112 バスインタフェースユニット(BIU) 114 レベル2キャッシュ 116d レベル1データキャッシュ 116i レベル1命令キャッシュ 118 マイクロキャッシュ 120 クロック発生及び制御電子回路 122 命令マイクロアドレス変換バッファ(命令μT
LB) 124 JTAG走査試験及び内蔵自己試験制御電子回
路 126 取出しユニット 128 プレデコード0ステージ 130 浮動小数点ユニット 132 プレデコード1ステージ 134 デコードユニット 136 スケジューラ 138 データマイクロアドレス変換バッファ(データ
μTLB) 139 レジスタファイル 1400 、1401 ロード−記憶ユニット 1420 、1421 多整数算術演算ユニット(AL
U) 144 オペランドユニット 145 マルチプレクサ 146 マイクロコードROM 148 マイクロシーケンサ
Claims (1)
- 【請求項1】 複数の命令を処理するためにプロセッサ
を動作させる方法であって、 前記複数の命令の中から1つの命令を受けるステップで
あって、前記命令が第1オペランドと第2オペランドと
を含む、前記受けるステップ、 前記受けた命令がオペランドプレフィックスを含むかど
うか判定するステップであって、前記オペランドプレフ
ィックスが第3オペランドを識別する、前記判定するス
テップ、 前記受けた命令がオペランドプレフィックスを含むと云
う判定に応答して、 結果を発生するために前記受けた命令を実行するステッ
プであって、前記第1オペランド、前記第2オペラン
ド、及び前記第3オペランドの中から選択された2つの
オペランドを使用し、かつ前記第1オペランド、前記第
2オペランド、及び前記第3オペランドのうち1つが選
択されないようにする、前記実行するステップ、及び前
記選択されなかったオペランド内に前記結果を記憶する
ステップを含む方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US886595P | 1995-12-19 | 1995-12-19 | |
| US008865 | 1995-12-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1021071A true JPH1021071A (ja) | 1998-01-23 |
Family
ID=21734141
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33864496A Pending JPH1021071A (ja) | 1995-12-19 | 1996-12-18 | 複数の命令を処理するプロセッサ動作方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1021071A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011096033A (ja) * | 2009-10-30 | 2011-05-12 | Renesas Electronics Corp | データプロセッサ |
-
1996
- 1996-12-18 JP JP33864496A patent/JPH1021071A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011096033A (ja) * | 2009-10-30 | 2011-05-12 | Renesas Electronics Corp | データプロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5911057A (en) | Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods | |
| JP2931890B2 (ja) | データ処理装置 | |
| JP3628379B2 (ja) | 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置 | |
| CN107077321B (zh) | 用于执行融合的单个周期递增-比较-跳转的指令和逻辑 | |
| CN102707927B (zh) | 具有条件指令的微处理器及其处理方法 | |
| US8904153B2 (en) | Vector loads with multiple vector elements from a same cache line in a scattered load operation | |
| US5606676A (en) | Branch prediction and resolution apparatus for a superscalar computer processor | |
| US6009511A (en) | Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers | |
| US7793081B2 (en) | Implementing instruction set architectures with non-contiguous register file specifiers | |
| US6675376B2 (en) | System and method for fusing instructions | |
| US5692167A (en) | Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor | |
| US5931943A (en) | Floating point NaN comparison | |
| US5790821A (en) | Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor | |
| US7836278B2 (en) | Three operand instruction extension for X86 architecture | |
| JP7665912B2 (ja) | データ依存脆弱分岐の機会主義的再誘導のための命令セットアーキテクチャベース自動負荷追跡 | |
| CN107832083B (zh) | 具有条件指令的微处理器及其处理方法 | |
| CN104813277A (zh) | 用于处理器的功率效率的向量掩码驱动时钟门控 | |
| CN105808208A (zh) | 具有条件指令的微处理器及其处理方法 | |
| US5918031A (en) | Computer utilizing special micro-operations for encoding of multiple variant code flows | |
| JP3837289B2 (ja) | 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ | |
| EP1680735A2 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
| US5815697A (en) | Circuits, systems, and methods for reducing microprogram memory power for multiway branching | |
| JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
| KR102871203B1 (ko) | 섀도우-래치로 구성된 레지스터 파일을 사용한 비트 폭 재구성 | |
| JPH1021071A (ja) | 複数の命令を処理するプロセッサ動作方法 |