JP2000148474A - 計算した繰返し命令を有するプロセッサ - Google Patents
計算した繰返し命令を有するプロセッサInfo
- Publication number
- JP2000148474A JP2000148474A JP11321527A JP32152799A JP2000148474A JP 2000148474 A JP2000148474 A JP 2000148474A JP 11321527 A JP11321527 A JP 11321527A JP 32152799 A JP32152799 A JP 32152799A JP 2000148474 A JP2000148474 A JP 2000148474A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- repeat
- contents
- processing engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003252 repetitive effect Effects 0.000 title abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 60
- 230000007246 mechanism Effects 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 11
- 230000002401 inhibitory effect Effects 0.000 claims description 2
- 230000001413 cellular effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 101100045694 Caenorhabditis elegans art-1 gene Proteins 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 2
- 101150115300 MAC1 gene Proteins 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003415 peat Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100244969 Arabidopsis thaliana PRL1 gene Proteins 0.000 description 1
- 102100039558 Galectin-3 Human genes 0.000 description 1
- 101100454448 Homo sapiens LGALS3 gene Proteins 0.000 description 1
- 101150051246 MAC2 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 デジタル信号プロセッサ等の処理エンジンの
性能を向上させる。 【解決手段】 デジタル信号プロセッサのような処理エ
ンジンは、実行機構900と繰返しカウントレジスタ9
02と繰返しカウントインデックスレジスタ922とを
含んでいる。実行機構900は、繰返し命令に対して繰
返しカウントインデックスレジスタ922を繰返しカウ
ントレジスタ902の内容で初期化し、繰返しカウント
レジスタ902の内容を修正するように動作する。繰返
し命令は2つの部分を含み、その第1の部分は繰返しカ
ウントインデックスレジスタ922を初期化しかつ後続
命令の繰返しを開始し、その第2の部分は繰返しカウン
トレジスタ902の内容を修正する。
性能を向上させる。 【解決手段】 デジタル信号プロセッサのような処理エ
ンジンは、実行機構900と繰返しカウントレジスタ9
02と繰返しカウントインデックスレジスタ922とを
含んでいる。実行機構900は、繰返し命令に対して繰
返しカウントインデックスレジスタ922を繰返しカウ
ントレジスタ902の内容で初期化し、繰返しカウント
レジスタ902の内容を修正するように動作する。繰返
し命令は2つの部分を含み、その第1の部分は繰返しカ
ウントインデックスレジスタ922を初期化しかつ後続
命令の繰返しを開始し、その第2の部分は繰返しカウン
トレジスタ902の内容を修正する。
Description
【0001】
【発明の属する技術分野】本発明は、プログラムフロー
を繰り返すように構成可能な処理エンジンに関する。
を繰り返すように構成可能な処理エンジンに関する。
【0002】
【従来の技術】多数の命令実行ユニットを使用してマイ
クロプロセッサで命令の並列実行を行うことが知られて
いる。このような並列実行を行うための多くの異なるア
ーキテクチュアが知られている。並列実行により、全体
処理速度が増大する。典型的には、多数の命令は、命令
バッファに並列に与えられたのち、並列にデコードさ
れ、実行ユニットにディスパッチされる。マイクロプロ
セッサは、ソフトウェアを実行するために高い命令スル
ープットを必要とする汎用プロセッサエンジンであり、
関連する特定のソフトウェアアプリケーションに応じて
広範な処理必要条件を有することがある。さらに、並列
性をサポートするために、複雑なオペレーティングシス
テムが並列実行用の命令のスケジューリングを制御する
のに必要とされている。
クロプロセッサで命令の並列実行を行うことが知られて
いる。このような並列実行を行うための多くの異なるア
ーキテクチュアが知られている。並列実行により、全体
処理速度が増大する。典型的には、多数の命令は、命令
バッファに並列に与えられたのち、並列にデコードさ
れ、実行ユニットにディスパッチされる。マイクロプロ
セッサは、ソフトウェアを実行するために高い命令スル
ープットを必要とする汎用プロセッサエンジンであり、
関連する特定のソフトウェアアプリケーションに応じて
広範な処理必要条件を有することがある。さらに、並列
性をサポートするために、複雑なオペレーティングシス
テムが並列実行用の命令のスケジューリングを制御する
のに必要とされている。
【0003】多くの異なるタイプの処理エンジンが知ら
れており、マイクロプロセッサはその一例にすぎない。
たとえば、デジタル信号プロセッサ(DSP)は特に特
定用途において広く使用されている。DSPは、典型的
には、関連するアプリケーションの性能を最適化するよ
うに構成され、それを達成するために、より特殊化され
た実行ユニットおよび命令セットを利用する。
れており、マイクロプロセッサはその一例にすぎない。
たとえば、デジタル信号プロセッサ(DSP)は特に特
定用途において広く使用されている。DSPは、典型的
には、関連するアプリケーションの性能を最適化するよ
うに構成され、それを達成するために、より特殊化され
た実行ユニットおよび命令セットを利用する。
【0004】DSPやマイクロプロセッサでは、プログ
ラムメモリに格納された機械読取り可能命令が、演算や
機能を行うためにプロセッサによって逐次実行される。
機械読取り可能命令のシーケンスは「プログラム」と呼
ばれる。プログラム命令は典型的には逐次実施される
が、ある命令は、プログラムシーケンスを中断させて、
プログラムフローが命令のブロックを繰り返すようにす
ることができる。このような命令のブロックの繰返しは
「ルーピング」として知られており、命令のブロックは
「ループ」として知られている。あるプロセッサ応用、
特に信号処理では、処理アルゴリズはいわゆる「入れ子
型ループ」計算を必要とする。入れ子型ループは、プロ
グラムコードのアウターループの本体内に含まれるプロ
グラムコードのループである。しばしば、インナールー
プは、アウターループの現在のステップに応じて異なる
回数反復する必要がある単一命令である。
ラムメモリに格納された機械読取り可能命令が、演算や
機能を行うためにプロセッサによって逐次実行される。
機械読取り可能命令のシーケンスは「プログラム」と呼
ばれる。プログラム命令は典型的には逐次実施される
が、ある命令は、プログラムシーケンスを中断させて、
プログラムフローが命令のブロックを繰り返すようにす
ることができる。このような命令のブロックの繰返しは
「ルーピング」として知られており、命令のブロックは
「ループ」として知られている。あるプロセッサ応用、
特に信号処理では、処理アルゴリズはいわゆる「入れ子
型ループ」計算を必要とする。入れ子型ループは、プロ
グラムコードのアウターループの本体内に含まれるプロ
グラムコードのループである。しばしば、インナールー
プは、アウターループの現在のステップに応じて異なる
回数反復する必要がある単一命令である。
【0005】ループを行うときは、繰り返される命令を
フェッチするために、たとえばプログラムメモリへのメ
モリアクセスを行わなければならない。典型的には、プ
ログラムメモリのようなメモリはチップには常駐せず、
メモリアクセスは著しいプロセッササイクルオーバヘッ
ドを表す。そのため、特にプログラムループが頻繁に利
用されそうなアプリケーションに対して、節電と低消費
電力での高速処理とに反するものとなる。
フェッチするために、たとえばプログラムメモリへのメ
モリアクセスを行わなければならない。典型的には、プ
ログラムメモリのようなメモリはチップには常駐せず、
メモリアクセスは著しいプロセッササイクルオーバヘッ
ドを表す。そのため、特にプログラムループが頻繁に利
用されそうなアプリケーションに対して、節電と低消費
電力での高速処理とに反するものとなる。
【0006】
【発明が解決しようとする課題】本発明は、限定はしな
いがたとえばデジタル信号プロセッサのような処理エン
ジンの性能改善に向けられている。
いがたとえばデジタル信号プロセッサのような処理エン
ジンの性能改善に向けられている。
【0007】
【課題を解決するための手段】本発明の第1の態様によ
れば、実行機構を含む処理エンジンが提供される。処理
エンジンは、繰返しカウントレジスタと繰返しカウント
インデックスレジスタとも含んでいる。実行機構は、繰
返し命令に応答して、繰返しカウントインデックスレジ
スタを繰返しカウントレジスタの内容で初期化するとと
もに、繰返しカウントレジスタの内容を修正する。
れば、実行機構を含む処理エンジンが提供される。処理
エンジンは、繰返しカウントレジスタと繰返しカウント
インデックスレジスタとも含んでいる。実行機構は、繰
返し命令に応答して、繰返しカウントインデックスレジ
スタを繰返しカウントレジスタの内容で初期化するとと
もに、繰返しカウントレジスタの内容を修正する。
【0008】本発明の第2の態様によれば、繰返し命令
の実行を含む処理エンジンの操作方法が提供される。繰
返し命令は、以下のように実行される。 i)繰返しカウントインデックスレジスタを繰返しカウ
ントレジスタの内容で初期化し、 ii)繰返しカウントレジスタを修正する。
の実行を含む処理エンジンの操作方法が提供される。繰
返し命令は、以下のように実行される。 i)繰返しカウントインデックスレジスタを繰返しカウ
ントレジスタの内容で初期化し、 ii)繰返しカウントレジスタを修正する。
【0009】本発明の第1および第2の態様による好ま
しい実施例は、繰返しカウントインデックスレジスタと
繰返しカウントレジスタとを単一命令で結合することに
よって繰返しカウントインデックスレジスタを初期化す
るとともに繰返しカウントレジスタを並列に修正するこ
とにより、改善された処理スループットを提供する。さ
らに、繰返しカウントインデックスレジスタがレジスタ
(繰返しカウントレジスタ)から初期化されるため、メ
モリアクセス遅延が低減され、より迅速に繰返しを開始
することができる。
しい実施例は、繰返しカウントインデックスレジスタと
繰返しカウントレジスタとを単一命令で結合することに
よって繰返しカウントインデックスレジスタを初期化す
るとともに繰返しカウントレジスタを並列に修正するこ
とにより、改善された処理スループットを提供する。さ
らに、繰返しカウントインデックスレジスタがレジスタ
(繰返しカウントレジスタ)から初期化されるため、メ
モリアクセス遅延が低減され、より迅速に繰返しを開始
することができる。
【0010】好ましくは、処理エンジンは、第1および
第2の部分を含む繰返し命令に応答し、かつ、第1の部
分に応答して繰返しカウントインデックスレジスタを初
期化し、第2の部分に応答して前記繰返しカウントレジ
スタの内容を修正する。
第2の部分を含む繰返し命令に応答し、かつ、第1の部
分に応答して繰返しカウントインデックスレジスタを初
期化し、第2の部分に応答して前記繰返しカウントレジ
スタの内容を修正する。
【0011】好ましくは、第2の部分は、繰返しカウン
トレジスタの内容を修正するオペランドを有するデータ
命令を含んでいる。
トレジスタの内容を修正するオペランドを有するデータ
命令を含んでいる。
【0012】より好ましくは、データ命令は、前記オペ
ランドと繰返しカウントレジスタ内容とを含み、算術論
理演算装置により適切に実現される算術演算を含んでい
る。
ランドと繰返しカウントレジスタ内容とを含み、算術論
理演算装置により適切に実現される算術演算を含んでい
る。
【0013】オペランドは、一定値、または、レジスタ
自体がもう1つの演算の結果で更新されるため繰返しカ
ウントレジスタの更新にフレクシビリティを与えるレジ
スタ値とすることができる。
自体がもう1つの演算の結果で更新されるため繰返しカ
ウントレジスタの更新にフレクシビリティを与えるレジ
スタ値とすることができる。
【0014】適切には、繰返しカウントインデックスレ
ジスタは、プログラムメモリおよび/またはプログラム
および/または処理レジスタから初期化することができ
る。
ジスタは、プログラムメモリおよび/またはプログラム
および/または処理レジスタから初期化することができ
る。
【0015】一般的にはレジスタ内容がゼロに等しくな
いことである所定の条件を繰返しカウントインデックス
レジスタ内容が満たす限り、実行機構は後続命令の実行
を繰り返す。典型的には、繰返しカウントインデックス
レジスタの内容は、第2の命令の各実行に対して1だけ
デクリメントされる。
いことである所定の条件を繰返しカウントインデックス
レジスタ内容が満たす限り、実行機構は後続命令の実行
を繰り返す。典型的には、繰返しカウントインデックス
レジスタの内容は、第2の命令の各実行に対して1だけ
デクリメントされる。
【0016】一般的には、処理エンジンは、繰返しカウ
ントインデックスレジスタの内容をデクリメントするデ
クリメントユニットに結合された繰返しカウントインデ
ックスレジスタを含む繰返しカウント回路と、繰返しカ
ウントインデックスの内容を所定値と比較する比較器
と、比較器の出力に結合されて所定値に対応する繰返し
カウントインデックスレジスタの内容に対する第2の命
令のさらなる実行を禁止する制御ユニットとを含んでい
る。
ントインデックスレジスタの内容をデクリメントするデ
クリメントユニットに結合された繰返しカウントインデ
ックスレジスタを含む繰返しカウント回路と、繰返しカ
ウントインデックスの内容を所定値と比較する比較器
と、比較器の出力に結合されて所定値に対応する繰返し
カウントインデックスレジスタの内容に対する第2の命
令のさらなる実行を禁止する制御ユニットとを含んでい
る。
【0017】典型的には、実行機構は、複数のパイプラ
インステージを含む命令パイプラインを含んでいる。実
行機構は、各パイプラインステージで応答して繰返しカ
ウントインデックスレジスタを初期化し繰返しカウント
レジスタの内容を修正するようにされている。好ましく
は、実行機構は、命令パイプラインの早期ステージ、た
とえばパイプラインのデコードステージで応答して後続
命令を実行する繰返しカウントインデックスレジスタを
修正する。
インステージを含む命令パイプラインを含んでいる。実
行機構は、各パイプラインステージで応答して繰返しカ
ウントインデックスレジスタを初期化し繰返しカウント
レジスタの内容を修正するようにされている。好ましく
は、実行機構は、命令パイプラインの早期ステージ、た
とえばパイプラインのデコードステージで応答して後続
命令を実行する繰返しカウントインデックスレジスタを
修正する。
【0018】本発明の実施例によれば、現在の繰返し命
令の一部として更新された次のループに対する反復数を
有する繰返しサイクルを実行するのに少ない処理サイク
ルで済む。したがって、データ処理装置による消費電力
が低減される。そのため、本発明の実施例はワイヤレス
通信装置のようなポータブル装置に使用するのに特に適
している。典型的には、このようなワイヤレス通信装置
は、液晶ディスプレイやTFTディスプレイのようなデ
ィスプレイおよび通信装置にデータを入力するためのキ
ーパッドやキーボードを含むユーザインターフェイスを
含んでいる。さらに、ワイヤレス通信装置は、無線電話
網などとワイヤレス通信を行うためのアンテナも含んで
いる。
令の一部として更新された次のループに対する反復数を
有する繰返しサイクルを実行するのに少ない処理サイク
ルで済む。したがって、データ処理装置による消費電力
が低減される。そのため、本発明の実施例はワイヤレス
通信装置のようなポータブル装置に使用するのに特に適
している。典型的には、このようなワイヤレス通信装置
は、液晶ディスプレイやTFTディスプレイのようなデ
ィスプレイおよび通信装置にデータを入力するためのキ
ーパッドやキーボードを含むユーザインターフェイスを
含んでいる。さらに、ワイヤレス通信装置は、無線電話
網などとワイヤレス通信を行うためのアンテナも含んで
いる。
【0019】
【発明の実施の形態】本発明は、たとえば特定用途集積
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
【0020】図1は、本発明の一実施例を有するマイク
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
【0021】本発明の態様から利益を得ることができる
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
【0022】図1のマイクロプロセッサのさまざまなア
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第 号(TI−
28433)に記載されており、本開示の一部としてこ
こに援用する。
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第 号(TI−
28433)に記載されており、本開示の一部としてこ
こに援用する。
【0023】次に、本発明によるプロセッサの一例の基
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
【0024】図1に示すように、処理エンジン100
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
【0025】プロセッサバックプレーン20は、バック
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
【0026】他の実施例では、異なる構成および/また
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
【0027】図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とである。
【0028】図3は、処理コア102のPユニット10
8,Aユニット110およびDユニット112を詳細に
示すとともに、処理コア102のさまざまな要素を接続
するバス構造を示す。Pユニット108は、たとえば、
ループ制御回路と、GoTo/分岐制御回路と、リピー
トカウンタレジスタおよび割込みマスク,フラグまたは
ベクトルレジスタのようなプログラムフローを制御し監
視するさまざまなレジスタとを含んでいる。Pユニット
108は、汎用データライトバス(EB,FB)13
0,132とデータリードバス(CB,DB)134,
136とアドレス定数バス(KAB)142とに結合さ
れている。さらに、Pユニット108は、CSR,AC
BおよびRGDとラベルされたさまざまなバスを介して
Aユニット110およびDユニット112内のサブユニ
ットに結合されている。
8,Aユニット110およびDユニット112を詳細に
示すとともに、処理コア102のさまざまな要素を接続
するバス構造を示す。Pユニット108は、たとえば、
ループ制御回路と、GoTo/分岐制御回路と、リピー
トカウンタレジスタおよび割込みマスク,フラグまたは
ベクトルレジスタのようなプログラムフローを制御し監
視するさまざまなレジスタとを含んでいる。Pユニット
108は、汎用データライトバス(EB,FB)13
0,132とデータリードバス(CB,DB)134,
136とアドレス定数バス(KAB)142とに結合さ
れている。さらに、Pユニット108は、CSR,AC
BおよびRGDとラベルされたさまざまなバスを介して
Aユニット110およびDユニット112内のサブユニ
ットに結合されている。
【0029】図3に示すように、本実施例では、Aユニ
ット110はレジスタファイル30とデータアドレス発
生サブユニット(DAGEN)32と算術および論理演
算装置(ALU)34とを含んでいる。Aユニットレジ
スタファイル30はさまざまなレジスタを含み、それら
中には、アドレス発生だけでなくデータフローにも使用
できる16ビットポインタレジスタ(AR0,...,
AR7)およびデータレジスタ(DR0,...,DR
3)がある。さらに、レジスタファイルは、16ビット
巡回バッファレジスタと7ビットデータページレジスタ
とを含んでいる。汎用バス(EB,FB,CB,DB)
130,132,134,136だけでなく、データ定
数バス140およびアドレス定数バス142がAユニッ
トレジスタファイル30に結合されている。Aユニット
レジスタファイル30は、それぞれ反対方向に作動する
1方向性バス144,146によってAユニットDAG
ENユニット32に結合されている。DAGENユニッ
ト32は、16ビットX/Yレジスタと、たとえば処理
エンジン100内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
ット110はレジスタファイル30とデータアドレス発
生サブユニット(DAGEN)32と算術および論理演
算装置(ALU)34とを含んでいる。Aユニットレジ
スタファイル30はさまざまなレジスタを含み、それら
中には、アドレス発生だけでなくデータフローにも使用
できる16ビットポインタレジスタ(AR0,...,
AR7)およびデータレジスタ(DR0,...,DR
3)がある。さらに、レジスタファイルは、16ビット
巡回バッファレジスタと7ビットデータページレジスタ
とを含んでいる。汎用バス(EB,FB,CB,DB)
130,132,134,136だけでなく、データ定
数バス140およびアドレス定数バス142がAユニッ
トレジスタファイル30に結合されている。Aユニット
レジスタファイル30は、それぞれ反対方向に作動する
1方向性バス144,146によってAユニットDAG
ENユニット32に結合されている。DAGENユニッ
ト32は、16ビットX/Yレジスタと、たとえば処理
エンジン100内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
【0030】Aユニット110は、加算,減算およびA
ND,ORおよびXOR論理演算子などのALUに典型
的に関連する機能だけでなくシフタ機能も含むALU3
4も含んでいる。ALU34は、汎用バス(EB,D
B)130,136および命令定数データバス(KD
B)140にも結合されている。AユニットALUは、
Pユニット108レジスタファイルからレジスタ内容を
受信するPDAバスによってPユニット108に結合さ
れている。ALU34は、アドレスおよびデータレジス
タ内容を受信するバスRGA,RGBとレジスタファイ
ル30のアドレスおよびデータレジスタに転送するバス
RGDとによってAユニットレジスタファイル30にも
結合されている。
ND,ORおよびXOR論理演算子などのALUに典型
的に関連する機能だけでなくシフタ機能も含むALU3
4も含んでいる。ALU34は、汎用バス(EB,D
B)130,136および命令定数データバス(KD
B)140にも結合されている。AユニットALUは、
Pユニット108レジスタファイルからレジスタ内容を
受信するPDAバスによってPユニット108に結合さ
れている。ALU34は、アドレスおよびデータレジス
タ内容を受信するバスRGA,RGBとレジスタファイ
ル30のアドレスおよびデータレジスタに転送するバス
RGDとによってAユニットレジスタファイル30にも
結合されている。
【0031】図から分かるように、Dユニット112
は、Dユニットレジスタファイル36と、DユニットA
LU38と、Dユニットシフタ40と、2つの乗算およ
び累算ユニット(MAC1,MAC2)42,44とを
含んでいる。Dユニットレジスタファイル36とDユニ
ットALU38とDユニットシフタ40とは、バス(E
B,FB,CB,DB,KDB)130,132,13
4,136,140に結合され、また、MACユニット
42,44は、バス(CB,DB,KDB)134,1
36,140とデータリードバス(BB)144とに結
合されている。Dユニットレジスタファイル36は、4
0ビット累算器(AC0,...,AC3)と16ビッ
ト遷移レジスタとを含んでいる。また、Dユニット11
2は、Aユニット110の16ビットポインタおよびデ
ータレジスタをソースとして利用したり、40ビット累
算器の他にデスティネーションレジスタを利用すること
ができる。Dユニットレジスタファイル36は、累算器
ライトバス(ACW0,ACW1)146,148を介
してDユニットALU38およびMAC1&2 42,
44から、また、累算器ライトバス(ACW1)148
を介してDユニットシフタ40から、データを受信す
る。データは、累算器リードバス(ACR0,ACR
1)150,152を介してDユニットレジスタファイ
ル累算器からDユニットALU38,Dユニットシフタ
40およびMAC1&2 42,44に読み出される。
DユニットALU38とDユニットシフタ40とは、E
FC,DRB,DR2およびACBとラベルされたさま
ざまなバスを介してAユニット108のサブユニットに
も結合されている。
は、Dユニットレジスタファイル36と、DユニットA
LU38と、Dユニットシフタ40と、2つの乗算およ
び累算ユニット(MAC1,MAC2)42,44とを
含んでいる。Dユニットレジスタファイル36とDユニ
ットALU38とDユニットシフタ40とは、バス(E
B,FB,CB,DB,KDB)130,132,13
4,136,140に結合され、また、MACユニット
42,44は、バス(CB,DB,KDB)134,1
36,140とデータリードバス(BB)144とに結
合されている。Dユニットレジスタファイル36は、4
0ビット累算器(AC0,...,AC3)と16ビッ
ト遷移レジスタとを含んでいる。また、Dユニット11
2は、Aユニット110の16ビットポインタおよびデ
ータレジスタをソースとして利用したり、40ビット累
算器の他にデスティネーションレジスタを利用すること
ができる。Dユニットレジスタファイル36は、累算器
ライトバス(ACW0,ACW1)146,148を介
してDユニットALU38およびMAC1&2 42,
44から、また、累算器ライトバス(ACW1)148
を介してDユニットシフタ40から、データを受信す
る。データは、累算器リードバス(ACR0,ACR
1)150,152を介してDユニットレジスタファイ
ル累算器からDユニットALU38,Dユニットシフタ
40およびMAC1&2 42,44に読み出される。
DユニットALU38とDユニットシフタ40とは、E
FC,DRB,DR2およびACBとラベルされたさま
ざまなバスを介してAユニット108のサブユニットに
も結合されている。
【0032】図4を参照すると、32ワード命令バッフ
ァキュー(IBQ)502を含む命令バッファユニット
106が示されている。IBQ502は、8ビットバイ
ト506に論理的に分割された32×16ビットレジス
タ504を含んでいる。命令は、32ビットプログラム
バス(PB)122を介してIBQ502に到来する。
命令は、ローカルライトプログラムカウンタ(LWP
C)532によって指示される位置に32ビットサイク
ルでフェッチされる。LWPC532は、Pユニット1
08に位置されたレジスタに含まれている。Pユニット
108は、ローカルリードプログラムカウンタ(LRP
C)536レジスタとライトプログラムカウンタ(WP
C)530レジスタおよびリードプログラムカウンタ
(RPC)534レジスタとをも含んでいる。LRPC
536は、命令デコーダ512,514にロードされる
次の一つまたは複数の命令のIBQ502内の位置を指
示する。すなわち、LRPC534は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指示する。WPCは、パイプラインに
対する命令コードの次の4バイトの始まりのプログラム
メモリ内のアドレスを指示する。IBQ内への各フェッ
チに対して、プログラムメモリからの次の4バイトが命
令境界とは無関係にフェッチされる。RPC534は、
デコーダ512,514に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
ァキュー(IBQ)502を含む命令バッファユニット
106が示されている。IBQ502は、8ビットバイ
ト506に論理的に分割された32×16ビットレジス
タ504を含んでいる。命令は、32ビットプログラム
バス(PB)122を介してIBQ502に到来する。
命令は、ローカルライトプログラムカウンタ(LWP
C)532によって指示される位置に32ビットサイク
ルでフェッチされる。LWPC532は、Pユニット1
08に位置されたレジスタに含まれている。Pユニット
108は、ローカルリードプログラムカウンタ(LRP
C)536レジスタとライトプログラムカウンタ(WP
C)530レジスタおよびリードプログラムカウンタ
(RPC)534レジスタとをも含んでいる。LRPC
536は、命令デコーダ512,514にロードされる
次の一つまたは複数の命令のIBQ502内の位置を指
示する。すなわち、LRPC534は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指示する。WPCは、パイプラインに
対する命令コードの次の4バイトの始まりのプログラム
メモリ内のアドレスを指示する。IBQ内への各フェッ
チに対して、プログラムメモリからの次の4バイトが命
令境界とは無関係にフェッチされる。RPC534は、
デコーダ512,514に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
【0033】命令は、48ビットワードに形成され、マ
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
【0034】バス516は、任意の1命令サイクル中
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
【0035】プロセッサコア102は7ステージパイプ
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
【0036】パイプラインの第1ステージは、PRE−
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
【0037】次のステージ、FETCH(P1)ステー
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
【0038】パイプラインはPRE−FETCHおよび
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
【0039】次に、命令バッファ内の次の命令が、第3
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
【0040】次のステージはADDRESS(P3)ス
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
【0041】ACCESS(P4)ステージ210で
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
【0042】パイプラインの次のステージはREAD
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
【0043】デュアルアクセスの場合には、リードオペ
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
【0044】最後に、命令がAユニット110内または
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
【0045】次に、パイプラインプロセッサの動作の基
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
【0046】図7に示すように、本発明のこの実施例
は、24ビットアドレスバス114および双方向16ビ
ットデータバス116を介して外部メモリユニット(不
図示)に結合されるメモリ管理ユニット104を含んで
いる。さらに、メモリ管理ユニット104は24ビット
アドレスバス118および32ビット双方向データバス
120を介してプログラム格納メモリ(不図示)に結合
されている。メモリ管理ユニット104は32ビットプ
ログラムリードバス(PB)122を介してマシンプロ
セッサコア102のIユニット106にも結合されてい
る。Pユニット108,Aユニット110およびDユニ
ット112はデータリードおよびデータライトバスおよ
び対応するアドレスバスを介してメモリ管理ユニット1
04に結合されている。Pユニット108はさらにプロ
グラムアドレスバス128に結合されている。
は、24ビットアドレスバス114および双方向16ビ
ットデータバス116を介して外部メモリユニット(不
図示)に結合されるメモリ管理ユニット104を含んで
いる。さらに、メモリ管理ユニット104は24ビット
アドレスバス118および32ビット双方向データバス
120を介してプログラム格納メモリ(不図示)に結合
されている。メモリ管理ユニット104は32ビットプ
ログラムリードバス(PB)122を介してマシンプロ
セッサコア102のIユニット106にも結合されてい
る。Pユニット108,Aユニット110およびDユニ
ット112はデータリードおよびデータライトバスおよ
び対応するアドレスバスを介してメモリ管理ユニット1
04に結合されている。Pユニット108はさらにプロ
グラムアドレスバス128に結合されている。
【0047】より詳細には、Pユニット108は24ビ
ットプログラムアドレスバス128と2つの16ビット
データライトバス(EB,FB)130,132と2つ
の16ビットデータリードバス(CB,DB)134,
136とによってメモリ管理ユニット104に結合され
ている。Aユニット110は、2つの24ビットデータ
ライトアドレスバス(EAB,FAB)160,162
と2つの16ビットデータライトバス(EB,FB)1
30,132と3つのデータリードアドレスバス(BA
B,CAB,DAB)164,166,168と2つの
16ビットデータリードバス(CB,DB)134,1
36とを介してメモリ管理ユニット104に結合されて
いる。Dユニット112は、2つのデータライトバス
(EB,FB)130,132と3つのデータリードバ
ス(BB,CB,DB)144,134,136とを介
してメモリ管理ユニット104に結合されている。
ットプログラムアドレスバス128と2つの16ビット
データライトバス(EB,FB)130,132と2つ
の16ビットデータリードバス(CB,DB)134,
136とによってメモリ管理ユニット104に結合され
ている。Aユニット110は、2つの24ビットデータ
ライトアドレスバス(EAB,FAB)160,162
と2つの16ビットデータライトバス(EB,FB)1
30,132と3つのデータリードアドレスバス(BA
B,CAB,DAB)164,166,168と2つの
16ビットデータリードバス(CB,DB)134,1
36とを介してメモリ管理ユニット104に結合されて
いる。Dユニット112は、2つのデータライトバス
(EB,FB)130,132と3つのデータリードバ
ス(BB,CB,DB)144,134,136とを介
してメモリ管理ユニット104に結合されている。
【0048】図7は、たとえば分岐命令を転送する、I
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
【0049】一般的には、ループを開始する命令はルー
プの反復数を設定する。それは最大反復数に対する変数
を設定して行うことができ、また、その変数は各反復に
対してデクリメントされ、より低いカットオフに達する
と反復が中止されるかその逆とされる。随意に、反復変
数がその最小値からステップダウンするか最大値までス
テップアップするステップサイズを決定するために、
「ステップ」のようなパラメータをループの前に初期化
することができる。
プの反復数を設定する。それは最大反復数に対する変数
を設定して行うことができ、また、その変数は各反復に
対してデクリメントされ、より低いカットオフに達する
と反復が中止されるかその逆とされる。随意に、反復変
数がその最小値からステップダウンするか最大値までス
テップアップするステップサイズを決定するために、
「ステップ」のようなパラメータをループの前に初期化
することができる。
【0050】明細書の序文で述べたように、あるプロセ
ッサ応用、特に信号処理に対して、処理アルゴリズムは
いわゆる「入れ子型ループ」計算を必要とする。しばし
ば、インナーループは、アウターループの現在ステップ
に応じて変動する回数だけ反復する必要のある単一命令
である。このようなアルゴリズムの例を下記に示す。
ッサ応用、特に信号処理に対して、処理アルゴリズムは
いわゆる「入れ子型ループ」計算を必要とする。しばし
ば、インナーループは、アウターループの現在ステップ
に応じて変動する回数だけ反復する必要のある単一命令
である。このようなアルゴリズムの例を下記に示す。
【0051】
【数1】
【0052】ここで、jはアウターループの現在ステッ
プ変数、iはインナーループの現在ステップレベルであ
る。変数NUMBER OF ITERATIONはアウターループの総繰
返し数である。反復ステップはインナーループに対する
ステップサイズである。single cycle functionは任
意適切な単一サイクルプロセッサ命令または並列実行命
令に対する包括的記述である。インナーループの反復数
はアウターループの現在ステップ(j)に従属している
ことが分かるであろう。この効果を図8Aおよび図8B
に示す。
プ変数、iはインナーループの現在ステップレベルであ
る。変数NUMBER OF ITERATIONはアウターループの総繰
返し数である。反復ステップはインナーループに対する
ステップサイズである。single cycle functionは任
意適切な単一サイクルプロセッサ命令または並列実行命
令に対する包括的記述である。インナーループの反復数
はアウターループの現在ステップ(j)に従属している
ことが分かるであろう。この効果を図8Aおよび図8B
に示す。
【0053】図8Aは、上述のアルゴリズム(1)と同
様に、アウターループのステップ位置804が増加する
につれて増加するインナーループの命令802の数を示
す。または、アルゴリズム(1)は次のように修正する
ことができる。
様に、アウターループのステップ位置804が増加する
につれて増加するインナーループの命令802の数を示
す。または、アルゴリズム(1)は次のように修正する
ことができる。
【0054】
【数2】
【0055】その場合には、図8Bに示すように、アウ
ターループのステップ位置808が減少するにつれてイ
ンナーループの反復806の数が減少する。
ターループのステップ位置808が減少するにつれてイ
ンナーループの反復806の数が減少する。
【0056】このようなアルゴリズムを適用できる応用
の一例は、FIR/IIRフィルタの初期化フェーズ,
対称マトリクス計算およびレビンソン&シュア帰納法で
ある。
の一例は、FIR/IIRフィルタの初期化フェーズ,
対称マトリクス計算およびレビンソン&シュア帰納法で
ある。
【0057】これまで、このようなアルゴリズムは「イ
ンライン」符号化されており、ループ引数(NUMBER OF
ITERATION)はパラメータまたは即定値(immediate c
onstant value)としてプログラムコードの一部であ
る。これは、コードの複写を必要とし、プロセッサに対
するコードサイズオーバヘッドを増大する。
ンライン」符号化されており、ループ引数(NUMBER OF
ITERATION)はパラメータまたは即定値(immediate c
onstant value)としてプログラムコードの一部であ
る。これは、コードの複写を必要とし、プロセッサに対
するコードサイズオーバヘッドを増大する。
【0058】随意に、ループ反復サイズパラメータがメ
モリオペランドであれば、既知のループ構造が使用され
る。このようなアルゴリズムは、ループ構造を使用し、
従ってコードサイズを節減するが、メモリアクセスが必
要であるため、プロセッササイクルオーバヘッドがあ
る。メモリが読み出される命令パイプラインステージと
繰返しカウンタレジスタが初期化されるパイプラインス
テージとは異なるため、プロセッササイクルオーバヘッ
ドが生じる。それにより、命令実行にレーテンシが生じ
て、パイプラインに冗長スロットが生じる。
モリオペランドであれば、既知のループ構造が使用され
る。このようなアルゴリズムは、ループ構造を使用し、
従ってコードサイズを節減するが、メモリアクセスが必
要であるため、プロセッササイクルオーバヘッドがあ
る。メモリが読み出される命令パイプラインステージと
繰返しカウンタレジスタが初期化されるパイプラインス
テージとは異なるため、プロセッササイクルオーバヘッ
ドが生じる。それにより、命令実行にレーテンシが生じ
て、パイプラインに冗長スロットが生じる。
【0059】電子装置、特にポータブル電子装置の消費
電力を低減する要求が高まってきている。さらに、ポー
タブル電子装置は、プログラムメモリサイズを減少しお
よび/またはポータブル電子装置の機能性を高めるため
に、できるだけ効率的で小型のプログラムコードサイズ
を有することが望ましい。前記した要求は、既知のルー
プ方法では満足されない。
電力を低減する要求が高まってきている。さらに、ポー
タブル電子装置は、プログラムメモリサイズを減少しお
よび/またはポータブル電子装置の機能性を高めるため
に、できるだけ効率的で小型のプログラムコードサイズ
を有することが望ましい。前記した要求は、既知のルー
プ方法では満足されない。
【0060】背景説明として、単一ループ繰返しを実現
する既知の方法について、以下に説明する。
する既知の方法について、以下に説明する。
【0061】図9は、データ構造の別々の部分で操作を
繰り返すためにデータ構造等中をステップする2つの既
知のアルゴリズムを示す。「State of the Art - 1」と
ラベルされたアルゴリズムを参照すると、その(ii)行
は、アドレスレジスタAR1,AR2によって指示され
る位置でデータメモリに配置される2つのデータ要素の
乗算を表す。「+」は、その演算の結果の後にアドレス
AR1,AR2がポスト・インクリメントされることを
示し、また、「%」は、アドレスAR1が巡回アドレッ
シングモードでにおいてポスト・インクリメントされる
ことを示す。「 *」は、間接アドレッシングモードを示
す。その演算の結果はアキュムレータ1,AC1に格納
される。このような演算は積和(MAC)演算として知
られている。(ii)行では、アドレスAR1,AR2に
よって指示されるデータ要素は互いに乗算され、その結
果はアキュムレータ1,AC1の内容に加算される。
(iii)行に移ると、第1の部分は、アキュムレータ
2,AC2の高位部分(31から16ビット)がアドレ
スAR3によって指示されるメモリ位置に格納されるこ
とを示す。アドレスAR3はポスト・インクリメントさ
れる。(iii)行の第2の部分は「‖」によって並列で
あることを示す並列演算を示し、AC2の内容は前のス
テップの結果である。AR2によって指示されるデータ
要素がアキュムレータ1,AC1の高位内容(31から
16ビット)に加算される。アドレスポインタAR2は
データレジスタDRθの内容によってポスト・デクリメ
ントされる。データレジスタ内容DRθは、データ構造
上の次の演算にすぐ使える反復ステップ値だけデクリメ
ントされる。
繰り返すためにデータ構造等中をステップする2つの既
知のアルゴリズムを示す。「State of the Art - 1」と
ラベルされたアルゴリズムを参照すると、その(ii)行
は、アドレスレジスタAR1,AR2によって指示され
る位置でデータメモリに配置される2つのデータ要素の
乗算を表す。「+」は、その演算の結果の後にアドレス
AR1,AR2がポスト・インクリメントされることを
示し、また、「%」は、アドレスAR1が巡回アドレッ
シングモードでにおいてポスト・インクリメントされる
ことを示す。「 *」は、間接アドレッシングモードを示
す。その演算の結果はアキュムレータ1,AC1に格納
される。このような演算は積和(MAC)演算として知
られている。(ii)行では、アドレスAR1,AR2に
よって指示されるデータ要素は互いに乗算され、その結
果はアキュムレータ1,AC1の内容に加算される。
(iii)行に移ると、第1の部分は、アキュムレータ
2,AC2の高位部分(31から16ビット)がアドレ
スAR3によって指示されるメモリ位置に格納されるこ
とを示す。アドレスAR3はポスト・インクリメントさ
れる。(iii)行の第2の部分は「‖」によって並列で
あることを示す並列演算を示し、AC2の内容は前のス
テップの結果である。AR2によって指示されるデータ
要素がアキュムレータ1,AC1の高位内容(31から
16ビット)に加算される。アドレスポインタAR2は
データレジスタDRθの内容によってポスト・デクリメ
ントされる。データレジスタ内容DRθは、データ構造
上の次の演算にすぐ使える反復ステップ値だけデクリメ
ントされる。
【0062】演算(i)から(iv)は(v)行から(ix)
行までに対して繰り返される。「State of the Art -
1」から分かるように、命令(ii)および(iii)は、第
1の部分で2回明確に繰り返され、第2の部分で3回繰
り返される。このようなインラインコーディングによ
り、値“iteration-step”に対応するステップでメモリ
内のデータ構造中をステップし、各ステップで同じ機能
を行うことができる。
行までに対して繰り返される。「State of the Art -
1」から分かるように、命令(ii)および(iii)は、第
1の部分で2回明確に繰り返され、第2の部分で3回繰
り返される。このようなインラインコーディングによ
り、値“iteration-step”に対応するステップでメモリ
内のデータ構造中をステップし、各ステップで同じ機能
を行うことができる。
【0063】「State of the Art - 1」のようなアルゴ
リズムは、低レベルのプロセッササイクルを必要とする
が、大量のコードが必要である。たとえば、10回繰返
しに対する85サイクルの85ワード。
リズムは、低レベルのプロセッササイクルを必要とする
が、大量のコードが必要である。たとえば、10回繰返
しに対する85サイクルの85ワード。
【0064】図9の「State of the Art - 2」アルゴリ
ズムを参照すると、その(i)行は、@インナーカウン
タによって表されるアドレスにおいて現在のメモリペー
ジ上で直接アクセス可能なメモリ変数を初期化する。
(ii)行は、NB-ITERATION-1によって与えられるブロッ
クに対する繰返し数を有するblock repeat counterの
初期化である。(iii)行では、block repeat counte
rがゼロとなるまで(iv)行および(xi)行の大括弧内
の全コードが繰り返される。(v)行は「State of the
Art - 1」内の(i)行と同じ演算を行い、(vi)行はメ
モリアドレス@inner-counterからどの繰返しカウンタ
がフェッチされるかに応答する単一命令繰返しステート
メントであり、それは(vii)行を繰り返す。(vii)行
および(viii)行は「State of the Art - 1」内の(i
i)および(iii)行に対応する。(ix)行では、アドレ
ス@inner-counterに格納される変数が、反復ステップ
によって与えられる量だけインクリメントされる。
(x)行は「State of the Art - 1」の(iv)行に対応
する。入れ子繰返しループを利用すれば、「State of t
he Art - 1」によって達成されるのと同じ効果が達成さ
れるが、たとえば10回繰返しに対しては僅かコードの
13ワードだけである。しかしながら、プロセッササイ
クルの数は比較的高く、141である。
ズムを参照すると、その(i)行は、@インナーカウン
タによって表されるアドレスにおいて現在のメモリペー
ジ上で直接アクセス可能なメモリ変数を初期化する。
(ii)行は、NB-ITERATION-1によって与えられるブロッ
クに対する繰返し数を有するblock repeat counterの
初期化である。(iii)行では、block repeat counte
rがゼロとなるまで(iv)行および(xi)行の大括弧内
の全コードが繰り返される。(v)行は「State of the
Art - 1」内の(i)行と同じ演算を行い、(vi)行はメ
モリアドレス@inner-counterからどの繰返しカウンタ
がフェッチされるかに応答する単一命令繰返しステート
メントであり、それは(vii)行を繰り返す。(vii)行
および(viii)行は「State of the Art - 1」内の(i
i)および(iii)行に対応する。(ix)行では、アドレ
ス@inner-counterに格納される変数が、反復ステップ
によって与えられる量だけインクリメントされる。
(x)行は「State of the Art - 1」の(iv)行に対応
する。入れ子繰返しループを利用すれば、「State of t
he Art - 1」によって達成されるのと同じ効果が達成さ
れるが、たとえば10回繰返しに対しては僅かコードの
13ワードだけである。しかしながら、プロセッササイ
クルの数は比較的高く、141である。
【0065】本発明の好ましい実施例によれば、処理エ
ンジンは、命令繰返しループ管理に関連する命令に応答
する。好ましい実施例では、実行機構は、2部分を含む
Computed Single Repeat(CSR)に応答する。CSR
命令のフォーマットを下記に示す。
ンジンは、命令繰返しループ管理に関連する命令に応答
する。好ましい実施例では、実行機構は、2部分を含む
Computed Single Repeat(CSR)に応答する。CSR
命令のフォーマットを下記に示す。
【0066】
【数3】
【0067】ここで、操作符号“repeat (CSR)は繰返し
ループを開始し、それはたとえば並列に実行可能な後続
命令または命令対をComputed Single Repeat(CSR)
レジスタの内容の値に対応する回数だけ繰り返す。命令
の第2の部分は、値をその内容に加算することによって
CSRレジスタの内容を修正する。好ましい実施例で
は、この値はAユニット110レジスタの内容である
(DR0〜DR3,AR0〜AR7)。
ループを開始し、それはたとえば並列に実行可能な後続
命令または命令対をComputed Single Repeat(CSR)
レジスタの内容の値に対応する回数だけ繰り返す。命令
の第2の部分は、値をその内容に加算することによって
CSRレジスタの内容を修正する。好ましい実施例で
は、この値はAユニット110レジスタの内容である
(DR0〜DR3,AR0〜AR7)。
【0068】表1は、4つのタイプのCSR命令に対す
る命令フォーマットを示す。最も左側の7つのアルファ
“O”は、repeat (CSR)命令操作符号を表す。その後に
並列イネーブルビット“E”が続き、それはrepeat (CS
R)命令がもう1つの命令と並列実行することを明確に可
能とする。左から4つのアルファの第3のグループは、
一定値またはAユニット110レジスタファイル内のレ
ジスタの内容とすることができるCSRレジスタのポス
ト修正を表す。4つのアルファの第4のグループは、re
peat (CSR)命令に対しては使用されない操作符号であ
る。
る命令フォーマットを示す。最も左側の7つのアルファ
“O”は、repeat (CSR)命令操作符号を表す。その後に
並列イネーブルビット“E”が続き、それはrepeat (CS
R)命令がもう1つの命令と並列実行することを明確に可
能とする。左から4つのアルファの第3のグループは、
一定値またはAユニット110レジスタファイル内のレ
ジスタの内容とすることができるCSRレジスタのポス
ト修正を表す。4つのアルファの第4のグループは、re
peat (CSR)命令に対しては使用されない操作符号であ
る。
【0069】
【表1】
【0070】repeat (CSR)命令を利用するアルゴリズム
の一例を下記に示す。なお、ブロック繰返しカウンタB
RC0は、repeat (CSR)命令を含むブロック繰返しに対
する初期値nを有する。
の一例を下記に示す。なお、ブロック繰返しカウンタB
RC0は、repeat (CSR)命令を含むブロック繰返しに対
する初期値nを有する。
【0071】
【数4】
【0072】図10を参照すると、本発明の好ましい実
施例に対するrepeat (CSR)命令用の実行機構900の操
作について説明する。実行機構900は、算術論理演算
装置(ALU)904およびマルチプレクサ906に結
合された出力を有するCSRレジスタ902を含んでい
る。CSRレジスタは、Aユニット110内に常駐しA
LU904好ましくはAユニットALUに直接結合され
ているレジスタファイル908の一部を含んでいる。レ
ジスタファイル908は、レジスタセレクトライン91
2によって制御可能な、レジスタファイル908内のレ
ジスタの一つの内容をマルチプレクサ914に選択的に
転送するゲート910に結合されている。マルチプレク
サ914は、データフロー916を介して即定値も受信
し、制御ライン918によって制御されて即定値または
レジスタファイル908内のレジスタの一つの内容をA
LU904に選択的に転送する。制御ライン918はA
LU904の動作も制御する。
施例に対するrepeat (CSR)命令用の実行機構900の操
作について説明する。実行機構900は、算術論理演算
装置(ALU)904およびマルチプレクサ906に結
合された出力を有するCSRレジスタ902を含んでい
る。CSRレジスタは、Aユニット110内に常駐しA
LU904好ましくはAユニットALUに直接結合され
ているレジスタファイル908の一部を含んでいる。レ
ジスタファイル908は、レジスタセレクトライン91
2によって制御可能な、レジスタファイル908内のレ
ジスタの一つの内容をマルチプレクサ914に選択的に
転送するゲート910に結合されている。マルチプレク
サ914は、データフロー916を介して即定値も受信
し、制御ライン918によって制御されて即定値または
レジスタファイル908内のレジスタの一つの内容をA
LU904に選択的に転送する。制御ライン918はA
LU904の動作も制御する。
【0073】repeat (CSR)命令に応答して、CSRレジ
スタ902の現在の内容をマルチプレクサ906を介し
てループカウンタ(繰返しカウントインデックスレジス
タ)922に通すことによって、ループが初期化され
る。ループカウンタレジスタ922は、デクリメントユ
ニット924および比較器ユニット926に結合されて
いる。ループのインデックスカウントを表すループカウ
ンタレジスタ922の内容は、デクリメントユニット9
24において1だけデクリメントされ、修正されたカウ
ンタ値は、データフロー928を介してマルチプレクサ
906の入力に転送される。当業者には、デクリメント
ユニット924はインクリメントユニットで置換できる
ことが分かるであろう。随意に、デクリメント/インク
リメントユニットは、その内容がループカウンタのステ
ップサイズを規定するレジスタを含むことができる。
スタ902の現在の内容をマルチプレクサ906を介し
てループカウンタ(繰返しカウントインデックスレジス
タ)922に通すことによって、ループが初期化され
る。ループカウンタレジスタ922は、デクリメントユ
ニット924および比較器ユニット926に結合されて
いる。ループのインデックスカウントを表すループカウ
ンタレジスタ922の内容は、デクリメントユニット9
24において1だけデクリメントされ、修正されたカウ
ンタ値は、データフロー928を介してマルチプレクサ
906の入力に転送される。当業者には、デクリメント
ユニット924はインクリメントユニットで置換できる
ことが分かるであろう。随意に、デクリメント/インク
リメントユニットは、その内容がループカウンタのステ
ップサイズを規定するレジスタを含むことができる。
【0074】図11を参照して、repeat (CSR)命令に対
する命令フローについて説明する。パイプラインステー
ジに対する用語は、図5で使用したものと同じものを使
用する。repeat (CSR)命令が命令パイプラインに入る前
に、ブロック繰返しカウンタBRCθが初期化(n)さ
れる。第1の単一繰返しに対する繰返しカウントで繰返
しブロックに入る前に、CSRレジスタ902が初期化
(たとえば、k)される。repeat (CSR)命令パイプライ
ンのデコードステージP2,1102で、ループカウン
タレジスタ922,RPTCは第1の単一繰返しに対し
て値kを与えるCSRレジスタ902から更新される。
repeat (CSR)命令パイプラインの実行ステージP6,1
104中に、ALU904操作が行われ、CSRレジス
タ902の現在の内容が一定値または他のレジスタ内容
(たとえば、4)に加算される。その結果が実行ステー
ジ1104の終わりでCSRレジスタ902に格納さ
れ、これにより、レジスタをポスト修正によって更新す
る。CSRレジスタ902の修正は、レジスタ(ALU
904)からレジスタ(CSR902)への操作として
行われ、包括的レジスタタイプ操作である。これは、re
peat (CSR)命令が典型的にはブロック繰返し内に入れ子
式とされるためにCSRレジスタの更新はタイミングク
リティカルではなく、ブロックサイズはブロック命令の
実行中に更新を行うのに十分であるためである。本実施
例では、繰返しレーテンシは4サイクルである。
する命令フローについて説明する。パイプラインステー
ジに対する用語は、図5で使用したものと同じものを使
用する。repeat (CSR)命令が命令パイプラインに入る前
に、ブロック繰返しカウンタBRCθが初期化(n)さ
れる。第1の単一繰返しに対する繰返しカウントで繰返
しブロックに入る前に、CSRレジスタ902が初期化
(たとえば、k)される。repeat (CSR)命令パイプライ
ンのデコードステージP2,1102で、ループカウン
タレジスタ922,RPTCは第1の単一繰返しに対し
て値kを与えるCSRレジスタ902から更新される。
repeat (CSR)命令パイプラインの実行ステージP6,1
104中に、ALU904操作が行われ、CSRレジス
タ902の現在の内容が一定値または他のレジスタ内容
(たとえば、4)に加算される。その結果が実行ステー
ジ1104の終わりでCSRレジスタ902に格納さ
れ、これにより、レジスタをポスト修正によって更新す
る。CSRレジスタ902の修正は、レジスタ(ALU
904)からレジスタ(CSR902)への操作として
行われ、包括的レジスタタイプ操作である。これは、re
peat (CSR)命令が典型的にはブロック繰返し内に入れ子
式とされるためにCSRレジスタの更新はタイミングク
リティカルではなく、ブロックサイズはブロック命令の
実行中に更新を行うのに十分であるためである。本実施
例では、繰返しレーテンシは4サイクルである。
【0075】ループカウンタ(図10の922)RPT
Cは、repeat (CSR)命令のデコードステージP2,11
02中のCSRレジスタと1106に示すデコードステ
ージの終わりのループカウンタレジスタ922に読み込
まれる値とから初期化される。
Cは、repeat (CSR)命令のデコードステージP2,11
02中のCSRレジスタと1106に示すデコードステ
ージの終わりのループカウンタレジスタ922に読み込
まれる値とから初期化される。
【0076】次に、1108aにAC0で表す単一命令
がループカウンタ922内の値kに従って繰り返され
(1108)、パイプラインのアドレスステージP3中
に、ループカウンタ値がテストされデクリメントされ更
新される。単一繰返しが終結すると、すなわち1110
でループカウンタ922値=0であると、繰返しブロッ
クの残りが実行される。
がループカウンタ922内の値kに従って繰り返され
(1108)、パイプラインのアドレスステージP3中
に、ループカウンタ値がテストされデクリメントされ更
新される。単一繰返しが終結すると、すなわち1110
でループカウンタ922値=0であると、繰返しブロッ
クの残りが実行される。
【0077】繰返しブロック1112への次のエントリ
に対して、1114でCSRレジスタ902値K+4
は、ループカウンタ922にロードされたのち、パイプ
ラインの実行ステージで更新されて次のブロック繰返し
に対する準備が完了する。
に対して、1114でCSRレジスタ902値K+4
は、ループカウンタ922にロードされたのち、パイプ
ラインの実行ステージで更新されて次のブロック繰返し
に対する準備が完了する。
【0078】上記説明に従って作動するように構成され
た処理エンジンの好ましい実施例は、アウターループの
反復レベルに応じて繰返し単一命令に対する反復レベル
を高める有利な方法および装置を提供する。
た処理エンジンの好ましい実施例は、アウターループの
反復レベルに応じて繰返し単一命令に対する反復レベル
を高める有利な方法および装置を提供する。
【0079】図12は、一体型キーボード12およびデ
ィスプレイ14を有する移動体電話機のような移動電気
通信装置に本発明の態様を具現しているデジタルシステ
ムの典型的なインプリメンテーションを示す。集積回路
40内にパッケージされた本発明の態様を具現するデジ
タル信号プロセッサを有するデジタルシステム10は、
キーボード12に接続され、そこで適切なキーボードア
ダプタ(不図示)を介してディスプレイ14に接続さ
れ、そこで適切なディスプレイアダプタ(不図示)を介
して無線周波数(RF)回路16に接続されている。R
F回路16はアンテナ18に接続されている。集積回路
40は表面実装用の複数のコンタクトを含んでいる。し
かしながら、集積回路は、他の構成、たとえばゼロ挿入
力ソケット内へ搭載するための回路の下面上の複数のピ
ンまたは他の任意適切な構成とすることができる。
ィスプレイ14を有する移動体電話機のような移動電気
通信装置に本発明の態様を具現しているデジタルシステ
ムの典型的なインプリメンテーションを示す。集積回路
40内にパッケージされた本発明の態様を具現するデジ
タル信号プロセッサを有するデジタルシステム10は、
キーボード12に接続され、そこで適切なキーボードア
ダプタ(不図示)を介してディスプレイ14に接続さ
れ、そこで適切なディスプレイアダプタ(不図示)を介
して無線周波数(RF)回路16に接続されている。R
F回路16はアンテナ18に接続されている。集積回路
40は表面実装用の複数のコンタクトを含んでいる。し
かしながら、集積回路は、他の構成、たとえばゼロ挿入
力ソケット内へ搭載するための回路の下面上の複数のピ
ンまたは他の任意適切な構成とすることができる。
【0080】上記説明から、発明の範囲内でさまざまな
修正が当業者には自明であろう。
修正が当業者には自明であろう。
【0081】明白にもしくは暗黙的に開示された新しい
あらゆる特徴もしくは特徴の組合せ、または、特許請求
の範囲に関連するか否かまたは本発明が取り組む問題の
いずれかもしくは全てを緩和するか否かにかかわらず、
そのあらゆる一般化した結果が本発明の範囲に含まれる
ものとする。
あらゆる特徴もしくは特徴の組合せ、または、特許請求
の範囲に関連するか否かまたは本発明が取り組む問題の
いずれかもしくは全てを緩和するか否かにかかわらず、
そのあらゆる一般化した結果が本発明の範囲に含まれる
ものとする。
【0082】ここで使用した「加えられる」、「接続さ
れる」および「接続」という用語は、電気的接続経路内
に付加要素がある場合も含めて、電気的に接続されるこ
とを意味する。
れる」および「接続」という用語は、電気的接続経路内
に付加要素がある場合も含めて、電気的に接続されるこ
とを意味する。
【0083】実施例について本発明を説明してきたが、
この明細書には制約的な意味合いはない。当業者なら
ば、この明細書を読めば本発明の他のさまざまな実施例
が自明であろう。したがって、添付した特許請求の範囲
は発明の真の範囲および精神に含まれる実施例のこのよ
うないかなる変更も包含するものとする。
この明細書には制約的な意味合いはない。当業者なら
ば、この明細書を読めば本発明の他のさまざまな実施例
が自明であろう。したがって、添付した特許請求の範囲
は発明の真の範囲および精神に含まれる実施例のこのよ
うないかなる変更も包含するものとする。
【0084】本出願は1998年10月6日に欧州で出
願されたS.N.98402454.7(TI−276
86EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
願されたS.N.98402454.7(TI−276
86EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
【図1】本発明の実施例に従ったプロセッサの略ブロッ
ク図である。
ク図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアのさまざまな実行ユニ
ットのより詳細な略ブロック図である。
ットのより詳細な略ブロック図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
命令デコーダコントローラの略図である。
【図5】図1のプロセッサのパイプラインフェーズの表
現である。
現である。
【図6】図1のプロセッサにおけるパイプラインの動作
例の線図である。
例の線図である。
【図7】図1のプロセッサのパイプラインの動作を説明
するためのプロセッサのコアの略表現である。
するためのプロセッサのコアの略表現である。
【図8】さまざまな繰返し命令の構造を示す図である。
【図9】データ構造中をステップする2つの既知のアル
ゴリズムである。
ゴリズムである。
【図10】本発明の好ましい実施例による命令に使用さ
れる回路の略図である。
れる回路の略図である。
【図11】本発明の好ましい実施例による命令のパイプ
ラインステージを示す図である。
ラインステージを示す図である。
【図12】本発明の実施例を内蔵するのに適したワイヤ
レス通信装置の略図である。
レス通信装置の略図である。
10 マイクロプロセッサ 20 プロセッサバックプレーン 22 バックプレーンバス 24 命令キャッシュメモリ 26 周辺装置 28 外部インターフェイス 30 レジスタファイル 32 データアドレス発生サブユニット 34,970 ALU 36 Dユニットレジスタファイル 38 DユニットALU 40 Dユニットシフタ 42,44 累算ユニット 100 処理エンジン 102 処理コア 104 インターフェイスユニット 106 命令バッファユニット 108 プログラムフローユニット 110 アドレスデータフローユニット 112 データ通信ユニット 118 アドレスバス 120 データバス 122 プログラムリードバス 128 プログラムアドレスバス 130,132 データライトバス 134,136,144 データリードバス 140 命令定数データバス 142 アドレス定数バス 146,148 累算器ライトバス 150,152 累算器リードバス 160,162 データライトアドレスバス 502 命令バッファキュー 504 レジスタ 512,514 命令デコーダ 520,521,918,922,946,947 マ
ルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 900 実行機構 902 CSRレジスタ 904 算術演算装置 906,914 マルチプレクサ 908 レジスタファイル 910 ゲート 912 レジスタセレクトライン 918 制御ライン 922 ループカウンタ 924 デクリメントユニット 926 比較器ユニット
ルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 900 実行機構 902 CSRレジスタ 904 算術演算装置 906,914 マルチプレクサ 908 レジスタファイル 910 ゲート 912 レジスタセレクトライン 918 制御ライン 922 ループカウンタ 924 デクリメントユニット 926 比較器ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジルベルト ラウレンティ フランス国 セント ポール ドゥ ベン セ,シェマン ドゥ セント エティー ネ,1490 (72)発明者 アレイン ボヤドジアレ フランス国 バラウリス,レジデンス メ デテラニー ビー3,シェマン デュ プ イザントン,410
Claims (24)
- 【請求項1】 処理エンジンを有するデジタルシステム
であって、 前記処理エンジンが、 実行機構と、 繰返しカウントレジスタと、 繰返しカウントインデックスレジスタとを含み、 前記実行機構が、繰返し命令に応答して、前記繰返しカ
ウントインデックスレジスタを前記繰返しカウントレジ
スタの内容で初期化するとともに、前記繰返しカウント
レジスタの内容を修正する、 デジタルシステム。 - 【請求項2】 前記繰返し命令に応答する前記実行機構
が、第1および第2の部分を含み、該第1の部分に応答
して前記繰返しカウントインデックスレジスタを初期化
し、前記第2の部分に応答して前記繰返しカウントレジ
スタの内容を修正する、請求項1記載の処理エンジン。 - 【請求項3】 前記実行機構が、前記第2の部分を含
む、前記繰返しカウントレジスタの内容を修正するオペ
ランドを有するデータ命令にさらに応答する、請求項2
記載の処理エンジン。 - 【請求項4】 前記データ命令が、前記オペランドおよ
び前記繰返しカウントレジスタ内容に対する算術演算を
含む、請求項3記載の処理エンジン。 - 【請求項5】 前記実行機構が、前記繰返しカウンタレ
ジスタの内容を受信する、前記オペランドに従って前記
内容を修正する算術論理演算装置を含む、請求項4記載
の処理エンジン。 - 【請求項6】 前記繰返し命令に応答して、前記繰返し
カウントインデックスレジスタの内容に応じて後続命令
の繰返しを開始する、請求項1記載の処理エンジン。 - 【請求項7】 前記実行機構がさらに、前記繰返し命令
に応答して、所定の規準を満たす前記繰返しカウントイ
ンデックスレジスタの内容に対して前記後続命令の実行
を繰り返す、請求項6記載の処理エンジン。 - 【請求項8】 前記実行機構がさらに、前記繰返し命令
に応答して、前記繰返しカウントインデックスレジスタ
の内容を前記後続命令の各実行に対して修正する、請求
項7記載の処理エンジン。 - 【請求項9】 前記繰返しカウントインデックスレジス
タの内容が、前記後続命令の各実行に対してデクリメン
トされる、請求項8記載の処理エンジン。 - 【請求項10】 前記所定の規準が、ゼロに等しくない
前記繰返しカウントインデックスレジスタ内容である、
請求項8記載の処理エンジン。 - 【請求項11】 前記後続命令が、並列に実行可能な少
なくとも2つの命令を含む、請求項6記載の処理エンジ
ン。 - 【請求項12】 前記繰返しカウントインデックスレジ
スタの内容をデクリメントするデクリメントユニットに
結合された前記繰返しカウントインデックスレジスタを
含む繰返しカウント回路と、 前記繰返しカウントインデックスの内容を所定値と比較
する比較器と、 該比較器の出力に結合されて前記所定値に対応する前記
繰返しカウントインデックスレジスタの内容に対する前
記第2の命令のそれ以上の実行を禁止する制御ユニット
と、 をさらに含む、請求項5記載の処理エンジン。 - 【請求項13】 前記所定値がゼロである、請求項12
記載の処理エンジン。 - 【請求項14】 前記実行機構が、複数のパイプライン
ステージを含む命令パイプラインをさらに含み、 前記実行機構が、前記命令パイプラインの早期ステージ
で応答して、前記繰返しカウントインデックスレジスタ
の内容を前記後続命令の実行に対して修正し、 前記実行機構が、前記命令パイプラインの終端ステージ
で応答して、前記データ命令を実行して前記繰返しカウ
ントレジスタの内容を修正する、 請求項13記載の処理エンジン。 - 【請求項15】 処理エンジンを操作して繰返し命令を
実行する方法であって、 i)繰返しカウントインデックスレジスタを繰返しカウ
ントレジスタの内容で初期化するステップと、 ii)前記繰返しカウントレジスタを修正するステップ
と、 を含む、方法。 - 【請求項16】 前記繰返し命令が第1および第2の部
分を含み、ステップi)が前記繰返し命令の第1の部分
に応答して実行され、ステップii)が前記繰返し命令の
第2の部分に応答して実行される、請求項15記載の方
法。 - 【請求項17】 ステップii)が、前記第2の部分を含
む、前記繰返しカウントレジスタの内容を修正するオペ
ランドを有するデータ命令を実行するステップをさらに
含む、請求項16記載の方法。 - 【請求項18】 前記オペランドおよび前記繰返しカウ
ントレジスタ内容に算術演算を行うステップをさらに含
む、請求項17記載の方法。 - 【請求項19】 前記繰返しカウントレジスタの内容に
データ値を加算してその内容を修正するステップをさら
に含む、請求項18記載の方法。 - 【請求項20】 前記繰返しカウントインデックスレジ
スタの内容に従って前記繰返し命令の後続命令を繰り返
し実行するステップをさらに含む、請求項19記載の方
法。 - 【請求項21】 所定の規準を満たす前記繰返しカウン
トインデックスレジスタに対して前記後続命令を繰り返
し実行するステップをさらに含む、請求項20記載の方
法。 - 【請求項22】 前記後続命令の各繰返し実行に対して
前記繰返しカウントインデックスレジスタの内容を修正
するステップをさらに含む、請求項21記載の方法。 - 【請求項23】 少なくとも2つの命令を含む前記後続
命令に対して動作可能であり、前記少なくとも2つの命
令を並列に実行するステップをさらに含む、請求項22
記載の方法。 - 【請求項24】 セルラー電話機である請求項1記載の
デジタルシステムであって、 キーボードアダプタを介して前記プロセッサに接続され
た一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
れたディスプレイと、 前記プロセッサに接続された無線周波(RF)回路と、 該RF回路に接続されたアンテナと、 をさらに含む、デジタルシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19980402454 EP0992888B1 (en) | 1998-10-06 | 1998-10-06 | Method and apparatus for iterative instruction execution |
EP98402454.7 | 1998-10-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000148474A true JP2000148474A (ja) | 2000-05-30 |
Family
ID=8235511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11321527A Pending JP2000148474A (ja) | 1998-10-06 | 1999-10-06 | 計算した繰返し命令を有するプロセッサ |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0992888B1 (ja) |
JP (1) | JP2000148474A (ja) |
DE (1) | DE69839910D1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976158B2 (en) * | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
ATE463788T1 (de) * | 2007-06-26 | 2010-04-15 | Ericsson Telefon Ab L M | Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0206653B1 (en) * | 1985-06-28 | 1992-10-21 | Hewlett-Packard Company | Method and means for loading and storing data in a reduced instruction set computer |
JPS62180427A (ja) * | 1986-02-03 | 1987-08-07 | Nec Corp | プログラム制御回路 |
EP0374419A3 (en) * | 1988-12-21 | 1991-04-10 | International Business Machines Corporation | Method and apparatus for efficient loop constructs in hardware and microcode |
JP2943464B2 (ja) * | 1991-12-09 | 1999-08-30 | 松下電器産業株式会社 | プログラム制御方法及びプログラム制御装置 |
US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
-
1998
- 1998-10-06 EP EP19980402454 patent/EP0992888B1/en not_active Expired - Lifetime
- 1998-10-06 DE DE69839910T patent/DE69839910D1/de not_active Expired - Lifetime
-
1999
- 1999-10-06 JP JP11321527A patent/JP2000148474A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0992888B1 (en) | 2008-08-20 |
DE69839910D1 (de) | 2008-10-02 |
EP0992888A1 (en) | 2000-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6990570B2 (en) | Processor with a computer repeat instruction | |
US6810475B1 (en) | Processor with pipeline conflict resolution using distributed arbitration and shadow registers | |
US6507921B1 (en) | Trace fifo management | |
EP0992906B1 (en) | Apparatus and method for software breakpoint in a delay slot | |
KR19980018072A (ko) | 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리 | |
JP2000276351A (ja) | ローカル命令ルーピングを有するプロセッサ | |
US6826679B1 (en) | Processor with pointer tracking to eliminate redundant memory fetches | |
KR20010050792A (ko) | 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐 | |
JP3789583B2 (ja) | データ処理装置 | |
US6502152B1 (en) | Dual interrupt vector mapping | |
JP2004005603A (ja) | 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置 | |
JP2000305779A (ja) | パイプライン保護 | |
JP2004527824A (ja) | データプロセッサ及び処理方法 | |
JP2000259408A (ja) | 遅延スロットにおけるソフトウェアブレークポイント | |
US6598151B1 (en) | Stack Pointer Management | |
US6681319B1 (en) | Dual access instruction and compound memory access instruction with compatible address fields | |
JP2000148474A (ja) | 計算した繰返し命令を有するプロセッサ | |
JP4355410B2 (ja) | 線形ベクトル計算 | |
EP1625492A1 (en) | Methods and apparatus for instruction alignment | |
EP0992889A1 (en) | Interrupt processing during iterative instruction execution | |
US6499098B1 (en) | Processor with instruction qualifiers to control MMU operation | |
JP2000200212A (ja) | 巡回バッファ管理 | |
EP0992892B1 (en) | Compound memory access instructions | |
EP0992902A2 (en) | Dual interrupt vector mapping | |
JP2000215055A (ja) | パイプラインハ―ドウェアスタック |