(57)【特許請求の範囲】
【請求項１】
Ｍ個の座標を有するＮ個の入力ベクトルの結合として出力ベクトルを計算するための処理エンジンを含むデジタルシステムであって、
前記処理エンジンが、
係数レジスタと、
前記係数レジスタの選択されたビットが、第１のデジタル状態を有するか又は前記第１のデジタル状態とは逆の第２のデジタル状態を有するかを判定するため、前記選択されたビットをテストするためのテストユニットと、
レジスタのビットを選択するためのレジスタビットアドレスを生成するため、および、メモリアドレスを生成するためのアドレス発生器と、
第１のデータ入力を第２のデータ入力に選択的に加算して和を生成する、又は第２のデータ入力から第１のデータ入力を選択的に減算して差を生成するための算術演算ユニットと、
データを格納するためのデータレジスタファイルと、
を含む処理エンジンであって、
前記処理エンジンが、ビットテスト及び条件付き加算／減算オペレーションを示す演算フィールドと、アドレス指定フィールドと、データレジスタ選択フィールドとを含む複合命令に応答して、
前記アドレス発生器に、デジタル状態を判定するために前記テストユニットがテストするため前記係数レジスタのビットを選択させ、前記ビットは前記アドレス指定フィールドによって特定され、
前記アドレス発生器に、メモリからデータを検索するためメモリアドレスを生成させ、前記アドレスは前記アドレス指定フィールドで特定され、
前記算術演算ユニットの第２の入力へ供給するため、前記データレジスタ選択フィールドによって特定されるデータレジスタファイル内のレジスタからデータを呼び出し、
前記アドレス指定フィールドによって特定される前記メモリアドレスから呼び出されたデータを前記算術演算ユニットの前記第１のデータ入力へ供給し、
前記テストユニットが、前記係数レジスタの前記選択されたビットが前記第１のデジタル状態を有すると判定する場合、前記算術演算ユニットに、前記第１のデータ入力を前記第２のデータ入力に加算させ、前記テストユニットが、前記係数レジスタの前記選択されたビットが前記第２のデジタル状態を有すると判定する場合、前記算術演算ユニットに、前記第２のデータ入力から前記第１のデータ入力を減算させ、更に、
前記データレジスタ選択フィールドによって特定される前記データレジスタファイル内のレジスタに、前記算術演算ユニットの和又は差出力を格納する、
ように動作可能な、
デジタルシステム。
【請求項２】
請求項１に記載のデジタルシステムであって、
前記処理エンジンは、更に、前記算術演算ユニット内の前記第２のデータ入力と結合する前に、前記アドレス指定フィールドによって特定される前記メモリアドレスから呼び出された前記データを固定量だけ数値的に右シフトするように動作可能な、
デジタルシステム。
【請求項３】
請求項１に記載のデジタルシステムであって、
前記複合命令は、更に、固定の又は可変のシフトインジケータ及び可変シフト量を特定し、
前記処理エンジンは、更に、
前記複合命令の前記固定の又は可変のシフトインジケータが固定シフトを特定する場合、前記算術演算ユニット内の前記第２のデータ入力と結合する前に、前記アドレス指定フィールドによって特定される前記メモリアドレスから呼び出された前記データを固定量だけ数値的に右シフトさせ、
前記複合命令の前記固定の又は可変のシフトインジケータが可変シフトを特定する場合、前記算術演算ユニット内の前記第２のデータ入力と結合する前に、前記アドレス指定フィールドによって特定される前記メモリアドレスから呼び出された前記データを前記可変量だけ数値的に右シフトさせる、
ように動作可能な、
デジタルシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル処理システムにおける線形ベクトルの計算に関する。
【０００２】
【従来の技術】
特に、本発明は、Ｎ個の係数を有するＮ個のベクトル
【０００３】
【外２】
0004355410.tif 000002
【０００４】
（以下、
【０００５】
【外３】
0004355410.tif 000003
【０００６】
は「ＶＸ」と記す。）の一次結合として定義される任意のベクトル
【０００７】
【外４】
0004355410.tif 000004
【０００８】
（以下、「ＶＹ」と記す。）の計算に関する。
【０００９】
【数１】
0004355410.tif 000005
【００１０】
いくつかの信号処理アプリケーション、たとえばＧＳＭ（Global System for Mobiles）ハーフレートボコーダの処理演算は、
【００１１】
【外５】
0004355410.tif 000006
【００１２】
係数に対する有効なアルゴリズム依存処理を必要とする。このような処理演算の例は、
係数の円順列と、
係数の値の補数処理とである。
【００１３】
典型的なデジタル信号プロセッサ（ＤＳＰ）のインプリメンテーションは次のようである。
まず、
【００１４】
【外６】
0004355410.tif 000007
【００１５】
係数が、倍数ビット（１６，３２，．．．）で符号化された分数（１／２，−１／２）にビット表現（０，１）から変換される。次に、各ＶＹベクトル座標
【００１６】
【外７】
0004355410.tif 000008
【００１７】
が、Ｎステップアルゴリズムにより計算される。計算は、次式で表される乗算および累算ユニットにより行われ、
【００１８】
【数２】
0004355410.tif 000009
【００１９】
ここで、
【００２０】
【外８】
0004355410.tif 000010
【００２１】
はベクトルＶＸiの座標である。
【００２２】
２つのメモリオペランド（Ｃi，Ｘij）および乗算オペランドが計算の各ステップに必要であることが分かるであろう。係数アドレス指定がアドレス発生ユニットを使用して行われ、必要ならば、間接メモリアドレス指定、たとえば巡回ポスト変更アドレス指定が行われる。
【００２３】
この既知の方法の欠点は、多数のメモリアドレス指定演算およびオペランドフェッチ演算を必要とすることである。そのため、バスの可用性が低減され、すべてのバス演算を駆動するのに大きな消費電力が必要となる。乗算演算の使用にも大きな消費電力が必要である。
【００２４】
【発明が解決しようとする課題】
現在の処理エンジン設計では、生態学的および経済的見地の両方から消費電力を低減することが望ましい。特に、限定的ではないが、移動体電気通信応用などの移動体処理応用では、必要以上に性能を犠牲にすることなく消費電力をできるだけ低く維持することが望ましい。
【００２５】
【課題を解決するための手段】
本発明の第１の態様によれば、Ｎ個の係数を有するＮ個の入力ベクトルの一次結合として出力ベクトルを計算する処理エンジンが提供される。処理エンジンは、第１の入力ベクトルに対するＮ個の係数の表現を保持する係数レジスタを含んでいる。各係数表現に対する係数レジスタの選択部分をテストするテストユニットが設けられている。係数表現のテスト結果に応じて第２の入力ベクトルに対する入力ベクトル座標の選択的加算および／または減算によって出力ベクトルの各座標を計算する算術演算ユニットが設けられている。
【００２６】
本発明の一実施例では、線形ベクトルの結合の計算に関して従来技術に比べていくつかの利点を達成することができる。
【００２７】
ＭＡＣ命令ではなくＡＬＵ命令と組み合わせたテスト命令（たとえば、ビットテスト命令）が使用されるため、序文に記載した従来技術に従って作動する処理エンジンの消費電力を低減することができる。また、計算のステップ当たり２つのデータメモリアクセスではなくたった一つのデータメモリアクセスが必要とされる。
【００２８】
メモリリソースアクセス競合によるプロセッサストールがないため、実行性能は、序文に記載した従来技術に従って作動する処理エンジンのそれとほぼ同等である。また、所望により、並列実行を行って１サイクルの最小オーバヘッドを隠蔽することができる。
【００２９】
アドレス発生ユニットを使用してＣＰＵレジスタにメモリアドレスおよびビットアドレスを発生することができるフレキシブルアドレス指定が提供される。
ハードウェアオーバヘッドは最小である。
【００３０】
本発明の一実施例では、
第１の入力ベクトルに対してビット（０，１）として表される
【００３１】
【外９】
0004355410.tif 000011
【００３２】
係数が、ＣＰＵレジスタに格納される。
【００３３】
出力ベクトルＶＹの各座標は、Ｎ＋１ステップアルゴリズムで計算される。
その計算は、ＡＬＵユニットと並列に作動するビットテストユニットで行われる。
【００３４】
【数３】
0004355410.tif 000012
【００３５】
計算のステップ
【００３６】
【外１０】
0004355410.tif 000013
【００３７】
において、
ＣＰＵレジスタのビットＣi+1がアドレス指定され、
テストされたビットはテンポラリレジスタに格納され、
第２の入力ベクトルＸijの座標の条件付き加算／減算が、そのテストされたビットに基づいて行われる。
【００３８】
係数テスト結果に応じた第２の入力ベクトルの座標の選択的加算／減算の前に係数テスト結果を格納するテスト状態レジスタを設けることができる。
【００３９】
テストユニットがテストする適切な係数表現（たとえば、１以上のビット）を保持する係数レジスタの一部（たとえば、ビット位置またはビットフィールド）を選択するレジスタビットポインタアドレスを発生するアドレス発生器を設けることができる。同じまたは異なるアドレス発生器が、第２の入力ベクトルに対する座標を検索するためのメモリアドレスを発生することもできる。同じデータアドレス発生ハードウェアが使用される場合には、シリコンが経済的に使用され、使用時の消費電力も経済的となる。係数レジスタは、Ｎよりも多いビットを含むことができる。ポスト変更を伴う巡回ビットアドレス指定を使用して、レジスタを効率的に使用し、係数をラップラウンドまたはモジュロ形式で変更することができる。
【００４０】
メモリオペランドがフェッチされ、係数表現（たとえば、ビット）が計算の各ステップに対してテストされる。テストユニットは、ビットテストユニットとすることができる。
【００４１】
本発明の一例では、ビットテストユニットは、ベクトルＶＹの座標ＶＹjの計算のステップｉ＋１で作動して係数Ｃi+1をテストすることができ、また、算術演算装置は、それと並列に作動して計算のステップｉで実行された係数レジスタのビットＣiのテスト結果に応じてオペランドＸijの条件付き加算／減算を実行することができる。
【００４２】
したがって、出力ベクトル座標の計算は、一連のＮ＋１ステップとして実行され得る。
【００４３】
処理エンジンは、デジタル信号プロセッサの形とすることができ、集積回路に集積することができる。
【００４４】
本発明は、データ入力装置，ディスプレイ，アンテナおよび上述した処理エンジンを含む電気通信装置も提供する。
【００４５】
本発明の他の態様によれば、処理エンジンでＮ個の係数を有する入力ベクトルの一次結合として出力ベクトルを計算する方法が提供される。この方法は、
第１の入力ベクトルのＮ個の係数の各々の表現を係数レジスタに保持するステップと、
第１の入力ベクトルの各係数表現を選択的にテストするステップと、
第１の入力ベクトルの係数表現のテスト結果に応じた第２のベクトルの座標の選択的加算および／または減算によって出力ベクトルの座標を計算するステップと、を含む。
【００４６】
本発明の一実施例では、出力ベクトルＶＹの座標の計算は一連のＮ＋１ステップとして実行され、計算のステップ
【００４７】
【外１１】
0004355410.tif 000014
【００４８】
において、
第１の入力ベクトルの係数を表すビットＣi+1が、そのビットをテストする係数レジスタでアドレス指定され、
テストされたビットが、ビットテスト結果レジスタに格納され、
第２の入力ベクトルのＸij座標の条件付き加算および減算の１つが、計算のステップｉで実行された係数レジスタのビットＣiのテストの結果としてビットテストレジスタに格納されたビットに応じて実行される。
【００４９】
１つのメモリオペランド（Ｘij）しか計算の各ステップに対して必要としないことが分かるであろう。係数アドレス指定は、アドレス発生ユニットを介して行うことができ、任意の間接レジスタビットアドレス指定が使用される（たとえば、巡回ポスト変更）。
【００５０】
【発明の実施の形態】
本発明は、たとえば特定用途集積回路（ＡＳＩＣ）で実現されるデジタル信号プロセッサ（ＤＳＰ）に特に応用されるが、他の形式の処理エンジンにも応用される。
【００５１】
図１は、本発明の一実施例を有するマイクロプロセッサ１０のブロック図である。マイクロプロセッサ１０は、デジタル信号プロセッサ（ＤＳＰ）である。分かり易くするために、図１は、マイクロプロセッサ１０の本発明の一実施例を理解するのに関係のある部分のみを示す。ＤＳＰの一般的構造の詳細は、よく知られており、他で容易に確かめることができる。たとえば、フレデリック・ブートウドらの米国特許第５，０７２，４１８号には、ＤＳＰが詳細に記載されており、本開示の一部としてここに援用する。ギャリー・スオボダらの米国特許第５，３２９，４７１号には、ＤＳＰのテストおよびエミュレート方法が詳細に記載されており、本開示の一部としてここに援用する。マイクロプロセッサの分野の当業者であれば本発明を製造し使用できるように、マイクロプロセッサ１０の本発明の一実施例に関連する部分の詳細が、以下に十分詳しく説明される。
【００５２】
本発明の態様から利益を得ることができるいくつかのシステムの例が、本開示の一部としてここに援用される米国特許第５，０７２，４１８号に、特に米国特許第５，０７２，４１８号の図２〜図１８に記載されている。性能を改善するかコストを低減する本発明の一態様を組み入れたマイクロプロセッサを使用して、米国特許第５，０７２，４１８号に記載されたシステムをさらに改善することができる。そのようなシステムは、限定はしないが、産業プロセスコントロール，自動車システム，モータコントロール，ロボットコントロールシステム，衛星電気通信システム，エコーキャンセリングシステム，モデム，ビデオイメージングシステム，音声認識システムおよび暗号付ボコーダ−モデムシステムなどを含む。
【００５３】
図１のマイクロプロセッサのさまざまなアーキテクチュア上の特徴および完全な命令セットの説明が、同じ譲受人による特許出願第 号（ＴＩ−２８４３３）に記載されており、本開示の一部としてここに援用する。
【００５４】
次に、本発明によるプロセッサの一例の基本的アーキテクチュアについて説明する。
図１は、本発明の一つの典型的な実施例を形成するプロセッサ１０の全体略図である。プロセッサ１０は、処理エンジン１００とプロセッサバックプレーン２０とを含んでいる。本実施例では、プロセッサは、特定用途集積回路（ＡＳＩＣ）に実現されたデジタル信号プロセッサ１０である。
【００５５】
図１に示すように、処理エンジン１００は、処理コア１０２と処理コア１０２を処理コア１０２の外部のメモリユニットとインターフェイスさせるメモリインターフェイスすなわち管理ユニット１０４とを有する中央処理装置（ＣＰＵ）を形成する。
【００５６】
プロセッサバックプレーン２０は、バックプレーンバス２２を含み、それには処理エンジンのメモリ管理ユニット１０４が接続されている。バックプレーンバス２２には、命令キャッシュメモリ２４，周辺装置２６および外部インターフェイス２８も接続されている。
【００５７】
他の実施例では、異なる構成および／または異なる技術を使用して本発明を実現できることが分かるであろう。たとえば、処理エンジン１００はプロセッサ１０を形成することができ、プロセッサバックプレーン２０はそこから分離されている。処理エンジン１００は、たとえば、バックプレーンバス２２，周辺装置および外部インターフェイスを支持するバックプレーン２０から独立してその上に搭載されたＤＳＰであり得る。処理エンジン１００は、たとえば、ＤＳＰではなくマイクロプロセッサとすることができ、ＡＳＩＣ技術以外の技術で実現することができる。処理エンジンまたは処理エンジンを含むプロセッサは１つ以上の集積回路に実現することができる。
【００５８】
図２は、処理コア１０２の一実施例の基本構造を示す。図から分かるように、処理コア１０２は、４つの要素、すなわち、命令バッファユニット（Ｉユニット）１０６と３つの実行ユニットとを含んでいる。実行ユニットは、プログラムフローユニット（Ｐユニット）１０８と、アドレスデータフローユニット（Ａユニット）１１０と、命令バッファユニット（Ｉユニット）１０６から復号された命令を実行しプログラムフローを制御かつ監視するデータ計算ユニット（Ｄユニット）１１２とである。
【００５９】
図３は、処理コア１０２のＰユニット１０８，Ａユニット１１０およびＤユニット１１２を詳細に示すとともに、処理コア１０２のさまざまな要素を接続するバス構造を示す。Ｐユニット１０８は、たとえば、ループ制御回路と、ＧｏＴｏ／分岐制御回路と、リピートカウンタレジスタおよび割込みマスク，フラグまたはベクトルレジスタのようなプログラムフローを制御し監視するさまざまなレジスタとを含んでいる。Ｐユニット１０８は、汎用データライトバス（ＥＢ，ＦＢ）１３０，１３２とデータリードバス（ＣＢ，ＤＢ）１３４，１３６とアドレス定数バス（ＫＡＢ）１４２とに結合されている。さらに、Ｐユニット１０８は、ＣＳＲ，ＡＣＢおよびＲＧＤとラベルされたさまざまなバスを介してＡユニット１１０およびＤユニット１１２内のサブユニットに結合されている。
【００６０】
図３に示すように、本実施例では、Ａユニット１１０はレジスタファイル３０とデータアドレス発生サブユニット（ＤＡＧＥＮ）３２と算術および論理演算装置（ＡＬＵ）３４とを含んでいる。Ａユニットレジスタファイル３０はさまざまなレジスタを含み、それら中には、アドレス発生だけでなくデータフローにも使用できる１６ビットポインタレジスタ（ＡＲ０，．．．，ＡＲ７）およびデータレジスタ（ＤＲ０，．．．，ＤＲ３）がある。さらに、レジスタファイルは、１６ビット巡回バッファレジスタと７ビットデータページレジスタとを含んでいる。汎用バス（ＥＢ，ＦＢ，ＣＢ，ＤＢ）１３０，１３２，１３４，１３６だけでなく、データ定数バス１４０およびアドレス定数バス１４２がＡユニットレジスタファイル３０に結合されている。Ａユニットレジスタファイル３０は、それぞれ反対方向に作動する１方向性バス１４４，１４６によってＡユニットＤＡＧＥＮユニット３２に結合されている。ＤＡＧＥＮユニット３２は、１６ビットＸ／Ｙレジスタと、たとえば処理エンジン１００内のアドレス発生を制御し監視する係数およびスタックポインタレジスタとを含んでいる。
【００６１】
Ａユニット１１０は、加算，減算およびＡＮＤ，ＯＲおよびＸＯＲ論理演算子などのＡＬＵに典型的に関連する機能だけでなくシフタ機能も含むＡＬＵ３４も含んでいる。ＡＬＵ３４は、汎用バス（ＥＢ，ＤＢ）１３０，１３６および命令定数データバス（ＫＤＢ）１４０にも結合されている。ＡユニットＡＬＵは、Ｐユニット１０８レジスタファイルからレジスタ内容を受信するＰＤＡバスによってＰユニット１０８に結合されている。ＡＬＵ３４は、アドレスおよびデータレジスタ内容を受信するバスＲＧＡ，ＲＧＢとレジスタファイル３０のアドレスおよびデータレジスタに転送するバスＲＧＤとによってＡユニットレジスタファイル３０にも結合されている。
【００６２】
図から分かるように、Ｄユニット１１２は、Ｄユニットレジスタファイル３６と、ＤユニットＡＬＵ３８と、Ｄユニットシフタ４０と、２つの乗算および累算ユニット（ＭＡＣ１，ＭＡＣ２）４２，４４とを含んでいる。Ｄユニットレジスタファイル３６とＤユニットＡＬＵ３８とＤユニットシフタ４０とは、バス（ＥＢ，ＦＢ，ＣＢ，ＤＢ，ＫＤＢ）１３０，１３２，１３４，１３６，１４０に結合され、また、ＭＡＣユニット４２，４４は、バス（ＣＢ，ＤＢ，ＫＤＢ）１３４，１３６，１４０とデータリードバス（ＢＢ）１４４とに結合されている。Ｄユニットレジスタファイル３６は、４０ビット累算器（ＡＣ０，．．．，ＡＣ３）と１６ビット遷移レジスタとを含んでいる。また、Ｄユニット１１２は、Ａユニット１１０の１６ビットポインタおよびデータレジスタをソースとして利用したり、４０ビット累算器の他にデスティネーションレジスタを利用することができる。Ｄユニットレジスタファイル３６は、累算器ライトバス（ＡＣＷ０，ＡＣＷ１）１４６，１４８を介してＤユニットＡＬＵ３８およびＭＡＣ１＆２  ４２，４４から、また、累算器ライトバス（ＡＣＷ１）１４８を介してＤユニットシフタ４０から、データを受信する。データは、累算器リードバス（ＡＣＲ０，ＡＣＲ１）１５０，１５２を介してＤユニットレジスタファイル累算器からＤユニットＡＬＵ３８，Ｄユニットシフタ４０およびＭＡＣ１＆２  ４２，４４に読み出される。ＤユニットＡＬＵ３８とＤユニットシフタ４０とは、ＥＦＣ，ＤＲＢ，ＤＲ２およびＡＣＢとラベルされたさまざまなバスを介してＡユニット１０８のサブユニットにも結合されている。
【００６３】
図４を参照すると、３２ワード命令バッファキュー（ＩＢＱ）５０２を含む命令バッファユニット１０６が示されている。ＩＢＱ５０２は、８ビットバイト５０６に論理的に分割された３２×１６ビットレジスタ５０４を含んでいる。命令は、３２ビットプログラムバス（ＰＢ）１２２を介してＩＢＱ５０２に到来する。命令は、ローカルライトプログラムカウンタ（ＬＷＰＣ）５３２によって指示される位置に３２ビットサイクルでフェッチされる。ＬＷＰＣ５３２は、Ｐユニット１０８に位置されたレジスタに含まれている。Ｐユニット１０８は、ローカルリードプログラムカウンタ（ＬＲＰＣ）５３６レジスタとライトプログラムカウンタ（ＷＰＣ）５３０レジスタおよびリードプログラムカウンタ（ＲＰＣ）５３４レジスタとをも含んでいる。ＬＲＰＣ５３６は、命令デコーダ５１２，５１４にロードされる次の一つまたは複数の命令のＩＢＱ５０２内の位置を指示する。すなわち、ＬＲＰＣ５３４は、デコーダ５１２，５１４に現在ディスパッチされている命令のＩＢＱ５０２内の位置を指示する。ＷＰＣは、パイプラインに対する命令コードの次の４バイトの始まりのプログラムメモリ内のアドレスを指示する。ＩＢＱ内への各フェッチに対して、プログラムメモリからの次の４バイトが命令境界とは無関係にフェッチされる。ＲＰＣ５３４は、デコーダ５１２，５１４に現在ディスパッチされている命令のプログラムメモリ内のアドレスを指示する。
【００６４】
命令は、４８ビットワードに形成され、マルチプレクサ５２０，５２１を介して４８ビットバス５１６によって命令デコーダ５１２，５１４にロードされる。当業者ならば、命令は４８ビット以外のワードに形成することができること、また、本発明は前記した特定の実施例に限定されるものではないことが、分かるであろう。
【００６５】
バス５１６は、任意の１命令サイクル中に、デコーダ当たり１つずつ、最大２つの命令をロードすることができる。命令の組合せは、４８ビットバスの両端間にわたって適合する８，１６，２４，３２，４０および４８ビットのフォーマットの任意の組合せとすることができる。１サイクル中に１命令しかロードできない場合には、デコーダ１，５１２がデコーダ２，５１４に優先してロードされる。次に、各命令は、それらを実行するために、また、命令または演算が実行されるべきデータにアクセスするために、各機能ユニットに転送される。命令デコーダに通される前に、命令はバイト境界上でアラインされる。アライメントは、その復号中に前の命令に対して引き出されたフォーマットに基づいて行われる。バイト境界を有する命令のアライメントに関連する多重化は、マルチプレクサ５２０，５２１で実行される。
【００６６】
プロセッサコア１０２は７ステージパイプラインを介して命令を実行し、その各ステージは図５を参照して説明される。
【００６７】
パイプラインの第１ステージは、ＰＲＥ−ＦＥＴＣＨ（Ｐ０）ステージ２０２であり、このステージ中に、メモリインターフェイスまたはメモリ管理ユニット１０４のアドレスバス（ＰＡＢ）１１８上にアドレスを表明することによって次のプログラムメモリ位置がアドレス指定される。
【００６８】
次のステージ、ＦＥＴＣＨ（Ｐ１）ステージ２０４では、プログラムメモリが読み出され、Ｉユニット１０６がメモリ管理ユニット１０４からＰＢバス１２２を介して充填される。
【００６９】
パイプラインはＰＲＥ−ＦＥＴＣＨおよびＦＥＴＣＨステージ中に割り込まれて逐次プログラムフローを中断してプログラムメモリ内の他の命令、たとえば分岐命令を指示することができる点で、ＰＲＥ−ＦＥＴＣＨおよびＦＥＴＣＨステージは残りのパイプラインステージから独立している。
【００７０】
次に、命令バッファ内の次の命令が、第３ステージＤＥＣＯＤＥ（Ｐ２）２０６でデコーダ５１２または複数のデコーダ５１４にディスパッチされ、そこで、命令は、復号されて、その命令を実行する実行ユニット、たとえばＰユニット１０８，Ａユニット１１０またはＤユニット１１２にディスパッチされる。復号ステージ２０６は、命令のクラスを示す第１の部分と命令のフォーマットを示す第２の部分と命令に対するアドレス指定モードを示す第３の部分とを含む命令の少なくとも一部を復号することを含んでいる。
【００７１】
次のステージはＡＤＤＲＥＳＳ（Ｐ３）ステージ２０８であり、そこでは、命令内で使用されるデータのアドレスが計算されるか、命令がプログラム分岐すなわちジャンプを必要とする場合には新しいプログラムアドレスが計算される。各計算は、Ａユニット１１０またはＰユニット１０８でそれぞれ行われる。
【００７２】
ＡＣＣＥＳＳ（Ｐ４）ステージ２１０では、リードオペランドのアドレスが出力されたのち、Ｘｍｅｍ間接アドレス指定モードを有するＤＡＧＥＮ Ｘ演算子でアドレスが発生されているメモリオペランドが、間接アドレス指定されたＸメモリ（Ｘｍｅｍ）から読み出される。
【００７３】
パイプラインの次のステージはＲＥＡＤ（Ｐ５）ステージ２１２であり、そこでは、Ｙｍｅｍ間接アドレス指定モードを有するＤＡＧＥＮ Ｙ演算子内または係数アドレスモードを有するＤＡＧＥＮ Ｃ演算子内でアドレスが発生されているメモリオペランドが、読み出される。命令の結果が書き込まれるメモリ位置のアドレスが出力される。
【００７４】
デュアルアクセスの場合には、リードオペランドをＹパスで発生し、ライトオペランドをＸパスで発生することもできる。
【００７５】
最後に、命令がＡユニット１１０内またはＤユニット１１２内で実行される実行ＥＸＥＣ（Ｐ６）ステージ２１４がある。次に、結果がデータレジスタまたは累算器に格納されるか、リード／モディファイ／ライト用またはストア命令用のメモリに書き込まれる。さらに、シフト演算がＥＸＥＣステージ中に累算器内のデータになされる。
【００７６】
次に、パイプラインプロセッサの動作の基本的原理について図６を参照して説明する。図６から分かるように、第１の命令３０２に対して、連続パイプラインステージが期間Ｔ1〜Ｔ7にわたって行われる。各期間はプロセッサマシンクロックに対するクロックサイクルである。前の命令が次のパイプラインステージに移行しているため、第２の命令３０４が期間Ｔ2でパイプラインに入ることができる。第３の命令３０６に対して、ＰＲＥ−ＦＥＴＣＨステージ２０２が期間Ｔ3で行われる。図６から分かるように、７ステージパイプラインに対して、合計７つの命令を同時に処理することができる。７つの命令３０２〜３１４の全てに対して、図６は期間Ｔ7でそれら全てが処理中であることを示している。このような構造は命令の処理に一形式の並列性を付加する。
【００７７】
図７に示すように、本発明のこの実施例は、２４ビットアドレスバス１１４および双方向１６ビットデータバス１１６を介して外部メモリユニット（不図示）に結合されるメモリ管理ユニット１０４を含んでいる。さらに、メモリ管理ユニット１０４は２４ビットアドレスバス１１８および３２ビット双方向データバス１２０を介してプログラム格納メモリ（不図示）に結合されている。メモリ管理ユニット１０４は３２ビットプログラムリードバス（ＰＢ）１２２を介してマシンプロセッサコア１０２のＩユニット１０６にも結合されている。Ｐユニット１０８，Ａユニット１１０およびＤユニット１１２はデータリードおよびデータライトバスおよび対応するアドレスバスを介してメモリ管理ユニット１０４に結合されている。Ｐユニット１０８はさらにプログラムアドレスバス１２８に結合されている。
【００７８】
より詳細には、Ｐユニット１０８は２４ビットプログラムアドレスバス１２８と２つの１６ビットデータライトバス（ＥＢ，ＦＢ）１３０，１３２と２つの１６ビットデータリードバス（ＣＢ，ＤＢ）１３４，１３６とによってメモリ管理ユニット１０４に結合されている。Ａユニット１１０は、２つの２４ビットデータライトアドレスバス（ＥＡＢ，ＦＡＢ）１６０，１６２と２つの１６ビットデータライトバス（ＥＢ，ＦＢ）１３０，１３２と３つのデータリードアドレスバス（ＢＡＢ，ＣＡＢ，ＤＡＢ）１６４，１６６，１６８と２つの１６ビットデータリードバス（ＣＢ，ＤＢ）１３４，１３６とを介してメモリ管理ユニット１０４に結合されている。Ｄユニット１１２は、２つのデータライトバス（ＥＢ，ＦＢ）１３０，１３２と３つのデータリードバス（ＢＢ，ＣＢ，ＤＢ）１４４，１３４，１３６とを介してメモリ管理ユニット１０４に結合されている。
【００７９】
図７は、たとえば分岐命令を転送する、Ｉユニット１０６からＰユニット１０８への命令の通過を参照符号１２４で表示している。さらに、図７は、Ｉユニット１０６からＡユニット１１０およびＤユニット１１２へのデータの通過を参照符号１２６，１２８でそれぞれ表示している。
【００８０】
本発明のこの実施例では、処理エンジン１００はいくつかのフォーマットでマシン命令に応答する。さまざまなフォーマットのこのような命令の例を以下に示す。
【００８１】
８ビット命令：○○○○ ○○○○
これは、８ビット命令、たとえばメモリマップ修飾子（ＭＭＡＰ()）またはリードポート修飾子（readport()）を表す。このような修飾子は単に８ビット操作符号（○○○○ ○○○○）を含むのみである。このような場合、並列性はインプリシットである。
【００８２】
１６ビット命令：○○○○ ○○○○Ｅ ＦＳＳＳ ＦＤＤＤ
これは、１６ビット命令、たとえばデスティネーションレジスタの内容（たとえば、ｄｓｔ）がそのレジスタの前の内容（ｄｓｔ）とソースレジスタの内容（ｓｒｃ）との和となる命令、すなわち、
【００８３】
【数４】
0004355410.tif 000015
【００８４】
の一例を表わす。
【００８５】
このような命令は、１ビットパラレルイネーブルフィールド（Ｅ）と４ビットソースレジスタ識別子（ＦＳＳＳ）と４ビットデスティネーションレジスタ識別子（ＦＤＤＤ）とを有する７ビット操作符号（○○○○ ○○○）である。
【００８６】
１６ビット命令：○○○○ ＦＤＤＤ ＰＰＰＭ ＭＭＭＩ
これは、たとえばデスティネーションレジスタの内容（たとえば、ｄｓｔ）がメモリ位置の内容（Ｓｍｅｍ）となる、すなわち、
【００８７】
【数５】
0004355410.tif 000016
【００８８】
１６ビット命令のもう１つの例である。
【００８９】
このような命令は、４ビット操作符号（○○○○）と４ビットデスティネーションレジスタ識別子（ＦＤＤＤ）と３ビットポインタアドレス（ＰＰＰ）と４ビットアドレス変更子（Ｍ ＭＭＭ）と直接／間接アドレスインジケータ（Ｉ）とを含んでいる。
【００９０】
２４ビット命令：○○○○ ○○○Ｅ ＬＬＬＬ ＬＬＬＬ ｏＣＣＣ ＣＣＣＣ
これは、２４ビット命令、たとえば条件分岐命令および条件が満たされる場合のオフセット（Ｌ８）を表す、すなわち、
【００９１】
【数６】
0004355410.tif 000017
【００９２】
の一例を表わす。
【００９３】
このような命令は、１ビットパラレルイネーブルフィールド（Ｅ）と８ビット分岐オフセット（ＬＬＬＬ ＬＬＬＬ）と１ビット操作符号拡張（ｏ）と７ビット条件フィールド（ＣＣＣ ＣＣＣＣ）とを有する７ビット操作符号（○○○○ ○○○）を含んでいる。
【００９４】
２４ビット命令：○○○○ ○○○○ ＰＰＰＭ ＭＭＭＩ ＳＳＤＤ ｏｏＵ％
これは、２４ビット命令のもう１つの例、たとえば累算器の内容（ＡＣy）がもう１つの累算器の内容（ＡＣx）およびメモリ位置の内容（随意丸めがある）の二乗の和を丸めた結果となり、データレジスタの内容（ＤＲ３）が随意メモリ位置の内容となる単一メモリオペランド命令、すなわち、
【００９５】
【数７】
0004355410.tif 000018
【００９６】
のもう１つの例である。
【００９７】
このような命令は、８ビット操作符号（○○○○ ○○○○）と３ビットポインタアドレス（ＰＰＰ）と４ビットアドレス変更子（Ｍ ＭＭＭ）と１ビット直接／間接アドレスインジケータフィールド（Ｉ）と２ビットソース累算器識別子（ＳＳ）と２ビットデスティネーション累算器識別子（ＤＤ）と２ビット操作符号拡張（ｏｏ）と更新条件フィールド（ｕ）と１ビット丸めオプションフィールド（％）とを含んでいる。
【００９８】
３２ビット命令：○○○○ ○○○○ ＰＰＰＭ ＭＭＭＩ ＫＫＫＫ ＫＫＫＫ ＫＫＫＫ ＫＫＫＫ
これは、３２ビット命令、たとえばメモリ位置（Ｓｍｅｍ）の一定値（Ｋ１６）との符号比較に応じてテストレジスタの内容（ＴＣ１）が１または０に設定される命令、すなわち、
【００９９】
【数８】
0004355410.tif 000019
【０１００】
の一例である。
【０１０１】
このような命令は、８ビット操作符号（○○○○ ○○○○）と３ビットポインタアドレス（ＰＰＰ）と４ビットアドレス変更子（Ｍ ＭＭＭ）と１ビット直接／間接アドレスインジケータフィールド（Ｉ）と１６ビット定数フィールド（ＫＫＫＫ ＫＫＫＫ ＫＫＫＫ ＫＫＫＫ）とを含んでいる。
【０１０２】
ビット操作命令は、メモリアクセスを行う単一メモリ命令と同じフォーマットを有している。図８は、このような命令の一例を示す。ビット操作命令の例は、ビットテスト命令，ビットセット命令，ビットクリア命令およびビット補数命令である。図８に示すように、ビット操作命令９００は、操作符号に対する演算フィールド９０２とアドレス指定フィールド９０４とデータレジスタ選択フィールド９０６とを含んでいる。下記の表１に示すように、命令のアドレス指定フィールドは、実行された命令とは独立してＣＰＵのアドレス発生を制御する。
【０１０３】
【表１】
0004355410.tif 000020
【０１０４】
序文で述べたように、本発明は、デジタル処理システムにおける線形ベクトルの結合に関する。
【０１０５】
後述するように、本発明のこの実施例は、ビットテストの結果に応じて加算または減算を実行する命令を使用する。
このタイプのいくつかの命令フォーマットが下記の表２に示されている。
【０１０６】
【表２】
0004355410.tif 000021
【０１０７】
図９は、ベクトルの一次結合の従来のインプリメンテーションの表現である。
【０１０８】
最初に、
【０１０９】
【外１２】
0004355410.tif 000022
【０１１０】
係数が、ビット表現（０，１）から２n補数形式のＮビットで符号化された分数（１／２，−１／２）に変換される。次に、ＶＹベクトル座標
【０１１１】
【外１３】
0004355410.tif 000023
【０１１２】
がＮステップアルゴリズムにより計算される。計算は、乗算および累算ユニットにより次式で表されるように行われる。
【０１１３】
【数９】
0004355410.tif 000024
【０１１４】
ここで、
【０１１５】
【外１４】
0004355410.tif 000025
【０１１６】
はベクトルＶＸiの座標である。
【０１１７】
図１０は、本発明の一実施例に従って実施されるベクトルの一次結合の別の表現である。すなわち、本発明の一実施例において、ベクトルの一次結合は次式に従って計算される。
【０１１８】
【数１０】
0004355410.tif 000026
【０１１９】
ここで、係数Ｃi＝０は−１の乗算を表す。または、係数Ｃi＝０は＋１の乗算を表すことができる。
【０１２０】
ビット（０，１）として表される
【０１２１】
【外１５】
0004355410.tif 000027
【０１２２】
係数は、ＣＰＵレジスタ内に格納され、また、各ＶＹベクトル座標は、ＡＬＵユニットと並列動作するビットテストユニットによりＮ＋１ステップアルゴリズムで計算される。
【０１２３】
計算のステップ
【０１２４】
【外１６】
0004355410.tif 000028
【０１２５】
において、
− ＣＰＵのビットＣi+1がアドレス指定され、
− このビットがテンポラリレジスタでテストされ、
− Ｘijオペランドの条件付き加算／減算が実行される。
【０１２６】
図１１は、複合命令、特に条件付き加算／減算命令と並列のビットテスト命令を使用して図３に関して前記した処理エンジンの要素を制御する方法の全体略図である。
【０１２７】
簡単のため図１１の命令９００におけるフィールドの順序は図８に関して変更されていることに注意願いたい。
【０１２８】
アドレス指定フィールド９０４は、２つのアドレス、すなわち、ビットアドレスおよびメモリオペランドアドレスを含む。
【０１２９】
アドレスフィールド９０４の内容が、ライン９１２を介して第１および第２のマルチプレクサ９１８，９２２およびアドレス発生ユニット９１０（図３のＡユニットＤＡＧＥＮ３２の一部を形成する）に供給される。直接／間接ビットが第１のマルチプレクサ９１８に供給される。アドレスビットもライン９１２からライン９１４を介して第１のマルチプレクサ９１８に供給される。直接／間接アドレスビットにより表示されるアドレスが直接アドレスである場合には、ライン９１６を介して供給される直接／間接アドレスビットにより、マルチプレクサ９１８は、ライン９１４を介して供給される直接アドレスビットを選択できるようにされる。アドレスが間接アドレスである場合には、ライン９２４を介して第２のマルチプレクサ９２２に供給されるビットが、ポインタレジスタファイル９２０のレジスタの内容を選択する。第２のマルチプレクサ９２２への入力は、ポインタレジスタファイル９２０からのライン９２５によって形成される。ライン９２４上のビットにより識別されるポインタレジスタ９２０（図３のＡユニットレジスタファイル３０内のアドレスポインタレジスタＡＲX［１６］の１つとすることができる）の内容が、間接アドレス入力９２６を介して第１のマルチプレクサ９１８に供給される。この場合、ライン９１６を介して供給される直接／間接ビットは、マルチプレクサ９１８への間接アドレス入力９２６を選択する。その結果、適切な直接または間接アドレスがアドレス発生ユニット９１０に供給される。アドレス指定フィールド９０４から供給される変更演算ビットは、９０９においてアドレス発生ユニット９１０にも供給される。変更演算の結果である変更アドレスが、ライン９２８を介してアドレス発生ユニット９１０から出力されポインタレジスタファイル９２０に入力される。アドレス発生ユニット９１０からは発生アドレスも出力される。発生アドレスは、ライン９３０を介してデータメモリアドレスバス９３２に供給されてメモリオペランドと関連を持つか、ライン９３４を介してビット操作ユニット９５０に供給されてビットアドレスと関連を持つ。アドレス発生ユニット９１０は、ポスト変更を有する巡回アドレス指定を行うように構成することができる。同じまたは異なるハードウェアを使用して、ビットレジスタアドレス指定またはメモリオペランドアドレス指定用のアドレスを発生することができる。
【０１３０】
データレジスタ選択フィールド９０６の内容が第３および第４のマルチプレクサ９４６，９４７に供給される。第３のマルチプレクサ９４６に供給されるレジスタ選択ビットによって、データレジスタ９４０（図３のＡユニットレジスタファイル３０のデータレジスタＤＲX［１６］またはＡＲX［１６］とすることができる）の選択をライン９４８を介してビット操作ユニット９５０に出力することができる。このレジスタは係数
【０１３１】
【外１７】
0004355410.tif 000029
【０１３２】
を含む。レジスタは、係数に対して厳密に必要な長さ（たとえば、ＮビットではなくＮ＋１ビット）よりも長くすることができる。それにより、係数は、レジスタを“ラップ−ラウンド”するように配列して、ポスト変更を有する巡回ビットアドレス指定を利用してレジスタをアドレス指定することができる。すなわち、係数
【０１３３】
【外１８】
0004355410.tif 000030
【０１３４】
は最初にＮ＋１ビットレジスタの１からＮビットに保持されるものとする。すると、第１の変更ビットはビット位置Ｎに格納することができ、第２の変更ビットはビット位置１に格納することができ（位置１の前に格納されたビットは前のステップで既に使用されている）、以下同様である。ビット操作ユニットは、図３のＡユニットＡＬＵ３４の一部を形成することができる。そのため、補数ビットがライン９５６を介してビット操作ユニット９５０からデータレジスタファイル９４０に帰還される。ビット操作演算ビットがライン９５２，９６４を介して命令９００の演算フィールド９０２からビット操作ユニット９５０に供給される。ビット操作ユニット９５８の出力は、テスト状態レジスタファイル９６０（図３のＡユニットに対する状態レジスタのテストレジスＴＣ１またはＴＣ２とすることができる）に供給される。ライン９４２を介してデータレジスタ選択フィールド９０６から供給されるレジスタ選択ビットも第４のマルチプレクサ９４７に供給される。それにより、パス９６４を介してＡＬＵ９７０（図３のＤユニットＡＬＵ３８とすることができる）に入力するベクトルＶＹの部分座標ＶＹjを選択する累算器レジスタファイルＡＣX［４０］からの出力を選択することができる。ＡＬＵ演算ビットは、ライン９５２を介して演算フィールド９０２からも供給される。ＡＬＵ９７０には、データメモリリードバス９６８およびライン９６６を介してメモリ座標Ｘijも供給される。テストした係数Ｃiを含むテスト状態レジスタ／ファイル９６０からの出力は、ライン９６２を介してＡＬＵ９７０ｎｉ供給される。変更データは、ＡＬＵ９７０からデータレジスタファイル９４０に出力９７２されて、そこに格納される。
【０１３５】
図１２は、線形ベクトルの計算方法における一連のステップを示すフロー図である。本方法のさまざまなステップを図１１を参照して説明する。
【０１３６】
この方法に従って、ベクトルＶＹの各座標∀１≦ｊ≦Ｍが次々に計算される。
Ｓ０において、最初のベクトル座標Ｊ＝１についてプロセスが開始する。
Ｓ１において、最初の入力ベクトルに対する係数がデータレジスタファイル９４０に格納される。
Ｓ２において、その座標を計算するプロセスの最初のステップ（ステップｉ＝１）は、命令９００のアドレス指定フィールド９０４からのレジスタビットアドレス情報を使用したデータアドレス発生ユニット９１０におけるアドレス計算により決定される、データレジスタファイル９４０内のデータレジスタ９４０内のビットＣ1をアドレス指定することを含んでいる。このビットはテストされて、その結果（ここでは、テストしたビット値）がテスト状態レジスタファイル９６０に格納される。命令９００のアドレス指定フィールド９０４内のアドレス情報を使用して、最初のｘijメモリオペランドに対するアドレスもアドレス発生ユニットにおいて発生され、そのオペランドの取出しが行われる。
【０１３７】
Ｓ３において、このプロセスがステップｉ＋１に対して継続され、Ｓ２に示すステップがビットＣi+1について行われて、オペランドＸi+1,jに対するオペランドフェッチが開始される。並列して、Ｘijオペランドの条件付き加算／減算が行われる。これは、このプロセスのｉ＋１＝２からＮに対してステップＳ４，Ｓ５を介して繰り返される。したがって、各反復において、命令９００のアドレス指定フィールド９０４からのレジスタビットアドレス情報を使用したデータ発生ユニット９１０におけるアドレス計算により決定される、データレジスタファイル９４０内のデータレジスタ内のビットＣi+1がアドレス指定される。このビットはテストされて、その結果（ここでは、テストしたビット値）がテスト状態レジスタファイル９６０に格納される。命令９００のアドレス指定フィールド９０４内のアドレス情報を使用して、最初のメモリオペランドに対するアドレスもアドレス発生ユニットにおいて発生され、そのオペランドのフェッチが行われる。オペランドＸijの条件付き加算／減算もＡＬＵ９７０において行われる。ここでは、前のステップで格納されたＣiに対するテストされたビット値が１であれば、Ｘijが加算され、前のステップで格納されたＣiに対するテストされたビット値が０であれば、減算される。（もちろん、別の実施例では、テストされたビット値以外の値をビット状態レジスタファイルに格納してＡＬＵにおいて加算するか減算するかの決定を異なるものとすることができることに留意願いたい。しかしながら、最も直接的な方法は本実施例で説明したものである）。
【０１３８】
すなわち、計算の
【０１３９】
【外１９】
0004355410.tif 000031
【０１４０】
に対する各反復において、
ＣＰＵレジスタのビットＣi+1がアドレス指定され、
このビットがテンポラリレジスタにおいてテストされ、
Ｘijオペランドの条件付き加算／減算が行われる。
【０１４１】
Ｓ４において、Ｉ＜Ｎであれば、ＩはＳ５において増分されて、制御はＳ３に戻る。Ｉ＝Ｎであれば、制御はＳ６に通される。Ｓ６において、Ｘij（Ｉ＝Ｎ）の最終の条件付き加算／減算が行われる。
【０１４２】
Ｓ６において、ベクトルＶＹの座標がさらに計算され（すなわち、ｊ＜Ｍ）、Ｓ７において、パス９５６上の補数帰還によりデータレジスタファイル９４０内のデータレジスタ内の係数が更新される。前記したように、これはポスト変更を有する巡回ビットアドレス指定でも達成することができる。また、ｊの値が増分されて、制御はＳ２に戻る。
【０１４３】
それ以上座標が計算されない場合には、すなわちｊ＝Ｍの場合には、Ｓ８でベクトルＶＹの計算が終了する。
【０１４４】
したがって、このプロセスは下記の計算を行うことができる。
【０１４５】
【数１１】
0004355410.tif 000032
【０１４６】
図１３は、図１のプロセッサ１０を内蔵する集積回路４０の略図である。集積回路は特定用途集積回路（ＡＳＩＣ）技術を使用して実現することができる。図から分かるように、集積回路は複数の表面実装コンタクト４２を含んでいる。しかしながら、集積回路は、他の構成を含むことができ、たとえば、回路下面上の複数のピンがゼロ挿入力ソケット内に実装される構成や、その他任意の適切な構成とすることができる。
【０１４７】
たとえば図１３におけるような集積回路内に内蔵されるプロセッサ１０などの処理エンジンの１つの応用は、移動ワイヤレス電気通信装置などの電気通信装置である。図１４に、このような電気通信装置の一例を示す。図１４に示す特定の例では、電気通信装置は、キーボードまたはキーボード１２およびディスプレイ１４のような一体型ユーザ入力装置付き移動電話機１１である。ディスプレイは、たとえば液晶ディスプレイやＴＦＴディスプレイなどの適切な技術を使用して実現することができる。プロセッサ１０は、キーボード１２に接続され、そこで適切なキーボードアダプタ（不図示）を介してディスプレイ１４に接続され、そこで適切なディスプレイアダプタ（不図示）を介して電気通信インターフェイスすなわちトランシーバ１６、たとえば無線周波数（ＲＦ）回路を含むワイヤレス電気通信インターフェイスに接続される。無線周波数回路は、プロセッサ１０を含む集積回路４０に内蔵したり、独立したものとすることができる。
【０１４８】
２つのベクトルの一次結合を効率的に計算する方法，システムおよび装置について説明してきた。特定の実施例に関して説明してきたが、本発明はそれに限定はされず、発明の範囲内で多くの変更，追加および／または置換を行えることが分かるであろう。
【０１４９】
ここで使用した用語「加えられる」，「接続される」および「接続」は、電気接続経路内に付加素子がある場合も含めて、電気的に接続されることを意味する。
【０１５０】
実施例について本発明を説明してきたが、この明細書には制約的な意味合いはない。当業者ならば、この明細書を読めば本発明の他のさまざまな実施例が自明であろう。したがって、添付した特許請求の範囲は発明の真の範囲および精神に含まれる実施例のこのようないかなる変更も包含するものとする。
【０１５１】
本出願は１９９８年１０月６日に欧州で出願されたＳ．Ｎ．９８４０２４６５．３（ＴＩ−２７６７９ＥＵ）および１９９８年１０月６日に欧州で出願されたＳ．Ｎ．９８４０２４５５．４（ＴＩ−２８４３３ＥＵ）に優先権を請求するものである。
【図面の簡単な説明】
【図１】本発明の実施例に従ったプロセッサの略ブロック図である。
【図２】図１のプロセッサのコアの略図である。
【図３】図１のプロセッサのコアのさまざまな実行ユニットのより詳細な略ブロック図である。
【図４】図１のプロセッサの命令バッファキューおよび命令デコーダコントローラの略図である。
【図５】図１のプロセッサのパイプラインフェーズの表現である。
【図６】図１のプロセッサにおけるパイプラインの動作例の線図である。
【図７】図１のプロセッサのパイプラインの動作を説明するためのプロセッサのコアの略表現である。
【図８】ビットテスト命令の略表現である。
【図９】ベクトルの一次結合の従来の表現。
【図１０】本発明の実施例に従って実施されるベクトルの一次結合の代替表である。
【図１１】図１のプロセッサの要素の全体略図である。
【図１２】本発明に従った線形ベクトルの計算方法における一連のステップを示す略図である。
【図１３】図１のプロセッサを内蔵した集積回路の略表現である。
【図１４】図１のプロセッサを内蔵した電気通信装置の略表現である。
【符号の説明】
１０  マイクロプロセッサ
２０  プロセッサバックプレーン
２２  バックプレーンバス
２４  命令キャッシュメモリ
２６  周辺装置
２８  外部インターフェイス
３０  レジスタファイル
３２  データアドレス発生サブユニット
３４，９７０  ＡＬＵ
３６  Ｄユニットレジスタファイル
３８  ＤユニットＡＬＵ
４０  Ｄユニットシフタ
４２，４４  累算ユニット
１００  処理エンジン
１０２  処理コア
１０４  インターフェイスユニット
１０６  命令バッファユニット
１０８  プログラムフローユニット
１１０  アドレスデータフローユニット
１１２  データ通信ユニット
１１８  アドレスバス
１２０  データバス
１２２  プログラムリードバス
１２８  プログラムアドレスバス
１３０，１３２  データライトバス
１３４，１３６，１４４  データリードバス
１４０  命令定数データバス
１４２  アドレス定数バス
１４６，１４８  累算器ライトバス
１５０，１５２  累算器リードバス
１６０，１６２  データライトアドレスバス
５０２  命令バッファキュー
５０４  レジスタ
５１２，５１４  命令デコーダ
５２０，５２１，９１８，９２２，９４６，９４７  マルチプレクサ
５３０  ライトプログラムカウンタ
５３２  ローカルライトプログラムカウンタ
５３４  リードプログラムカウンタ
５３６  ローカルリードプログラムカウンタ
９１０  アドレス発生ユニット
９２０  ポインタレジスタファイル
９３２  データメモリアドレスバス
９４０  データレジスタファイル
９５０  ビット操作ユニット
９６０  テスト状態レジスタファイル
９６８  データメモリリードバス
９７０  算術演算装置
【図１】
0004355410.tif 000033
【図２】
0004355410.tif 000034
【図３】
0004355410.tif 000035
【図４】
0004355410.tif 000036
【図５】
0004355410.tif 000037
【図６】
0004355410.tif 000038
【図７】
0004355410.tif 000039
【図８】
0004355410.tif 000040
【図９】
0004355410.tif 000041
【図１０】
0004355410.tif 000042
【図１１】
0004355410.tif 000043
【図１２】
0004355410.tif 000044
【図１３】
0004355410.tif 000045
【図１４】
0004355410.tif 000046