JP2000276352A - パイプライン保護 - Google Patents
パイプライン保護Info
- Publication number
- JP2000276352A JP2000276352A JP2000062321A JP2000062321A JP2000276352A JP 2000276352 A JP2000276352 A JP 2000276352A JP 2000062321 A JP2000062321 A JP 2000062321A JP 2000062321 A JP2000062321 A JP 2000062321A JP 2000276352 A JP2000276352 A JP 2000276352A
- Authority
- JP
- Japan
- Prior art keywords
- pipeline
- register
- shadow
- write
- processor
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims description 32
- 230000007246 mechanism Effects 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 9
- 230000003111 delayed effect Effects 0.000 abstract description 35
- 238000001914 filtration Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 51
- 238000012545 processing Methods 0.000 description 45
- 230000006870 function Effects 0.000 description 42
- 238000007726 management method Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003466 anti-cipated effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 3
- 101150115300 MAC1 gene Proteins 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000012535 impurity Substances 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 2
- 102100039558 Galectin-3 Human genes 0.000 description 2
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 2
- 101150051246 MAC2 gene Proteins 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101000619805 Homo sapiens Peroxiredoxin-5, mitochondrial Proteins 0.000 description 1
- 102100022078 Peroxiredoxin-5, mitochondrial Human genes 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011810 insulating material Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】パイプラインアーキテクチャにおけるリソース
アクセス間での競合を解消すること 【解決手段】パイプライン保護機構は、一組のシャドー
レジスタと、パイプライン段階の間の前記複数のリソー
スのうちの各保護されたリソースに対するアクセスの競
合を予想するためのインターロック回路とを備え、イン
ターロック検出回路の出力端はシャドーレジスタの組に
制御自在に接続されており、第1パイプライン段階から
のデータアイテムをインターロック回路によって予想さ
れるアクセスの競合に応答して、選択されたシャドーレ
ジスタへリダイレクトすることができ、よってプロセッ
サのパイプラインを停止することなくリソースのアクセ
スの競合を解消するように、前記シャドーレジスタの組
が前記プロセッサパイプラインと相互に接続されてい
る。
アクセス間での競合を解消すること 【解決手段】パイプライン保護機構は、一組のシャドー
レジスタと、パイプライン段階の間の前記複数のリソー
スのうちの各保護されたリソースに対するアクセスの競
合を予想するためのインターロック回路とを備え、イン
ターロック検出回路の出力端はシャドーレジスタの組に
制御自在に接続されており、第1パイプライン段階から
のデータアイテムをインターロック回路によって予想さ
れるアクセスの競合に応答して、選択されたシャドーレ
ジスタへリダイレクトすることができ、よってプロセッ
サのパイプラインを停止することなくリソースのアクセ
スの競合を解消するように、前記シャドーレジスタの組
が前記プロセッサパイプラインと相互に接続されてい
る。
Description
【0001】
【発明の属する技術分野】本発明は、パイプラインプロ
セッサ構造に関し、より詳細には、プロセッサパイプラ
インを競合から保護することに関する。
セッサ構造に関し、より詳細には、プロセッサパイプラ
インを競合から保護することに関する。
【0002】
【従来の技術】一般に、デジタル信号プロセッサ(DS
P)またはマイクロプロセッサで見られるような最近の
処理エンジンは、処理性能を改善するためにパイプライ
ンアーキテクチャを使用している。パイプラインアーキ
テクチャとは、1つの段階におけるパイプライン内にお
いて、2つ以上の命令が処理の異なる段階にあるよう
に、異なる段階の命令処理を実行することを意味する。
P)またはマイクロプロセッサで見られるような最近の
処理エンジンは、処理性能を改善するためにパイプライ
ンアーキテクチャを使用している。パイプラインアーキ
テクチャとは、1つの段階におけるパイプライン内にお
いて、2つ以上の命令が処理の異なる段階にあるよう
に、異なる段階の命令処理を実行することを意味する。
【0003】
【発明が解決しようする課題】パイプラインアーキテク
チャは、ある処理をスタートする前に別の命令の処理を
完了する場合よりも高い処理速度を可能にするが、この
アーキテクチャによって複雑さがより増し、これにより
作動時の潜在的な競合が増加する。競合は、例えば第1
の命令がレジスタ上の作動を完了する前に、そのレジス
タまたはそのレジスタの一部に第2の命令がアクセスし
ようと試み、よって第2の命令が無効なデータを受信し
得るよう、リソースアクセス間でこのような競合が生じ
得る。
チャは、ある処理をスタートする前に別の命令の処理を
完了する場合よりも高い処理速度を可能にするが、この
アーキテクチャによって複雑さがより増し、これにより
作動時の潜在的な競合が増加する。競合は、例えば第1
の命令がレジスタ上の作動を完了する前に、そのレジス
タまたはそのレジスタの一部に第2の命令がアクセスし
ようと試み、よって第2の命令が無効なデータを受信し
得るよう、リソースアクセス間でこのような競合が生じ
得る。
【0004】かかる潜在的な競合は「データハザード」
と称されることが多い。起こり得るデータハザードの例
として、例えば次のようなケースがある。
と称されることが多い。起こり得るデータハザードの例
として、例えば次のようなケースがある。
【0005】-read after write(例えば:ARx=ARy後に*
ARx=k16が続く) -write after read(例えば:ARx=ARy後にmar(ARy=P16が
続く)) -write after write(例えば:ARx=ARy後にmar(ARx=P16
が続く))
ARx=k16が続く) -write after read(例えば:ARx=ARy後にmar(ARy=P16が
続く)) -write after write(例えば:ARx=ARy後にmar(ARx=P16
が続く))
【0006】当技術分野では、ハードウェアによるパイ
プライン保護のための種々の技術が知られている。1つ
の例は「スコアボーディング」と称されている。スコア
ボーディングを用いることにより、各レジスタまたはフ
ィールドは、テーブルまたはスコアボードを使用する実
行の位相によりパスしたペンディング中の書き込みおよ
び読み出しを有し得る。しかしながら、かかる方法は取
り扱いが複雑であり、論理のオーバーヘッドの点、従っ
て電力消費量の点でコスト高となる。特にポータブルア
プリケーションまたは引き込み商用電源以外の方法で給
電されるアプリケーション(例えばバッテリーまたはそ
の他の方法で給電されるアプリケーション)のために設
計された処理エンジンでは、かかる方法は望ましくな
い。更にスコアボーディング方法は処理エンジンが大き
い命令セットおよび/またはパラレル処理アーキテクチ
ャを有する場合に扱いにくくなり得る。
プライン保護のための種々の技術が知られている。1つ
の例は「スコアボーディング」と称されている。スコア
ボーディングを用いることにより、各レジスタまたはフ
ィールドは、テーブルまたはスコアボードを使用する実
行の位相によりパスしたペンディング中の書き込みおよ
び読み出しを有し得る。しかしながら、かかる方法は取
り扱いが複雑であり、論理のオーバーヘッドの点、従っ
て電力消費量の点でコスト高となる。特にポータブルア
プリケーションまたは引き込み商用電源以外の方法で給
電されるアプリケーション(例えばバッテリーまたはそ
の他の方法で給電されるアプリケーション)のために設
計された処理エンジンでは、かかる方法は望ましくな
い。更にスコアボーディング方法は処理エンジンが大き
い命令セットおよび/またはパラレル処理アーキテクチ
ャを有する場合に扱いにくくなり得る。
【0007】その他の方法は、読み出し/書き込みキュ
ーイングを使用できる。しかしながら、広範な種類のパ
イプラインフィールドおよび/またはリソースアクセス
のソースがある場合、かかる方法は不適当である。更に
かかる方法は取り扱いが急速に複雑となり、論理のオー
バーヘッドおよび電力消費量の点でコスト高となり得
る。
ーイングを使用できる。しかしながら、広範な種類のパ
イプラインフィールドおよび/またはリソースアクセス
のソースがある場合、かかる方法は不適当である。更に
かかる方法は取り扱いが急速に複雑となり、論理のオー
バーヘッドおよび電力消費量の点でコスト高となり得
る。
【0008】別の方法は、パイプライン内で命令にリソ
ースエンコーディングを添付する方法を用いることがで
きる。しかしながら、かかる方法には上記に類似した欠
点があり得る。
ースエンコーディングを添付する方法を用いることがで
きる。しかしながら、かかる方法には上記に類似した欠
点があり得る。
【0009】多くの異なるタイプのプロセッサが知られ
ており、その一例はマイクロプロセッサである。特定の
用途、例えば移動処理アプリケーションのためにデジタ
ル信号プロセッサ(DSP)が広く使用されている。D
SPは一般に関連するアプリケーションの性能を最適に
し、これを達成するよう構成(アーキテクチャ)されて
おり、これらDSPはより特殊な実行ユニットおよび命
令セットを使用している。特に、移動通信アプリケーシ
ョンのようなアプリケーション(これのみに限定される
わけではない)では、電力消費量をできるだけ小さく維
持しながら、DSPの性能を次第に高めることが望まし
い。
ており、その一例はマイクロプロセッサである。特定の
用途、例えば移動処理アプリケーションのためにデジタ
ル信号プロセッサ(DSP)が広く使用されている。D
SPは一般に関連するアプリケーションの性能を最適に
し、これを達成するよう構成(アーキテクチャ)されて
おり、これらDSPはより特殊な実行ユニットおよび命
令セットを使用している。特に、移動通信アプリケーシ
ョンのようなアプリケーション(これのみに限定される
わけではない)では、電力消費量をできるだけ小さく維
持しながら、DSPの性能を次第に高めることが望まし
い。
【0010】従って、上記従来方法の欠点の問題がな
く、データハザードを回避するよう、パイプライン内で
リソース競合管理に対する異なる方法が求められてい
る。
く、データハザードを回避するよう、パイプライン内で
リソース競合管理に対する異なる方法が求められてい
る。
【0011】
【課題を解決するための手段】添付した独立請求項およ
び従属請求項には、本発明の特定の好ましい特徴が記載
されている。従属請求項からの特徴と独立請求項の特徴
とを適当に、かつ請求項に明示的に記載されていないよ
うに組み合わせることができる。
び従属請求項には、本発明の特定の好ましい特徴が記載
されている。従属請求項からの特徴と独立請求項の特徴
とを適当に、かつ請求項に明示的に記載されていないよ
うに組み合わせることができる。
【0012】本発明の特徴によれば、複数のパイプライ
ン段階と、複数のリソースと、パイプライン保護機構と
を備えたプロセッサパイプラインを含む処理エンジンが
提供される。パイプライン保護機構はパイプライン段階
間で複数のリソースのうちの保護された各リソースに対
するアクセスの競合を予想するためのインターロック回
路を含む。このインターロック検出回路の出力は、シャ
ドーレジスタの一組に制御自在に接続されている。プロ
セッサのパイプラインを中止することなく、リソースア
クセスの競合を解消できるよう、インターロック回路に
より予想されるアクセスの競合に応答し、第1パイプラ
イン段階からのデータアイテムを選択されたシャドーレ
ジスタに向け直すことができるように、シャドーレジス
タの組はプロセッサパイプラインに相互接続されてい
る。
ン段階と、複数のリソースと、パイプライン保護機構と
を備えたプロセッサパイプラインを含む処理エンジンが
提供される。パイプライン保護機構はパイプライン段階
間で複数のリソースのうちの保護された各リソースに対
するアクセスの競合を予想するためのインターロック回
路を含む。このインターロック検出回路の出力は、シャ
ドーレジスタの一組に制御自在に接続されている。プロ
セッサのパイプラインを中止することなく、リソースア
クセスの競合を解消できるよう、インターロック回路に
より予想されるアクセスの競合に応答し、第1パイプラ
イン段階からのデータアイテムを選択されたシャドーレ
ジスタに向け直すことができるように、シャドーレジス
タの組はプロセッサパイプラインに相互接続されてい
る。
【0013】リソースは、例えばレジスタまたはレジス
タの部品(例えばフィールド)でよい。
タの部品(例えばフィールド)でよい。
【0014】インターロック回路はインターロック検出
回路を含み、このインターロック検出回路は保護された
すべてのリソースに対するアクセスの競合を予想するよ
うに作動でき、かつ停止ベクトル信号を形成するように
作動できる。この停止ベクトル信号を受信するように、
保留およびフィルタ回路が接続されており、この回路は
停止ベクトル信号に応答し、シャドーレジスタの組から
利用できるシャドーレジスタを選択するように作動でき
る。この保留およびフィルタ回路にはシャドー管理回路
が接続されており、このシャドー管理回路はシャドーレ
ジスタの組に制御自在に送られる出力信号を有する。
回路を含み、このインターロック検出回路は保護された
すべてのリソースに対するアクセスの競合を予想するよ
うに作動でき、かつ停止ベクトル信号を形成するように
作動できる。この停止ベクトル信号を受信するように、
保留およびフィルタ回路が接続されており、この回路は
停止ベクトル信号に応答し、シャドーレジスタの組から
利用できるシャドーレジスタを選択するように作動でき
る。この保留およびフィルタ回路にはシャドー管理回路
が接続されており、このシャドー管理回路はシャドーレ
ジスタの組に制御自在に送られる出力信号を有する。
【0015】好ましくはパイプラインに対して決定され
た包括的な仲裁論理からリソースの各々に対する仲裁論
理が誘導される。包括的な関数自体は考えられるすべて
の競合の同時発生を処理できる包括的仲裁論理として集
積回路内に具現化できる。この仲裁論理ブロックの各々
は完全に包括的仲裁関数を具現化できるが、一般には異
なる特殊な形態の包括的仲裁関数を具現化するだけであ
る。この包括的仲裁関数はそれぞれのパイプライン段階
の間で起こり得る潜在的または理論的競合のすべてを論
理的に定義する。実際にモニタ中のパイプライン段階の
すべてにおいて、当該リソースをアクセスすることはで
きないので、理論的な競合のすべてがリソースの各々に
対して物理的に発生する可能性はない。しかしながら、
1つのブロックからそれぞれの仲裁論理ブロックを構成
する場合、包括的関数は個々のリソースに対する論理設
計を簡略化し、一貫性のある性能とテスト性を提供す
る。
た包括的な仲裁論理からリソースの各々に対する仲裁論
理が誘導される。包括的な関数自体は考えられるすべて
の競合の同時発生を処理できる包括的仲裁論理として集
積回路内に具現化できる。この仲裁論理ブロックの各々
は完全に包括的仲裁関数を具現化できるが、一般には異
なる特殊な形態の包括的仲裁関数を具現化するだけであ
る。この包括的仲裁関数はそれぞれのパイプライン段階
の間で起こり得る潜在的または理論的競合のすべてを論
理的に定義する。実際にモニタ中のパイプライン段階の
すべてにおいて、当該リソースをアクセスすることはで
きないので、理論的な競合のすべてがリソースの各々に
対して物理的に発生する可能性はない。しかしながら、
1つのブロックからそれぞれの仲裁論理ブロックを構成
する場合、包括的関数は個々のリソースに対する論理設
計を簡略化し、一貫性のある性能とテスト性を提供す
る。
【0016】処理エンジンはパイプラインの段階を制御
するためのパイプライン制御論理を一般に含むことにな
る。このパイプライン制御論理は誘導されるか、または
仲裁論理から出力される停止制御信号を受信するように
接続でき、パイプラインの選択的停止を制御し、リソー
スアクセスの競合を防止するための停止制御信号を形成
するために、各仲裁論理の出力をマージするための出力
マージ論理を設けることができる。
するためのパイプライン制御論理を一般に含むことにな
る。このパイプライン制御論理は誘導されるか、または
仲裁論理から出力される停止制御信号を受信するように
接続でき、パイプラインの選択的停止を制御し、リソー
スアクセスの競合を防止するための停止制御信号を形成
するために、各仲裁論理の出力をマージするための出力
マージ論理を設けることができる。
【0017】アクセス情報をペンディング中のアクセス
に関連付けできる。このアクセス情報は現在のアクセス
にも関連付けできる。当然ながら、パイプラインからの
現在のアクセス情報を受信し、それぞれの保護されてい
るリソースのための現在アクセス情報を誘導するよう
に、現在アクセスデコード段階を接続することができ、
保護されているリソースのための仲裁論理は、この保護
されているリソースのための現在のアクセス情報のみみ
ならず、ペンディング中のアクセス情報も受信するよう
に接続される。
に関連付けできる。このアクセス情報は現在のアクセス
にも関連付けできる。当然ながら、パイプラインからの
現在のアクセス情報を受信し、それぞれの保護されてい
るリソースのための現在アクセス情報を誘導するよう
に、現在アクセスデコード段階を接続することができ、
保護されているリソースのための仲裁論理は、この保護
されているリソースのための現在のアクセス情報のみみ
ならず、ペンディング中のアクセス情報も受信するよう
に接続される。
【0018】処理エンジンはデジタル信号プロセッサ状
とすることができる。またはこの代わりにマイクロプロ
セッサ状、またはパイプラインアーキテクチャを使用す
る他の形態の処理エンジンとすることもできる。この処
理エンジンは集積回路の形態で実現できる。
とすることができる。またはこの代わりにマイクロプロ
セッサ状、またはパイプラインアーキテクチャを使用す
る他の形態の処理エンジンとすることもできる。この処
理エンジンは集積回路の形態で実現できる。
【0019】本発明に係わる処理エンジンのための特定
のアプリケーションは、無線通信デバイス、特に低電力
消費量および高い処理性能が必要とされる移動電話のよ
うなポータブル通信デバイスの形態となっている。
のアプリケーションは、無線通信デバイス、特に低電力
消費量および高い処理性能が必要とされる移動電話のよ
うなポータブル通信デバイスの形態となっている。
【0020】本発明の別の特徴によれば、処理エンジン
内でパイプラインを保護する方法が提供され、この処理
エンジンは複数のパイプライン段階および複数のリソー
スを備えたプロセッサパイプラインを含む。この方法は
各リソースのためのパイプライン段階間のアクセス競合
を予想するよう、それぞれの保護されたリソースに対
し、別個の仲裁を行う工程と、プロセッサパイプライン
を停止することなく、リソースアクセスの競合を解消す
るよう、予想されるアクセスの競合に応答し、第1のパ
イプライン段階からのデータアイテムを選択されたシャ
ドーレジスタにリダイレクトする工程とを含む。
内でパイプラインを保護する方法が提供され、この処理
エンジンは複数のパイプライン段階および複数のリソー
スを備えたプロセッサパイプラインを含む。この方法は
各リソースのためのパイプライン段階間のアクセス競合
を予想するよう、それぞれの保護されたリソースに対
し、別個の仲裁を行う工程と、プロセッサパイプライン
を停止することなく、リソースアクセスの競合を解消す
るよう、予想されるアクセスの競合に応答し、第1のパ
イプライン段階からのデータアイテムを選択されたシャ
ドーレジスタにリダイレクトする工程とを含む。
【0021】次に、添付図面を参照し、本発明に係わる
特定の実施例を単なる例として説明する。添付図面では
特に説明がない限り、同様な番号は同様な部品を示す。
特定の実施例を単なる例として説明する。添付図面では
特に説明がない限り、同様な番号は同様な部品を示す。
【0022】
【発明の実施の形態】本発明は、例えば特殊用途向け集
積回路(ASIC)内に実現されるディジタル信号プロ
セッサ(DSP)に特に用いられるが、他の種類のプロ
セッサにも用いられる。本発明によるプロセッサの一例
の基本的構成について以下に説明する。プロセッサ10
0は、可変命令長(8ビットから48ビット)のプログ
ラマブル固定小数点DSPコアであって、コード密度が
高くプログラミングが容易である。構成および命令集合
は、電力消費を低くし、かつ、無線電話や専用の制御タ
スク用のようなDSPアルゴリズムの実行の効率を高め
るように、最適化されている。プロセッサ100は、エ
ミュレーションおよびコード・デバッグの機能を含む。
積回路(ASIC)内に実現されるディジタル信号プロ
セッサ(DSP)に特に用いられるが、他の種類のプロ
セッサにも用いられる。本発明によるプロセッサの一例
の基本的構成について以下に説明する。プロセッサ10
0は、可変命令長(8ビットから48ビット)のプログ
ラマブル固定小数点DSPコアであって、コード密度が
高くプログラミングが容易である。構成および命令集合
は、電力消費を低くし、かつ、無線電話や専用の制御タ
スク用のようなDSPアルゴリズムの実行の効率を高め
るように、最適化されている。プロセッサ100は、エ
ミュレーションおよびコード・デバッグの機能を含む。
【0023】図1は、本発明の一実施の形態によるディ
ジタル装置10の概略図である。ディジタル装置は、プ
ロセッサ100とプロセッサ・バックプレーン20とを
含む。本発明の特定の例では、ディジタル装置は、特殊
用途向け集積回路(ASIC)で実現されたディジタル
信号プロセッサ装置10である。簡単のために、図1
は、本発明の実施の形態を理解するのに必要なマイクロ
プロセッサ100のそれらの部分だけを示す。DSPの
一般的な構造の詳細は良く知られているので、別の文献
を参照していただきたい。例えば、Frederick Boutaud
らに発行された米国特許第5,072,418号はDS
Pについて詳細に説明しているので、ここに援用する。
Gary Swoboda らに発行された米国特許第5,329,
471号はDSPを試験しエミュレートする方法につい
て詳細に説明しているので、ここに援用する。マイクロ
プロセッサ技術の当業者が本発明を製作し使用すること
ができるように、本発明の一実施の形態に関するマイク
ロプロセッサ100の一部の詳細について以下に説明す
る。
ジタル装置10の概略図である。ディジタル装置は、プ
ロセッサ100とプロセッサ・バックプレーン20とを
含む。本発明の特定の例では、ディジタル装置は、特殊
用途向け集積回路(ASIC)で実現されたディジタル
信号プロセッサ装置10である。簡単のために、図1
は、本発明の実施の形態を理解するのに必要なマイクロ
プロセッサ100のそれらの部分だけを示す。DSPの
一般的な構造の詳細は良く知られているので、別の文献
を参照していただきたい。例えば、Frederick Boutaud
らに発行された米国特許第5,072,418号はDS
Pについて詳細に説明しているので、ここに援用する。
Gary Swoboda らに発行された米国特許第5,329,
471号はDSPを試験しエミュレートする方法につい
て詳細に説明しているので、ここに援用する。マイクロ
プロセッサ技術の当業者が本発明を製作し使用すること
ができるように、本発明の一実施の形態に関するマイク
ロプロセッサ100の一部の詳細について以下に説明す
る。
【0024】本発明の態様の恩恵を被ることのできるい
くつかの例示の装置は、ここに援用した米国特許第5,
072,418号に、特に米国特許第5,072,41
8号の図2から図18を参照して述べられている。性能
を向上させコストを削減する本発明の態様を組み込んだ
マイクロプロセッサを用いれば、米国特許第5,07
2,418号に述べられた装置を更に改善することがで
きる。かかる装置は、これらに限定されるわけではない
が、工業的プロセス制御,自動車システム,モータ制
御,ロボット制御装置,衛星通信システム,エコー消去
装置,モデム,ビデオ映像装置,音声認識装置,暗号化
されたボコーダ・モデム装置などを含む。図1のマイク
ロプロセッサの種々の構造の特徴の説明および命令の完
全な集合の説明は、本出願人に譲渡された出願番号第0
9/410,977号(TI−28433)に述べられ
ているので、これをここに援用する。
くつかの例示の装置は、ここに援用した米国特許第5,
072,418号に、特に米国特許第5,072,41
8号の図2から図18を参照して述べられている。性能
を向上させコストを削減する本発明の態様を組み込んだ
マイクロプロセッサを用いれば、米国特許第5,07
2,418号に述べられた装置を更に改善することがで
きる。かかる装置は、これらに限定されるわけではない
が、工業的プロセス制御,自動車システム,モータ制
御,ロボット制御装置,衛星通信システム,エコー消去
装置,モデム,ビデオ映像装置,音声認識装置,暗号化
されたボコーダ・モデム装置などを含む。図1のマイク
ロプロセッサの種々の構造の特徴の説明および命令の完
全な集合の説明は、本出願人に譲渡された出願番号第0
9/410,977号(TI−28433)に述べられ
ているので、これをここに援用する。
【0025】図1に示すように、プロセッサ100は、
プロセッサ・コア102と、プロセッサ・コア102を
プロセッサ・コア102の外部にあるメモリ・ユニット
とインターフェースするメモリ・インターフェース・ユ
ニット104とを有する中央処理装置(CPU)を形成
する。プロセッサ・バックプレーン20は、プロセッサ
のメモリ管理ユニット104が接続されたバックプレー
ン・バス22を含む。バックプレーン・バス22には、
命令メモリ24,周辺装置26および外部インターフェ
ース28も接続されている。理解されるように、他の例
では、異なる構成および/または異なる技術を用いて本
発明を実現することができる。例えば、プロセッサ10
0は、プロセッサ・バックプレーン20をそこから分離
して、第1の集積回路を形成してもよい。例えば、プロ
セッサ100は、バックプレーン・バス22と周辺およ
び外部インターフェースとを支援するバックプレーン2
0から離してその上に取り付けたDSPであってもよ
い。例えば、プロセッサ100は、DSPではなくマイ
クロプロセッサでもよいし、また、ASIC技術以外の
技術で実現してもよい。このプロセッサまたはこのプロ
セッサを含むプロセッサを1つ以上の集積回路に実現し
てもよい。
プロセッサ・コア102と、プロセッサ・コア102を
プロセッサ・コア102の外部にあるメモリ・ユニット
とインターフェースするメモリ・インターフェース・ユ
ニット104とを有する中央処理装置(CPU)を形成
する。プロセッサ・バックプレーン20は、プロセッサ
のメモリ管理ユニット104が接続されたバックプレー
ン・バス22を含む。バックプレーン・バス22には、
命令メモリ24,周辺装置26および外部インターフェ
ース28も接続されている。理解されるように、他の例
では、異なる構成および/または異なる技術を用いて本
発明を実現することができる。例えば、プロセッサ10
0は、プロセッサ・バックプレーン20をそこから分離
して、第1の集積回路を形成してもよい。例えば、プロ
セッサ100は、バックプレーン・バス22と周辺およ
び外部インターフェースとを支援するバックプレーン2
0から離してその上に取り付けたDSPであってもよ
い。例えば、プロセッサ100は、DSPではなくマイ
クロプロセッサでもよいし、また、ASIC技術以外の
技術で実現してもよい。このプロセッサまたはこのプロ
セッサを含むプロセッサを1つ以上の集積回路に実現し
てもよい。
【0026】図2は、プロセッサ・コア102の一実施
の形態の基本構造を示す。図示するように、プロセッサ
・コア102のこの実施の形態は、4つの要素、すなわ
ち、命令バッファ・ユニット(Iユニット)106と3
つの実行ユニットとを含む。実行ユニットは、プログラ
ム・フロー・ユニット(Pユニット)108と、アドレ
ス・データ・フロー・ユニット(Aユニット)110
と、命令バッファ・ユニット(Iユニット)106から
復号された命令を実行するとともにプログラム・フロー
を制御し監視するデータ計算ユニット(Dユニット)1
12とである。
の形態の基本構造を示す。図示するように、プロセッサ
・コア102のこの実施の形態は、4つの要素、すなわ
ち、命令バッファ・ユニット(Iユニット)106と3
つの実行ユニットとを含む。実行ユニットは、プログラ
ム・フロー・ユニット(Pユニット)108と、アドレ
ス・データ・フロー・ユニット(Aユニット)110
と、命令バッファ・ユニット(Iユニット)106から
復号された命令を実行するとともにプログラム・フロー
を制御し監視するデータ計算ユニット(Dユニット)1
12とである。
【0027】図3は、プロセッサ・コア102のPユニ
ット108,Aユニット110およびDユニット112
をもっと詳細に示す図であり、また、プロセッサ・コア
102の種々の要素を接続するバス構造を示す。Pユニ
ット108は、例えば、ループ制御回路と、GoTo/
分岐制御回路と、反復カウンタ・レジスタや割込みマス
ク,フラグまたはベクトル・レジスタのようなプログラ
ム・フローを制御し監視する種々のレジスタとを含む。
Pユニット108は、汎用データ書込みバス(EB,F
B)130,132と、データ読取りバス(CB,D
B)134,136と、アドレス定数バス(KAB)1
42とに結合されている。また、Pユニット108は、
CSR,ACBおよびRGDとラベルされた種々のバス
を介してAユニット110およびDユニット112内の
サブユニットに結合されている。
ット108,Aユニット110およびDユニット112
をもっと詳細に示す図であり、また、プロセッサ・コア
102の種々の要素を接続するバス構造を示す。Pユニ
ット108は、例えば、ループ制御回路と、GoTo/
分岐制御回路と、反復カウンタ・レジスタや割込みマス
ク,フラグまたはベクトル・レジスタのようなプログラ
ム・フローを制御し監視する種々のレジスタとを含む。
Pユニット108は、汎用データ書込みバス(EB,F
B)130,132と、データ読取りバス(CB,D
B)134,136と、アドレス定数バス(KAB)1
42とに結合されている。また、Pユニット108は、
CSR,ACBおよびRGDとラベルされた種々のバス
を介してAユニット110およびDユニット112内の
サブユニットに結合されている。
【0028】図3に示すように、この実施の形態では、
Aユニット110はレジスタ・ファイル30とデータ・
アドレス生成サブユニット(DAGEN)32と算術・
論理演算ユニット(ALU)34とを含む。Aユニット
・レジスタ・ファイル30は種々のレジスタを含む。例
えば、16ビット・ポインタ・レジスタ(AR0〜AR
7)と、データ・フローおよびアドレス生成にも用いら
れるデータ・レジスタ(DR0〜DR3)とである。ま
た、レジスタ・ファイルは、16ビット循環バッファ・
レジスタと7ビットのデータ・ページ・レジスタとを含
む。汎用バス(EB,FB,CB,DB)130,13
2,134,136の他に、データ定数バス140およ
びアドレス定数バス142もAユニット・レジスタ・フ
ァイル30に結合されている。Aユニット・レジスタ・
ファイル30は、それぞれ逆方向に動作する一方向バス
144,146を介してAユニットDAGENユニット
32に結合されている。DAGENユニット32は、例
えば処理エンジン100内のアドレス生成を制御し監視
する16ビット・X/Yレジスタと係数/スタック・ポ
インタ・レジスタとを含む。
Aユニット110はレジスタ・ファイル30とデータ・
アドレス生成サブユニット(DAGEN)32と算術・
論理演算ユニット(ALU)34とを含む。Aユニット
・レジスタ・ファイル30は種々のレジスタを含む。例
えば、16ビット・ポインタ・レジスタ(AR0〜AR
7)と、データ・フローおよびアドレス生成にも用いら
れるデータ・レジスタ(DR0〜DR3)とである。ま
た、レジスタ・ファイルは、16ビット循環バッファ・
レジスタと7ビットのデータ・ページ・レジスタとを含
む。汎用バス(EB,FB,CB,DB)130,13
2,134,136の他に、データ定数バス140およ
びアドレス定数バス142もAユニット・レジスタ・フ
ァイル30に結合されている。Aユニット・レジスタ・
ファイル30は、それぞれ逆方向に動作する一方向バス
144,146を介してAユニットDAGENユニット
32に結合されている。DAGENユニット32は、例
えば処理エンジン100内のアドレス生成を制御し監視
する16ビット・X/Yレジスタと係数/スタック・ポ
インタ・レジスタとを含む。
【0029】Aユニット110は、加算,減算およびA
ND,OR,XOR論理演算子のようなALUに一般に
関連する機能とともにシフタ機能を含むALU34も含
む。ALU34は、汎用バス(EB,DB)130,1
36および命令定数データ・バス(KDB)140にも
結合されている。AユニットALUは、PDAバスを介
してPユニット108に結合されて、Pユニット108
レジスタ・ファイルからレジスタ定数を受ける。ALU
34は、バスRGA,RGBを介してAユニット・レジ
スタ・ファイル30にも結合されて、アドレスおよびデ
ータ・レジスタの内容を受けるとともに、バスRGDを
介してレジスタ・ファイル30のアドレスおよびデータ
・レジスタの内容を転送する。
ND,OR,XOR論理演算子のようなALUに一般に
関連する機能とともにシフタ機能を含むALU34も含
む。ALU34は、汎用バス(EB,DB)130,1
36および命令定数データ・バス(KDB)140にも
結合されている。AユニットALUは、PDAバスを介
してPユニット108に結合されて、Pユニット108
レジスタ・ファイルからレジスタ定数を受ける。ALU
34は、バスRGA,RGBを介してAユニット・レジ
スタ・ファイル30にも結合されて、アドレスおよびデ
ータ・レジスタの内容を受けるとともに、バスRGDを
介してレジスタ・ファイル30のアドレスおよびデータ
・レジスタの内容を転送する。
【0030】本発明の例示の実施の形態によれば、Dユ
ニット112は、Dユニット・レジスタ・ファイル36
と、DユニットALU38と、Dユニット・シフタ40
と、2つの乗算および累算ユニット(MAC1,MAC
2)42,44とを含む。Dユニット・レジスタ・ファ
イル36とDユニットALU38とDユニット・シフタ
40とはバス(EB,FB,CB,DB,KDB)13
0,132,134,136,140に結合され、ま
た、MACユニット42,44はバス(CB,DB,K
DB)134,136,140とデータ読取りバス(B
B)144とに結合されている。Dユニット・レジスタ
・ファイル36は、40ビット累算器(AC0〜AC
3)と16ビット遷移レジスタとを含む。Dユニット1
12は、40ビット累算器の他に、発信元レジスタまた
は宛先レジスタとしてAユニット110の16ビット・
ポインタおよびデータ・レジスタも用いる。Dユニット
・レジスタ・ファイル36は、累積器書込みバス(AC
W0,ACW1)146,148を介してDユニットA
LU38とMAC1 42とMAC2 44とからデー
タを受け、また、累積器書込みバス(ACW1)148
を介してDユニット・シフタ40からデータを受ける。
データは、Dユニット・レジスタ・ファイル累積器から
累積器読取りバス(ACR0,ACR1)150,15
2を介してDユニットALU38,Dユニット・シフタ
40,MAC1 42およびMAC2 44に読み取ら
れる。DユニットALU38およびDユニット・シフタ
40は、EFC,DRB,DR2およびACBとラベル
された種々のバスを介してAユニット108のサブユニ
ットにも結合されている。
ニット112は、Dユニット・レジスタ・ファイル36
と、DユニットALU38と、Dユニット・シフタ40
と、2つの乗算および累算ユニット(MAC1,MAC
2)42,44とを含む。Dユニット・レジスタ・ファ
イル36とDユニットALU38とDユニット・シフタ
40とはバス(EB,FB,CB,DB,KDB)13
0,132,134,136,140に結合され、ま
た、MACユニット42,44はバス(CB,DB,K
DB)134,136,140とデータ読取りバス(B
B)144とに結合されている。Dユニット・レジスタ
・ファイル36は、40ビット累算器(AC0〜AC
3)と16ビット遷移レジスタとを含む。Dユニット1
12は、40ビット累算器の他に、発信元レジスタまた
は宛先レジスタとしてAユニット110の16ビット・
ポインタおよびデータ・レジスタも用いる。Dユニット
・レジスタ・ファイル36は、累積器書込みバス(AC
W0,ACW1)146,148を介してDユニットA
LU38とMAC1 42とMAC2 44とからデー
タを受け、また、累積器書込みバス(ACW1)148
を介してDユニット・シフタ40からデータを受ける。
データは、Dユニット・レジスタ・ファイル累積器から
累積器読取りバス(ACR0,ACR1)150,15
2を介してDユニットALU38,Dユニット・シフタ
40,MAC1 42およびMAC2 44に読み取ら
れる。DユニットALU38およびDユニット・シフタ
40は、EFC,DRB,DR2およびACBとラベル
された種々のバスを介してAユニット108のサブユニ
ットにも結合されている。
【0031】図4を参照すると、32語の命令バッファ
待ち行列(IBQ)502を含む本発明による命令バッ
ファ・ユニット106が示されている。IBQ502
は、8ビット・バイト506に論理的に分割された32
×16ビットのレジスタ504を含む。命令は、32ビ
ットのプログラム・バス(PB)122を介してIBQ
502に到着する。命令は、ローカル書込みプログラム
・カウンタ(LWPC)532によって指し示される位
置に32ビット・サイクルで取り出される。LWPC5
32は、Pユニット108にあるレジスタに含まれてい
る。Pユニット108も、ローカル読取りプログラム・
カウンタ(LRPC)536レジスタと、書込みプログ
ラム・カウンタ(WPC)530レジスタと、読取りプ
ログラム・カウンタ(RPC)534レジスタとを含
む。LRPC536は、命令デコーダ512,514に
ロードされるべき次の命令のIBQ502内の位置を指
し示す。すなわち、LRPC536は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指し示す。WPCは、プログラム・メ
モリにおけるパイプライン用の次の4バイトの命令コー
ドの開始アドレスを指し示す。IBQに取り出す度に、
プログラム・メモリからの次の4バイトが命令境界に関
わらず取り出される。RPC534は、デコーダ512
/514に現在ディスパッチされている命令のプログラ
ム・メモリのアドレスを指し示す。
待ち行列(IBQ)502を含む本発明による命令バッ
ファ・ユニット106が示されている。IBQ502
は、8ビット・バイト506に論理的に分割された32
×16ビットのレジスタ504を含む。命令は、32ビ
ットのプログラム・バス(PB)122を介してIBQ
502に到着する。命令は、ローカル書込みプログラム
・カウンタ(LWPC)532によって指し示される位
置に32ビット・サイクルで取り出される。LWPC5
32は、Pユニット108にあるレジスタに含まれてい
る。Pユニット108も、ローカル読取りプログラム・
カウンタ(LRPC)536レジスタと、書込みプログ
ラム・カウンタ(WPC)530レジスタと、読取りプ
ログラム・カウンタ(RPC)534レジスタとを含
む。LRPC536は、命令デコーダ512,514に
ロードされるべき次の命令のIBQ502内の位置を指
し示す。すなわち、LRPC536は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指し示す。WPCは、プログラム・メ
モリにおけるパイプライン用の次の4バイトの命令コー
ドの開始アドレスを指し示す。IBQに取り出す度に、
プログラム・メモリからの次の4バイトが命令境界に関
わらず取り出される。RPC534は、デコーダ512
/514に現在ディスパッチされている命令のプログラ
ム・メモリのアドレスを指し示す。
【0032】この実施の形態では、命令は、48ビット
語で形成され、マルチプレクサ520,521を介して
48ビットのバス516により命令デコーダ512,5
14にロードされる。当業者には明らかなように、命令
は48ビット以外で構成された語に形成されてもよく、
本発明は上述した特定の実施の形態に限定されるもので
はない。
語で形成され、マルチプレクサ520,521を介して
48ビットのバス516により命令デコーダ512,5
14にロードされる。当業者には明らかなように、命令
は48ビット以外で構成された語に形成されてもよく、
本発明は上述した特定の実施の形態に限定されるもので
はない。
【0033】現在好ましいとされる48ビット語サイズ
に対して、バス516は、並列に実行される任意の1命
令サイクル中に最大2命令(デコーダ当たり1命令)を
ロードすることができる。命令の組合せは、48ビット
のバスに適合する任意の書式(8,16,24,32,
40および48ビット)の組合せでよい。1サイクル中
に1命令だけをロードする場合は、デコーダ2 514
よりデコーダ1 512の方を優先してロードする。次
に、各命令が、それらを実行するとともに、命令または
操作が実行されるべきデータをアクセスするために、各
機能ユニットに送られる。命令デコーダに渡される前
に、命令はバイト境界上で整列される。整列は、その復
号中に前の命令に対して得られた書式に基づいて行われ
る。バイト境界との命令の整列に関連する多重化はマル
チプレクサ520,521で行われる。
に対して、バス516は、並列に実行される任意の1命
令サイクル中に最大2命令(デコーダ当たり1命令)を
ロードすることができる。命令の組合せは、48ビット
のバスに適合する任意の書式(8,16,24,32,
40および48ビット)の組合せでよい。1サイクル中
に1命令だけをロードする場合は、デコーダ2 514
よりデコーダ1 512の方を優先してロードする。次
に、各命令が、それらを実行するとともに、命令または
操作が実行されるべきデータをアクセスするために、各
機能ユニットに送られる。命令デコーダに渡される前
に、命令はバイト境界上で整列される。整列は、その復
号中に前の命令に対して得られた書式に基づいて行われ
る。バイト境界との命令の整列に関連する多重化はマル
チプレクサ520,521で行われる。
【0034】2つの命令の一方が並列イネーブル・ビッ
トを持つ場合は、2つの命令を並列に入れることができ
る。かかる種類の並列方式を支援するハードウエアを並
列イネーブル機構と呼ぶ。同様に、2つの命令が両方と
も間接モードで単一データ・メモリ・アクセス(Sme
mまたはdbl(lmem))を行う場合は、2つの命
令を並列に入れることができる。かかる種類の並列方式
を支援するハードウエアをソフト二重機構と呼ぶ。
トを持つ場合は、2つの命令を並列に入れることができ
る。かかる種類の並列方式を支援するハードウエアを並
列イネーブル機構と呼ぶ。同様に、2つの命令が両方と
も間接モードで単一データ・メモリ・アクセス(Sme
mまたはdbl(lmem))を行う場合は、2つの命
令を並列に入れることができる。かかる種類の並列方式
を支援するハードウエアをソフト二重機構と呼ぶ。
【0035】プロセッサ・コア102は7段階のパイプ
ラインにより命令を実行する。その各段階について、表
1と図5を参照して以下に説明する。どこ(Aユニット
かDユニット)で実行するかに関わらず、7段階のパイ
プラインによりプロセッサ命令を実行する。本発明の一
態様によれば、プログラム・コード・サイズを小さくす
るために、CコンパイラはAユニットでの実行のために
できるだけ多くの命令をディスパッチするので、Dユニ
ットは、電力を節約するために電源を切られてもよい。
このため、Aユニットは、メモリ・オペランドで実行さ
れる基本的動作を支援する必要がある。
ラインにより命令を実行する。その各段階について、表
1と図5を参照して以下に説明する。どこ(Aユニット
かDユニット)で実行するかに関わらず、7段階のパイ
プラインによりプロセッサ命令を実行する。本発明の一
態様によれば、プログラム・コード・サイズを小さくす
るために、CコンパイラはAユニットでの実行のために
できるだけ多くの命令をディスパッチするので、Dユニ
ットは、電力を節約するために電源を切られてもよい。
このため、Aユニットは、メモリ・オペランドで実行さ
れる基本的動作を支援する必要がある。
【0036】
【表1】
【0037】パイプラインの第1段階は、事前取出し
(P0)段階202であり、この段階中では、メモリ・
インターフェース104のアドレス・バス(PAB)1
18上にアドレスを表明することによって、次のプログ
ラム・メモリ位置がアドレスされる。次の段階の取出し
(P1)段階204では、プログラム・メモリが読み取
られ、メモリ・インターフェース・ユニット104から
PBバス122を介してIユニット106が満たされ
る。事前取出しおよび取出し段階は、他のパイプライン
段階から切り離されており、事前取出しおよび取出し段
階中はパイプラインに割り込んで、連続したプログラム
・フローを中断するとともに、プログラム・メモリ内の
別の命令(例えば、分岐命令)を指し示すことができ
る。
(P0)段階202であり、この段階中では、メモリ・
インターフェース104のアドレス・バス(PAB)1
18上にアドレスを表明することによって、次のプログ
ラム・メモリ位置がアドレスされる。次の段階の取出し
(P1)段階204では、プログラム・メモリが読み取
られ、メモリ・インターフェース・ユニット104から
PBバス122を介してIユニット106が満たされ
る。事前取出しおよび取出し段階は、他のパイプライン
段階から切り離されており、事前取出しおよび取出し段
階中はパイプラインに割り込んで、連続したプログラム
・フローを中断するとともに、プログラム・メモリ内の
別の命令(例えば、分岐命令)を指し示すことができ
る。
【0038】次に、第3段階の復号(P2)段階206
では、命令バッファ内の次の命令がデコーダ512/5
14にディスパッチされ、命令が復号されるとともにそ
の命令を実行する実行ユニット(例えば、Pユニット1
08,Aユニット110またはDユニット112)にデ
ィスパッチされる。復号段階206は、命令の種類を示
す第1の部分と命令の書式を示す第2の部分と命令用の
アドレス指定モードを示す第3の部分とを含む命令の少
なくとも一部を復号することを含む。次の段階はアドレ
ス(P3)段階208であり、そこでは、命令で用いら
れるべきデータのアドレスが計算されるか、命令がプロ
グラムの分岐またはジャンプを必要とする場合は新しい
プログラム・アドレスが計算される。各計算はAユニッ
ト110またはPユニット108でそれぞれ行う。
では、命令バッファ内の次の命令がデコーダ512/5
14にディスパッチされ、命令が復号されるとともにそ
の命令を実行する実行ユニット(例えば、Pユニット1
08,Aユニット110またはDユニット112)にデ
ィスパッチされる。復号段階206は、命令の種類を示
す第1の部分と命令の書式を示す第2の部分と命令用の
アドレス指定モードを示す第3の部分とを含む命令の少
なくとも一部を復号することを含む。次の段階はアドレ
ス(P3)段階208であり、そこでは、命令で用いら
れるべきデータのアドレスが計算されるか、命令がプロ
グラムの分岐またはジャンプを必要とする場合は新しい
プログラム・アドレスが計算される。各計算はAユニッ
ト110またはPユニット108でそれぞれ行う。
【0039】アクセス(P4)段階210では、読取り
オペランドのアドレスが生成され、また、そのアドレス
がYmem間接アドレス指定モードでDAGEN Yオ
ペレータで生成されているメモリ・オペランドが、間接
的にアドレスされたYメモリ(Ymem)から読み取ら
れる。パイプラインの次の段階は、そのアドレスがXm
em間接アドレス指定モードでDAGEN X内でまた
は係数アドレス・モードでDAGEN Cオペレータで
生成されているメモリ・オペランドが読み取られる読取
り(P5)段階212である。命令の結果が書き込まれ
るべきメモリ位置のアドレスが生成される。
オペランドのアドレスが生成され、また、そのアドレス
がYmem間接アドレス指定モードでDAGEN Yオ
ペレータで生成されているメモリ・オペランドが、間接
的にアドレスされたYメモリ(Ymem)から読み取ら
れる。パイプラインの次の段階は、そのアドレスがXm
em間接アドレス指定モードでDAGEN X内でまた
は係数アドレス・モードでDAGEN Cオペレータで
生成されているメモリ・オペランドが読み取られる読取
り(P5)段階212である。命令の結果が書き込まれ
るべきメモリ位置のアドレスが生成される。
【0040】最後は、Aユニット110またはDユニッ
ト112のいずれかで命令が実行される実行(P6)段
階214である。次に、その結果がデータ・レジスタす
なわち累算器に記憶されるか、読取り/変更/書込み命
令用のメモリに書き込まれる。更に、シフト操作が、実
行段階中に累算器でデータについて行われる。プロセッ
サ100のパイプラインは保護されている。これによ
り、NOP命令が待ち時間の要求を満たすために挿入さ
れる必要がなくなるので、Cコンパイラ性能が大幅に向
上する。また、これにより、前の生成プロセッサから後
の生成プロセッサへのコード変換が非常に容易になる。
ト112のいずれかで命令が実行される実行(P6)段
階214である。次に、その結果がデータ・レジスタす
なわち累算器に記憶されるか、読取り/変更/書込み命
令用のメモリに書き込まれる。更に、シフト操作が、実
行段階中に累算器でデータについて行われる。プロセッ
サ100のパイプラインは保護されている。これによ
り、NOP命令が待ち時間の要求を満たすために挿入さ
れる必要がなくなるので、Cコンパイラ性能が大幅に向
上する。また、これにより、前の生成プロセッサから後
の生成プロセッサへのコード変換が非常に容易になる。
【0041】プロセッサ100で用いられるパイプライ
ン保護の基本的規則は、次の通りである。実行中の読取
りアクセスが終了する前に書込みアクセスが開始され、
かつ、両方のアクセスが同じ資源を共用する場合は、追
加のサイクルが挿入されて、書込みを完了させ、更新さ
れたオペランドで次の命令を実行することができるよう
にするが、エミュレーションについては、単一ステップ
・コード実行がフリーランニング・コード実行と全く同
様に行われなければならない。
ン保護の基本的規則は、次の通りである。実行中の読取
りアクセスが終了する前に書込みアクセスが開始され、
かつ、両方のアクセスが同じ資源を共用する場合は、追
加のサイクルが挿入されて、書込みを完了させ、更新さ
れたオペランドで次の命令を実行することができるよう
にするが、エミュレーションについては、単一ステップ
・コード実行がフリーランニング・コード実行と全く同
様に行われなければならない。
【0042】パイプライン・プロセッサの動作の基本的
原理について、図5を参照して以下に説明する。図5か
ら分かるように、第1の命令302では、連続するパイ
プライン段階が時間T1〜T7の間に実行される。各時間
は、プロセッサ・マシン・クロックの1クロック・サイ
クルである。第2の命令304は、時間T2にパイプラ
インに入ることができる。なぜなら、前の命令はすでに
次のパイプライン段階に移っているからである。命令3
(306)では、事前取出し段階202が時間T3に起
こる。図5から分かるように、第7段階のパイプライン
では、7命令全部を同時に処理することができる。7つ
の命令302〜314全部に対して、図5は、時間T7
で処理中であるそれらすべてを示す。このような構造
は、命令の処理に並列形式を付加する。
原理について、図5を参照して以下に説明する。図5か
ら分かるように、第1の命令302では、連続するパイ
プライン段階が時間T1〜T7の間に実行される。各時間
は、プロセッサ・マシン・クロックの1クロック・サイ
クルである。第2の命令304は、時間T2にパイプラ
インに入ることができる。なぜなら、前の命令はすでに
次のパイプライン段階に移っているからである。命令3
(306)では、事前取出し段階202が時間T3に起
こる。図5から分かるように、第7段階のパイプライン
では、7命令全部を同時に処理することができる。7つ
の命令302〜314全部に対して、図5は、時間T7
で処理中であるそれらすべてを示す。このような構造
は、命令の処理に並列形式を付加する。
【0043】図6に示すように、本発明のこの実施の形
態は、24ビットのアドレス・バス118および32ビ
ットの双方向データ・バス120を介して外部プログラ
ム記憶ユニット150に結合されているメモリ・インタ
ーフェース・ユニット104を含む。また、メモリ・イ
ンターフェース・ユニット104は、24ビットのアド
レス・バス114および双方向の16ビットのデータ・
バス116を介してデータ記憶ユニット151に結合さ
れている。メモリ・インターフェース・ユニット104
は、32ビットのプログラム読取りバス(PB)122
を介してマシン・プロセッサ・コア102のIユニット
106にも結合されている。Pユニット108,Aユニ
ット110およびDユニット112は、データ読取りお
よびデータ書込みバスとこれに対応するアドレスバスと
を介してメモリ・インターフェース・ユニット104に
結合されている。Pユニット108はプログラム・アド
レス・バス128に更に結合されている。
態は、24ビットのアドレス・バス118および32ビ
ットの双方向データ・バス120を介して外部プログラ
ム記憶ユニット150に結合されているメモリ・インタ
ーフェース・ユニット104を含む。また、メモリ・イ
ンターフェース・ユニット104は、24ビットのアド
レス・バス114および双方向の16ビットのデータ・
バス116を介してデータ記憶ユニット151に結合さ
れている。メモリ・インターフェース・ユニット104
は、32ビットのプログラム読取りバス(PB)122
を介してマシン・プロセッサ・コア102のIユニット
106にも結合されている。Pユニット108,Aユニ
ット110およびDユニット112は、データ読取りお
よびデータ書込みバスとこれに対応するアドレスバスと
を介してメモリ・インターフェース・ユニット104に
結合されている。Pユニット108はプログラム・アド
レス・バス128に更に結合されている。
【0044】より詳しく述べると、Pユニット108
は、24ビットのプログラム・アドレス・バス128と
2つの16ビットのデータ書込みバス(EB,FB)1
30,132と2つの16ビットのデータ読取りバス
(CB,DB)134,136とを介してメモリ・イン
ターフェース・ユニット104に結合されている。Aユ
ニット110は、2つの24ビットのデータ書込みアド
レス・バス(EAB,FAB)160,162と2つの
16ビットのデータ書込みバス(EB,FB)130,
132と3つのデータ読取りアドレス・バス(BAB,
CAB,DAB)164,166,168と2つの16
ビットのデータ読取りバス(CB,DB)134,13
6とを介してメモリ・インターフェース・ユニット10
4に結合されている。Dユニット112は、2つのデー
タ書込みバス(EB,FB)130,132と3つのデ
ータ読取りバス(BB,CB,DB)144,134,
136とを介してメモリ・インターフェース・ユニット
104に結合されている。
は、24ビットのプログラム・アドレス・バス128と
2つの16ビットのデータ書込みバス(EB,FB)1
30,132と2つの16ビットのデータ読取りバス
(CB,DB)134,136とを介してメモリ・イン
ターフェース・ユニット104に結合されている。Aユ
ニット110は、2つの24ビットのデータ書込みアド
レス・バス(EAB,FAB)160,162と2つの
16ビットのデータ書込みバス(EB,FB)130,
132と3つのデータ読取りアドレス・バス(BAB,
CAB,DAB)164,166,168と2つの16
ビットのデータ読取りバス(CB,DB)134,13
6とを介してメモリ・インターフェース・ユニット10
4に結合されている。Dユニット112は、2つのデー
タ書込みバス(EB,FB)130,132と3つのデ
ータ読取りバス(BB,CB,DB)144,134,
136とを介してメモリ・インターフェース・ユニット
104に結合されている。
【0045】図6は、124でIユニット106からP
ユニット108への命令の受け渡し、例えば分岐命令を
送ることを表す。また、図6は、126および128で
Iユニット106からAユニット110およびDユニッ
ト112へのデータの受け渡しを表す。
ユニット108への命令の受け渡し、例えば分岐命令を
送ることを表す。また、図6は、126および128で
Iユニット106からAユニット110およびDユニッ
ト112へのデータの受け渡しを表す。
【0046】図7に示すように、プロセッサ100は統
一プログラム/データ空間の周りに組織化されている。
プログラム・ポインタは、内部では24ビットであっ
て、バイトアドレス指定機能を持つが、プログラムの取
出しが常に32ビット境界で行われるので22ビットの
アドレスだけがメモリに送られる。しかし、例えばソフ
トウエア開発のためのエミュレーション中は、ハードウ
エア区切り点を実現するために全24ビットのアドレス
が与えられる。データ・ポインタは7ビットの主データ
・ページで拡張された16ビットであり、語アドレス指
定機能を有する。
一プログラム/データ空間の周りに組織化されている。
プログラム・ポインタは、内部では24ビットであっ
て、バイトアドレス指定機能を持つが、プログラムの取
出しが常に32ビット境界で行われるので22ビットの
アドレスだけがメモリに送られる。しかし、例えばソフ
トウエア開発のためのエミュレーション中は、ハードウ
エア区切り点を実現するために全24ビットのアドレス
が与えられる。データ・ポインタは7ビットの主データ
・ページで拡張された16ビットであり、語アドレス指
定機能を有する。
【0047】ソフトウエアは最大3主データ・ページを
次のように定義する。 ・MDP 直接アクセス 間接アクセス CDP ・MDP05 − 間接アクセス AR[0〜5] ・MDP67 − 間接アクセス AR[6〜7] スタックは、維持されて、主データ・ページ0に常駐す
る。CPUメモリ・マップ・レジスタは全てのページか
ら見える。プロセッサ100の種々の態様を表2に要約
する。
次のように定義する。 ・MDP 直接アクセス 間接アクセス CDP ・MDP05 − 間接アクセス AR[0〜5] ・MDP67 − 間接アクセス AR[6〜7] スタックは、維持されて、主データ・ページ0に常駐す
る。CPUメモリ・マップ・レジスタは全てのページか
ら見える。プロセッサ100の種々の態様を表2に要約
する。
【0048】
【表2】
【0049】パイプラインが作動する上での問題は、異
なる命令が1つの同じリソースにアクセスしなければな
らないことである。第1の命令がリソース、例えば一部
のレジスタ、例えばレジスタのフィールドを変更するよ
うに作動し、次に第2命令がそのリソースにアクセスし
なければならないことが極めて多い。第1命令の処理が
完了した時にしか第2命令の処理は開始しないように、
これら命令を別個に処理した場合、このことによって競
合は生じない。しかしながら、パイプラインアーキテク
チャでは対策を講じない場合、第1命令がリソースへの
アクセスを終了する前に第2命令がこのリソースにアク
セスする可能性がある。
なる命令が1つの同じリソースにアクセスしなければな
らないことである。第1の命令がリソース、例えば一部
のレジスタ、例えばレジスタのフィールドを変更するよ
うに作動し、次に第2命令がそのリソースにアクセスし
なければならないことが極めて多い。第1命令の処理が
完了した時にしか第2命令の処理は開始しないように、
これら命令を別個に処理した場合、このことによって競
合は生じない。しかしながら、パイプラインアーキテク
チャでは対策を講じない場合、第1命令がリソースへの
アクセスを終了する前に第2命令がこのリソースにアク
セスする可能性がある。
【0050】かかる潜在的な競合は「データハザード」
と称されることが多く、可能性のあるデータハザードの
例は、例えば次のケースがある。
と称されることが多く、可能性のあるデータハザードの
例は、例えば次のケースがある。
【0051】-Read after Write(例えば:ARx=ARy後に*
ARx=k16が続く) -Write after Read(例えば:ARx=ARy後にmar(ARy=P16が
続く)) -Write after Write(例えば:ARx=ARy後にmar(ARy=P16
が続く))
ARx=k16が続く) -Write after Read(例えば:ARx=ARy後にmar(ARy=P16が
続く)) -Write after Write(例えば:ARx=ARy後にmar(ARy=P16
が続く))
【0052】図8Aは、ReadAfterWrite
(RAW)のためのパイプライン保護動作の一例を示
す。ステップ600はレジスタAR1上での実行段階
(EXE)において第1命令によって実行される書き込
み(例えばAR1=AR0+K16)を示し、ステップ
602はAR1上でのアドレス段階(ADR)で実行さ
れる読み出し(例えばAC0=*AR1)を示す。パイ
プライン保護動作(604)は、612にてAR1への
書き込みを実行した後に、新しいAR1値が利用でき、
614でアドレス段階のための停止が緩和(除去)され
るまで、610では読み出しのためのアドレスが発生さ
れない(AR1の読み出しは有効ではない)よう、アド
レス段階のための停止606を設定することを含む。
(RAW)のためのパイプライン保護動作の一例を示
す。ステップ600はレジスタAR1上での実行段階
(EXE)において第1命令によって実行される書き込
み(例えばAR1=AR0+K16)を示し、ステップ
602はAR1上でのアドレス段階(ADR)で実行さ
れる読み出し(例えばAC0=*AR1)を示す。パイ
プライン保護動作(604)は、612にてAR1への
書き込みを実行した後に、新しいAR1値が利用でき、
614でアドレス段階のための停止が緩和(除去)され
るまで、610では読み出しのためのアドレスが発生さ
れない(AR1の読み出しは有効ではない)よう、アド
レス段階のための停止606を設定することを含む。
【0053】図8Bは、ReadAfterWrite
(RAW)のためのパイプライン保護動作の別の例を示
す。ステップ620はレジスタAR0上での実行段階
(EXE)において第1命令によって実行される書き込
み(例えばAR0=AC0+K16)を示す。ステップ
622はAR0上で読み出し段階(RA)において実行
される読み出し(例えばCondition Read
/Memory Mapped Register(M
MR)の読み出し)を示す。パイプライン保護動作(6
24)は予想によるアクセス段階(ACC)のための停
止626の設定を含み、よって628でアドレスおよび
リクエストがアクティブ状態に維持され、630でAC
0上の書き込みが実行され、アクセス段階の停止が緩和
(除去)され、632でCondition/MMRの
新しい値を利用できる。これとは異なり、アクセス段階
の代わりに630にて読み出し段階中に停止を挿入でき
る。
(RAW)のためのパイプライン保護動作の別の例を示
す。ステップ620はレジスタAR0上での実行段階
(EXE)において第1命令によって実行される書き込
み(例えばAR0=AC0+K16)を示す。ステップ
622はAR0上で読み出し段階(RA)において実行
される読み出し(例えばCondition Read
/Memory Mapped Register(M
MR)の読み出し)を示す。パイプライン保護動作(6
24)は予想によるアクセス段階(ACC)のための停
止626の設定を含み、よって628でアドレスおよび
リクエストがアクティブ状態に維持され、630でAC
0上の書き込みが実行され、アクセス段階の停止が緩和
(除去)され、632でCondition/MMRの
新しい値を利用できる。これとは異なり、アクセス段階
の代わりに630にて読み出し段階中に停止を挿入でき
る。
【0054】図9はWriteAfterWrite
(WAW)のためのパイプライン保護動作の一例を示
す。ステップ640はレジスタAR1での実行段階(E
XE)における第1命令によって実行される書き込み
(例えばAR1=AR0+K16)を示し、ステップ6
42はAR1上のアドレス段階(ADR)において実行
される書き込み(例えばAC0=*AR1+)を示す。
パイプライン保護動作(644)はアドレス段階のため
の停止646の設定を含み、よって650においてAR
1への第1の書き込みが実行された後に、新しいAR1
値が利用でき、652にてアドレス段階のための停止が
緩和(除去)されるまで、648ではAR1での第2の
書き込みのためのアドレスは発生されない(AR1への
書き込みは許可されない)。
(WAW)のためのパイプライン保護動作の一例を示
す。ステップ640はレジスタAR1での実行段階(E
XE)における第1命令によって実行される書き込み
(例えばAR1=AR0+K16)を示し、ステップ6
42はAR1上のアドレス段階(ADR)において実行
される書き込み(例えばAC0=*AR1+)を示す。
パイプライン保護動作(644)はアドレス段階のため
の停止646の設定を含み、よって650においてAR
1への第1の書き込みが実行された後に、新しいAR1
値が利用でき、652にてアドレス段階のための停止が
緩和(除去)されるまで、648ではAR1での第2の
書き込みのためのアドレスは発生されない(AR1への
書き込みは許可されない)。
【0055】図10AはWriteAfterRead
(WAR)のためのパイプライン保護動作の一例を示
す。ステップ660はレジスタAR3での実行段階(E
X)における第1命令によって実行される読み出し(例
えばAC2=AR3+K8)を示す。ステップ662は
AR3上でのアドレス段階(ADR)において実行され
る書き込み(例えば*AR3+DR0)を示す。パイプ
ライン保護動作(664)はアドレス段階のための停止
666の設定を含み、よって670でAR3の読み出し
が実行され、670で、同じ段階中にAR3の書き込み
が許可されるまで、668ではAR3への書き込みのた
めのアドレスは発生されない(AR3への書き込みは許
可されない)。読み出しはAR3の古い値を取り込むの
で、670における同じ段階でAR3の読み出しおよび
書き込みを実行できる。アドレス段階のための停止は6
72で緩和(除去)される。
(WAR)のためのパイプライン保護動作の一例を示
す。ステップ660はレジスタAR3での実行段階(E
X)における第1命令によって実行される読み出し(例
えばAC2=AR3+K8)を示す。ステップ662は
AR3上でのアドレス段階(ADR)において実行され
る書き込み(例えば*AR3+DR0)を示す。パイプ
ライン保護動作(664)はアドレス段階のための停止
666の設定を含み、よって670でAR3の読み出し
が実行され、670で、同じ段階中にAR3の書き込み
が許可されるまで、668ではAR3への書き込みのた
めのアドレスは発生されない(AR3への書き込みは許
可されない)。読み出しはAR3の古い値を取り込むの
で、670における同じ段階でAR3の読み出しおよび
書き込みを実行できる。アドレス段階のための停止は6
72で緩和(除去)される。
【0056】図10BはWriteAfterRead
(WAR)のためのパイプライン保護動作の別の例を示
す。ステップ680はレジスタAR3での読み出し段階
(RD)における第1命令によって実行される読み出し
(例えばConditionまたはMMR)を示す。ス
テップ682はAR3上でのアドレス段階(ADR)に
おいて実行される書き込み(例えば*AR3+DR0)
を示す。パイプライン保護動作(684)はアドレス段
階のための停止686の設定を含み、よって690でA
R3の読み出しが実行され、AR3の書き込みが許可さ
れ、アドレス段階のための停止が緩和(除去)されるま
で、688ではAR3への書き込みのためのアドレスは
発生されない(AR3への書き込みは許可されない)。
(WAR)のためのパイプライン保護動作の別の例を示
す。ステップ680はレジスタAR3での読み出し段階
(RD)における第1命令によって実行される読み出し
(例えばConditionまたはMMR)を示す。ス
テップ682はAR3上でのアドレス段階(ADR)に
おいて実行される書き込み(例えば*AR3+DR0)
を示す。パイプライン保護動作(684)はアドレス段
階のための停止686の設定を含み、よって690でA
R3の読み出しが実行され、AR3の書き込みが許可さ
れ、アドレス段階のための停止が緩和(除去)されるま
で、688ではAR3への書き込みのためのアドレスは
発生されない(AR3への書き込みは許可されない)。
【0057】図11はパイプラインの可能性のあるリソ
ースアクセスの競合のすべての包括的仲裁関数の定義を
決定するために採用された方法の略図である。この包括
的仲裁関数は各仲裁論理の設計を支持し、簡略化する抽
象的概念であり、この設計のすべては包括的関数の特殊
な形態としてすべて実現できる。包括的仲裁関数が埋め
込まれる論理も処理エンジンに含めることができる。こ
の包括的仲裁関数は回路設計の終了時の回路検査を助け
ることもできる。本実施例の内容では説明しないが、こ
の方法は他のプロセッサアーキテクチャにも使用でき
る。
ースアクセスの競合のすべての包括的仲裁関数の定義を
決定するために採用された方法の略図である。この包括
的仲裁関数は各仲裁論理の設計を支持し、簡略化する抽
象的概念であり、この設計のすべては包括的関数の特殊
な形態としてすべて実現できる。包括的仲裁関数が埋め
込まれる論理も処理エンジンに含めることができる。こ
の包括的仲裁関数は回路設計の終了時の回路検査を助け
ることもできる。本実施例の内容では説明しないが、こ
の方法は他のプロセッサアーキテクチャにも使用でき
る。
【0058】図11を参照すると、初期ステップ(1)
において、処理エンジンの組織(700)の全体はレジ
スタのグループ、すなわちレジスタファイル(例えば7
02、704、706)に分割されている。本例では、
プログラムユニット、すなわち制御フロー(CF)、デ
ータユニット(DU)およびアドレスユニット(AU)
に対して3つのレジスタファイルが存在している。これ
らレジスタファイルの各々は多数のレジスタN(i)
(例えば708、710、712)を含む。これらレジ
スタは保護すべきリソースを形成でき、全体のレジスタ
を保護するだけでなく、または全体のレジスタを保護す
る代わりにレジスタ(例えば714、716、718)
の一部(またはこれらレジスタ内のフィールド)を保護
することが望ましい。図11は、リソースの粒度のこの
ような定義を示す。従って、保護されたリソースは、例
えばレジスタまたはレジスタ内のフィールドでよい。
において、処理エンジンの組織(700)の全体はレジ
スタのグループ、すなわちレジスタファイル(例えば7
02、704、706)に分割されている。本例では、
プログラムユニット、すなわち制御フロー(CF)、デ
ータユニット(DU)およびアドレスユニット(AU)
に対して3つのレジスタファイルが存在している。これ
らレジスタファイルの各々は多数のレジスタN(i)
(例えば708、710、712)を含む。これらレジ
スタは保護すべきリソースを形成でき、全体のレジスタ
を保護するだけでなく、または全体のレジスタを保護す
る代わりにレジスタ(例えば714、716、718)
の一部(またはこれらレジスタ内のフィールド)を保護
することが望ましい。図11は、リソースの粒度のこの
ような定義を示す。従って、保護されたリソースは、例
えばレジスタまたはレジスタ内のフィールドでよい。
【0059】保護された各リソースに対し、ステップ2
で可能性のある最悪のリソースの利用の分析が誘導され
る。異なる命令は、例えばリソースとの間の読み出しお
よび書き込みの異なる方法を提供する。レジスタフィー
ルド714に関し、図11に示されるように、そのリソ
ースに対して読み出し/書き込み動作を実行できる、7
20に示されたパイプライン段階は、段階P3、P5お
よびP6となっている。換言すれば、このリソースに対
する最悪ケースのリソースの利用はパイプライン段階P
3、P5およびP6に関係するものである。実行段階の
点で上記アクセスを分類することができる。
で可能性のある最悪のリソースの利用の分析が誘導され
る。異なる命令は、例えばリソースとの間の読み出しお
よび書き込みの異なる方法を提供する。レジスタフィー
ルド714に関し、図11に示されるように、そのリソ
ースに対して読み出し/書き込み動作を実行できる、7
20に示されたパイプライン段階は、段階P3、P5お
よびP6となっている。換言すれば、このリソースに対
する最悪ケースのリソースの利用はパイプライン段階P
3、P5およびP6に関係するものである。実行段階の
点で上記アクセスを分類することができる。
【0060】5つの命令I1、I2、I3、I4および
I5に対し、722に示されるように、命令の実行オー
バーラップを検討するよう、ステップ3ではパイプライ
ン深さ(例えばここではパイプライン段階P2、P3、
P4、P5およびP6)を考慮しなければならない。
I5に対し、722に示されるように、命令の実行オー
バーラップを検討するよう、ステップ3ではパイプライ
ン深さ(例えばここではパイプライン段階P2、P3、
P4、P5およびP6)を考慮しなければならない。
【0061】図12における矢印が示すように、潜在的
なすべてのデータハザードを検討する。この図は、パイ
プラインの異なる段階における潜在的な競合を示す略図
であり、4つの命令I0、I1、I2、I3およびI4
の各々に対する図5の5つの段階P2〜P6を示す。
なすべてのデータハザードを検討する。この図は、パイ
プラインの異なる段階における潜在的な競合を示す略図
であり、4つの命令I0、I1、I2、I3およびI4
の各々に対する図5の5つの段階P2〜P6を示す。
【0062】見つけられるデータハザードを検討するこ
とから、図13に示されるように、包括的仲裁関数を誘
導できる。この包括的仲裁関数は現在のアクセスとペン
ディング中のアクセスとの関係を定めるものである。パ
イプラインの選択的な停止を制御し、データハザードを
回避するために、この包括的仲裁関数を使用できる。包
括的論理はパイプラインに対するすべての潜在的なリソ
ースアクセスの競合を示しており、図12に略図で示さ
れている潜在的な競合の問題を分析することから、競合
を生じやすい次の信号を識別できる。
とから、図13に示されるように、包括的仲裁関数を誘
導できる。この包括的仲裁関数は現在のアクセスとペン
ディング中のアクセスとの関係を定めるものである。パ
イプラインの選択的な停止を制御し、データハザードを
回避するために、この包括的仲裁関数を使用できる。包
括的論理はパイプラインに対するすべての潜在的なリソ
ースアクセスの競合を示しており、図12に略図で示さ
れている潜在的な競合の問題を分析することから、競合
を生じやすい次の信号を識別できる。
【0063】 a: current read stage P3 b: pending(stage P4)read stage P6 c: pending(stage P4)read stage P5 d: current read stage P5 e: pending(stage P5)read stage P6 f: current read stage P6 1: current write stage P3 2: pending(stage P4)write stage P6 3: pending(stage P4)write stage P5 4: pending(stage P5)write stage P6 5: current write stage P5 6: current write stage P6
【0064】これら信号を解読し、ADR(P3)段階
を停止させるための信号stol−stage4および
ACC(P4)段階を停止させるための信号stol−
stage5を形成するための論理が、図13に示され
ている。図13には信号「d」および「f」が示されて
いないことが理解できよう。しかしながら、ペンディン
グ中の信号「b」および「e」の使用を予想することに
よって7段階の読み出しに関連するすべての潜在的な競
合を解消できるので、これら信号は必要ではない。従っ
て、これらに関連する競合は既に予想可能となっている
ので、これら信号を図13に表示する必要はない。
を停止させるための信号stol−stage4および
ACC(P4)段階を停止させるための信号stol−
stage5を形成するための論理が、図13に示され
ている。図13には信号「d」および「f」が示されて
いないことが理解できよう。しかしながら、ペンディン
グ中の信号「b」および「e」の使用を予想することに
よって7段階の読み出しに関連するすべての潜在的な競
合を解消できるので、これら信号は必要ではない。従っ
て、これらに関連する競合は既に予想可能となっている
ので、これら信号を図13に表示する必要はない。
【0065】従って、一般的には包括的関数は多数の変
数オペランドを有し、各仲裁論理はより低い程度の縮
退、すなわち固定された包括的関数内の変数である多数
のオペランドを有する包括的関数の特殊な形態、または
サブセットとなることが理解できよう。
数オペランドを有し、各仲裁論理はより低い程度の縮
退、すなわち固定された包括的関数内の変数である多数
のオペランドを有する包括的関数の特殊な形態、または
サブセットとなることが理解できよう。
【0066】一旦包括的仲裁関数を決定すれば、包括的
仲裁関数の特殊な形態としてすべて定義できる仲裁論理
ブロックの各々の回路設計を実現するのに、この包括的
仲裁関数を使用できる。個々のリソースの仲裁論理には
完全な包括的形態は不要である。その理由は、リソース
の各々に対しては一般に包括的仲裁関数によって考えら
れる競合の一部が発生することは不可能となるからであ
る。
仲裁関数の特殊な形態としてすべて定義できる仲裁論理
ブロックの各々の回路設計を実現するのに、この包括的
仲裁関数を使用できる。個々のリソースの仲裁論理には
完全な包括的形態は不要である。その理由は、リソース
の各々に対しては一般に包括的仲裁関数によって考えら
れる競合の一部が発生することは不可能となるからであ
る。
【0067】すべての考えられる競合の同時発生から完
全に保護したい場合、処理エンジンには包括的仲裁関数
を具現化する包括的仲裁論理を設けるだけでよい。
全に保護したい場合、処理エンジンには包括的仲裁関数
を具現化する包括的仲裁論理を設けるだけでよい。
【0068】図9、10Aおよび10Bを参照して、本
発明の別の特徴について説明する。スコアボーデイング
またはキューイングのような書き込みサイクルのための
ダイナミックな再オーダリング方法を使用することは、
本実施例のマイクロプロセッサでは困難である。その理
由は、命令実行順序を変えることができるようにするに
は、発生される命令のフルなリソースの使用法を知らな
ければならないからである。この実施例では、間接アド
レスを通して命令によって任意のレジスタにアクセスで
きる。このアドレスは段階5だけからハードウェアによ
って知ることができる(使用することができる)。従っ
て、アドレス指定モードを有するほとんどの命令は、再
オーダーすることはできない。しかしながら、インター
ロック停止ペナルティを最小にするのに、別の技術を使
用できることが判っている。本発明の1つの特徴によれ
ば、本明細書に開示されている技術は、フリーの時にシ
ャドーレジスタの一組への競合する書き込みの宛て先を
ダイナミックにリダイレクトし、よって競合が防止され
るよう、段階4から先の段階への実際の宛て先書き込み
を遅延する。
発明の別の特徴について説明する。スコアボーデイング
またはキューイングのような書き込みサイクルのための
ダイナミックな再オーダリング方法を使用することは、
本実施例のマイクロプロセッサでは困難である。その理
由は、命令実行順序を変えることができるようにするに
は、発生される命令のフルなリソースの使用法を知らな
ければならないからである。この実施例では、間接アド
レスを通して命令によって任意のレジスタにアクセスで
きる。このアドレスは段階5だけからハードウェアによ
って知ることができる(使用することができる)。従っ
て、アドレス指定モードを有するほとんどの命令は、再
オーダーすることはできない。しかしながら、インター
ロック停止ペナルティを最小にするのに、別の技術を使
用できることが判っている。本発明の1つの特徴によれ
ば、本明細書に開示されている技術は、フリーの時にシ
ャドーレジスタの一組への競合する書き込みの宛て先を
ダイナミックにリダイレクトし、よって競合が防止され
るよう、段階4から先の段階への実際の宛て先書き込み
を遅延する。
【0069】一実施例では、この方法は図10Aおよび
10Bに示されるように、読み出し後の書き込み(WA
R)の競合および図9に示されるように書き込み後の書
き込み(WAW)の競合専用となっている。この技術
は、レジスタファイルをサブセットまたはマイクロプロ
セッサ内のレジスタのすべての組に対する停止ペナルテ
ィを減少させるのに使用できる。レジスタのサブセット
だけを選択した場合、マイクロプロセッサで実行される
アプリケーションコードを解析することによって、スタ
ック内のシャドーレジスタの数を決定できる。同様に、
このスタックを有利に形成するレジスタのサブセットを
競合がどこにあるのか、およびどのぐらいの頻度で生じ
るのかを定めるアプリケーションコードを研究すること
によって得ることができる。
10Bに示されるように、読み出し後の書き込み(WA
R)の競合および図9に示されるように書き込み後の書
き込み(WAW)の競合専用となっている。この技術
は、レジスタファイルをサブセットまたはマイクロプロ
セッサ内のレジスタのすべての組に対する停止ペナルテ
ィを減少させるのに使用できる。レジスタのサブセット
だけを選択した場合、マイクロプロセッサで実行される
アプリケーションコードを解析することによって、スタ
ック内のシャドーレジスタの数を決定できる。同様に、
このスタックを有利に形成するレジスタのサブセットを
競合がどこにあるのか、およびどのぐらいの頻度で生じ
るのかを定めるアプリケーションコードを研究すること
によって得ることができる。
【0070】図14は、本発明の特徴に係わる、遅延さ
れた書き込みを行うためのシャドーレジスタ1400お
よび制御回路を示すブロック図である。基本的にはこの
論理は3つのサブセット、すなわちインターロック検出
ユニット1402と、保存およびフィルタリングユニッ
ト1404と、シャドー管理ユニット1406から成
る。
れた書き込みを行うためのシャドーレジスタ1400お
よび制御回路を示すブロック図である。基本的にはこの
論理は3つのサブセット、すなわちインターロック検出
ユニット1402と、保存およびフィルタリングユニッ
ト1404と、シャドー管理ユニット1406から成
る。
【0071】インターロック検出ユニット1402は遅
延された書き込みを実行することによって解消できる停
止を識別するための改良点を有する、図13に類似した
仲裁回路を含む。各仲裁論理は停止信号および停止信号
(ワースト信号)の予測される長さ(サイクル)を発生
する。SM−ユニットからの転送信号を通して遅延され
た書き込みを考慮する。本発明の別の特徴によれば、読
み出し再命令機構によりこの論理によって書き込み後の
読み出し(RAW)の従属性が加えられることはない。
延された書き込みを実行することによって解消できる停
止を識別するための改良点を有する、図13に類似した
仲裁回路を含む。各仲裁論理は停止信号および停止信号
(ワースト信号)の予測される長さ(サイクル)を発生
する。SM−ユニットからの転送信号を通して遅延され
た書き込みを考慮する。本発明の別の特徴によれば、読
み出し再命令機構によりこの論理によって書き込み後の
読み出し(RAW)の従属性が加えられることはない。
【0072】保留およびフィルタリングユニット140
4は競合書き込み信号を受信するためにシャドーレジス
タスタック1400からの自由シャドーレジスタを選択
する。このユニットは、(キャリールックアヘッド加算
器(CLA)タイプのアーキテクチャを使用する)K個
のカスケード接続された高速フィルタと宛て先/停止−
長さエンコーディング回路(ここでKはシャドーレジス
タの数である)から成る。
4は競合書き込み信号を受信するためにシャドーレジス
タスタック1400からの自由シャドーレジスタを選択
する。このユニットは、(キャリールックアヘッド加算
器(CLA)タイプのアーキテクチャを使用する)K個
のカスケード接続された高速フィルタと宛て先/停止−
長さエンコーディング回路(ここでKはシャドーレジス
タの数である)から成る。
【0073】シャドー管理ユニット1406は、宛て先
および停止長さ情報を受信し、かつセーブする。このユ
ニットは書き込み1410を再命令し、シャドー内容を
宛て先1410にスワップし、読み出し1412を再命
令するようレジスタファイル832のための制御信号を
発生する。パイプラインおよび制御回路820からは段
階4〜7からのすべての停止を識別する停止信号143
0が受信され、パイプラインのペースとの同期状態を維
持する。
および停止長さ情報を受信し、かつセーブする。このユ
ニットは書き込み1410を再命令し、シャドー内容を
宛て先1410にスワップし、読み出し1412を再命
令するようレジスタファイル832のための制御信号を
発生する。パイプラインおよび制御回路820からは段
階4〜7からのすべての停止を識別する停止信号143
0が受信され、パイプラインのペースとの同期状態を維
持する。
【0074】レジスタファイル832には、多重化デー
タバスを備えたシャドーレジスタ1400の一組が含ま
れる。マージ回路1440はダイレクト停止信号144
1およびフィルタリングされた停止信号1442を受信
し、パイプラインを停止させるよう、パイプライン制御
回路830へ送られる停止信号1443を形成する。ダ
イレクト停止信号1441は遅延された書き込みによっ
て解消できない停止を示し、フィルタリングされた停止
信号1442は空のシャドーレジスタが利用できないこ
とを除けば解消できたはずの停止を示す。
タバスを備えたシャドーレジスタ1400の一組が含ま
れる。マージ回路1440はダイレクト停止信号144
1およびフィルタリングされた停止信号1442を受信
し、パイプラインを停止させるよう、パイプライン制御
回路830へ送られる停止信号1443を形成する。ダ
イレクト停止信号1441は遅延された書き込みによっ
て解消できない停止を示し、フィルタリングされた停止
信号1442は空のシャドーレジスタが利用できないこ
とを除けば解消できたはずの停止を示す。
【0075】図15は、図14の遅延された書き込みの
ための仲裁回路の略図である。基本的には仲裁回路関数
は図13に示されている関数と同じであるが、RAW競
合からWAW、WARを区別し、1、2または3サイク
ルの停止長さを差分化するよに分割されている点が異な
る。RAW競合は簡単な停止によって解消されるので直
接第2レベルのマージ論理へ送られる。ダイレクト停止
信号1441aおよび1441bはRAW競合に対して
アサートされる。フィルタユニット1404には停止ベ
クトル1450および長さ符号化信号1451が送ら
れ、WAWまたはWAR競合が検出されたことを表示す
る。停止仲裁回路には次の別の信号が送られる。
ための仲裁回路の略図である。基本的には仲裁回路関数
は図13に示されている関数と同じであるが、RAW競
合からWAW、WARを区別し、1、2または3サイク
ルの停止長さを差分化するよに分割されている点が異な
る。RAW競合は簡単な停止によって解消されるので直
接第2レベルのマージ論理へ送られる。ダイレクト停止
信号1441aおよび1441bはRAW競合に対して
アサートされる。フィルタユニット1404には停止ベ
クトル1450および長さ符号化信号1451が送ら
れ、WAWまたはWAR競合が検出されたことを表示す
る。停止仲裁回路には次の別の信号が送られる。
【0076】 7: pending stage 3 for stage 6 8: pending stage 3 for stage 5 9: pending stage 5 for stage 6 10: current write from shadow register 追加信号7〜9によって再命令読み出しから生じる停止
を中止できる。信号10によって遅延された書き込みか
ら生じるWAW競合を検出することが可能となる。
を中止できる。信号10によって遅延された書き込みか
ら生じるWAW競合を検出することが可能となる。
【0077】図16は、例えば図14のパイプライン8
20のために図15の仲裁回路を使用するインターロッ
ク制御機構1402のための構造例のブロック略図であ
る。他のパイプライン、例えば、図30のパイプライン
850のための同一構造を有し得ることが理解できよ
う。更に停止管理を行うのに命令パイプライン自体が使
用されているので、停止管理に対してはメモリ要素(読
み出し/書き込みキュー)が設けられていることが理解
できよう。例えば、2つの連続する命令の間でのパイプ
ラインの段階P3から段階P6までの書き込み後の書き
込み競合は、(段階P3で)3サイクルの停止を発生す
べきである。実際に、インターロック論理は(段階P3
で)3×1サイクルの連続する停止を発生する。
20のために図15の仲裁回路を使用するインターロッ
ク制御機構1402のための構造例のブロック略図であ
る。他のパイプライン、例えば、図30のパイプライン
850のための同一構造を有し得ることが理解できよ
う。更に停止管理を行うのに命令パイプライン自体が使
用されているので、停止管理に対してはメモリ要素(読
み出し/書き込みキュー)が設けられていることが理解
できよう。例えば、2つの連続する命令の間でのパイプ
ラインの段階P3から段階P6までの書き込み後の書き
込み競合は、(段階P3で)3サイクルの停止を発生す
べきである。実際に、インターロック論理は(段階P3
で)3×1サイクルの連続する停止を発生する。
【0078】図16は下記のレベルを含むハザード検出
のための一定の並列構造を示す。
のための一定の並列構造を示す。
【0079】第1レベルは(ペンディングアクセスまた
は現在アクセスからの)基本デコーダ882を含む。こ
れらデコーダはペンディング中の信号に使用されること
を除けば、レジスタファイル内のデコーダ880と同一
である。このデコーダ論理はそれぞれの保護されたリソ
ースのためのアクセス情報を誘導するために、少なくと
も選択されたパイプライン段階からのアクセス情報に応
答する。デコーダ882はペンディング中のアクセス情
報をデコードするように働き、デコーダ880は現在ア
クセスをデコードするように作動できる。
は現在アクセスからの)基本デコーダ882を含む。こ
れらデコーダはペンディング中の信号に使用されること
を除けば、レジスタファイル内のデコーダ880と同一
である。このデコーダ論理はそれぞれの保護されたリソ
ースのためのアクセス情報を誘導するために、少なくと
も選択されたパイプライン段階からのアクセス情報に応
答する。デコーダ882はペンディング中のアクセス情
報をデコードするように働き、デコーダ880は現在ア
クセスをデコードするように作動できる。
【0080】第2レベルは各保護用レジスタのための
(仲裁関数の意味での)等価的信号をマージする段階8
84を含む。このようなマージは、例えば図13に示さ
れるような論理を使ってORゲートにおいてこれら信号
をOR演算することによって達成される。現在アクセス
のためのデコーダ880の出力は、マージ論理883に
おいてマージされ、次にマージ論理884へ供給され、
この論理でペンディングアクセスのためのデコーダ88
2の出力とマージされる。
(仲裁関数の意味での)等価的信号をマージする段階8
84を含む。このようなマージは、例えば図13に示さ
れるような論理を使ってORゲートにおいてこれら信号
をOR演算することによって達成される。現在アクセス
のためのデコーダ880の出力は、マージ論理883に
おいてマージされ、次にマージ論理884へ供給され、
この論理でペンディングアクセスのためのデコーダ88
2の出力とマージされる。
【0081】第3レベルは保護用レジスタと同じ数の組
の仲裁論理886から成る。この仲裁論理は、図15に
示される仲裁関数から、この関数への入力信号に従って
抽出され(すなわちこの関数は図15の仲裁論理のサブ
セットを形成する)、各レジスタアクセストレースへ印
加(低減)される。レジスタアクセストレースはアクセ
ス/位相を指定する着信信号から形成される。各仲裁回
路1600aはstall_stage4信号1650
aおよび長さ符号化信号1651aを出力する。従っ
て、検出中の、ターゲットレジスタの数に等しい数のビ
ットTを有する停止ベクトルが形成される。
の仲裁論理886から成る。この仲裁論理は、図15に
示される仲裁関数から、この関数への入力信号に従って
抽出され(すなわちこの関数は図15の仲裁論理のサブ
セットを形成する)、各レジスタアクセストレースへ印
加(低減)される。レジスタアクセストレースはアクセ
ス/位相を指定する着信信号から形成される。各仲裁回
路1600aはstall_stage4信号1650
aおよび長さ符号化信号1651aを出力する。従っ
て、検出中の、ターゲットレジスタの数に等しい数のビ
ットTを有する停止ベクトルが形成される。
【0082】第4レベルは、例えばORゲートを使用す
るすべての仲裁結果の単なるマージ1440(図14)
である。仲裁論理の各セットは(段階3および/または
4において)2つまでの停止を発生する。同じ段階のす
べての停止は共にマージされる。これらマージされた出
力信号は停止制御信号1443としてパイプラインの選
択的停止を制御するための、関連するパイプライン制御
論理へ供給される。
るすべての仲裁結果の単なるマージ1440(図14)
である。仲裁論理の各セットは(段階3および/または
4において)2つまでの停止を発生する。同じ段階のす
べての停止は共にマージされる。これらマージされた出
力信号は停止制御信号1443としてパイプラインの選
択的停止を制御するための、関連するパイプライン制御
論理へ供給される。
【0083】停止制御信号1444は現在アクセス制御
のためのレジスタアクセス制御論理890へ供給され
る。有利なことに、本実施例では停止ペナルティの低減
が実行されるので、遅延書き込みによって解消されない
競合だけが適当なパイプラインの停止、すなわちより低
い段階のフリーズおよび次の段階におけるバブル挿入を
生じさせる。
のためのレジスタアクセス制御論理890へ供給され
る。有利なことに、本実施例では停止ペナルティの低減
が実行されるので、遅延書き込みによって解消されない
競合だけが適当なパイプラインの停止、すなわちより低
い段階のフリーズおよび次の段階におけるバブル挿入を
生じさせる。
【0084】仲裁論理は論理的な再使用の結果、ハード
ウェアが比較的簡単である。論理的再使用とは、仲裁論
理が(以前提案された仲裁目的のための新しいキューを
形成するのではなく)現在ある主パイプライン822〜
828のキューからのタッピングを使用し、実施例では
マージ論理883を通し、デコーダ880からの結果も
使用することを意味する。従って、仲裁論理ブロックの
ために必要なハードウェアの付加的量は大幅に低減され
る。DSP集積回路としての実施例を特定のハードウェ
アで実現する際には、すべての仲裁論理は全CPU面積
の2%未満しかカバーしない。これと対照的に、論理的
再使用を用いない場合、匹敵するレベルのパイプライン
保護をするのに必要な論理に必要とされるチップ面積は
少なくとも数倍以上、恐らくはマグニチュードより広い
面積となる。
ウェアが比較的簡単である。論理的再使用とは、仲裁論
理が(以前提案された仲裁目的のための新しいキューを
形成するのではなく)現在ある主パイプライン822〜
828のキューからのタッピングを使用し、実施例では
マージ論理883を通し、デコーダ880からの結果も
使用することを意味する。従って、仲裁論理ブロックの
ために必要なハードウェアの付加的量は大幅に低減され
る。DSP集積回路としての実施例を特定のハードウェ
アで実現する際には、すべての仲裁論理は全CPU面積
の2%未満しかカバーしない。これと対照的に、論理的
再使用を用いない場合、匹敵するレベルのパイプライン
保護をするのに必要な論理に必要とされるチップ面積は
少なくとも数倍以上、恐らくはマグニチュードより広い
面積となる。
【0085】処理エンジンのハードウェア設計をソフト
ウェアで検査する段階では、包括的仲裁関数の概念を更
に活用できる。一般に、CPU、その命令セットおよび
アーキテクチャの複雑さのために、パイプライン処理エ
ンジンハードウェアのためのすべてのテストパターンを
発生することは、多大な企てとなり得る。テストパター
ンは予め指定された基準を参考に定義する必要がある。
この基準の使用は極めて労力がかかることがある。本設
計を用いることにより、包括的関数を従来の命令セット
のレイテンシーテーブルに関連する基準として使用し
て、関数テストパターン発生器を作成できる。これによ
り、テストパターン発生器の作成が簡略化されるが、そ
の理由は、テスト範囲は包括的関数によって考えられる
可能な競合に限定できるからである。テストパターン発
生器は直接包括的関数に従うので、ハードウェア設計テ
ストのプロセスはより迅速となるだけでなく、よりシス
テマティックになり、良好なカバー範囲を保証する。
ウェアで検査する段階では、包括的仲裁関数の概念を更
に活用できる。一般に、CPU、その命令セットおよび
アーキテクチャの複雑さのために、パイプライン処理エ
ンジンハードウェアのためのすべてのテストパターンを
発生することは、多大な企てとなり得る。テストパター
ンは予め指定された基準を参考に定義する必要がある。
この基準の使用は極めて労力がかかることがある。本設
計を用いることにより、包括的関数を従来の命令セット
のレイテンシーテーブルに関連する基準として使用し
て、関数テストパターン発生器を作成できる。これによ
り、テストパターン発生器の作成が簡略化されるが、そ
の理由は、テスト範囲は包括的関数によって考えられる
可能な競合に限定できるからである。テストパターン発
生器は直接包括的関数に従うので、ハードウェア設計テ
ストのプロセスはより迅速となるだけでなく、よりシス
テマティックになり、良好なカバー範囲を保証する。
【0086】図17は、図14の3つのシャドーレジス
タのための保留およびフィルタ回路1404のブロック
図である。このユニットは、停止ベクトル信号1750
を介して停止(WAR−WAW)を受信し、そのうちの
K(Kはフリーシャドーレジスタ内への書き込みを再命
令することにより解消すべき0〜3となり得る)を選択
する。このシャドーレジスタは競合を解消し(長さ情報
によって知られる)、次に、正しい宛て先レジスタに書
き込むまで、シャドーレジスタはこの値を維持する。停
止レジスタが選択されていると、対応する宛て先コード
1462および停止長さcy()が符号化され、SMU
1406へ送られる。この選択された停止信号は次のフ
ィルタ段階へ送られる前に停止ベクトル1450から繰
り出される。(シャドーと同じ数の)すべてのフィルタ
1700(n)の後で、フィルタリングされた停止ベク
トルは第2レベルのマージ1440へ送られ、シャドー
レジスタがビジー状態であるか、または一度に4つ以上
の競合が存在する場合、停止動作を発生する。他の実施
例はこれより多いか、または少ないシャドーレジスタを
有することができ、従ってこのケースではKが選択され
る。
タのための保留およびフィルタ回路1404のブロック
図である。このユニットは、停止ベクトル信号1750
を介して停止(WAR−WAW)を受信し、そのうちの
K(Kはフリーシャドーレジスタ内への書き込みを再命
令することにより解消すべき0〜3となり得る)を選択
する。このシャドーレジスタは競合を解消し(長さ情報
によって知られる)、次に、正しい宛て先レジスタに書
き込むまで、シャドーレジスタはこの値を維持する。停
止レジスタが選択されていると、対応する宛て先コード
1462および停止長さcy()が符号化され、SMU
1406へ送られる。この選択された停止信号は次のフ
ィルタ段階へ送られる前に停止ベクトル1450から繰
り出される。(シャドーと同じ数の)すべてのフィルタ
1700(n)の後で、フィルタリングされた停止ベク
トルは第2レベルのマージ1440へ送られ、シャドー
レジスタがビジー状態であるか、または一度に4つ以上
の競合が存在する場合、停止動作を発生する。他の実施
例はこれより多いか、または少ないシャドーレジスタを
有することができ、従ってこのケースではKが選択され
る。
【0087】各符号化器1710a〜cは、R[N:
0]ベクトルからの宛て先コード(実際のターゲット書
き込み命令)を発生する。次の表3は真理表である。
0]ベクトルからの宛て先コード(実際のターゲット書
き込み命令)を発生する。次の表3は真理表である。
【0088】
【表3】 表3: シャドー宛て先コード符号化表
【0089】本実施例では、この方法はシャドーレジス
タの数を最小にするよう、補助レジスタおよびデータレ
ジスタのようなレジスタの縮小ベンチをターゲットとす
る。図16では、8ビットの停止ベクトルが形成される
ように8つのターゲットレジスタに対し8個の仲裁回路
1600が設けられている。フィルタリングはシリアル
化されるので、高速装置を使用すると有利である。
タの数を最小にするよう、補助レジスタおよびデータレ
ジスタのようなレジスタの縮小ベンチをターゲットとす
る。図16では、8ビットの停止ベクトルが形成される
ように8つのターゲットレジスタに対し8個の仲裁回路
1600が設けられている。フィルタリングはシリアル
化されるので、高速装置を使用すると有利である。
【0090】次のように、 S[i] :入力停止ベクトルのi番目のビット C[i] :i番目のビットまで伝搬するフィルタ係数
coeff(n)、(C[0]=シャドーがフリーの場
合1である) SF[i]:S[i]のフィルタリングされた値 R[i] :ビット選択フラグ
coeff(n)、(C[0]=シャドーがフリーの場
合1である) SF[i]:S[i]のフィルタリングされた値 R[i] :ビット選択フラグ
【0091】と称する場合、式(1)、(2)および
(3)はどのようにSF{I}およびC{I+1}を決
定するかを定める。表4は4つのターゲットレジスタの
ためのこれら関係を示す真理表である。異なる数のター
ゲットレジスタを同様なコード化によって収容する。
(3)はどのようにSF{I}およびC{I+1}を決
定するかを定める。表4は4つのターゲットレジスタの
ためのこれら関係を示す真理表である。異なる数のター
ゲットレジスタを同様なコード化によって収容する。
【0092】
【表4】 表4:選択フィルタ真理表
【0093】
【数1】
【0094】ここで、C[0]=シャドーがフリーの場
合1である。図18は、図17のフィルタ回路のための
ルックアヘッド構造のための略図である。この構造は、
フィルタ1700a〜cの各々内に含まれる。別の実施
例は、その速度を改善するための異なる装置、例えば高
速けた上げ処理CLAを備えたルックアヘッド構造を使
用できる。しかしながら、例えば加算器に対してはその
設計のタイミング制約に応じて(CLA、高速CLAの
ような)任意の並列プリフィックスアーキテクチャを使
用できる。図18は、4ビット停止ベクトルS[3〜
0]が設けられた4つのターゲットレジスタのための実
施例を示す。
合1である。図18は、図17のフィルタ回路のための
ルックアヘッド構造のための略図である。この構造は、
フィルタ1700a〜cの各々内に含まれる。別の実施
例は、その速度を改善するための異なる装置、例えば高
速けた上げ処理CLAを備えたルックアヘッド構造を使
用できる。しかしながら、例えば加算器に対してはその
設計のタイミング制約に応じて(CLA、高速CLAの
ような)任意の並列プリフィックスアーキテクチャを使
用できる。図18は、4ビット停止ベクトルS[3〜
0]が設けられた4つのターゲットレジスタのための実
施例を示す。
【0095】図19は、図17のフィルタ回路のための
停止長さ選択のためのマルチプレクサ回路1720の略
図である。マルチプレクサ回路1720は信号R[i]
によって制御され、K個の入力信号から1つの停止長さ
L()1451を選択する。信号Cy[x]1721は
選択された停止長さをSMU1406へ送る。
停止長さ選択のためのマルチプレクサ回路1720の略
図である。マルチプレクサ回路1720は信号R[i]
によって制御され、K個の入力信号から1つの停止長さ
L()1451を選択する。信号Cy[x]1721は
選択された停止長さをSMU1406へ送る。
【0096】図20は、図14のシャドーレジスタのた
めのシャドー管理回路1406のブロック図である。図
21は、ステートマシン制御回路2100を示す図20
のシャドー管理回路のブロック図である。
めのシャドー管理回路1406のブロック図である。図
21は、ステートマシン制御回路2100を示す図20
のシャドー管理回路のブロック図である。
【0097】このユニットは、RFユニット1404か
らの宛て先信号1462および停止長さ信号1721、
更に(条件命令のための)停止および書き込みイネーブ
ル信号2000を受信する。宛て先レジスタ2010は
宛て先コードを記憶する。長さレジスタ2012は停止
長さを記憶し、インクリメントレジスタ2014はペン
ディング書き込み信号を形成するようにインクリメント
される。これら信号からシャドー管理ユニット1406
は次の信号を発生する。
らの宛て先信号1462および停止長さ信号1721、
更に(条件命令のための)停止および書き込みイネーブ
ル信号2000を受信する。宛て先レジスタ2010は
宛て先コードを記憶する。長さレジスタ2012は停止
長さを記憶し、インクリメントレジスタ2014はペン
ディング書き込み信号を形成するようにインクリメント
される。これら信号からシャドー管理ユニット1406
は次の信号を発生する。
【0098】− Reg2Sh[i]信号2010:段
階3のレジスタからシャドー[i]への転送書き込み命
令。これによって競合している段階3のレジスタへの書
き込みが不能とされる。 − Sh[i]2Reg信号2012:シャドー[i]
から先に競合したレジスタへの書き込み命令。 − Coeff[i]信号2014:RFユニット内で
係数として使用されるフリーシャドー[i]信号。 − ペンディング書き込み信号2016:シャドーレジ
スタからの遅延書き込みの結果として段階4および5内
で生じ得る競合を管理するために、IDユニット140
2へ送られる信号である。 − リダイレクト読み出し信号2110:レジスタファ
イルへの段階3、5、6のための命令。 任意の作動読み出しサイクルのスタート時にこれらリダ
イレクト信号はアクティブとなる。本実施例ではこれら
信号は1サイクルまで予想され、ラッチされる。
階3のレジスタからシャドー[i]への転送書き込み命
令。これによって競合している段階3のレジスタへの書
き込みが不能とされる。 − Sh[i]2Reg信号2012:シャドー[i]
から先に競合したレジスタへの書き込み命令。 − Coeff[i]信号2014:RFユニット内で
係数として使用されるフリーシャドー[i]信号。 − ペンディング書き込み信号2016:シャドーレジ
スタからの遅延書き込みの結果として段階4および5内
で生じ得る競合を管理するために、IDユニット140
2へ送られる信号である。 − リダイレクト読み出し信号2110:レジスタファ
イルへの段階3、5、6のための命令。 任意の作動読み出しサイクルのスタート時にこれらリダ
イレクト信号はアクティブとなる。本実施例ではこれら
信号は1サイクルまで予想され、ラッチされる。
【0099】段階6の書き込みは次に続く読み出しとの
競合(停止)を発生するので考慮しない。段階6の書き
込みを実行する命令による3サイクルの遅延書き込みの
場合、段階6の書き込みへオーバーライト優先権が与え
られ、下記のようにペンディング、現在書き込みおよび
リダイレクト読み出し信号が発生される。これら信号は
インターロック検出ユニット1402およびレジスタフ
ァイル832へ送られる。
競合(停止)を発生するので考慮しない。段階6の書き
込みを実行する命令による3サイクルの遅延書き込みの
場合、段階6の書き込みへオーバーライト優先権が与え
られ、下記のようにペンディング、現在書き込みおよび
リダイレクト読み出し信号が発生される。これら信号は
インターロック検出ユニット1402およびレジスタフ
ァイル832へ送られる。
【0100】図22は、シャドーレジスタから図14の
レジスタファイル内のターゲットレジスタへデータをル
ーチングするための回路の略図である。このレジスタフ
ァイル内ではターゲットとされたレジスタとシャドーレ
ジスタとの間に多重化されたデータ経路が実現される。
競合が検出されると、SMU1406からの制御信号r
eg2shadow[i]2012に応答し、段階3の
書き込み経路2202を介し、データアイテムがシャド
ーレジスタ[i]2200にロードされる。同じサイク
ルで、検出された競合が相殺されるよう、reg2sh
adow[i]信号2010aはターゲットレジスタ2
210へのデータの書き込みを禁止する。遅延された書
き込みサイクルとして制御信号のshadow2reg
[i]に応答し、後のサイクルでこのデータアイテムは
転送され、ターゲットレジスタ2210へ書き込まれ
る。マルチプレクサ2206は一組のシャドーレジスタ
から選択されたシャドーレジスタ2200からデータア
イテムを選択するように制御され、マルチプレクサ22
10は段階3〜段階6の書き込み経路のうちの1つまた
はシャドーレジスタから選択を行うように制御されてい
る。
レジスタファイル内のターゲットレジスタへデータをル
ーチングするための回路の略図である。このレジスタフ
ァイル内ではターゲットとされたレジスタとシャドーレ
ジスタとの間に多重化されたデータ経路が実現される。
競合が検出されると、SMU1406からの制御信号r
eg2shadow[i]2012に応答し、段階3の
書き込み経路2202を介し、データアイテムがシャド
ーレジスタ[i]2200にロードされる。同じサイク
ルで、検出された競合が相殺されるよう、reg2sh
adow[i]信号2010aはターゲットレジスタ2
210へのデータの書き込みを禁止する。遅延された書
き込みサイクルとして制御信号のshadow2reg
[i]に応答し、後のサイクルでこのデータアイテムは
転送され、ターゲットレジスタ2210へ書き込まれ
る。マルチプレクサ2206は一組のシャドーレジスタ
から選択されたシャドーレジスタ2200からデータア
イテムを選択するように制御され、マルチプレクサ22
10は段階3〜段階6の書き込み経路のうちの1つまた
はシャドーレジスタから選択を行うように制御されてい
る。
【0101】データアイテムがまだターゲットレジスタ
に書き込まれていない場合、シャドーレジスタから段階
3、段階5または段階6の読み出し経路へのリダイレク
ト読み出しを可能にするためのマルチプレクサ222
0、2222、2224および2226が設けられてい
る。
に書き込まれていない場合、シャドーレジスタから段階
3、段階5または段階6の読み出し経路へのリダイレク
ト読み出しを可能にするためのマルチプレクサ222
0、2222、2224および2226が設けられてい
る。
【0102】図23は図21のステートマシン2100
の作動を示すステート図である。各シャドーレジスタに
は別個のステートマシン2100が関連しており、リセ
ット中、または信号Cout=0によって表示されるよ
うにステートマシン2300に関連するシャドーレジス
タが選択されていないとき、または信号Stall
(3)によって示されるように、段階3が停止されてい
るときに、ループ2302はステートマシン2100を
ロードステート2300に保持する。関連するシャドー
レジスタが選択されると(Cout=1)、Arc23
04はステートマシン2100をカウントステート23
10に変化させる。宛て先レジスタ2010および長さ
レジスタ2012には選択された競合に関連するデータ
がロードされ、インクリメントレジスタ2014には0
がロードされる。
の作動を示すステート図である。各シャドーレジスタに
は別個のステートマシン2100が関連しており、リセ
ット中、または信号Cout=0によって表示されるよ
うにステートマシン2300に関連するシャドーレジス
タが選択されていないとき、または信号Stall
(3)によって示されるように、段階3が停止されてい
るときに、ループ2302はステートマシン2100を
ロードステート2300に保持する。関連するシャドー
レジスタが選択されると(Cout=1)、Arc23
04はステートマシン2100をカウントステート23
10に変化させる。宛て先レジスタ2010および長さ
レジスタ2012には選択された競合に関連するデータ
がロードされ、インクリメントレジスタ2014には0
がロードされる。
【0103】カウントステート2310では、クロック
サイクルごとに長さレジスタ2012がデクリメントさ
れ、クロックサイクルごとにインクリメントレジスタ2
014がインクリメントされる。長さレジスタ2012
は0より大であるか、またはインクリメントレジスタに
等しい値だけ段階3を越えた段階で停止がアサートされ
た場合、ループ2312はステートマシンをカウントス
テート2310に保持する。例えばインクリメントレジ
スタが2の値を保持した場合、段階5が停止されていれ
ば、カウントステート2310が維持される。しかしな
がらこの場合、長さレジスタとインクリメントレジスタ
とは変化しない。カウントステート2310中、ペンデ
ィング書き込み信号2016がアサートされる。宛て先
コードおよびインクリメント出力(Ino)を使ってカ
ウントステート中にペンディング書き込み信号が発生さ
れ、別の競合をトラックするようにインターロック検出
論理へ送られる。
サイクルごとに長さレジスタ2012がデクリメントさ
れ、クロックサイクルごとにインクリメントレジスタ2
014がインクリメントされる。長さレジスタ2012
は0より大であるか、またはインクリメントレジスタに
等しい値だけ段階3を越えた段階で停止がアサートされ
た場合、ループ2312はステートマシンをカウントス
テート2310に保持する。例えばインクリメントレジ
スタが2の値を保持した場合、段階5が停止されていれ
ば、カウントステート2310が維持される。しかしな
がらこの場合、長さレジスタとインクリメントレジスタ
とは変化しない。カウントステート2310中、ペンデ
ィング書き込み信号2016がアサートされる。宛て先
コードおよびインクリメント出力(Ino)を使ってカ
ウントステート中にペンディング書き込み信号が発生さ
れ、別の競合をトラックするようにインターロック検出
論理へ送られる。
【0104】長さレジスタが一旦0の値に達すると、a
rc2314はステートマシンをロードステート230
0へ戻す。シャドーレジスタの内容を使ってターゲット
レジスタの遅延書き込みを完了するために、信号sha
dow2reg[i]2012がアサートされる。宛て
先コード入力および長さ出力(Lo)を使って転送書き
込み信号Shadow2Reg[i]が発生される。
rc2314はステートマシンをロードステート230
0へ戻す。シャドーレジスタの内容を使ってターゲット
レジスタの遅延書き込みを完了するために、信号sha
dow2reg[i]2012がアサートされる。宛て
先コード入力および長さ出力(Lo)を使って転送書き
込み信号Shadow2Reg[i]が発生される。
【0105】書き込みを遅延することにより、WARお
よび/またはWAWの競合が解消するが、検討しなけれ
ばならない副作用も生じる。本実施例では次の章に説明
するように3つのタイプの副作用が検出され、これらを
管理している。
よび/またはWAWの競合が解消するが、検討しなけれ
ばならない副作用も生じる。本実施例では次の章に説明
するように3つのタイプの副作用が検出され、これらを
管理している。
【0106】遅延論理によってRAW競合が生じないよ
うに読み出しのリダイレクトが実行される。遅延機構M
USTを使用する命令からの次の読み出しは、あたかも
非競合の挙動と一貫するように書き込みが行われている
かのように、レジスタ値を使用する。このことは図22
を参照して説明するリダイレクトマルチプレクサを介
し、関連するシャドーレジスタ内に記憶されているデー
タを提供することによって達成される。
うに読み出しのリダイレクトが実行される。遅延機構M
USTを使用する命令からの次の読み出しは、あたかも
非競合の挙動と一貫するように書き込みが行われている
かのように、レジスタ値を使用する。このことは図22
を参照して説明するリダイレクトマルチプレクサを介
し、関連するシャドーレジスタ内に記憶されているデー
タを提供することによって達成される。
【0107】WAW/WAR停止を除去する際に生じ得
るRAW係止は、読み出しリダイレクトを使うことによ
って止めることもできる。遅延書き込み機構によって発
生されるWAW競合は検出しなければならない。。これ
らの誘導されたWAW競合はシャドーがフリーとなって
いる場合に、遅延された書き込み機構によっても解消で
きる。
るRAW係止は、読み出しリダイレクトを使うことによ
って止めることもできる。遅延書き込み機構によって発
生されるWAW競合は検出しなければならない。。これ
らの誘導されたWAW競合はシャドーがフリーとなって
いる場合に、遅延された書き込み機構によっても解消で
きる。
【0108】次の図は、本実施例にける遅延された書き
込みの3つの内容を示し、この書き込みは1サイクルか
ら3サイクルとなり得る。図24Aは1サイクルの書き
込み遅延およびその結果生じる、シャドーレジスタから
の読み出しのリダイレクトを示すタイミング図である。
書き込み2400はWAR競合として検出され、本発明
の特徴により2402まで1サイクルだけ遅延される。
この遅延により読み出し2404はRAWの停止を必要
とする。好ましくはこの停止はシャドー[i]からの読
み出しリダイレクトによって止めることができる。
込みの3つの内容を示し、この書き込みは1サイクルか
ら3サイクルとなり得る。図24Aは1サイクルの書き
込み遅延およびその結果生じる、シャドーレジスタから
の読み出しのリダイレクトを示すタイミング図である。
書き込み2400はWAR競合として検出され、本発明
の特徴により2402まで1サイクルだけ遅延される。
この遅延により読み出し2404はRAWの停止を必要
とする。好ましくはこの停止はシャドー[i]からの読
み出しリダイレクトによって止めることができる。
【0109】図24Bは1つのシャドーレジスタしか必
要としないループナイン1司空く得の書き込み遅延を示
すタイミング図である。書き込み2410と読み出し2
411との間のWAR競合は、遅延された書き込み24
12によって解消される。しかしながらこれによって書
き込み2414とのWAW競合が誘導される。好ましく
はこの誘導されたWAW競合は遅延書き込み2416に
よっても解消できる。この遅延は1サイクルだけである
ので、双方の競合を解消するのに1つのシャドーレジス
タだけでよい。
要としないループナイン1司空く得の書き込み遅延を示
すタイミング図である。書き込み2410と読み出し2
411との間のWAR競合は、遅延された書き込み24
12によって解消される。しかしながらこれによって書
き込み2414とのWAW競合が誘導される。好ましく
はこの誘導されたWAW競合は遅延書き込み2416に
よっても解消できる。この遅延は1サイクルだけである
ので、双方の競合を解消するのに1つのシャドーレジス
タだけでよい。
【0110】図25Aは2サイクルの書き込み遅延およ
び潜在的競合を止めたシャドーレジスタからの遅延の結
果生じる読み出しリダイレクトを示すタイミング図であ
る。書き込み2500に対するWAR競合は2サイクル
遅延された書き込み2502によって解消される。これ
により読み出し2502に対しRAW競合が誘導され
る。この誘導された競合はシャドー[i]からリダイレ
クトされた読み出しによって解消することが好ましい。
書き込み2510と読み出し2512との間のRAW競
合のシャドー[i]からリダイレクトされた読み出しに
よって解消することが好ましい。
び潜在的競合を止めたシャドーレジスタからの遅延の結
果生じる読み出しリダイレクトを示すタイミング図であ
る。書き込み2500に対するWAR競合は2サイクル
遅延された書き込み2502によって解消される。これ
により読み出し2502に対しRAW競合が誘導され
る。この誘導された競合はシャドー[i]からリダイレ
クトされた読み出しによって解消することが好ましい。
書き込み2510と読み出し2512との間のRAW競
合のシャドー[i]からリダイレクトされた読み出しに
よって解消することが好ましい。
【0111】図25Bは2つのシャドーレジスタを必要
とするループ内での2サイクルの書き込み遅延を示すタ
イミング図である。書き込み2520と読み出し252
1との間のWAR競合は、2サイクル遅延された書き込
み2522によって解消される。しかしながら、これに
よって書き込み2524とのWAR競合が誘導される。
この誘導されたWAR競合も、遅延された書き込み25
26によって解消することが好ましい。遅延時間は2サ
イクルであるので、双方の競合を解消するのに2つのシ
ャドーレジスタが必要である。書き込み2524と書き
込み2530との間の競合および読み出し2521と読
み出し2532との間の競合も、遅延された書き込み2
526によって解消することが好ましい。読み出し25
22および2526も、シャドー[i]およびシャドー
[j]からリダイレクトされた読み出しによってそれぞ
れ停止することなく実行される。読み出し2534もシ
ャドー[i]からリダイレクトされた読み出しによっ
て、停止することなく実行される。
とするループ内での2サイクルの書き込み遅延を示すタ
イミング図である。書き込み2520と読み出し252
1との間のWAR競合は、2サイクル遅延された書き込
み2522によって解消される。しかしながら、これに
よって書き込み2524とのWAR競合が誘導される。
この誘導されたWAR競合も、遅延された書き込み25
26によって解消することが好ましい。遅延時間は2サ
イクルであるので、双方の競合を解消するのに2つのシ
ャドーレジスタが必要である。書き込み2524と書き
込み2530との間の競合および読み出し2521と読
み出し2532との間の競合も、遅延された書き込み2
526によって解消することが好ましい。読み出し25
22および2526も、シャドー[i]およびシャドー
[j]からリダイレクトされた読み出しによってそれぞ
れ停止することなく実行される。読み出し2534もシ
ャドー[i]からリダイレクトされた読み出しによっ
て、停止することなく実行される。
【0112】図26Aは3サイクルの書き込み遅延およ
び潜在的な競合が止められたシャドーレジスタからの、
その結果生じる読み出しリダイレクトを示すタイミング
図である。書き込み2600に対するWAR競合は、3
サイクル遅延された書き込み2602によって解消され
る。これにより読み出し2602に対し、RAW競合が
誘導される。この誘導された競合は、シャドー[i]か
らリダイレクトされた読み出しによって解消することが
好ましい。読み出し2604に対する遅延された書き込
み2602によっても1つの競合が誘導される。この誘
導された競合はシャドー[i]からリダイレクトされた
読み出しによって解消することが好ましい。書き込み2
610と2611と読み出し2612との間のRAW競
合もシャドー[i]からリダイレクトされた読み出しに
よって解消することが好ましい。読み出し2614およ
び読み出し2616に対する誘導されたRAW競合もシ
ャドー[i]からリダイレクトされた読み出しによって
解消することが好ましい。
び潜在的な競合が止められたシャドーレジスタからの、
その結果生じる読み出しリダイレクトを示すタイミング
図である。書き込み2600に対するWAR競合は、3
サイクル遅延された書き込み2602によって解消され
る。これにより読み出し2602に対し、RAW競合が
誘導される。この誘導された競合は、シャドー[i]か
らリダイレクトされた読み出しによって解消することが
好ましい。読み出し2604に対する遅延された書き込
み2602によっても1つの競合が誘導される。この誘
導された競合はシャドー[i]からリダイレクトされた
読み出しによって解消することが好ましい。書き込み2
610と2611と読み出し2612との間のRAW競
合もシャドー[i]からリダイレクトされた読み出しに
よって解消することが好ましい。読み出し2614およ
び読み出し2616に対する誘導されたRAW競合もシ
ャドー[i]からリダイレクトされた読み出しによって
解消することが好ましい。
【0113】図26Bは3つのシャドーレジスタが必要
となるようにループ内で3サイクルの書き込み遅延を行
っていることを示すタイミング図である。書き込み26
20と書き込み2640との間のWAR競合は3サイク
ル遅延された書き込み2622によって解消される。し
かしながら、これによって書き込み2624および書き
込み2626とのWAW競合が誘導される。好ましいこ
とに、これら誘導されたWAW競合は遅延された書き込
み2622によっても解消できる。遅延時間は3サイク
ルであるので、3つの競合を解消するのに3つのシャド
ーレジスタが必要である。書き込み2640と読み出し
2623との間の競合は遅延された書き込み2622に
よっても有利に止められる。読み出し2622、262
8および2630もそれぞれシャドー[i]、シャドー
[j]およびシャドー[k]からリダイレクトされた読
み出しによって、停止することなく実行される。
となるようにループ内で3サイクルの書き込み遅延を行
っていることを示すタイミング図である。書き込み26
20と書き込み2640との間のWAR競合は3サイク
ル遅延された書き込み2622によって解消される。し
かしながら、これによって書き込み2624および書き
込み2626とのWAW競合が誘導される。好ましいこ
とに、これら誘導されたWAW競合は遅延された書き込
み2622によっても解消できる。遅延時間は3サイク
ルであるので、3つの競合を解消するのに3つのシャド
ーレジスタが必要である。書き込み2640と読み出し
2623との間の競合は遅延された書き込み2622に
よっても有利に止められる。読み出し2622、262
8および2630もそれぞれシャドー[i]、シャドー
[j]およびシャドー[k]からリダイレクトされた読
み出しによって、停止することなく実行される。
【0114】図27は、本発明の一実施例を内蔵する処
理エンジンのデュアルパイプライン算術論理ユニットの
アーキテクチャを示す。図27に示されるように、制御
フロー800からの命令を受信する、第1パイプライン
820および第2パイプライン850が設けられてい
る。図2の用語では、第1パイプラインをDユニットと
し、第2パイプラインをAユニットとすることができ
る。
理エンジンのデュアルパイプライン算術論理ユニットの
アーキテクチャを示す。図27に示されるように、制御
フロー800からの命令を受信する、第1パイプライン
820および第2パイプライン850が設けられてい
る。図2の用語では、第1パイプラインをDユニットと
し、第2パイプラインをAユニットとすることができ
る。
【0115】制御フローは命令バッファ810と、第1
および第2命令ストリームを復号化するための第1およ
び第2デコーダ812および814を含む。並列内容が
有効となることを保証するために、並列証明論理816
内で並列符号化有効化チェックが実行される。ディスパ
ッチコントローラ808の制御によりディスパッチ論理
818からデコーダ812および814からの命令がデ
ィスパッチされる。
および第2命令ストリームを復号化するための第1およ
び第2デコーダ812および814を含む。並列内容が
有効となることを保証するために、並列証明論理816
内で並列符号化有効化チェックが実行される。ディスパ
ッチコントローラ808の制御によりディスパッチ論理
818からデコーダ812および814からの命令がデ
ィスパッチされる。
【0116】第1パイプライン820では、連続するパ
イプライン段階822、824、826および828は
ローカルなパイプラインコントローラ830の制御下に
ある。第1ローカルインターロックコントローラを形成
する第1ローカルインターロック/フィルタ/シャドー
論理838は、第1パイプライン820と関連してお
り、インターロック/フィルタ/シャドー論理838は
IDU1402、RFU1404およびSMU1406
に類似する回路を含む。このパイプラインコントローラ
は関連するインターロック制御論理からの制御信号に応
答し、パイプライン段階の選択的な停止を生じさせる。
このコントローラはパイプライン820からの出力に
も、かつパイプライン820のためのレジスタファイル
832からの出力にも応答する。レジスタファイル83
2はレジスタファイル制御論理834および個々のレジ
スタ836を含み、レジスタ836の一部はシャドーレ
ジスタとなっている。制御論理834はインターロック
/フィルタ/シャドー論理838に応答し、パイプライ
ンの停止の発生を有利に減少できるように、選択された
ターゲットレジスタに遅延された書き込み信号を送る。
現在のアクセス動作に関連して1つ以上の演算子840
および842にアクセスすることができる。
イプライン段階822、824、826および828は
ローカルなパイプラインコントローラ830の制御下に
ある。第1ローカルインターロックコントローラを形成
する第1ローカルインターロック/フィルタ/シャドー
論理838は、第1パイプライン820と関連してお
り、インターロック/フィルタ/シャドー論理838は
IDU1402、RFU1404およびSMU1406
に類似する回路を含む。このパイプラインコントローラ
は関連するインターロック制御論理からの制御信号に応
答し、パイプライン段階の選択的な停止を生じさせる。
このコントローラはパイプライン820からの出力に
も、かつパイプライン820のためのレジスタファイル
832からの出力にも応答する。レジスタファイル83
2はレジスタファイル制御論理834および個々のレジ
スタ836を含み、レジスタ836の一部はシャドーレ
ジスタとなっている。制御論理834はインターロック
/フィルタ/シャドー論理838に応答し、パイプライ
ンの停止の発生を有利に減少できるように、選択された
ターゲットレジスタに遅延された書き込み信号を送る。
現在のアクセス動作に関連して1つ以上の演算子840
および842にアクセスすることができる。
【0117】第2パイプライン850では、連続するパ
イプライン段階852、854、856および858は
ローカルなパイプラインコントローラ860の制御下に
ある。第2ローカルインターロックコントローラを形成
する第2ローカルインターロック/フィルタ/シャドー
論理868は、第2パイプライン850と関連してい
る。このパイプラインコントローラは関連するインター
ロック制御論理からの制御信号に応答し、パイプライン
段階の選択的な停止を生じさせる。このコントローラは
パイプライン850からの出力にも、かつパイプライン
850のためのレジスタファイル862からの出力にも
応答する。レジスタファイル862はレジスタファイル
制御論理864および個々のレジスタ866を含み、レ
ジスタ866の一部はシャドーレジスタとなっている。
制御論理864はインターロック/フィルタ/シャドー
論理868に応答し、パイプラインの停止の発生を有利
に減少できるように、選択されたターゲットレジスタに
遅延された書き込み信号を送る。現在のアクセス動作に
関連して1つ以上の演算子870および872にアクセ
スすることができる。
イプライン段階852、854、856および858は
ローカルなパイプラインコントローラ860の制御下に
ある。第2ローカルインターロックコントローラを形成
する第2ローカルインターロック/フィルタ/シャドー
論理868は、第2パイプライン850と関連してい
る。このパイプラインコントローラは関連するインター
ロック制御論理からの制御信号に応答し、パイプライン
段階の選択的な停止を生じさせる。このコントローラは
パイプライン850からの出力にも、かつパイプライン
850のためのレジスタファイル862からの出力にも
応答する。レジスタファイル862はレジスタファイル
制御論理864および個々のレジスタ866を含み、レ
ジスタ866の一部はシャドーレジスタとなっている。
制御論理864はインターロック/フィルタ/シャドー
論理868に応答し、パイプラインの停止の発生を有利
に減少できるように、選択されたターゲットレジスタに
遅延された書き込み信号を送る。現在のアクセス動作に
関連して1つ以上の演算子870および872にアクセ
スすることができる。
【0118】ローカルパイプラインコントローラ830
および860の各々は、インターロックコントローラに
よって発生される停止を他のパイプラインコントローラ
にも拡散する信号875により、ローカルインターロッ
クコントローラ838および868の各々からの出力に
応答できることが理解できよう。この一般的な原理は拡
張可能である。従って、3本以上のパイプラインが設け
られている場合、各パイプラインのためのローカルパイ
プラインコントローラはローカルインターロックコント
ローラのすべてからの出力に応答できる。
および860の各々は、インターロックコントローラに
よって発生される停止を他のパイプラインコントローラ
にも拡散する信号875により、ローカルインターロッ
クコントローラ838および868の各々からの出力に
応答できることが理解できよう。この一般的な原理は拡
張可能である。従って、3本以上のパイプラインが設け
られている場合、各パイプラインのためのローカルパイ
プラインコントローラはローカルインターロックコント
ローラのすべてからの出力に応答できる。
【0119】従って、図27ではインターロック制御の
自然な区分がレジスタファイルに対して同じとなってい
る。しかしながら、このようなケースとする必要はな
く、仲裁関数情報位置(ペンディング対現在アクセス)
に応じて個々のインターロック制御(例えば838また
は868)を元のレジスタファイルから別のレジスタフ
ァイルへ移動することが望ましい。
自然な区分がレジスタファイルに対して同じとなってい
る。しかしながら、このようなケースとする必要はな
く、仲裁関数情報位置(ペンディング対現在アクセス)
に応じて個々のインターロック制御(例えば838また
は868)を元のレジスタファイルから別のレジスタフ
ァイルへ移動することが望ましい。
【0120】上記のように、本実施例では例えば制御フ
ロー(CF)、Dユニット(DU)に対して、かつAユ
ニット(AU)に対して3つのレジスタファイルが設け
られている。従って、3組のローカルインターロック制
御論理が設けられている。しかしながら、ペンディング
および/または現在アクセス情報が主にそれぞれのロケ
ーション(AU、CF)に位置するように、制御論理の
物理的ロケーションは分散されている。Dユニットに対
しては、インターロック論理を制御フローユニットへ移
動し、このユニットでは命令パイプライン内で制御用の
かなりのパーセントの信号がペンディングされる。レジ
スタファイルのうちのできるだけ多くの現在アクセスを
再使用することにより論理オーバーヘッドを最小にする
ことができる。パイプラインおよび関連するローカルパ
イプライン制御論理を有するすべてのCPUサブユニッ
ト内に、発生される停止状態が拡散される。好ましいこ
とに、本発明の特徴によれば、シャドーレジスタを介し
た遅延書き込みにより解消される競合は停止状態を発生
しない。
ロー(CF)、Dユニット(DU)に対して、かつAユ
ニット(AU)に対して3つのレジスタファイルが設け
られている。従って、3組のローカルインターロック制
御論理が設けられている。しかしながら、ペンディング
および/または現在アクセス情報が主にそれぞれのロケ
ーション(AU、CF)に位置するように、制御論理の
物理的ロケーションは分散されている。Dユニットに対
しては、インターロック論理を制御フローユニットへ移
動し、このユニットでは命令パイプライン内で制御用の
かなりのパーセントの信号がペンディングされる。レジ
スタファイルのうちのできるだけ多くの現在アクセスを
再使用することにより論理オーバーヘッドを最小にする
ことができる。パイプラインおよび関連するローカルパ
イプライン制御論理を有するすべてのCPUサブユニッ
ト内に、発生される停止状態が拡散される。好ましいこ
とに、本発明の特徴によれば、シャドーレジスタを介し
た遅延書き込みにより解消される競合は停止状態を発生
しない。
【0121】規則性および一般性の結果として実施およ
びテストがストレートフォワードとなっているパイプラ
イン保護機構について、以上に説明した。読み出し/書
き込みペンディング動作のキューイングはパイプライン
自体によって処理される。従って、インターロック検出
論理は純粋な組み合わせであり、インターロック機構の
一部として読み出し/書き込みキューを必要としない。
びテストがストレートフォワードとなっているパイプラ
イン保護機構について、以上に説明した。読み出し/書
き込みペンディング動作のキューイングはパイプライン
自体によって処理される。従って、インターロック検出
論理は純粋な組み合わせであり、インターロック機構の
一部として読み出し/書き込みキューを必要としない。
【0122】図28は、図12の回路を使用する代表的
なアプリケーションにおける停止状態を示すスペクトル
図である。このベンチマークに使用されるアプリケーシ
ョンは4フレームの一組(45Kサイクル)で適用され
るボコーダコードである。図28はコードを実行中の段
階4の停止周波数を示す。
なアプリケーションにおける停止状態を示すスペクトル
図である。このベンチマークに使用されるアプリケーシ
ョンは4フレームの一組(45Kサイクル)で適用され
るボコーダコードである。図28はコードを実行中の段
階4の停止周波数を示す。
【0123】図29は図14の回路を使って図28のア
プリケーションから除去できる停止状態を示す分布図で
ある。図29は内部レジスタ間に分布した同じ停止状態
を示し、RAW競合とWAW/WAR競合とを区別して
いる。このことから、本発明の特徴に係わる回路を使用
するバブル挿入を用いなくても、これら競合のうちの5
0%までを解消できると判断できる。
プリケーションから除去できる停止状態を示す分布図で
ある。図29は内部レジスタ間に分布した同じ停止状態
を示し、RAW競合とWAW/WAR競合とを区別して
いる。このことから、本発明の特徴に係わる回路を使用
するバブル挿入を用いなくても、これら競合のうちの5
0%までを解消できると判断できる。
【0124】図30は図1のプロセッサ10を内蔵する
集積回路40の略図である。この集積回路は用途特定集
積回路(ASIC)技術を使用して実現できる。図示す
るように、この集積回路は表面実装のための複数の接点
42を含む。しかしながら、この集積回路は他のコンフ
ィギュレーション、例えばゼロ挿入力ソケットで取り付
けるための回路の下方表面に設けられた複数のピンまた
は他の任意の適当なコンフィギュレーションを含むこと
ができる。
集積回路40の略図である。この集積回路は用途特定集
積回路(ASIC)技術を使用して実現できる。図示す
るように、この集積回路は表面実装のための複数の接点
42を含む。しかしながら、この集積回路は他のコンフ
ィギュレーション、例えばゼロ挿入力ソケットで取り付
けるための回路の下方表面に設けられた複数のピンまた
は他の任意の適当なコンフィギュレーションを含むこと
ができる。
【0125】処理エンジン、例えば図32に示されるよ
うな集積回路に組み込まれるようなプロセッサ10のア
プリケーションは、通信用デバイス、例えば移動無線通
信デバイスに設けられる。図17は、かかる通信デバイ
スの一例を示す。図17に示された特定の例では、通信
デバイスは統合ユーザー入力デバイス、例えばキーパッ
ドまたはキーボード12およびディスプレイ14を備え
た移動電話11である。ディスプレイは適当な技術、例
えば液晶ディスプレイまたはTFTディスプレイを使っ
て実現できる。プロセッサ10は適当な場合にはキーボ
ードアダプタ(図示せず)を介してキーパッド12に接
続され、適当な場合にはディスプレイアダプタ(図示せ
ず)を介してディスプレイ14に接続され、通信インタ
ーフェースまたはトランシーバ16、例えば無線周波数
(RF)回路を含む無線通信インターフェースに接続さ
れる。この無線周波数回路はプロセッサ10を含む集積
回路40に組み込んでもよいし、または別個でもよい。
このRF回路16はアンテナ18に接続されている。
うな集積回路に組み込まれるようなプロセッサ10のア
プリケーションは、通信用デバイス、例えば移動無線通
信デバイスに設けられる。図17は、かかる通信デバイ
スの一例を示す。図17に示された特定の例では、通信
デバイスは統合ユーザー入力デバイス、例えばキーパッ
ドまたはキーボード12およびディスプレイ14を備え
た移動電話11である。ディスプレイは適当な技術、例
えば液晶ディスプレイまたはTFTディスプレイを使っ
て実現できる。プロセッサ10は適当な場合にはキーボ
ードアダプタ(図示せず)を介してキーパッド12に接
続され、適当な場合にはディスプレイアダプタ(図示せ
ず)を介してディスプレイ14に接続され、通信インタ
ーフェースまたはトランシーバ16、例えば無線周波数
(RF)回路を含む無線通信インターフェースに接続さ
れる。この無線周波数回路はプロセッサ10を含む集積
回路40に組み込んでもよいし、または別個でもよい。
このRF回路16はアンテナ18に接続されている。
【0126】データ処理デバイス100を製造するには
半導体基板に種々の量の不純物を打ち込み、基板内の選
択された深さに不純物を拡散させてトランジスタデバイ
スを形成する多数の工程が必要である。不純物の配置を
制御する為にマスクが形成される。導電材料と絶縁性材
料の多数の膜がデポジットされ、種々のデバイスを相互
に接続するのに、これら膜がエッチングされる。これら
工程はクリーンルーム環境内で実行される。
半導体基板に種々の量の不純物を打ち込み、基板内の選
択された深さに不純物を拡散させてトランジスタデバイ
スを形成する多数の工程が必要である。不純物の配置を
制御する為にマスクが形成される。導電材料と絶縁性材
料の多数の膜がデポジットされ、種々のデバイスを相互
に接続するのに、これら膜がエッチングされる。これら
工程はクリーンルーム環境内で実行される。
【0127】データ処理デバイスを製造するコストの大
部分は検査に関連している。ウェーハの形態にて、個々
のデバイスは作動状態にバイアスされ、基本的な作動機
能についてプローブ検査される。次にウェーハは剥き出
しのダイまたはパッケージされた状態で販売できるよう
に、個々のダイスに分離される。パッケージ後、仕上げ
られた部品は作動状態にバイアスされ、作動機能に関す
る検査を受ける。
部分は検査に関連している。ウェーハの形態にて、個々
のデバイスは作動状態にバイアスされ、基本的な作動機
能についてプローブ検査される。次にウェーハは剥き出
しのダイまたはパッケージされた状態で販売できるよう
に、個々のダイスに分離される。パッケージ後、仕上げ
られた部品は作動状態にバイアスされ、作動機能に関す
る検査を受ける。
【0128】本発明の新規の特徴の別の実施例は、組み
合わされた機能の総ゲートカウントを低減するように、
本明細書に開示した回路と組み合わされた他の回路を含
むことができる。当業者であれば、ゲートを最小にする
技術については知っているので、かかる実施例の細部に
ついては本明細書には記載しないことする。
合わされた機能の総ゲートカウントを低減するように、
本明細書に開示した回路と組み合わされた他の回路を含
むことができる。当業者であれば、ゲートを最小にする
技術については知っているので、かかる実施例の細部に
ついては本明細書には記載しないことする。
【0129】従って、コード密度を高くし、プログラム
を容易にするプログラマブルデジタル信号プロセッサ
(DSP)であるプロセッサについて説明した。電力消
費量を少なくし、DSPアルゴリズム、例えば無線電話
のみならず純粋な制御作業用のアルゴリズムを実行する
効率を高くするために、アーキテクチャおよび命令の組
が最適にされている。このプロセッサは命令バッファユ
ニットと、この命令バッファユニットによって復号化さ
れた命令を実行するためのデータ計算ユニットとを含
む。命令は暗示的なパラレリズムに応答するか、または
ユーザーが定義したパラレリズムに応答して並列に実行
することができる。
を容易にするプログラマブルデジタル信号プロセッサ
(DSP)であるプロセッサについて説明した。電力消
費量を少なくし、DSPアルゴリズム、例えば無線電話
のみならず純粋な制御作業用のアルゴリズムを実行する
効率を高くするために、アーキテクチャおよび命令の組
が最適にされている。このプロセッサは命令バッファユ
ニットと、この命令バッファユニットによって復号化さ
れた命令を実行するためのデータ計算ユニットとを含
む。命令は暗示的なパラレリズムに応答するか、または
ユーザーが定義したパラレリズムに応答して並列に実行
することができる。
【0130】パイプラインの競合は発生時に検出され、
検出された競合の多くは競合したターゲットレジスタへ
遅延書き込み信号を与えるよう、シャドーレジスタの組
を使用することによって解消される。遅延された書き込
みによって誘導された、解消された競合に対し選択され
たシャドーレジスタへの読み出しをリダイレクトするこ
とができる。
検出された競合の多くは競合したターゲットレジスタへ
遅延書き込み信号を与えるよう、シャドーレジスタの組
を使用することによって解消される。遅延された書き込
みによって誘導された、解消された競合に対し選択され
たシャドーレジスタへの読み出しをリダイレクトするこ
とができる。
【0131】別の実施例は、停止状態の検出によりイン
ターロックされた3つ以上のパイプラインを有してもよ
い。別の実施例は、一組のシャドーレジスタによって保
護される、より多数の、またはより少数のターゲットレ
ジスタを有してもよい。別の実施例は、パイプラインの
競合を検出するための別の技術を使用してもよい。しか
しながら、競合を解消するのに本発明の特徴によりパイ
プラインの競合を検出し、シャドーレジスタを使用する
ことができる。
ターロックされた3つ以上のパイプラインを有してもよ
い。別の実施例は、一組のシャドーレジスタによって保
護される、より多数の、またはより少数のターゲットレ
ジスタを有してもよい。別の実施例は、パイプラインの
競合を検出するための別の技術を使用してもよい。しか
しながら、競合を解消するのに本発明の特徴によりパイ
プラインの競合を検出し、シャドーレジスタを使用する
ことができる。
【0132】別の実施例は、読み出しのリダイレクトを
省略することができる。本発明で使用した「印加した」
「接続された」および「接続」なる用語は電気的な接続
を意味し、電気的な接続経路内に別の素子が存在する場
合も含む。
省略することができる。本発明で使用した「印加した」
「接続された」および「接続」なる用語は電気的な接続
を意味し、電気的な接続経路内に別の素子が存在する場
合も含む。
【0133】以上で、図示した実施例を参照して本発明
について説明したが、この説明は限定的な意味に解釈す
べきものではない。当業者がこの説明を参照すれば、本
発明の他の種々の実施例が明らかとなろう。従って、請
求の範囲は本発明の真の範囲および要旨内に入る実施例
のかかるすべての変形例をカバーするものである。
について説明したが、この説明は限定的な意味に解釈す
べきものではない。当業者がこの説明を参照すれば、本
発明の他の種々の実施例が明らかとなろう。従って、請
求の範囲は本発明の真の範囲および要旨内に入る実施例
のかかるすべての変形例をカバーするものである。
【0134】以上の説明に関して、更に以下の項を開示
する。 (1)複数のパイプライン段階を備えたプロセッサパイ
プラインと、複数のリソースと、パイプライン保護機構
とを備えたプロセッサを有するデジタルシステムであっ
て、前記パイプライン保護機構が、一組のシャドーレジ
スタと、パイプライン段階の間の前記複数のリソースの
うちの各保護されたリソースに対するアクセスの競合を
予想するためのインターロック回路とを備え、インター
ロック検出回路の出力がシャドーレジスタの組に制御自
在に接続されており、第1パイプライン段階からのデー
タアイテムをインターロック回路によって予想されるア
クセスの競合に応答して、選択されたシャドーレジスタ
へリダイレクトすることができ、よってプロセッサのパ
イプラインを停止することなくリソースのアクセスの競
合を解消するように、前記シャドーレジスタの組が前記
プロセッサパイプラインと相互に接続されている、デジ
タルシステム。
する。 (1)複数のパイプライン段階を備えたプロセッサパイ
プラインと、複数のリソースと、パイプライン保護機構
とを備えたプロセッサを有するデジタルシステムであっ
て、前記パイプライン保護機構が、一組のシャドーレジ
スタと、パイプライン段階の間の前記複数のリソースの
うちの各保護されたリソースに対するアクセスの競合を
予想するためのインターロック回路とを備え、インター
ロック検出回路の出力がシャドーレジスタの組に制御自
在に接続されており、第1パイプライン段階からのデー
タアイテムをインターロック回路によって予想されるア
クセスの競合に応答して、選択されたシャドーレジスタ
へリダイレクトすることができ、よってプロセッサのパ
イプラインを停止することなくリソースのアクセスの競
合を解消するように、前記シャドーレジスタの組が前記
プロセッサパイプラインと相互に接続されている、デジ
タルシステム。
【0135】(2)前記インターロック回路が、前記保
護されたリソースのすべてに対するアクセスの競合を予
想し、かつ停止ベクトル信号を形成するように作動でき
るインターロック検出回路と、前記停止ベクトル信号を
受信するよう接続されており、前記停止ベクトル信号に
応答し、前記シャドーレジスタの組から利用できるシャ
ドーレジスタを選択するように作動できる保留および停
止ベクトルフィルタリング回路と、前記シャドーレジス
タの組に制御自在に接続された出力信号を有する、保留
および停止ベクトルフィルタリング回路に接続されたシ
ャドー管理回路とを備えた、第1項記載の処理エンジ
ン。
護されたリソースのすべてに対するアクセスの競合を予
想し、かつ停止ベクトル信号を形成するように作動でき
るインターロック検出回路と、前記停止ベクトル信号を
受信するよう接続されており、前記停止ベクトル信号に
応答し、前記シャドーレジスタの組から利用できるシャ
ドーレジスタを選択するように作動できる保留および停
止ベクトルフィルタリング回路と、前記シャドーレジス
タの組に制御自在に接続された出力信号を有する、保留
および停止ベクトルフィルタリング回路に接続されたシ
ャドー管理回路とを備えた、第1項記載の処理エンジ
ン。
【0136】(3)前記インターロック回路が、単一の
包括的仲裁関数の特定の形態として各仲裁回路を定義で
きるように、各保護されたリソースのための仲裁回路を
含む、第1項記載の処理エンジン。
包括的仲裁関数の特定の形態として各仲裁回路を定義で
きるように、各保護されたリソースのための仲裁回路を
含む、第1項記載の処理エンジン。
【0137】(4)パイプラインの段階を制御するため
のパイプライン制御論理を備え、該パイプライン制御論
理が前記インターロック回路から出力される停止制御信
号を受信するように接続されている、第1項記載の処理
エンジン。
のパイプライン制御論理を備え、該パイプライン制御論
理が前記インターロック回路から出力される停止制御信
号を受信するように接続されている、第1項記載の処理
エンジン。
【0138】(5)レジスタのグループと、1つのレジ
スタと、レジスタのフィールドと、レジスタのサブフィ
ールドからなる群から少なくとも1つのリソースが選択
されている、第1項記載の処理エンジン。
スタと、レジスタのフィールドと、レジスタのサブフィ
ールドからなる群から少なくとも1つのリソースが選択
されている、第1項記載の処理エンジン。
【0139】(6)前記インターロック回路が停止ベク
トルフィルタを備え、選択フィルタ段階の各々が対応す
る保護されたリソースに関連するよう、前記停止ベクト
ルフィルタがシリアルに接続された複数の選択フィルタ
段階を有する、第1項記載の処理エンジン。
トルフィルタを備え、選択フィルタ段階の各々が対応す
る保護されたリソースに関連するよう、前記停止ベクト
ルフィルタがシリアルに接続された複数の選択フィルタ
段階を有する、第1項記載の処理エンジン。
【0140】(7)保護されたリソースから選択された
シャドーレジスタへの読み出しをリダイレクトするよう
に作動できる多重化回路を備えたプロセッサパイプライ
ンに、前記シャドーレジスタの組が相互接続されてい
る、第1項記載の処理エンジン。
シャドーレジスタへの読み出しをリダイレクトするよう
に作動できる多重化回路を備えたプロセッサパイプライ
ンに、前記シャドーレジスタの組が相互接続されてい
る、第1項記載の処理エンジン。
【0141】(8)前記インターロック回路が、単一の
包括的仲裁関数の特定の形態として各仲裁回路を定義で
きるように、各保護されたリソースのための仲裁回路を
更に含む、第2項記載の処理エンジン。
包括的仲裁関数の特定の形態として各仲裁回路を定義で
きるように、各保護されたリソースのための仲裁回路を
更に含む、第2項記載の処理エンジン。
【0142】(9)選択フィルタ段階の各々が対応する
保護されたリソースに関連するよう、前記停止ベクトル
フィルタがシリアルに接続された複数の選択フィルタ段
階を有する、第8項記載の処理エンジン。
保護されたリソースに関連するよう、前記停止ベクトル
フィルタがシリアルに接続された複数の選択フィルタ段
階を有する、第8項記載の処理エンジン。
【0143】(10)パイプラインの段階を制御するた
めのパイプライン制御論理を更に備え、該パイプライン
制御論理が前記インターロック回路から出力される停止
制御信号を受信するように接続されている、第9項記載
の処理エンジン。
めのパイプライン制御論理を更に備え、該パイプライン
制御論理が前記インターロック回路から出力される停止
制御信号を受信するように接続されている、第9項記載
の処理エンジン。
【0144】(11)保護されたリソースから選択され
たシャドーレジスタへの読み出しをリダイレクトするよ
うに作動できる多重化回路を備えたプロセッサパイプラ
インに、前記シャドーレジスタの組が相互接続されてい
る、第10項記載の処理エンジン。
たシャドーレジスタへの読み出しをリダイレクトするよ
うに作動できる多重化回路を備えたプロセッサパイプラ
インに、前記シャドーレジスタの組が相互接続されてい
る、第10項記載の処理エンジン。
【0145】(12)レジスタのグループと、1つのレ
ジスタと、レジスタのフィールドと、レジスタのサブフ
ィールドからなる群から少なくとも1つのリソースが選
択されている、第11項記載の処理エンジン。
ジスタと、レジスタのフィールドと、レジスタのサブフ
ィールドからなる群から少なくとも1つのリソースが選
択されている、第11項記載の処理エンジン。
【0146】(13)キーボードアダプタを介し、前記
プロセッサに接続された統合されたキーボードと、ディ
スプレイアダプタを介し、前記プロセッサに接続された
ディスプレイと、前記プロセッサに接続された無線周波
数(RF)回路と、前記RF回路に接続されたアンテナ
とを更に備えた、セルラー電話である第1項記載のデジ
タルシステム。
プロセッサに接続された統合されたキーボードと、ディ
スプレイアダプタを介し、前記プロセッサに接続された
ディスプレイと、前記プロセッサに接続された無線周波
数(RF)回路と、前記RF回路に接続されたアンテナ
とを更に備えた、セルラー電話である第1項記載のデジ
タルシステム。
【0147】(14)前記プロセッサが複数のパイプラ
イン段階および複数のリソースを備えたプロセッサパイ
プラインを含む、プロセッサエンジン内のパイプライン
を保護する方法であって、各リソースに対するパイプラ
イン段階の間のアクセスの競合を予想するよう、それぞ
れの保護されたリソースのために別個に仲裁をするため
の工程と、前記プロセッサのパイプラインを停止するこ
となく、リソースアクセスの競合を解消するように、予
想されたアクセス競合に応答し、第1パイプライン段階
から選択されたシャドーレジスタへデータアイテムをリ
ダイレクトする工程とを備えた、パイプラインを保護す
る方法。
イン段階および複数のリソースを備えたプロセッサパイ
プラインを含む、プロセッサエンジン内のパイプライン
を保護する方法であって、各リソースに対するパイプラ
イン段階の間のアクセスの競合を予想するよう、それぞ
れの保護されたリソースのために別個に仲裁をするため
の工程と、前記プロセッサのパイプラインを停止するこ
となく、リソースアクセスの競合を解消するように、予
想されたアクセス競合に応答し、第1パイプライン段階
から選択されたシャドーレジスタへデータアイテムをリ
ダイレクトする工程とを備えた、パイプラインを保護す
る方法。
【0148】(15)シャドーレジスタが予想されたア
クセスの競合を解消するのに利用できない場合、リソー
スのアクセスの競合を防止するように、それぞれのリソ
ースのための仲裁の結果に応じ、パイプラインの段階を
選択的に停止する工程を更に含む、第14項記載の、パ
イプラインを保護する方法。
クセスの競合を解消するのに利用できない場合、リソー
スのアクセスの競合を防止するように、それぞれのリソ
ースのための仲裁の結果に応じ、パイプラインの段階を
選択的に停止する工程を更に含む、第14項記載の、パ
イプラインを保護する方法。
【0149】(16)多数のパイプライン段階と、多数
のリソースと、パイプライン保護機構とを備えたプロセ
ッサパイプライン820を有する処理エンジンである。
パイプライン保護機構はパイプライン段階の間に保護リ
ソースに対するアクセスの競合を予想し、および/また
は検出するためのインターロック検出回路1402を各
保護リソースに対して含む。インターロック検出回路の
出力端は、シャドーレジスタを選択するよう、保留およ
びフィルタリング回路1404に接続されている。シャ
ドーレジスタが利用できる場合、シャドー管理回路14
06は一組のシャドーレジスタ1400に対応する制御
信号1410、1412を発生する。選択されたレジス
タへの書き込みを行うことにより、パイプラインの競合
を解消する。後のサイクルで、対応するターゲットレジ
スタへの遅延書き込みによってパイプラインを回復させ
る。リソースアクセスの競合を防止するためのパイプラ
インの選択的停止を制御するための停止制御信号を形成
するよう、解消できない競合をマージ回路1440によ
ってマージする。リソースは、例えばレジスタファイル
832内のレジスタまたはレジスタ内の一部(フィール
ド)でよい。各リソースのためのインターロック検出回
路内に仲裁論理を設けることにより、本発明の実施例は
潜在的リソースアクセス競合を予想するのに必要な制御
論理を分散させることができ、パイプラインを選択的に
停止させ、競合が実際に発生することを防止できる。
のリソースと、パイプライン保護機構とを備えたプロセ
ッサパイプライン820を有する処理エンジンである。
パイプライン保護機構はパイプライン段階の間に保護リ
ソースに対するアクセスの競合を予想し、および/また
は検出するためのインターロック検出回路1402を各
保護リソースに対して含む。インターロック検出回路の
出力端は、シャドーレジスタを選択するよう、保留およ
びフィルタリング回路1404に接続されている。シャ
ドーレジスタが利用できる場合、シャドー管理回路14
06は一組のシャドーレジスタ1400に対応する制御
信号1410、1412を発生する。選択されたレジス
タへの書き込みを行うことにより、パイプラインの競合
を解消する。後のサイクルで、対応するターゲットレジ
スタへの遅延書き込みによってパイプラインを回復させ
る。リソースアクセスの競合を防止するためのパイプラ
インの選択的停止を制御するための停止制御信号を形成
するよう、解消できない競合をマージ回路1440によ
ってマージする。リソースは、例えばレジスタファイル
832内のレジスタまたはレジスタ内の一部(フィール
ド)でよい。各リソースのためのインターロック検出回
路内に仲裁論理を設けることにより、本発明の実施例は
潜在的リソースアクセス競合を予想するのに必要な制御
論理を分散させることができ、パイプラインを選択的に
停止させ、競合が実際に発生することを防止できる。
【0150】本願は1999年3月8日に欧州で出願さ
れた欧州特許出願第S.N.99400551.0号(TI−2823
4EU)、1998年10月6日に欧州で出願された欧
州特許出願第S.N.98402466.1号(TI−27681E
U)、1998年10月6日に欧州で出願された欧州特
許出願第S.N.98402455.4号(TI−28433EU)に
基づく優先権を主張するものである。
れた欧州特許出願第S.N.99400551.0号(TI−2823
4EU)、1998年10月6日に欧州で出願された欧
州特許出願第S.N.98402466.1号(TI−27681E
U)、1998年10月6日に欧州で出願された欧州特
許出願第S.N.98402455.4号(TI−28433EU)に
基づく優先権を主張するものである。
【図1】本発明の一実施例に係わるプロセッサのブロッ
ク略図である。
ク略図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアの種々の実行ユニット
のより詳細なブロック略図である。
のより詳細なブロック略図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
命令デコーダコントローラの略図である。
【図5】プロセッサのパイプラインの作動を説明するた
めのプロセッサのコアの略図である。
めのプロセッサのコアの略図である。
【図6】メモリ管理ユニットに相互接続されたメモリを
示す、プロセッサのブロック図である。
示す、プロセッサのブロック図である。
【図7】プロセッサのプログラムおよびデータメモリス
ペースの統一された構造を示す。
ペースの統一された構造を示す。
【図8】書き込み後の読み取りハザードの例を示し、そ
のうちの図8Aは1つの例を示し、図8Bは別の例を示
す。
のうちの図8Aは1つの例を示し、図8Bは別の例を示
す。
【図9】書き込み後の書き込みハザードの一例を示す。
【図10】読み取り後の書き込みハザードの例を示し、
そのうちの図10Aは1つの例を示し、図10Bは別の
例を示す。
そのうちの図10Aは1つの例を示し、図10Bは別の
例を示す。
【図11】種々のパイプライン段階で起こり得る競合を
示す。
示す。
【図12】包括的な任意関数を定義するプロセスの誘導
を示す。
を示す。
【図13】包括的仲裁論理の略図である。
【図14】本発明の一実施例に係わる遅延書き込みのた
めのシャドーレジスタおよび制御回路を示すブロック図
である。
めのシャドーレジスタおよび制御回路を示すブロック図
である。
【図15】図14の遅延書き込みのための仲裁回路の略
図である。
図である。
【図16】図15の仲裁回路を使用したインターロック
制御機構のための構造例のブロック略図である。
制御機構のための構造例のブロック略図である。
【図17】図14のシャドーレジスタのための保留およ
びフィルタ回路のブロック図である。
びフィルタ回路のブロック図である。
【図18】図17のフィルタ回路のためのルックアヘッ
ド構造のための略図である。
ド構造のための略図である。
【図19】図17のフィルタ回路のための停止長さを選
択するためのマルチプレクサ回路の略図である。
択するためのマルチプレクサ回路の略図である。
【図20】図14のシャドーレジスタのためのシャドー
管理回路のブロック図である。
管理回路のブロック図である。
【図21】ステートマシン制御回路を示す、図20のシ
ャドー管理回路のブロック図である。
ャドー管理回路のブロック図である。
【図22】図14のレジスタファイル内でシャドーレジ
スタからターゲットレジスタへデータをルーチングする
ための回路の略図である。
スタからターゲットレジスタへデータをルーチングする
ための回路の略図である。
【図23】図21のステートマシンの作動を示すステー
ト図である。
ト図である。
【図24】1サイクルの書き込み遅延を示すタイミング
図であり、そのうちの図24Aは1サイクルの書き込み
遅延およびその結果生じるシャドーレジスタからの読み
出しのリダイレクションを示すタイミング図であり、図
24Bは1つのシャドーレジスタしか必要としないルー
プ内での1サイクルの書き込み遅延を示すタイミング図
である。
図であり、そのうちの図24Aは1サイクルの書き込み
遅延およびその結果生じるシャドーレジスタからの読み
出しのリダイレクションを示すタイミング図であり、図
24Bは1つのシャドーレジスタしか必要としないルー
プ内での1サイクルの書き込み遅延を示すタイミング図
である。
【図25】2サイクルの書き込み遅延を示すタイミング
図であり、そのうちの図25Aは2サイクルの書き込み
遅延およびその結果生じる、潜在的競合が解消されるシ
ャドーレジスタからの読み出しのリダイレクションを示
すタイミング図であり、図25Bは2つのシャドーレジ
スタしか必要としないループ内での2サイクルの書き込
み遅延を示すタイミング図である。
図であり、そのうちの図25Aは2サイクルの書き込み
遅延およびその結果生じる、潜在的競合が解消されるシ
ャドーレジスタからの読み出しのリダイレクションを示
すタイミング図であり、図25Bは2つのシャドーレジ
スタしか必要としないループ内での2サイクルの書き込
み遅延を示すタイミング図である。
【図26】3サイクルの書き込み遅延を示すタイミング
図であり、そのうちの図26Aは3サイクルの書き込み
遅延およびその結果生じる、潜在的競合が解消されるシ
ャドーレジスタからの読み出しのリダイレクションを示
すタイミング図であり、図26Bは3つのシャドーレジ
スタしか必要としないループ内での3サイクルの書き込
み遅延を示すタイミング図である。
図であり、そのうちの図26Aは3サイクルの書き込み
遅延およびその結果生じる、潜在的競合が解消されるシ
ャドーレジスタからの読み出しのリダイレクションを示
すタイミング図であり、図26Bは3つのシャドーレジ
スタしか必要としないループ内での3サイクルの書き込
み遅延を示すタイミング図である。
【図27】本発明の一実施例を実施した処理エンジンの
デュアルパイプ算術論理ユニットのアーキテクチャを示
す。
デュアルパイプ算術論理ユニットのアーキテクチャを示
す。
【図28】図12の回路を使用する代表的なアプリケー
ションにおける停止状態を示すスペクトル図である。
ションにおける停止状態を示すスペクトル図である。
【図29】図14の回路を使用した、図28の回路から
除くことができる停止状態を示す分布図である。
除くことができる停止状態を示す分布図である。
【図30】図1のプロセッサを内蔵する集積回路であ
る。
る。
【図31】図1のプロセッサを内蔵する移動通信装置の
一例である。
一例である。
820 プロセッサパイプライン 832 レジスタファイル 1400 シャドーレジスタ 1402 インターロック検出回路 1404 保留およびフィルタリング回路 1406 シャドー管理回路 1410、1412 制御信号 1440 マージ回路
Claims (2)
- 【請求項1】 複数のパイプライン段階と、複数のリソ
ースと、パイプライン保護機構とを備えたプロセッサパ
イプラインを含むプロセッサを有するデジタルシステム
であって、 前記パイプライン保護機構が、 一組のシャドーレジスタと、 パイプライン段階の間の前記複数のリソースのうちの各
保護されたリソースに対するアクセスの競合を予想する
ためのインターロック回路とを備え、インターロック検
出回路の出力がシャドーレジスタの組に制御自在に接続
されており、 第1パイプライン段階からのデータアイテムをインター
ロック回路によって予想されるアクセスの競合に応答し
て、選択されたシャドーレジスタへリダイレクトするこ
とができ、よってプロセッサのパイプラインを停止する
ことなくリソースのアクセスの競合を解消するように、
前記シャドーレジスタの組が前記プロセッサパイプライ
ンと相互に接続されている、デジタルシステム。 - 【請求項2】 前記プロセッサが複数のパイプライン段
階および複数のリソースを備えたプロセッサパイプライ
ンを含む、プロセッサエンジン内のパイプラインを保護
する方法であって、 各リソースに対するパイプライン段階の間のアクセスの
競合を予想するよう、それぞれの保護されたリソースの
ために別個に仲裁をするための工程と、 前記プロセッサのパイプラインを停止することなく、リ
ソースアクセスの競合を解消するように、予想されたア
クセス競合に応答し、第1パイプライン段階から選択さ
れたシャドーレジスタへデータアイテムをリダイレクト
する工程とを備えた、パイプラインを保護する方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP99400551.0A EP1004959B1 (en) | 1998-10-06 | 1999-03-08 | Processor with pipeline protection |
| EP99400551.0 | 1999-03-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000276352A true JP2000276352A (ja) | 2000-10-06 |
Family
ID=8241903
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000062321A Abandoned JP2000276352A (ja) | 1999-03-08 | 2000-03-07 | パイプライン保護 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000276352A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7877428B2 (en) | 2006-05-01 | 2011-01-25 | Kabushiki Kaisha Toshiba | Processor system including processor and coprocessor |
| JP2015194844A (ja) * | 2014-03-31 | 2015-11-05 | Necプラットフォームズ株式会社 | 情報処理装置及び制御方法 |
| JP2023526788A (ja) * | 2020-05-18 | 2023-06-23 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム |
-
2000
- 2000-03-07 JP JP2000062321A patent/JP2000276352A/ja not_active Abandoned
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7877428B2 (en) | 2006-05-01 | 2011-01-25 | Kabushiki Kaisha Toshiba | Processor system including processor and coprocessor |
| JP2015194844A (ja) * | 2014-03-31 | 2015-11-05 | Necプラットフォームズ株式会社 | 情報処理装置及び制御方法 |
| JP2023526788A (ja) * | 2020-05-18 | 2023-06-23 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム |
| JP7793543B2 (ja) | 2020-05-18 | 2026-01-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6810475B1 (en) | Processor with pipeline conflict resolution using distributed arbitration and shadow registers | |
| US6507921B1 (en) | Trace fifo management | |
| US6295600B1 (en) | Thread switch on blocked load or store using instruction thread field | |
| US6279100B1 (en) | Local stall control method and structure in a microprocessor | |
| US5872985A (en) | Switching multi-context processor and method overcoming pipeline vacancies | |
| KR100559475B1 (ko) | 고성능 알아이에스씨 마이크로프로세서 구조 | |
| CN101957744B (zh) | 一种用于微处理器的硬件多线程控制方法及其装置 | |
| EP2671150B1 (en) | Processor with a coprocessor having early access to not-yet issued instructions | |
| WO2000033183A9 (en) | Method and structure for local stall control in a microprocessor | |
| US7779240B2 (en) | System and method for reducing power consumption in a data processor having a clustered architecture | |
| WO2012106716A1 (en) | Processor with a hybrid instruction queue with instruction elaboration between sections | |
| EP1160662A1 (en) | Processor with pointer tracking to eliminate redundant memory fetches | |
| EP0992889A1 (en) | Interrupt processing during iterative instruction execution | |
| JP2000305779A (ja) | パイプライン保護 | |
| EP0992888A1 (en) | Method and apparatus for iterative instruction execution | |
| JP2000259408A (ja) | 遅延スロットにおけるソフトウェアブレークポイント | |
| US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
| US6499098B1 (en) | Processor with instruction qualifiers to control MMU operation | |
| EP0992897B1 (en) | Stack pointer management | |
| US9342312B2 (en) | Processor with inter-execution unit instruction issue | |
| US6988121B1 (en) | Efficient implementation of multiprecision arithmetic | |
| US7028164B2 (en) | Instruction fetch apparatus for wide issue processors and method of operation | |
| JPH04104350A (ja) | マイクロプロセッサ | |
| US7519794B2 (en) | High performance architecture for a writeback stage | |
| EP0992891A1 (en) | A processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070307 |
|
| A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20081209 |