JPH07262005A - 拡張されたオペランドバイパスシステム - Google Patents
拡張されたオペランドバイパスシステムInfo
- Publication number
- JPH07262005A JPH07262005A JP3276095A JP3276095A JPH07262005A JP H07262005 A JPH07262005 A JP H07262005A JP 3276095 A JP3276095 A JP 3276095A JP 3276095 A JP3276095 A JP 3276095A JP H07262005 A JPH07262005 A JP H07262005A
- Authority
- JP
- Japan
- Prior art keywords
- stage
- register
- instruction
- microprocessor
- output port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims description 9
- 230000003044 adaptive effect Effects 0.000 abstract 2
- 230000007246 mechanism Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 タイミング状況に関して改良されたパイプラ
イン結合されたマイクロプロセッサから構成されるマイ
クロプロセッサが開示される。 【構成】 このパイプライン結合されたマイクロプロセ
ッサは拡張されたオペランドバイパスメカニズムを含
む。同様にして、パイプライン結合されたマイクロプロ
セッサ内でオペランドをバスパスするための方法が開示
されるが、この方法は、ある実行されたマイクロプロセ
ッサインストラクションに対する演算論理ユニット(A
LU)(例えば、200)の出力信号をパイプライン結
合されたマイクロプロセッサの結果レジスタ段内のレジ
スタ(例えば、510)内にパイプライン結合されたマ
イクロプロセッサの1クロックサイクル期間以上格納す
るステップを含む。RR段からの信号を後続のインスト
ラクションに対するオペランドとして、それら信号を生
成した先行のインストラクションが実行を終了した(ク
ロックアウトした)後であっても転送可能となる。
イン結合されたマイクロプロセッサから構成されるマイ
クロプロセッサが開示される。 【構成】 このパイプライン結合されたマイクロプロセ
ッサは拡張されたオペランドバイパスメカニズムを含
む。同様にして、パイプライン結合されたマイクロプロ
セッサ内でオペランドをバスパスするための方法が開示
されるが、この方法は、ある実行されたマイクロプロセ
ッサインストラクションに対する演算論理ユニット(A
LU)(例えば、200)の出力信号をパイプライン結
合されたマイクロプロセッサの結果レジスタ段内のレジ
スタ(例えば、510)内にパイプライン結合されたマ
イクロプロセッサの1クロックサイクル期間以上格納す
るステップを含む。RR段からの信号を後続のインスト
ラクションに対するオペランドとして、それら信号を生
成した先行のインストラクションが実行を終了した(ク
ロックアウトした)後であっても転送可能となる。
Description
【0001】
【産業上の利用分野】本発明はマイクロプロセッサ、よ
り詳細には、パイプライン結合されたマイクロプロセッ
サに関する。
り詳細には、パイプライン結合されたマイクロプロセッ
サに関する。
【0002】
【従来の技術】マイクロプロセッサ、例えば、デジタル
信号プロセッサは、コード化されたインストラクショ
ン、例えば、コンピュータコードをオブジェクトコード
の形式にて実行する。この背景においては、オブジェク
トコードは、デジタル信号プロセッサ或はマイクロプロ
セッサの動作を制御するビット或はインストラクション
信号の形式のマシンにて実行可能なデジタル信号から構
成される。このオブジェクトコード或はインストラクシ
ョン信号が、デジタル信号プロセッサ或はマイクロプロ
セッサが指令するためにプロセッサに直接に提供され、
或はより高い水準のコンピュータプログラミング言語を
オブジェクトコードインストラクション信号に翻訳する
ことによって得られる。これらオブジェクトコードイン
ストラクション信号は、次に、典型的には、デジタル信
号プロセッサ或はマイクロプロセッサによって、復号さ
れ、実行される。従って、典型的には、オブジェクトコ
ードインストラクションの実行と関連するステップに
は:オブジェクトコードインストラクション信号をメモ
リから取り出すステップ、これらインストラクション信
号を復号し、これら信号を演算/論理動作の実行のため
に適当な形式にてプロセッサに提供するステップ、及び
復号されたインストラクション信号を実行するステップ
が含まれる。さらに、復号されたインストラクション信
号を実行するステップには:取り出されるべきオペラン
ドのアドレスの位置を見つけるサブステップ、これらオ
ペランドを得る或は取り出すサブステップ、これらオペ
ランドに関して選択された動作を遂行するサブステッ
プ、及びそれらオペランドに関して遂行された動作の結
果を格納するサブステップが含まれる。
信号プロセッサは、コード化されたインストラクショ
ン、例えば、コンピュータコードをオブジェクトコード
の形式にて実行する。この背景においては、オブジェク
トコードは、デジタル信号プロセッサ或はマイクロプロ
セッサの動作を制御するビット或はインストラクション
信号の形式のマシンにて実行可能なデジタル信号から構
成される。このオブジェクトコード或はインストラクシ
ョン信号が、デジタル信号プロセッサ或はマイクロプロ
セッサが指令するためにプロセッサに直接に提供され、
或はより高い水準のコンピュータプログラミング言語を
オブジェクトコードインストラクション信号に翻訳する
ことによって得られる。これらオブジェクトコードイン
ストラクション信号は、次に、典型的には、デジタル信
号プロセッサ或はマイクロプロセッサによって、復号さ
れ、実行される。従って、典型的には、オブジェクトコ
ードインストラクションの実行と関連するステップに
は:オブジェクトコードインストラクション信号をメモ
リから取り出すステップ、これらインストラクション信
号を復号し、これら信号を演算/論理動作の実行のため
に適当な形式にてプロセッサに提供するステップ、及び
復号されたインストラクション信号を実行するステップ
が含まれる。さらに、復号されたインストラクション信
号を実行するステップには:取り出されるべきオペラン
ドのアドレスの位置を見つけるサブステップ、これらオ
ペランドを得る或は取り出すサブステップ、これらオペ
ランドに関して選択された動作を遂行するサブステッ
プ、及びそれらオペランドに関して遂行された動作の結
果を格納するサブステップが含まれる。
【0003】マイクロプロセッサ、例えば、デジタル信
号プロセッサの速度性能を向上させる一つの方法は、こ
れら一巡のステップをパイプライン結合する方法であ
る。パイプライン結合されたデジタル信号プロセッサ或
はマイクロプロセッサの一例が、1992年8月11日
付けで付与され、本発明の譲受人に譲渡された、Argade
による『Multiplier Signed and Unsigned Overflow Fl
ags 』という名称の合衆国特許第5,138,570号
において開示されている。典型的には、パイプライン結
合されたデジタル信号プロセッサ或はマイクロプロセッ
サにおいては、インストラクションは、2段はそれ以上
の段のパイプライン、例えば、3段のパイプライン内で
復号された後に実行される。3段実行ユニットの場合
は、そのパイプラインの3段実行ユニット或は実行部分
の第一の段は、インストラクションレジスタ(IR)段
と称される。この段は、復号器ユニットから実行のため
に復号されたインストラクション信号を得て、取り出さ
れるべきオペランドの有効メモリアドレス位置を形成す
る。これはまた、それらオペランドに関して遂行される
べき動作の結果を格納するための宛先メモリ位置のアド
レスを形成する。パイプラインの実行ユニットの第二の
段はオペランドレジスタ(OR)段と称される。この段
は、復号されたインストラクション命令に基づいて遂行
されるべき動作を決定し、オペランドを取り出し、そし
て、これらオペランドに関して選択された演算/論理動
作を遂行する。パイプラインの実行ユニットの第三の段
は、結果レジスタ(RR)段と称される。この段は、こ
れらオペランドに関して遂行された動作の結果をメモリ
内の指定された宛先アドレス位置に格納する。
号プロセッサの速度性能を向上させる一つの方法は、こ
れら一巡のステップをパイプライン結合する方法であ
る。パイプライン結合されたデジタル信号プロセッサ或
はマイクロプロセッサの一例が、1992年8月11日
付けで付与され、本発明の譲受人に譲渡された、Argade
による『Multiplier Signed and Unsigned Overflow Fl
ags 』という名称の合衆国特許第5,138,570号
において開示されている。典型的には、パイプライン結
合されたデジタル信号プロセッサ或はマイクロプロセッ
サにおいては、インストラクションは、2段はそれ以上
の段のパイプライン、例えば、3段のパイプライン内で
復号された後に実行される。3段実行ユニットの場合
は、そのパイプラインの3段実行ユニット或は実行部分
の第一の段は、インストラクションレジスタ(IR)段
と称される。この段は、復号器ユニットから実行のため
に復号されたインストラクション信号を得て、取り出さ
れるべきオペランドの有効メモリアドレス位置を形成す
る。これはまた、それらオペランドに関して遂行される
べき動作の結果を格納するための宛先メモリ位置のアド
レスを形成する。パイプラインの実行ユニットの第二の
段はオペランドレジスタ(OR)段と称される。この段
は、復号されたインストラクション命令に基づいて遂行
されるべき動作を決定し、オペランドを取り出し、そし
て、これらオペランドに関して選択された演算/論理動
作を遂行する。パイプラインの実行ユニットの第三の段
は、結果レジスタ(RR)段と称される。この段は、こ
れらオペランドに関して遂行された動作の結果をメモリ
内の指定された宛先アドレス位置に格納する。
【0004】パイプライン結合されたデジタル信号プロ
セッサ或はマイクロプロセッサにおいては、後続の或は
第二のインストラクションが先行の或は第一のインスト
ラクションの結果をオペランドとして使用することが度
々発生する。このような状況においては、パイプライン
の性質上、パイプラインの実行ユニット内の一つの段が
その動作をもう一つの段の動作が完了する前に完了する
ことに起因するタイミング問題が発生する。例えば、後
続のインストラクションがIR段の動作を制御するよう
なクロックサイクルにおいては、IR段が前の或は先行
のインストラクションの結果の位置の取り出しを試みる
が、その結果がまだ格納されてないような場合が生じ
る。つまり、先行インストラクションが、例えば、RR
段の手前のパイプライン段内の実行を終えていない場合
がある。同様にして、インストラクションがOR段内に
あり、OR段がオペランドとして先行のインストラクシ
ョンの結果を取り出すことを試みるが、これがまだメモ
リ内に格納されてない場合もある。これらタイミング問
題は、典型的には、オペランドバイパスメカニズムによ
って扱われる。これに関しては、例えば、IEEE Compute
r Society による主催で1993年2月22−26に開
催されたCompcon Spring'93 に発表のHobbitによる論文
『A High-performance,low-power microprocessor 』、
及び1987年6月2−5日に開催のThe 14th Annual
Symposium on Computer Architecture の議事録にDitre
lとMcellan によって掲載の論文『The Hardware Archit
ectureof the Crisp Machine』を参照されたい。
セッサ或はマイクロプロセッサにおいては、後続の或は
第二のインストラクションが先行の或は第一のインスト
ラクションの結果をオペランドとして使用することが度
々発生する。このような状況においては、パイプライン
の性質上、パイプラインの実行ユニット内の一つの段が
その動作をもう一つの段の動作が完了する前に完了する
ことに起因するタイミング問題が発生する。例えば、後
続のインストラクションがIR段の動作を制御するよう
なクロックサイクルにおいては、IR段が前の或は先行
のインストラクションの結果の位置の取り出しを試みる
が、その結果がまだ格納されてないような場合が生じ
る。つまり、先行インストラクションが、例えば、RR
段の手前のパイプライン段内の実行を終えていない場合
がある。同様にして、インストラクションがOR段内に
あり、OR段がオペランドとして先行のインストラクシ
ョンの結果を取り出すことを試みるが、これがまだメモ
リ内に格納されてない場合もある。これらタイミング問
題は、典型的には、オペランドバイパスメカニズムによ
って扱われる。これに関しては、例えば、IEEE Compute
r Society による主催で1993年2月22−26に開
催されたCompcon Spring'93 に発表のHobbitによる論文
『A High-performance,low-power microprocessor 』、
及び1987年6月2−5日に開催のThe 14th Annual
Symposium on Computer Architecture の議事録にDitre
lとMcellan によって掲載の論文『The Hardware Archit
ectureof the Crisp Machine』を参照されたい。
【0005】
【発明が解決しようとする課題】もう一つの全く異なる
タイミグ状況が発生するが、この状況においては、パイ
プライン内でインストラクションが時間的に離され、結
果として、第一のインストラクションがパイプラインか
ら“クロックアウト”されるために、第二のインストラ
クションが第一のインストラクションに対する結果をメ
モリから取り出す必要性が生じる。従って、この後者の
タイミグ状況を扱うための方法或はメカニズムが必要と
される。
タイミグ状況が発生するが、この状況においては、パイ
プライン内でインストラクションが時間的に離され、結
果として、第一のインストラクションがパイプラインか
ら“クロックアウト”されるために、第二のインストラ
クションが第一のインストラクションに対する結果をメ
モリから取り出す必要性が生じる。従って、この後者の
タイミグ状況を扱うための方法或はメカニズムが必要と
される。
【0006】
【課題を解決するための手段】簡単に述べると、本発明
の一つの実施例においては、マイクロプロセッサは、パ
イプライン結合されたマイクロプロセッサから構成され
る。このパイプライン結合されたマイクロプロセッサ
は、拡張されたオペランドバイパスメカニズムを含む。
同様にして、本発明によるパイプライン結合されたマイ
クロプロセッサ内で使用されるオペランドをバスパスす
るための方法は、一つの実行されたマイクロプロセッサ
インストラクションに対する演算論理ユニット(AL
U)の出力信号をパイプライン結合されたマイクロプロ
セッサの結果レジスタ段内のレジスタ内にパイプライン
結合されたマイクロプロセッサの1クロックサイクル期
間以上格納するステップを含む。
の一つの実施例においては、マイクロプロセッサは、パ
イプライン結合されたマイクロプロセッサから構成され
る。このパイプライン結合されたマイクロプロセッサ
は、拡張されたオペランドバイパスメカニズムを含む。
同様にして、本発明によるパイプライン結合されたマイ
クロプロセッサ内で使用されるオペランドをバスパスす
るための方法は、一つの実行されたマイクロプロセッサ
インストラクションに対する演算論理ユニット(AL
U)の出力信号をパイプライン結合されたマイクロプロ
セッサの結果レジスタ段内のレジスタ内にパイプライン
結合されたマイクロプロセッサの1クロックサイクル期
間以上格納するステップを含む。
【0007】本発明として考慮される主題事項は、この
説明の特許請求の範囲によって具体的に個別に請求され
る。但し、本発明、つまり、本発明の構成と動作の方法
の両者、及び本発明の目的、特徴、利益は、以下の詳細
な説明を付随の図面と照らし合わせて読むことによって
さらに良く理解できるものである。
説明の特許請求の範囲によって具体的に個別に請求され
る。但し、本発明、つまり、本発明の構成と動作の方法
の両者、及び本発明の目的、特徴、利益は、以下の詳細
な説明を付随の図面と照らし合わせて読むことによって
さらに良く理解できるものである。
【0008】
【実施例】図2はパイプライン結合されたデジタル信号
プロセッサ(DSP)或はマイクロプロセッサの実行ユ
ニットの一つの実施例の略図である。図示されるよう
に、マイクロプロセッサ50は、IR段内のインストラ
クションレジスタ(IR)310と320、OR段内の
オペランドレジスタ(OR)410、420、演算論理
ユニット(ALU)200、及びRR段内の結果或はデ
ータレジスタ(RR)500を含む。図2には示されな
いが、各段はプログラムカウンタを含み、プログラムカ
ウンタは、その段によって実行中のインストラクション
のメモリアドレス位置を含む。
プロセッサ(DSP)或はマイクロプロセッサの実行ユ
ニットの一つの実施例の略図である。図示されるよう
に、マイクロプロセッサ50は、IR段内のインストラ
クションレジスタ(IR)310と320、OR段内の
オペランドレジスタ(OR)410、420、演算論理
ユニット(ALU)200、及びRR段内の結果或はデ
ータレジスタ(RR)500を含む。図2には示されな
いが、各段はプログラムカウンタを含み、プログラムカ
ウンタは、その段によって実行中のインストラクション
のメモリアドレス位置を含む。
【0009】上で述べたように、パイプライン結合され
たデジタル信号プロセッサ或はマイクロプロセッサにお
いては、様々なインストラクションがそのパイプライン
内において異なる実行段階にあることがある。これは、
そのパイプライン内のインストラクションが互いに依存
するような状況、例えば、後続の或は第二のインストラ
クションが先行の或は第一のインストラクションによっ
て遂行された演算/論理動作の結果をオペランドとして
使用するような場合には、特に重要な意味を持つ。後続
の或は第二のインストラクションが、第一のインストラ
クションによって遂行された動作の結果を、その宛先メ
モリのアドレス位置から、第一のインストラクションの
結果がそこに格納される前に取り出そうとした場合、第
二のインストラクションは、典型的には、誤ったオペラ
ンドを取り出すこととなる。これはオペランドハザード
と称される状況の一例である。前述の論文“The Hardwa
reArchitecture of the Crisp Machine”において説明
されているごとく、パイプライン結合されたデジタル信
号プロセッサ或はマイクロプロセッサは、このハザード
状況を検出して、特定のハザード状況に基づいて、オペ
ランドをIRかOR段に“バイパス”するオペランドバ
イパスメカニズムを使用する。
たデジタル信号プロセッサ或はマイクロプロセッサにお
いては、様々なインストラクションがそのパイプライン
内において異なる実行段階にあることがある。これは、
そのパイプライン内のインストラクションが互いに依存
するような状況、例えば、後続の或は第二のインストラ
クションが先行の或は第一のインストラクションによっ
て遂行された演算/論理動作の結果をオペランドとして
使用するような場合には、特に重要な意味を持つ。後続
の或は第二のインストラクションが、第一のインストラ
クションによって遂行された動作の結果を、その宛先メ
モリのアドレス位置から、第一のインストラクションの
結果がそこに格納される前に取り出そうとした場合、第
二のインストラクションは、典型的には、誤ったオペラ
ンドを取り出すこととなる。これはオペランドハザード
と称される状況の一例である。前述の論文“The Hardwa
reArchitecture of the Crisp Machine”において説明
されているごとく、パイプライン結合されたデジタル信
号プロセッサ或はマイクロプロセッサは、このハザード
状況を検出して、特定のハザード状況に基づいて、オペ
ランドをIRかOR段に“バイパス”するオペランドバ
イパスメカニズムを使用する。
【0010】第二のインストラクションが第一のインス
トラクションがその実行を完了する前に第一のインスト
ラクションの結果を要求するのではなく、第一のインス
トラクションがその実行を、第二のインストラクション
が第一のインストラクションによって遂行された動作を
必要とする前に完了した場合には、異なるタイミング状
況が発生する。つまり、第一のインストラクションが第
二のインストラクションよりもあまりにも早く結果を生
成し、このために、第一のインストラクションが、本質
的に、パイプラインから“クロックアウト”する場合が
ある。この異なるタイミング状況は、例えば、後続のイ
ンストラクションの取り出し或は復号のタイミングが不
確かな場合、或は、マイクロプロセッサの資源の衝突、
例えば、メモリに対する要求の衝突があった場合に発生
する。後者の状況が発生した場合は、第一のインストラ
クションによって遂行された動作の結果があまりにも早
く結果レジスタ500に到達するために、パイプライン
結合されたマイクロプロセッサの次のクロックサイクル
で無効にされる。典型的には、このような状況において
は、第一のインストラクションの結果が補助メモリ、例
えば、オンチップデータキャッシュ、或は別の方法とし
て、オフチップメモリ内に書込まれ、第一のインストラ
クションによって遂行された動作の結果が失われるのが
回避される。
トラクションがその実行を完了する前に第一のインスト
ラクションの結果を要求するのではなく、第一のインス
トラクションがその実行を、第二のインストラクション
が第一のインストラクションによって遂行された動作を
必要とする前に完了した場合には、異なるタイミング状
況が発生する。つまり、第一のインストラクションが第
二のインストラクションよりもあまりにも早く結果を生
成し、このために、第一のインストラクションが、本質
的に、パイプラインから“クロックアウト”する場合が
ある。この異なるタイミング状況は、例えば、後続のイ
ンストラクションの取り出し或は復号のタイミングが不
確かな場合、或は、マイクロプロセッサの資源の衝突、
例えば、メモリに対する要求の衝突があった場合に発生
する。後者の状況が発生した場合は、第一のインストラ
クションによって遂行された動作の結果があまりにも早
く結果レジスタ500に到達するために、パイプライン
結合されたマイクロプロセッサの次のクロックサイクル
で無効にされる。典型的には、このような状況において
は、第一のインストラクションの結果が補助メモリ、例
えば、オンチップデータキャッシュ、或は別の方法とし
て、オフチップメモリ内に書込まれ、第一のインストラ
クションによって遂行された動作の結果が失われるのが
回避される。
【0011】図1は本発明に従う拡張されたオペランド
バイパスメカニズム100を示す。図1の実施例は、3
つの一連の段を持つ実行ユニット15を示すが、本発明
の範囲は、3つの一連の段のみに限定されるものではな
い。例えば、実行ユニットは、二つ或はそれ以上の段を
含むことも、或はこれら段は必ずしも連続したものでな
くてもよい。さらに、パイプライン結合されたマイクロ
プロセッサの別の実現も可能である。示されるように、
前述のインストラクションレジスタ(IR)、オペラン
ドレジスタ(OR)、演算論理ユニット(ALU)、結
果レジスタ(RR)に加えて、図1に示される実施例
は、IR段インストラクション妥当性(IV)標識33
0、OR段インストラクション妥当性(IV)標識43
0、OR段アドレスレジスタ440、RR段アドレスレ
ジスタ510、RR段インストラクション妥当性(I
V)標識530、RR段データ妥当性(DV)標識52
0と、マルチプレクサ(MUX)610、620、71
0、720を含む。図1に示されるマルチプレクサは、
並列MUXから構成されるが、本発明の範囲はこの点で
限定を受けるものではない。つまり、MUXは、直列M
UXから構成することもでき、直列から並列への変換、
或は並列から直列への変換を遂行するために追加のデジ
タル電子回路を使用することもできる。ただし、これに
付随して発生する信号処理の遅延のために、後者のアプ
ローチは、幾つかの計算或は信号処理用途には適さない
場合がある。
バイパスメカニズム100を示す。図1の実施例は、3
つの一連の段を持つ実行ユニット15を示すが、本発明
の範囲は、3つの一連の段のみに限定されるものではな
い。例えば、実行ユニットは、二つ或はそれ以上の段を
含むことも、或はこれら段は必ずしも連続したものでな
くてもよい。さらに、パイプライン結合されたマイクロ
プロセッサの別の実現も可能である。示されるように、
前述のインストラクションレジスタ(IR)、オペラン
ドレジスタ(OR)、演算論理ユニット(ALU)、結
果レジスタ(RR)に加えて、図1に示される実施例
は、IR段インストラクション妥当性(IV)標識33
0、OR段インストラクション妥当性(IV)標識43
0、OR段アドレスレジスタ440、RR段アドレスレ
ジスタ510、RR段インストラクション妥当性(I
V)標識530、RR段データ妥当性(DV)標識52
0と、マルチプレクサ(MUX)610、620、71
0、720を含む。図1に示されるマルチプレクサは、
並列MUXから構成されるが、本発明の範囲はこの点で
限定を受けるものではない。つまり、MUXは、直列M
UXから構成することもでき、直列から並列への変換、
或は並列から直列への変換を遂行するために追加のデジ
タル電子回路を使用することもできる。ただし、これに
付随して発生する信号処理の遅延のために、後者のアプ
ローチは、幾つかの計算或は信号処理用途には適さない
場合がある。
【0012】示されるように、拡張されたオペランドバ
イパスメカニズム100は、二つの主信号処理経路7
0、80を持つ。各実行されたインストラクションに対
する第一と第二、或は左と右に対応するデジタル信号或
はビットは、これら各々の経路に沿って伝播する。つま
り、経路70の場合は、IR310とOR410を介し
てALU200の入力ポートに伝播し、経路80の場合
は、IR320とOR420を介して伝播する。同様に
して、図示されるように、主信号処理経路90は、AL
U200の出力ポートをRR500の入力ポートに結合
する。これら主経路に加えて、メカニズム100は、さ
らに、複数の代替信号処理経路を含む。例えば、経路3
0と40は、ALU200の出力ポートを、それぞれ、
MUX610と620を介して、OR410と420の
入力ポートに結合し、同様にして、経路10、20は、
それぞれ、MUX610、620を介して、RR500
の出力ポートをOR410、420の入力ポートに結合
する。さらに、代替信号処理経路30、40は、ALU
200の出力ポートを、それぞれ、MUX710、72
0を介してIR310、320の入力ポートに結合し、
同様にして、経路10、20は、RR500の出力ポー
トを、それぞれ、MUX710、720を介して、31
0、320の入力ポートに結合する。
イパスメカニズム100は、二つの主信号処理経路7
0、80を持つ。各実行されたインストラクションに対
する第一と第二、或は左と右に対応するデジタル信号或
はビットは、これら各々の経路に沿って伝播する。つま
り、経路70の場合は、IR310とOR410を介し
てALU200の入力ポートに伝播し、経路80の場合
は、IR320とOR420を介して伝播する。同様に
して、図示されるように、主信号処理経路90は、AL
U200の出力ポートをRR500の入力ポートに結合
する。これら主経路に加えて、メカニズム100は、さ
らに、複数の代替信号処理経路を含む。例えば、経路3
0と40は、ALU200の出力ポートを、それぞれ、
MUX610と620を介して、OR410と420の
入力ポートに結合し、同様にして、経路10、20は、
それぞれ、MUX610、620を介して、RR500
の出力ポートをOR410、420の入力ポートに結合
する。さらに、代替信号処理経路30、40は、ALU
200の出力ポートを、それぞれ、MUX710、72
0を介してIR310、320の入力ポートに結合し、
同様にして、経路10、20は、RR500の出力ポー
トを、それぞれ、MUX710、720を介して、31
0、320の入力ポートに結合する。
【0013】図1に示される実施例においては、RR5
00とOR410、420の間の結合は、それぞれ、R
R500の出力ポートとMUX610、620の間の経
路10、20によって達成される。示されるように、M
UX610と620の入力ポートは、それぞれ、IR3
10と320の出力ポートに結合され、また、同様にし
て、経路10と20に結合される。制御信号ポート50
と60が、それぞれ、デジタル信号の流れ、例えば、M
UX610、620を通るビットの流れを制御する制御
信号を受信するために適応(使用)される。こうして、
制御信号が制御信号ポート50、60に提供され、第一
のインストラクションによって遂行された動作の結果が
RR500内に1クロックサイクル以上保持された場合
に、この事実が通知され、これがMUX610、620
の一つを介してRO410、420の一つに効率的にバ
イパスされ、こうして、従来のように、結果を他のオン
チップデータキャッシュ或はオフチップメモリから得る
必要性が回避される。同様にして、経路10、20は、
IR310、320を、それぞれ、MUX710、72
0を介して、RR500の出力ポートと結合する。MU
X710、720は、この特定の実施例においては、そ
の入力ポートが信号経路70、80によってパイプライ
ン結合されたマイクロプロセッサの復号ユニット或は復
号部分の二つの出力ポートの一つに結合され、また、同
様にして、それぞれ、経路10と20に結合される。そ
れぞれ制御信号ポート55、56がMUX710、72
0を通るデジタル信号の流れを制御する制御信号を受信
するように適応(使用)される。第一のインストラクシ
ョンの結果をRR段からOR段の代わりにIR段に“バ
イパス”することによって、パイプライン結合されたD
SP或はマイクロプロセッサによってしばしば採用され
る間接アドレシングメカニズムが助けられる。
00とOR410、420の間の結合は、それぞれ、R
R500の出力ポートとMUX610、620の間の経
路10、20によって達成される。示されるように、M
UX610と620の入力ポートは、それぞれ、IR3
10と320の出力ポートに結合され、また、同様にし
て、経路10と20に結合される。制御信号ポート50
と60が、それぞれ、デジタル信号の流れ、例えば、M
UX610、620を通るビットの流れを制御する制御
信号を受信するために適応(使用)される。こうして、
制御信号が制御信号ポート50、60に提供され、第一
のインストラクションによって遂行された動作の結果が
RR500内に1クロックサイクル以上保持された場合
に、この事実が通知され、これがMUX610、620
の一つを介してRO410、420の一つに効率的にバ
イパスされ、こうして、従来のように、結果を他のオン
チップデータキャッシュ或はオフチップメモリから得る
必要性が回避される。同様にして、経路10、20は、
IR310、320を、それぞれ、MUX710、72
0を介して、RR500の出力ポートと結合する。MU
X710、720は、この特定の実施例においては、そ
の入力ポートが信号経路70、80によってパイプライ
ン結合されたマイクロプロセッサの復号ユニット或は復
号部分の二つの出力ポートの一つに結合され、また、同
様にして、それぞれ、経路10と20に結合される。そ
れぞれ制御信号ポート55、56がMUX710、72
0を通るデジタル信号の流れを制御する制御信号を受信
するように適応(使用)される。第一のインストラクシ
ョンの結果をRR段からOR段の代わりにIR段に“バ
イパス”することによって、パイプライン結合されたD
SP或はマイクロプロセッサによってしばしば採用され
る間接アドレシングメカニズムが助けられる。
【0014】RR500の内容があるインストラクショ
ンのバイパスされた結果を含む場合には、RR段データ
妥当性標識520がセットされる。こうして、標識52
0の設定はRR500が“正当な”デジタル信号を含む
ことを示す。この特定の実施例においては、バイパスメ
カニズムは、この標識がセットされるまで動作が完了し
ない。前に述べたように、図1に示される実施例におい
ては、制御信号ポート50、60、55、65は、それ
ぞれ、MUX610、620、710、720に対する
制御信号を受信するように適応(使用)される。このよ
うに、特定の実施例に応じて、これら制御信号は、少な
くとも部分的に、RRデータ妥当性標識520の状態或
は内容に依存するようにされる。標識520がセットさ
れている場合は、これらMUXは、RR500の内容が
ALU200の出力信号を含むことを知り、これら信号
がOR或はIR段に転送され、パイプライン内の後続の
マイクロプロセッサインストラクション、例えば、一連
のマイクロプロセッサインストラクションの次のインス
トラクションに対するオペランドとして、或はオペラン
ドのメモリアドレス位置として使用される。こうして、
ALUによって完結された動作の結果を宛先メモリアド
レス位置、例えば、オフチップメモリ或はオンチップデ
ータキャッシュ内のメモリ位置から読み出す代わりに、
結果が結果或はデータレジスタ500内に1クロックサ
イクル以上保持され、OR段或はIR段の一つの中のレ
ジスタにバイパスされ、これによって、拡張されたオペ
ランドバイパスメカニズムが提供される。同様にして、
宛先メモリの位置アドレスがRR段のアドレスレジスタ
510内に1クロックサイクル以上格納或は保持され
る。
ンのバイパスされた結果を含む場合には、RR段データ
妥当性標識520がセットされる。こうして、標識52
0の設定はRR500が“正当な”デジタル信号を含む
ことを示す。この特定の実施例においては、バイパスメ
カニズムは、この標識がセットされるまで動作が完了し
ない。前に述べたように、図1に示される実施例におい
ては、制御信号ポート50、60、55、65は、それ
ぞれ、MUX610、620、710、720に対する
制御信号を受信するように適応(使用)される。このよ
うに、特定の実施例に応じて、これら制御信号は、少な
くとも部分的に、RRデータ妥当性標識520の状態或
は内容に依存するようにされる。標識520がセットさ
れている場合は、これらMUXは、RR500の内容が
ALU200の出力信号を含むことを知り、これら信号
がOR或はIR段に転送され、パイプライン内の後続の
マイクロプロセッサインストラクション、例えば、一連
のマイクロプロセッサインストラクションの次のインス
トラクションに対するオペランドとして、或はオペラン
ドのメモリアドレス位置として使用される。こうして、
ALUによって完結された動作の結果を宛先メモリアド
レス位置、例えば、オフチップメモリ或はオンチップデ
ータキャッシュ内のメモリ位置から読み出す代わりに、
結果が結果或はデータレジスタ500内に1クロックサ
イクル以上保持され、OR段或はIR段の一つの中のレ
ジスタにバイパスされ、これによって、拡張されたオペ
ランドバイパスメカニズムが提供される。同様にして、
宛先メモリの位置アドレスがRR段のアドレスレジスタ
510内に1クロックサイクル以上格納或は保持され
る。
【0015】図1に示されるように、実行ユニット内の
各ユニットは、さらに、インストラクション妥当性標
識、例えば、標識330、430、530を含む。これ
ら各々の標識の内容がセットされると、例えば、“1”
の信号値或は決定によっては“0”の信号値を持つこと
によってセットされると、これは、その特定の段が正当
なインストラクションを実行中であることを示す。上と
同様に、これらレジスタの内容は、その特定の段に対す
る標識がセットされない限り、一連の次の段に伝播され
ることはない。こうして、図解されるように、レジスタ
の内容がこれら段を順に伝播すると、同様にして、正当
なインストラクションの実行を示す信号がインストラク
ション妥当性標識の形式にてこれら段を順に伝播する。
各ユニットは、さらに、インストラクション妥当性標
識、例えば、標識330、430、530を含む。これ
ら各々の標識の内容がセットされると、例えば、“1”
の信号値或は決定によっては“0”の信号値を持つこと
によってセットされると、これは、その特定の段が正当
なインストラクションを実行中であることを示す。上と
同様に、これらレジスタの内容は、その特定の段に対す
る標識がセットされない限り、一連の次の段に伝播され
ることはない。こうして、図解されるように、レジスタ
の内容がこれら段を順に伝播すると、同様にして、正当
なインストラクションの実行を示す信号がインストラク
ション妥当性標識の形式にてこれら段を順に伝播する。
【0016】MUX610、620、710、720に
提供される制御信号もその特定の実施例に応じて、少な
くとも部分的に、パイプライン結合されたマイクロプロ
セッサの実行ユニットの様々な段の妥当性標識の状態に
依存する。例えば、RR段のインストラクション妥当性
標識がセットされてない場合は、MUXに提供される制
御信号は、オペランドハザードを回避するためにRR5
00の出力ポートからオペランドをバイパスする指示は
行なわない。但し、実施例によっては、RR段のインス
トラクション妥当性標識がセットされてない場合でも、
つまり、そのRR段があるインストラクションを実行中
でない場合でも、RR500の出力ポートからの本発明
によるオペランドのバイパスが実行される。但し、上に
述べたように、この特定の実施例の場合は、RR段のデ
ータ妥当性標識がセットされていることが要求される。
同様にして、本発明に従う拡張されたオペランドバイパ
スは、ORインストラクション妥当性標識がセットされ
てない場合でも達成することができる。
提供される制御信号もその特定の実施例に応じて、少な
くとも部分的に、パイプライン結合されたマイクロプロ
セッサの実行ユニットの様々な段の妥当性標識の状態に
依存する。例えば、RR段のインストラクション妥当性
標識がセットされてない場合は、MUXに提供される制
御信号は、オペランドハザードを回避するためにRR5
00の出力ポートからオペランドをバイパスする指示は
行なわない。但し、実施例によっては、RR段のインス
トラクション妥当性標識がセットされてない場合でも、
つまり、そのRR段があるインストラクションを実行中
でない場合でも、RR500の出力ポートからの本発明
によるオペランドのバイパスが実行される。但し、上に
述べたように、この特定の実施例の場合は、RR段のデ
ータ妥当性標識がセットされていることが要求される。
同様にして、本発明に従う拡張されたオペランドバイパ
スは、ORインストラクション妥当性標識がセットされ
てない場合でも達成することができる。
【0017】図1に示される実施例について述べると、
ALU200からRR500へのデジタル出力信号の流
れは、少なくとも部分的に、OR段インストラクション
妥当性標識430の内容に基づいて制御される。例え
ば、RR500は、ALU200の出力ポートからのデ
ジタル出力信号或はビットを受信する一つの入力ポート
と出力ポートを含むラッチを含む。ORの内容がALU
に経路70、80に沿って提供された後に、ALUはR
R500内に格納されるべきデジタル出力信号を提供す
る。標識430は、次にその内容を標識530に転送す
るが、これは、ORの内容が現在“正当でなく”、RR
500の内容が正当であることを知らせる。こうして、
OR段が“正当でない”ことを示す標識430の内容に
よって、ラッチがALU200からさらにデジタル出力
信号を得ることが阻止される。この結果として、RR5
00の内容が、ORの現在“正当でない”内容に基づい
てALU200によって生成されたその後のデジタル出
力信号によってオーバライトされる(無効にされる)こ
とが回避される。
ALU200からRR500へのデジタル出力信号の流
れは、少なくとも部分的に、OR段インストラクション
妥当性標識430の内容に基づいて制御される。例え
ば、RR500は、ALU200の出力ポートからのデ
ジタル出力信号或はビットを受信する一つの入力ポート
と出力ポートを含むラッチを含む。ORの内容がALU
に経路70、80に沿って提供された後に、ALUはR
R500内に格納されるべきデジタル出力信号を提供す
る。標識430は、次にその内容を標識530に転送す
るが、これは、ORの内容が現在“正当でなく”、RR
500の内容が正当であることを知らせる。こうして、
OR段が“正当でない”ことを示す標識430の内容に
よって、ラッチがALU200からさらにデジタル出力
信号を得ることが阻止される。この結果として、RR5
00の内容が、ORの現在“正当でない”内容に基づい
てALU200によって生成されたその後のデジタル出
力信号によってオーバライトされる(無効にされる)こ
とが回避される。
【0018】同様にして、実施例によっては、本発明に
よる拡張されたオペランドバイパスメカニズムが、少な
くとも部分的に、比較器、例えば、図1に示される等価
比較器910、920、930、940の出力信号によ
ってトリガ或は先導される。これら比較器は、マイクロ
プロセッサインストラクションの結果用の宛先メモリの
アドレス位置と次の或は後続のマイクロプロセッサイン
ストラクションのオペランド用のメモリアドレス位置と
を比較する。これらメモリ位置が一致或は対応する場合
は、前述のように、第一の或は先行のインストラクショ
ンがパイプラインから“クロックアウト”する可能性が
ある。従って、この特定の実施例においては、MUXに
提供される制御信号は、少なくとも部分的に、この比較
器の出力信号にも依存するようにされ、こうして、以下
に説明されるように、本発明に従う拡張されたオペラン
ドバイパスメカニズムが起動される。同様にして、結果
として、論理回路によるメモリからオペランドを読み出
す動作が省かれる。別の状況として、これらのメモリ位
置が一致しない場合は、前述のように、第一のインスト
ラクションの結果はバイパスされる必要はない。
よる拡張されたオペランドバイパスメカニズムが、少な
くとも部分的に、比較器、例えば、図1に示される等価
比較器910、920、930、940の出力信号によ
ってトリガ或は先導される。これら比較器は、マイクロ
プロセッサインストラクションの結果用の宛先メモリの
アドレス位置と次の或は後続のマイクロプロセッサイン
ストラクションのオペランド用のメモリアドレス位置と
を比較する。これらメモリ位置が一致或は対応する場合
は、前述のように、第一の或は先行のインストラクショ
ンがパイプラインから“クロックアウト”する可能性が
ある。従って、この特定の実施例においては、MUXに
提供される制御信号は、少なくとも部分的に、この比較
器の出力信号にも依存するようにされ、こうして、以下
に説明されるように、本発明に従う拡張されたオペラン
ドバイパスメカニズムが起動される。同様にして、結果
として、論理回路によるメモリからオペランドを読み出
す動作が省かれる。別の状況として、これらのメモリ位
置が一致しない場合は、前述のように、第一のインスト
ラクションの結果はバイパスされる必要はない。
【0019】上で示唆されたように、マイクロプロセッ
サインストラクションによって遂行される動作の結果に
対する宛先メモリの位置アドレスは、代表的には、IR
段内で生成されるが、本発明の範囲はこれによって限定
されるものではない。図1に示される実施例について述
べると、OR段アドレスレジスタ440は、IR310
の内容を受信する。同様にして、図示されるように、こ
の実施例においては、レジスタ440の内容は比較器、
例えば、等価比較器910、920に提供されるが、こ
れら比較器は、OR段アドレスレジスタ440内に格納
されている宛先アドレスを、そのクロックサイクルに対
するIR310、320の現在の内容と比較する。同様
にして、次のクロックサイクルにおいて、レジスタ44
0の内容がRR段アドレスレジスタ510に提供され、
結果として、ここでも、図1に示されるように等価比較
器930、940によって、この次のクロックサイクル
に対するRI310、320の内容との比較が遂行され
る。こうして、各クロックサイクルごとに、IR31
0、320の内容がOR段とRR段の宛先メモリのアド
レス位置と比較される。こうして、この技法は、IR3
10、320がメモリアドレス位置を含むために、複雑
な間接アドレシングも扱うことが理解できる。
サインストラクションによって遂行される動作の結果に
対する宛先メモリの位置アドレスは、代表的には、IR
段内で生成されるが、本発明の範囲はこれによって限定
されるものではない。図1に示される実施例について述
べると、OR段アドレスレジスタ440は、IR310
の内容を受信する。同様にして、図示されるように、こ
の実施例においては、レジスタ440の内容は比較器、
例えば、等価比較器910、920に提供されるが、こ
れら比較器は、OR段アドレスレジスタ440内に格納
されている宛先アドレスを、そのクロックサイクルに対
するIR310、320の現在の内容と比較する。同様
にして、次のクロックサイクルにおいて、レジスタ44
0の内容がRR段アドレスレジスタ510に提供され、
結果として、ここでも、図1に示されるように等価比較
器930、940によって、この次のクロックサイクル
に対するRI310、320の内容との比較が遂行され
る。こうして、各クロックサイクルごとに、IR31
0、320の内容がOR段とRR段の宛先メモリのアド
レス位置と比較される。こうして、この技法は、IR3
10、320がメモリアドレス位置を含むために、複雑
な間接アドレシングも扱うことが理解できる。
【0020】先に示唆したように、図1は、オペランド
ハザードを回避するために採用されるバイパスメカニズ
ムを示す。例えば、図示されるように、経路30、40
は、ALU200の出力ポートをMUX610、620
の入力ポートに結合する。制御信号ポート50、60
は、従って、各々のMUX制御信号を受信し、それぞ
れ、経路30、40によってMUX610、620に提
供されたデジタル信号を選択し、MUX610、620
の出力ポートに向ける。結果として、ALU200の出
力信号がオペランドレジスタ410、420の一つに直
接にバイパスされ、これによってハザードが回避され
る。ここまで説明すると、一つ或は複数の外部的に生成
されたクロックによって、適当なクロックパルス或はタ
イミング信号を提供し、これによって、実行ユニット段
を含む異なるパイプライン段の動作を調節或は同期でき
ることが理解できる。
ハザードを回避するために採用されるバイパスメカニズ
ムを示す。例えば、図示されるように、経路30、40
は、ALU200の出力ポートをMUX610、620
の入力ポートに結合する。制御信号ポート50、60
は、従って、各々のMUX制御信号を受信し、それぞ
れ、経路30、40によってMUX610、620に提
供されたデジタル信号を選択し、MUX610、620
の出力ポートに向ける。結果として、ALU200の出
力信号がオペランドレジスタ410、420の一つに直
接にバイパスされ、これによってハザードが回避され
る。ここまで説明すると、一つ或は複数の外部的に生成
されたクロックによって、適当なクロックパルス或はタ
イミング信号を提供し、これによって、実行ユニット段
を含む異なるパイプライン段の動作を調節或は同期でき
ることが理解できる。
【0021】拡張されたオペランドバイパスメカニズ
ム、例えば、図1に示される実施例は、幾つかの利益を
提供する。例えば、第一の或は先行DSP或はマイクロ
プロセッサのインストラクションの結果をメモリから読
み出すことと関連するクロックサイクルが回避されるた
めに、DSP或はマイクロプロセッサの速度と性能の向
上が達成される。同様にして、前述のように、結果とし
て、オフチップメモリ或はオンチップデータキャッシュ
の使用と関連するクロックサイクルが排除されるため
に、このインストラクションによって遂行される動作を
完遂するために使用される全体としての電力が低減され
る。この電力の節約は、この節約が、部分的に、本発明
による拡張されたオペランドバイパスメカニズムによっ
て対処される状況が発生する頻度に依存するために、定
量的に述べることは困難である。但し、この節約は、2
0から10%の桁であると考えられる。これは、特に、
電力の消費が重要な実用上の考慮事項となるような環
境、例えば、携帯用途の場合は、特に重要である。
ム、例えば、図1に示される実施例は、幾つかの利益を
提供する。例えば、第一の或は先行DSP或はマイクロ
プロセッサのインストラクションの結果をメモリから読
み出すことと関連するクロックサイクルが回避されるた
めに、DSP或はマイクロプロセッサの速度と性能の向
上が達成される。同様にして、前述のように、結果とし
て、オフチップメモリ或はオンチップデータキャッシュ
の使用と関連するクロックサイクルが排除されるため
に、このインストラクションによって遂行される動作を
完遂するために使用される全体としての電力が低減され
る。この電力の節約は、この節約が、部分的に、本発明
による拡張されたオペランドバイパスメカニズムによっ
て対処される状況が発生する頻度に依存するために、定
量的に述べることは困難である。但し、この節約は、2
0から10%の桁であると考えられる。これは、特に、
電力の消費が重要な実用上の考慮事項となるような環
境、例えば、携帯用途の場合は、特に重要である。
【0022】例えば、図1に示される実施例の場合のよ
うなマイクロプロセッサのインストラクションを実行す
るパイプライン結合されたマイクロプロセッサの実行段
内でオペランドバイパスを行なうための方法は、以下の
ように達成される。前に述べたように、二つのマイクロ
プロセッサのインストラクションがパイプライン内の実
行の異なる段階にある場合がある。状況によっては、第
一或は先行のインストラクションが実行を第二のインス
トラクションの少なくとも2クロック或はそれ以上のク
ロックサイクルだけ先に完了する場合が考えられる。こ
のために、ALU、例えば、図1内のALU200の出
力信号が、こうして実行されるインストラクションに対
して、RR段内にパイプライン結合されたマイクロプロ
セッサの1クロックサイクル期間以上格納される。
うなマイクロプロセッサのインストラクションを実行す
るパイプライン結合されたマイクロプロセッサの実行段
内でオペランドバイパスを行なうための方法は、以下の
ように達成される。前に述べたように、二つのマイクロ
プロセッサのインストラクションがパイプライン内の実
行の異なる段階にある場合がある。状況によっては、第
一或は先行のインストラクションが実行を第二のインス
トラクションの少なくとも2クロック或はそれ以上のク
ロックサイクルだけ先に完了する場合が考えられる。こ
のために、ALU、例えば、図1内のALU200の出
力信号が、こうして実行されるインストラクションに対
して、RR段内にパイプライン結合されたマイクロプロ
セッサの1クロックサイクル期間以上格納される。
【0023】1クロックサイクル期間以上に保持或は格
納された出力信号は、次に、IR段或はOR段の一つ中
のレジスタ内に転送される。こうして、前述のように、
オフチップメモリ或はオンチップデータキャッシュ内の
その宛先メモリアドレス位置から出力信号を読み出すた
めのインストラクション或は動作が取消し或は省略され
る。この格納された出力信号は、MUX、例えば、図1
に示されるMUX610、620、710或は720の
一つを介して転送される。この格納された出力信号がO
R段内のレジスタに転送された場合は、こうして転送さ
れた出力信号が、次に、その実行されたインストラクシ
ョンの後に実行されるもう一つのインストラクションに
対するオペランドとして使用される。図1に示される実
施例の場合は、この実行されたインストラクションの後
に実行されるインストラクションは、この実行されたイ
ンストラクションの直後に実行されるが、ただし、本発
明の範囲はこの点に関して限定を受けるものではない。
幾つかの状況においては、ある一つの結果を生成する第
一のインストラクションと、第一のインストラクション
の結果をオペランドとして使用する第二のインストラク
ションの間に、入り込んだインストラクションが存在す
る場合でも、本発明に従う拡張されたオペランドバイパ
スを達成することが可能である。このような状況は、例
えば、この入り込んだインストラクションがメモリ内に
結果を格納しないような場合に発生する。同様にして、
格納された出力信号がIR段内のレジスタに転送された
場合は、こうして転送された出力信号が、その実行され
たインストラクションの直後に実行されるもう一つのイ
ンストラクション用のオペランドのメモリアドレス位置
として使用される。
納された出力信号は、次に、IR段或はOR段の一つ中
のレジスタ内に転送される。こうして、前述のように、
オフチップメモリ或はオンチップデータキャッシュ内の
その宛先メモリアドレス位置から出力信号を読み出すた
めのインストラクション或は動作が取消し或は省略され
る。この格納された出力信号は、MUX、例えば、図1
に示されるMUX610、620、710或は720の
一つを介して転送される。この格納された出力信号がO
R段内のレジスタに転送された場合は、こうして転送さ
れた出力信号が、次に、その実行されたインストラクシ
ョンの後に実行されるもう一つのインストラクションに
対するオペランドとして使用される。図1に示される実
施例の場合は、この実行されたインストラクションの後
に実行されるインストラクションは、この実行されたイ
ンストラクションの直後に実行されるが、ただし、本発
明の範囲はこの点に関して限定を受けるものではない。
幾つかの状況においては、ある一つの結果を生成する第
一のインストラクションと、第一のインストラクション
の結果をオペランドとして使用する第二のインストラク
ションの間に、入り込んだインストラクションが存在す
る場合でも、本発明に従う拡張されたオペランドバイパ
スを達成することが可能である。このような状況は、例
えば、この入り込んだインストラクションがメモリ内に
結果を格納しないような場合に発生する。同様にして、
格納された出力信号がIR段内のレジスタに転送された
場合は、こうして転送された出力信号が、その実行され
たインストラクションの直後に実行されるもう一つのイ
ンストラクション用のオペランドのメモリアドレス位置
として使用される。
【0024】前述のように、図1に示される実施例の場
合は、実行されたインストラクションに対するALUの
出力信号がRR段、例えば、図1のRR500内に格納
されると、RR段データ妥当性標識、例えば、標識43
0がセットされる。同様にして、格納された出力信号を
IR段或はOR段の一つのレジスタに転送するステップ
が、MUX、例えば、図1に示されるMUX610、6
20、710或は720の一つによって達成される場合
は、この格納された出力信号を転送するステップが、さ
らに、少なくとも部分的に、RRデータ標識の設定状態
に基づいてMUXを制御するステップを含む。
合は、実行されたインストラクションに対するALUの
出力信号がRR段、例えば、図1のRR500内に格納
されると、RR段データ妥当性標識、例えば、標識43
0がセットされる。同様にして、格納された出力信号を
IR段或はOR段の一つのレジスタに転送するステップ
が、MUX、例えば、図1に示されるMUX610、6
20、710或は720の一つによって達成される場合
は、この格納された出力信号を転送するステップが、さ
らに、少なくとも部分的に、RRデータ標識の設定状態
に基づいてMUXを制御するステップを含む。
【0025】前に述べたように、本発明に従う拡張され
たオペランドバイパスメカニズムは、第一の或は先行の
インストラクションの結果の宛先メモリのアドレス位置
を後続のインストラクションのオペランドのメモリアド
レス位置と比較することによって始動される。図1の実
施例に対して説明されるように、このステップは、AL
Uの出力信号を1クロックサイクル期間以上結果レジス
タ内に格納するステップに先行して或はこれと平行して
遂行される。ここまで説明すれば、結果レジスタ、例え
ば、図1のRR500の内容は、本発明に従う拡張され
たオペランドバイパスが発生するか否かに関係なくメモ
リ内に書込まれることが理解できるものである。
たオペランドバイパスメカニズムは、第一の或は先行の
インストラクションの結果の宛先メモリのアドレス位置
を後続のインストラクションのオペランドのメモリアド
レス位置と比較することによって始動される。図1の実
施例に対して説明されるように、このステップは、AL
Uの出力信号を1クロックサイクル期間以上結果レジス
タ内に格納するステップに先行して或はこれと平行して
遂行される。ここまで説明すれば、結果レジスタ、例え
ば、図1のRR500の内容は、本発明に従う拡張され
たオペランドバイパスが発生するか否かに関係なくメモ
リ内に書込まれることが理解できるものである。
【0026】図1には示されないが、幾つかの特定のケ
ースにおいては、オペランドのバイパスを回避すること
が要求される。例えば、文字操作インストラクションの
場合は、マイクロプロセッサはあるオペランドの細分さ
れた或は選択された部分に関して動作し、従って、レジ
スタ500内に格納された結果の細分された部分のみが
“正当”となる。この特定の状況においては、従って、
要求される文字操作を成功裡に達成させるためには、結
果レジスタ、例えば、図1のRR500内に格納された
結果を、これをメモリ内に書込んだ後に、メモリから読
み出すための特定の動作を達成することが必要となる。
同様に、実行されたインストラクションがコンテキスト
スイッチインストラクションである場合は、オペランド
バイパスを遂行しない方が良い。このケースにおいて
は、コンテキストスイッチインストラクションの後に実
行されるためにパイプラインに入るインストラクション
が第二のインストラクションルーチン或はセットのイン
ストラクションを構成する。この状況が発生した場合、
この第二のセットのインストラクションは、第一の或は
先行のセットのインストラクション内のオペランドと動
作上或は論理的に対応するインストラクション信号を、
これらオペランドを指定する意図はないのに含む。従っ
て、コンテキストスイッチインストラクションの後に、
第二のセット内のインストラクションが、第二のセット
内のこのインストラクションは実際には特定のメモリア
ドレス位置の内容を参照するのにもかかわらず、第一の
セット内のインストラクションの結果を参照するように
見える場合がある。従って、このような状況において
は、バイパスを回避する必要がある。この二つの上述の
状況においては、オペランドバイパスが、例えば、デー
タ妥当性標識520がセットされることを阻止すること
によって回避される。
ースにおいては、オペランドのバイパスを回避すること
が要求される。例えば、文字操作インストラクションの
場合は、マイクロプロセッサはあるオペランドの細分さ
れた或は選択された部分に関して動作し、従って、レジ
スタ500内に格納された結果の細分された部分のみが
“正当”となる。この特定の状況においては、従って、
要求される文字操作を成功裡に達成させるためには、結
果レジスタ、例えば、図1のRR500内に格納された
結果を、これをメモリ内に書込んだ後に、メモリから読
み出すための特定の動作を達成することが必要となる。
同様に、実行されたインストラクションがコンテキスト
スイッチインストラクションである場合は、オペランド
バイパスを遂行しない方が良い。このケースにおいて
は、コンテキストスイッチインストラクションの後に実
行されるためにパイプラインに入るインストラクション
が第二のインストラクションルーチン或はセットのイン
ストラクションを構成する。この状況が発生した場合、
この第二のセットのインストラクションは、第一の或は
先行のセットのインストラクション内のオペランドと動
作上或は論理的に対応するインストラクション信号を、
これらオペランドを指定する意図はないのに含む。従っ
て、コンテキストスイッチインストラクションの後に、
第二のセット内のインストラクションが、第二のセット
内のこのインストラクションは実際には特定のメモリア
ドレス位置の内容を参照するのにもかかわらず、第一の
セット内のインストラクションの結果を参照するように
見える場合がある。従って、このような状況において
は、バイパスを回避する必要がある。この二つの上述の
状況においては、オペランドバイパスが、例えば、デー
タ妥当性標識520がセットされることを阻止すること
によって回避される。
【0027】ここでは、本発明の幾つかの特徴のみが図
に示され、説明されたが、多くの修正、代替、変更或は
均等物が当業者においては明らかになるものである。従
って、特許請求の範囲は、全てのこれら修正及び変更を
本発明の真の精神の範囲に入るものとして包含すること
を意図するものと理解されるべきである。
に示され、説明されたが、多くの修正、代替、変更或は
均等物が当業者においては明らかになるものである。従
って、特許請求の範囲は、全てのこれら修正及び変更を
本発明の真の精神の範囲に入るものとして包含すること
を意図するものと理解されるべきである。
【図1】 本発明による拡張されたオペランドバイパス
メカニズムの一つの実施例の略図である。
メカニズムの一つの実施例の略図である。
【図2】 パイプライン結合されたデジタル信号プロセ
ッサ或はマイクロプロセッサの実行ユニット或は実行部
分の一つの実施例の略図である。
ッサ或はマイクロプロセッサの実行ユニット或は実行部
分の一つの実施例の略図である。
50 マイクロプロセッサ 310、320 インストラクションレジスタ 410、420 オペランドレジスタ 200 演算ユニット 500 データレジスタ
Claims (10)
- 【請求項1】 マイクロプロセッサであって、このマイ
クロプロセッサが:各々が一つの入力ポートと出力ポー
トを持つ二つのインストラクションレジスタ(IR)
(例えば、310、320)を含むインストラクション
レジスタ(IR)段;各々が一つの入力ポートと出力ポ
ートを持つ二つのオペランドレジスタ(OR)(例え
ば、410、420)を含むオペランドレジスタ(O
R)段;演算論理ユニット(ALU)(例えば、20
0);及び一つの入力ポートと出力ポートを持つ結果レ
ジスタ(RR)(例えば、500)を含む結果レジスタ
(RR)段を含み;前記の複数の段とALU(例えば、
200)がパイプライン結合されたマイクロプロセッサ
を形成するように結合され;前記のパイプライン結合さ
れたマイクロプロセッサがマルチプレクサ(例えば、7
10、720、610、620)を含み、このマルチプ
レクサが前記のRR(例えば、500)の出力ポートを
前記のIR段とOR段の少なくとも一つのレジスタ(例
えば、310、320、410、420)の少なくとも
一つの入力ポートに選択的に結合するように適応(使
用)されることを特徴とするマイクロプロセッサ。 - 【請求項2】 前記のRR段がさらにRR段データ妥当
性標識レジスタ(例えば、520)とRR段アドレスレ
ジスタ(例えば、510)を含むことを特徴とする請求
項1のマイクロプロセッサ。 - 【請求項3】 前記のマルチプレクサ(例えは、71
0、720、610、620)が、少なくとも部分的
に、前記のRR段データ妥当性標識レジスタ(例えば、
520)に依存し;前記のRR(例えば、500)が前
記のマイクロプロセッサの1クロックサイクル期間以上
前記のALU(例えば、200)の出力信号を格納する
ように適応(使用)されることを特徴とする請求項2の
マイクロプロセッサ。 - 【請求項4】 前記のRR段がRR段インストラクショ
ン妥当性標識レジスタ(例えば、530)を含み、 前記のマルチプレクサ(例えば、710、720、61
0、620)がさらに、少なくとも部分的に、前記のR
R段インストラクション妥当性標識レジスタ(例えば、
530)に依存することを特徴とする請求項3のマイク
ロプロセッサ。 - 【請求項5】 前記の少なくとも一つのレジスタ(例え
ば、310、320、410、420)が前記のOR段
の少なくとも一つのレジスタ(例えば、410、42
0)を含み;前記のマルチプレクサ(例えば、610、
620)が前記のRR(例えば、500)の出力ポート
と前記のIR段の少なくとも一つのレジスタ(例えば、
310、420)の出力ポートを前記のOR段の少なく
とも一つのレジスタ(例えば、410、420)の入力
ポートに選択的に結合するように適応(使用)されるこ
とを特徴とする請求項1のマイクロプロセッサ。 - 【請求項6】 前記のパイプライン結合されたマイクロ
プロセッサが前記のIR段の前に復号器ユニットを含
み;前記の少なくとも一つのレジスタ(例えば、31
0、320、410、420)が前記のIR段の少なく
とも一つのレジスタ(例えば、310、320)を含
み;前記のマルチプレクサ(例えば、710、720)
が前記のRR(例えば、500)の出力ポートと前記の
復号器ユニットの出力ポートの少なくとも一つを前記の
IR段の前記の少なくとも一つのレジスタ(例えば、3
10、320)の入力ポートに選択的に結合するように
適応(使用)されることを特徴とする請求項1のマイク
ロプロセッサ。 - 【請求項7】 前記のRR(例えば、500)がラッチ
を含み、前記のOR段がOR段インストラクション妥当
性標識レジスタ(例えば、430)を含み;前記のラッ
チが前記のALU(例えば、200)の出力ポートか
ら、少なくとも部分的、前記のOR段インストラクショ
ン妥当性標識レジスタ(例えば、430)に応答して出
力信号を受信するように適応(使用)されることを特徴
とする請求項5のマイクロプロセッサ。 - 【請求項8】 マイクロプロセッサインストラクション
を実行するためのパイプライン結合されたマイクロプロ
セッサ内でオペランドをバイパスするための方法であっ
て;前記のパイプライン結合されたマイクロプロセッサ
が演算論理ユニット(ALU)(例えば、200)と結
果レジスタ(RR)段を含み;前記の方法が一つの実行
されたマイクロプロセッサインストラクションに対する
ALU(例えば、200)の出力信号をRR段内のレジ
スタ(例えば、500)内に前記のパイプライン結合さ
れたマイクロプロセッサの少なくとも1クロックサイク
ル期間以上格納するステップを含むことを特徴とする方
法。 - 【請求項9】 前記のパイプライン結合されたマイクロ
プロセッサがさらにインストラクションレジスタ(I
R)段とオペランドレジスタ(OR)段を含み;さらに
前記の格納された出力信号を本質的に前記のIR段とO
R段から構成される一群から選択された一つの段内のレ
ジスタ(例えば、310、320、410、420)に
転送するステップが含まれることを特徴とする請求項8
の方法。 - 【請求項10】 前記の格納された出力信号を本質的に
前記のIR段とOR段から構成される一群から選択され
た一つの段内のレジスタ(例えば、310、320、4
10、420)に転送するステップが格納された出力信
号をMUX(例えば、710、720、610、62
0)を介して転送するステップから構成されることを特
徴とする請求項9の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US20004394A | 1994-02-22 | 1994-02-22 | |
| US200043 | 1994-02-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07262005A true JPH07262005A (ja) | 1995-10-13 |
Family
ID=22740083
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3276095A Withdrawn JPH07262005A (ja) | 1994-02-22 | 1995-02-22 | 拡張されたオペランドバイパスシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH07262005A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5907694A (en) * | 1996-03-29 | 1999-05-25 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing a pipeline operation on a load and extension instruction |
| JP2010271818A (ja) * | 2009-05-20 | 2010-12-02 | Nec Computertechno Ltd | 命令融合演算装置および命令融合演算方法 |
-
1995
- 1995-02-22 JP JP3276095A patent/JPH07262005A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5907694A (en) * | 1996-03-29 | 1999-05-25 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing a pipeline operation on a load and extension instruction |
| JP2010271818A (ja) * | 2009-05-20 | 2010-12-02 | Nec Computertechno Ltd | 命令融合演算装置および命令融合演算方法 |
| US8677102B2 (en) | 2009-05-20 | 2014-03-18 | Nec Corporation | Instruction fusion calculation device and method for instruction fusion calculation |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3857400B2 (ja) | 自己変更コードの競合を検出するマイクロプロセッサ及びこのマイクロプロセッサを動作させる方法 | |
| US5860107A (en) | Processor and method for store gathering through merged store operations | |
| US5500943A (en) | Data processor with rename buffer and FIFO buffer for in-order instruction completion | |
| US7299343B2 (en) | System and method for cooperative execution of multiple branching instructions in a processor | |
| KR100464101B1 (ko) | Dsp펑션을수행하도록의도된명령시퀀스들을dsp펑션식별자로변환하는dsp펑션프리프로세서를갖는cpu | |
| US6032247A (en) | Central processing unit including APX and DSP cores which receives and processes APX and DSP instructions | |
| US7191320B2 (en) | Apparatus and method for performing a detached load operation in a pipeline microprocessor | |
| EP0740249A1 (en) | Data processing device with coprocessor | |
| JPH09223013A (ja) | 高性能プロセッサにおける投機ロード命令の実行方法 | |
| JPH09120360A (ja) | ロード命令を実行する実行ユニットを具備するデータ・プロセッサおよびその動作方法 | |
| US5884062A (en) | Microprocessor with pipeline status integrity logic for handling multiple stage writeback exceptions | |
| JPH10228376A (ja) | 複数レジスタ命令を処理する方法及びプロセッサ | |
| US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
| US6275903B1 (en) | Stack cache miss handling | |
| JP2001060153A (ja) | 情報処理装置 | |
| CN101907984B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
| JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
| JP2001243071A (ja) | 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法 | |
| US7401328B2 (en) | Software-implemented grouping techniques for use in a superscalar data processing system | |
| CN100472432C (zh) | 电子电路 | |
| US6170050B1 (en) | Length decoder for variable length data | |
| JPH07262005A (ja) | 拡張されたオペランドバイパスシステム | |
| CN101944012A (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
| US5926645A (en) | Method and system for enabling multiple store instruction completions in a processing system | |
| US6591360B1 (en) | Local stall/hazard detect in superscalar, pipelined microprocessor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020507 |