(57)【要約】デジタル・プリディストーション（ＤＰＤ）および他の非線形アプリケーションのためのユーザ定義の非線形関数を備えた命令セットを有するプロセッサが提供される。入力値ｘに対して少なくとも１つの非線形関数を実行する少なくとも１つのソフトウェア命令を取得することであって、この少なくとも１つの非線形関数は、ユーザ指定の少なくとも１つのパラメータを含む、ことと、ユーザ指定の少なくとも１つのパラメータを有する少なくとも１つの非線形関数に対するソフトウェア命令の少なくとも１つに応答して、非線形関数を入力値ｘに適用するために、少なくとも１つのソフトウェア命令を実装する少なくとも１つの関数ユニットを呼び出すステップと、入力値ｘに対する非線形関数に対応する出力を生成するステップと、を実行することと、によって、ＤＰＤなどの信号処理機能がソフトウェアにおいて実装される。ユーザ指定のパラメータは、任意選択でメモリから少なくとも１つのレジスタへロードされうる。
2014533017.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによって実行される、信号処理機能をソフトウェアにおいて実装するための方法であって、
入力値ｘに対して少なくとも１つの非線形関数を実行する少なくとも１つのソフトウェア命令を取得することであって、前記少なくとも１つの非線形関数は、ユーザ指定の少なくとも１つのパラメータを含む、取得することと、
ユーザ指定の少なくとも１つのパラメータを有する少なくとも１つの非線形関数に対する前記ソフトウェア命令の少なくとも１つに応答して、
前記非線形関数を前記入力値ｘに適用するために、前記少なくとも１つのソフトウェア命令を実装する少なくとも１つの関数ユニットを呼び出すステップと、
前記入力値ｘに対する前記非線形関数に対応する出力を生成するステップと、
を実行することと、
を含む方法。
【請求項２】
前記信号処理機能はデジタル・プリディストーションを含む、請求項１に記載の方法。
【請求項３】
ユーザ指定の前記少なくとも１つのパラメータをメモリから少なくとも１つのレジスタにロードするステップを更に含む、請求項１に記載の方法。
【請求項４】
前記ユーザ指定のパラメータは、有限個の入力値に対する前記非線形関数の値を記憶するルックアップ・テーブルを含む、請求項１に記載の方法。
【請求項５】
前記入力値ｘはベクトルを含み、前記出力はベクトルを含む、請求項１に記載の方法。
【請求項６】
信号処理機能をソフトウェアにおいて実装するように構成されたプロセッサであって、
メモリと、
前記メモリに結合された少なくとも１つのハードウェア・デバイスとを備え、前記少なくとも１つのハードウェア・デバイスは、
ユーザ指定の少なくとも１つのパラメータを含む少なくとも１つの非線形関数を入力値ｘに対して実行する少なくとも１つのソフトウェア命令を取得し、
ユーザ指定の少なくとも１つのパラメータを有する少なくとも１つの非線形関数に対する前記ソフトウェア命令の少なくとも１つに応答して、
前記非線形関数を前記入力値ｘに適用するために、前記少なくとも１つのソフトウェア命令を実装する少なくとも１つの関数ユニットを呼び出すこと、および
前記入力値ｘに対する前記非線形関数に対応する出力を生成することを実行する
ように動作する、プロセッサ。
【請求項７】
前記信号処理機能はデジタル・プリディストーションを含む、請求項６に記載のプロセッサ。
【請求項８】
前記少なくとも１つのハードウェア・デバイスは、ユーザ指定の前記少なくとも１つのパラメータをメモリから少なくとも１つのレジスタにロードするように更に構成されている、請求項６に記載のプロセッサ。
【請求項９】
前記ユーザ指定のパラメータは、有限個の入力値に対する前記非線形関数の値を記憶するルックアップ・テーブルを含む、請求項６に記載のプロセッサ。
【請求項１０】
前記入力値ｘはベクトルを含み、前記出力はベクトルを含む、請求項６に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１１年１０月２７日に出願され、「Ｓｏｆｔｗａｒｅ  Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ  （ＳｏｆｔＤＦＥ）  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ａｎｄ  Ｄｉｇｉｔａｌ  Ｒａｄｉｏ」と題された米国仮特許出願第６１／５５２，２４２号の優先権を主張するものであり、この米国仮特許出願は、参照により本明細書に組み入れられる。
【０００２】
本発明は、デジタル信号処理技術に関し、より詳しくは、ユーザ定義の非線形関数を評価するための技術に関する。
【背景技術】
【０００３】
デジタル・プリディストーション（ＤＰＤ）は、送信機における電力増幅器を線形化し、その電力増幅器の効率を向上させるために用いられる技術である。典型的には、送信機における電力増幅器は、信号が正確に再現されるように実質的に線形でなければならない。入力信号の圧縮や、入力信号と出力信号との間の非線形的関係により、出力信号のスペクトルが、隣接するチャネル内にスピルオーバし、干渉の原因となる。この効果は、一般的に、スペクトル再成長（ｓｐｅｃｔｒａｌ  ｒｅ−ｇｒｏｗｔｈ）と称される。
【０００４】
デジタル・プリディストーション回路は、電力増幅器のゲインと位相特性を逆モデル化（ｉｎｖｅｒｓｅｌｙ  ｍｏｄｅｌｓ）し、その電力増幅器と組み合わされたとき、より線形な全体システムを作り出し、普通なら電力増幅器によって引き起こされたはずの歪みを低減する。逆歪み（ｉｎｖｅｒｓｅ  ｄｉｓｔｏｒｔｉｏｎ）が増幅器の入力に導入され、それにより、増幅器が有していたはずの非線形性を低減する。
【０００５】
デジタル・プリディストーションは、高いサンプリング・レートのために、ハードワイヤード・ロジックを用いて実装されるのが典型的である。そのようなハードウェア・ベースのＤＰＤ技術は、電力増幅器を効果的に線形化するが、いくつかの制限があり、これは、克服された場合、ＤＰＤ回路の効率と柔軟性とを更に向上させることができる。例えば、既存のハードウェア・ベースのＤＰＤ技術は、柔軟性に欠け、高価であり、時間を要するものであり、新たなＲＦ設計のためにＤＰＤの設計を修正することが困難である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願第１２／３２４,９３４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
デジタル・プリディストーションおよびその他の非線形のアプリケーションは、フィルタ係数の値またはルックアップ・テーブルからの値など、ユーザによって指定される１つまたは複数のパラメータを含む１つまたは複数の非線形関数を処理しなければならない場合が多い。したがって、例えばＤＰＤの高性能なソフトウェア実装を可能にするために、デジタル・プリディストーション（ＤＰＤ）および他の非線形アプリケーションのためのユーザ定義の１つまたは複数の非線形関数を含む命令セットを有するプロセッサが必要とされている。
【課題を解決するための手段】
【０００８】
一般に、デジタル・プリディストーション（ＤＰＤ）および他の非線形アプリケーションのためのユーザ定義の非線形関数を含む命令セットを有するプロセッサが提供される。本発明の一態様によれば、ＤＰＤなどの信号処理機能が、ユーザ指定の少なくとも１つのパラメータを含む少なくとも１つの非線形関数を、入力値ｘに対して実行する少なくとも１つのソフトウェア命令を取得し、ユーザ指定の少なくとも１つのパラメータを有する少なくとも１つの非線形関数に対するソフトウェア命令の少なくとも１つに応答して、非線形関数を入力値ｘに適用するために、少なくとも１つのソフトウェア命令を実装する少なくとも１つの関数ユニットを呼び出すステップと、入力値ｘに対する非線形関数に対応する出力を生成するステップとを実行することによって、ソフトウェアにおいて実装される。
【０００９】
さらに、ユーザ指定のパラメータは、任意選択で、メモリから少なくとも１つのレジスタにロードされることが可能である。このユーザ指定のパラメータは、有限個の入力値に対する非線形関数の値を記憶するルックアップ・テーブルを含みうる。このユーザ指定のパラメータは、ルックアップ・テーブルのエントリの間において多項式による補間を実行するために、非線形関数によって用いられる１つまたは複数の係数を含みうる。
【００１０】
本発明の更なる特徴および利点だけでなく、本発明のより完全な理解が、以下の詳細な説明と図面とを参照することにより、得られるであろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の態様が用いられうる例示的な送信機の一部を示す図である。
【図２】本発明の態様が用いられうる代替の例示的な送信機の一部を示す図である。
【図３】ユーザ定義の非線形命令ｆｍ，ｌを用いて、１６個の成分ベクトルのベクトル・プロセッサ上でソフトウェアにおいてＤＰＤ機能を実装するための例示的な擬似コードを示す図である。
【図４Ａ】例示的な機能ブロック図のグラフィカルな図である。
【図４Ｂ】例示的な機能ブロック図のグラフィカルな図である。
【図５Ａ】個別のユーザ定義の非線形関数ｆｍ，ｌをｘ（ｎ）の関数として示す図である。
【図５Ｂ】図５Ａの個別のユーザ定義の非線形関数ｆｍ，ｌの例示的な近似を示す図である。
【図６】テイラー和の計算ブロックを示す図である。
【図７】本発明の実施形態に従い１つまたは複数の複素数に対するユーザ定義の非線形関数を同時に評価する、例示的なベクトル・ベースのデジタル・プロセッサの概略的なブロック図である。
【発明を実施するための形態】
【００１２】
図１は、本発明の諸態様を用いることができる例示的な送信機１００の部分を示す。図１に示されているように、この例示的な送信機の部分１００は、チャネル・フィルタおよびデジタル・アップ変換（ＤＵＣ）段１１０と、クレスト・ファクタ低減（ＣＦＲ）段１２０と、デジタル・プリディストーション（ＤＰＤ）段１３０と、任意選択の等化および／またはＩＱインバランス補正段１４０とを備えている。概して、チャネル・フィルタおよびデジタル・アップ変換段１１０は、例えば有限インパルス応答（ＦＩＲ）フィルタを用いてチャネル・フィルタリングを実行し、さらに、デジタル・アップ変換を実行して、デジタル化されたベースバンド信号を中間周波数（ＩＦ）に変換する。上述したように、クレスト・ファクタ低減段１２０は、送信される信号のピーク対平均値比（ＰＡＲ）を制限する。デジタル・プリディストーション段１３０は、電力増幅器を線形化して、効率を向上させる。等化段１４０は、ＲＦチャネルの等化を用いて、チャネル障害（ｃｈａｎｎｅｌ  ｉｍｐａｉｒｍｅｎｔｓ）を軽減する。
【００１３】
本発明の一態様によれば、デジタル・プリディストーションの非線形処理および他の非線形アプリケーションが、デジタル・プリディストーション（ＤＰＤ）および他の非線形アプリケーションのためのユーザ定義の１つまたは複数の非線形関数を含む命令セットを有するプロセッサ上で、ソフトウェアにおいて実行される。ユーザ定義の非線形命令は、ユーザによって指定されなければならない少なくとも１つのパラメータを有する非線形関数を計算するのに用いられる。ユーザ定義の非線形命令は、入力スカラまたはベクトルと共に受け取られ、出力スカラまたはベクトルを生じる。入力ベクトルの場合には、出力ベクトルは、入力サンプルの非線形関数である出力サンプルを含む。
【００１４】
本発明は、デジタル・プリディストーションの文脈で説明されているが、ユーザ定義の１つまたは複数の非線形関数を用いる任意の非線形アプリケーションに対して、用いることが可能である。
【００１５】
本発明は、ハンドセット、基地局、および他のネットワーク要素において、適用することが可能である。
【００１６】
図２は、本発明の諸態様を用いることができる代替の例示的な送信機２００の部分を示す。図２に示されているように、例示的な送信機２００の部分は、２つのパルス整形およびローパス・フィルタ（ＬＰＦ）段２１０−１、２１０−２と、複素信号Ｉ、Ｑを処理する２つのデジタル・アップ・コンバータ２２０−１、２２０−２とを備えている。図２の例示的な送信機の部分２００は、図１のクレスト・ファクタ低減段１２０を含んでいないが、ＣＦＲ段を任意選択で含めることは可能である。次に、複素入力（Ｉ,Ｑ）が図２のデジタル前置補償器（ｄｉｇｉｔａｌ  ｐｒｅ−ｄｉｓｔｏｒｔｅｒ）２３０に印加されるが、これが、本発明の例示的な実施形態の核心（ｆｏｃｕｓ）である。図２のデジタル前置補償器２３０については、例えば図３および図４と併せて更に以下で論ずる。
【００１７】
デジタル前置補償器２３０の出力は、２つのデジタル・アナログ・コンバータ（ＤＡＣ）２４０−１、２４０−２に並列に印加され、次に、アナログ信号が、それらの信号をＲＦ信号に更にアップ変換する直交変調段２５０によって、処理される。
【００１８】
直交変調段２５０の出力２５５は、ドハティ（Ｄｏｈｅｒｔｙ）増幅器またはドレイン変調器などの電力増幅器２６０に印加される。上述したように、デジタル前置補償器２３０は、その線形範囲をより高次の送信電力に延長することによって電力増幅器２６０の効率を向上させるために、電力増幅器２６０を線形化する。
【００１９】
フィードバック経路２６５において、電力増幅器２６０の出力は、信号をベースバンドにダウン変換する復調段２８０に印加される前に、アッテネータ２７０に印加される。ダウン変換された信号は、信号をデジタル化するためにアナログ・デジタル・コンバータ（ＡＤＣ）２９０に印加される。デジタル化されたサンプルは、次に、デジタル前置補償器２３０のためにパラメータｗを生成する複雑適応アルゴリズム（ｃｏｍｐｌｅｘ  ａｄａｐｔｉｖｅ  ａｌｇｏｒｉｔｈｍ）２９５によって処理される。複雑適応アルゴリズム２９５は、本発明の範囲の外にある。デジタル前置補償器２３０のためにパラメータを生成するのには、既知の技術を用いることができる。
【００２０】
デジタル前置補償器の非線形フィルタ実装
デジタル前置補償器２３０は、非線形システムのボルテラ級数（Ｖｏｌｔｅｒｒａ  ｓｅｒｉｅｓ）モデルを用いた非線形フィルタとして、実装することができる。ボルテラ級数とは、テイラー級数（Ｔａｙｌｏｒ  ｓｅｒｉｅｓ）と同様の非線形行動のためのモデルである。ボルテラ級数は、「メモリ」効果を捕捉する能力の点で、テイラー級数と異なる。所与の入力に対する非線形システムの応答を近似するのにテイラー級数を用いることができるのは、その特定の時刻における入力に、このシステムの出力が厳密に依存する場合である。ボルテラ級数の場合には、非線形システムの出力は、他の時刻におけるそのシステムへの入力に依存する。よって、ボルテラ級数により、デバイスの「メモリ」効果を捕捉することが可能になる。
【００２１】
概して、メモリを備えた因果系は、次のように表すことができる。
【００２２】
【数１】
2014533017.tif 000003
【００２３】
さらに、メモリを備えていない弱非線形（ｗｅａｋｌｙ  ｎｏｎ−ｌｉｎｅａｒ）システムは、多項式を用いてモデル化することができる。
【００２４】
【数２】
2014533017.tif 000004
【００２５】
ボルテラ級数は、次の２つの組み合わせと考えることができる。
【００２６】
【数３】
2014533017.tif 000005
【００２７】
離散的な領域では、ボルテラ級数は、次のように表すことができる。
【００２８】
【数４】
2014533017.tif 000006
【００２９】
ボルテラ級数は、その複雑性が指数的に増大しうるので、ＤＰＤなどの多くの一般的なアプリケーションにおいて用いることは実際的でない。よって、非線形システムのためには、多くの単純化されたモデルが、これまで提案されてきた。例えば、次のメモリ多項式は、広く用いられているモデルである。
【００３０】
【数５】
2014533017.tif 000007
【００３１】
一般化されたメモリ多項式モデルと称される別の単純化されたモデルは、次のように表すことができる（なお、Ｍはメモリの深さを示し、Ｋは多項式の次数を示す）。
【００３２】
【数６】
2014533017.tif 000008
【００３３】
外積（ｃｒｏｓｓ−ｐｒｏｄｕｃｔｓ）を用いた一般化されたメモリ多項式の同等の式は、次のように表すことができる。
【００３４】
【数７】
2014533017.tif 000009
ここで
【００３５】
【数８】
2014533017.tif 000010
ここで、ｆ（ｘ）は、以下で論じられる、ユーザ定義の非線形命令ｖｅｃ＿ｎｌを用いる本発明の一態様に従って加速されると想定される、１つまたは複数のユーザ指定のパラメータを有する非線形関数である。非線形分解のためのｘｋ以外の他の基礎関数（ｂａｓｉｓ  ｆｕｎｃｔｉｏｎｓ）が可能であることに注意する。
【００３６】
以下で論じられるように、ユーザ定義の非線形命令ｆｍ，ｌは、例えば、ベクトル・プロセッサによって処理されうる。ｆｍ，ｌとは、非線形関数のｍ×ｌ配列である。それぞれの非線形関数は、ルックアップ・テーブルまたは係数などの、ユーザ指定のパラメータを有することがありうる。ルックアップ・テーブルは、ユーザ定義の非線形命令ｆｍ，ｌの多項式による近似でありうる。図７と併せて更に以下で論じるように、ｍ×ｌ配列におけるそれぞれのユーザ定義の非線形命令ｆｍ，ｌに対するルックアップ・テーブルを、メモリに記憶することができ、その命令がプロセッサによって処理されるときに、ある機能ユニットと関連するレジスタにロードすることができる。次に、入力サンプルが、ｍ×ｌ配列における個別の非線形命令ｆｍ，ｌにおいて評価されうる。
【００３７】
図３は、式（１）のユーザ定義の非線形命令ｆｍ，ｌを用いる１６個の成分ベクトルのベクトル・プロセッサ上で、ＤＰＤ機能をソフトウェアにおいて実装するための例示的な擬似コード３００を示す。例示的な擬似コード３００は、入力ｘの大きさを計算するための第１の部分３１０を含む。ライン３２０では、ｍ×ｌ配列における個別の非線形命令ｆｍ，ｌに対するルックアップ・テーブルを、レジスタにロードすることができる。その後、例示的な擬似コード３００は、式（１）を実装するための部分３３０を含む（例えば、サンプルを入力し、そのサンプルに対して平方演算を実行し、非線形関数を計算し、次いで結果に対して積和演算を行う）。
【００３８】
図４Ａは、式（１）を実装する例示的な機能ブロック図４００のグラフィカルな図である。本明細書で説明されている例示的な実施形態では、｜ｘ｜ｋの代わりに｜ｘ｜２ｋが用いられる。図４Ａに示されているように、例示的な回路４００は、式（１）のｘ（ｎ−ｍ）の項を生成する遅延要素４０５−１〜４０５−５などの複数の遅延要素、および平方演算４１０の出力を遅延させることにより式（２）の｜ｘ（ｎ−ｌ）｜２の項を生成する遅延要素４０５−６〜４０５−９などの複数の遅延要素を含む。さらに、例示的な機能ブロック図４００は、適切な｜ｘ（ｎ−ｌ）｜２の項を受け取り、式（２）を実装する機能ユニット４２０−１,１〜４２０−４,４のアレイを含む。例示的な機能ブロック図４００は、また、適切なｘ（ｎ−ｍ）の項を受け取り、それを対応するｍ，ｌの機能ユニット４２０の出力と乗算する複数の乗算器（ｘ）を含む。それぞれのローにおける乗算の出力は加算器（＋）４３０によって加算され、与えられたローにおけるそれぞれの加算器４３０の出力は対応する加算器４４０によって加算されて、出力ｙ（ｎ）が生成される。
【００３９】
図４Ｂは、より少ない回数の乗法演算で式（１）を実装する、代替の例示的な機能ブロック図４５０のグラフィカルな図４５０である。図４Ｂに示されているように、例示的な回路４５０は、式（１）のｘ（ｎ−ｍ）の項を生成する遅延要素４５５−１〜４５５−５などの複数の遅延要素、および平方演算４６０の出力を遅延させることにより式（２）の｜ｘ（ｎ−ｌ）｜２の項を生成する遅延要素４５５−７〜４５５−９などの複数の遅延要素を含む。さらに、例示的な機能ブロック図４５０は、適切な｜ｘ（ｎ−ｌ）｜２の項を受け取り、式（２）を実装する機能ユニット４７０−１,１〜４７０−４,４の配列を含む。加算器４８０が、非線形利得（入力の大きさの非線形関数の和）を計算する。
【００４０】
例示的な機能ブロック図４５０は、また、適切なｘ（ｎ−ｍ）の項を受け取り、それを対応するｍ，ｌの機能ユニット４７０のカラムの合計された出力の出力と乗算する複数の乗算器（ｘ）４７５を含む。このようにして、加算器４８０からの非線形利得は、入力データに印加される（複素積和（ＣＭＡＣ）演算）。乗算の出力が加算器（＋）４８５によって加算され、出力ｙ（ｎ）を生成する。
【００４１】
図５Ａは、個々のユーザ定義の非線形関数ｆｍ，ｌ５００を、ｘ（ｎ）の関数として示す。図５Ｂは、図５Ａの個々のユーザ定義の非線形関数ｆｍ，ｌの例示的な近似５５０を示す。図５Ｂの例示的な近似５５０は、セグメント化されたテイラー級数のルックアップ・テーブルを用いる。非線形関数ｆｍ，ｌ５００が、ｊ個のセグメントに分解される。それぞれのセグメントと関連するサンプル５６０−１〜５６０−ｊが、ルックアップ・テーブルに記憶される。所与のｘに対するルックアップ・テーブルにサンプルが記憶されている場合には、そのサンプルを、ルックアップ・テーブルからリトリーブして、非線形関数の評価に直接に用いることが可能である。所望のｘがルックアップ・テーブルにおける２つの値の間にある場合には、図６と併せて更に以下で論じられるように、結果を得るために、機能ユニットの内部のハードウェアにおいて、線形補間、またはより一般的には、テイラー級数ベースの補間が実行される。このようにして、非線形デジタル・プリディストーション演算は、入力信号５５０の異なるセグメントにおけるテイラー級数の係数によって、記述することができる。３２個のセグメントを有する例示的な一実装例では、ルックアップ・テーブルにおける３次元の多項式近似の４つの係数を用いて表される係数に対して、１２８個の複素エントリが存在する（１６ビットが複素数、１６ビットが実数）。１２８個のセグメントおよび１セグメント当たり１つの係数を有する更なる変形例では、線形補間のために、１２８個の複素係数が存在する（１６ビットが複素数、１６ビットが実数）。あるいは、３次元の補間のためには、セグメントに対して３２個の複素エントリと、１セグメント当たり４つの係数とが存在する。
【００４２】
上述したように、所望のｘの値がルックアップ・テーブル内には存在せず、むしろルックアップ・テーブル内の２つの値の間にある場合には、結果を得るために、機能ユニットの内部のハードウェアにおいて、線形補間が実行される。次の小さな３次元多項式を評価するためには、テイラー級数の計算を、３次元の補間として実行できる。
ｆ（ε）＝ａ０｜ａ１・ε＋ａ２・ε２＋ａ３・ε３
ここで係数ａは、ルックアップ・テーブルから得られる。しかし、この式の複雑性は、顕著である（乗算および平方演算を実行する乗数が多数あるため）。
【００４３】
この複雑性は、ホーナー（Ｈｏｒｎｅｒ）アルゴリズム（因数分解）を用いて、低下させることが可能であり、それによって、ｆ（ε）を次の通りに計算できる。また、これについては、参照によって本明細書に組み入れられる、２００８年１１月２８日に出願され「Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｗｉｔｈ  Ｏｎｅ  Ｏｒ  Ｍｏｒｅ  Ｎｏｎ−Ｌｉｎｅａｒ  Ｆｕｎｃｔｉｏｎｓ  Ｕｓｉｎｇ  Ｆａｃｔｏｒｉｚｅｄ  Ｐｏｌｙｎｏｍｉａｌ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ」と題する米国特許出願第１２／３２４,９３４号も、参照のこと。
ｆ（ε）＝（（ｂ３・ε＋ｂ２）・ε＋ｂ１）・ε＋ｂ０  （３）
式（３）では、複雑性が、わずかに３回の乗法演算および３回の加法演算まで、軽減されている。ｆ（ε）は、ルックアップ・テーブルに記憶されている値からのオフセットである。
【００４４】
図６は、式（３）を実装するテイラー和計算ブロック６００を示す。係数ｂ０、ｂ１、ｂ２、ｂ３は、ルックアップ・テーブル６５０からリトリーブされる。テイラー和計算ブロック６００は、わずかに３回の乗法演算（６１０）および３回の加法演算（６２０）で、式（３）を実装する。
【００４５】
図７は、本発明の実施形態により１つまたは複数の複素数（ｃｏｍｐｌｅｘ  ｎｕｍｂｅｒｓ）に対するユーザ定義の非線形関数を同時に評価する例示的なベクトル・ベースのデジタル・プロセッサ７００の概略的なブロック図である。概して、図７のベクトル・ベースの実装例は、異なる処理を同時に実行する。したがって、ベクトル・ベースのデジタル・プロセッサ７００は、ユーザ定義の非線形関数を評価するための複数の機能ユニット７１０−１〜７１０−Ｎを含んでいる。
【００４６】
概して、ベクトル・ベースのデジタル・プロセッサ７００は、入力であるベクトルｘを処理して、出力であるベクトルｙ（ｎ）を生成する。この例示的なベクトル・ベースのデジタル・プロセッサ７００は、次のように実装される１６ｗａｙ構成のベクトル・プロセッサのｎｌ命令に対するものとして、示されている。
ｖｅｃ＿ｎｌ（ｘ１，ｘ２，・・・，ｘ１６）、０から１のｘ［ｋ］の範囲
【００４７】
このようにして、ベクトル・ベースのデジタル・プロセッサ７００は、１６個のそのような非線形演算を実行し、それらを１つのサイクルにおいて線形に合成することができる。例えば、ユーザ定義の非線形関数は、次のように表すことができる。
【００４８】
【数９】
2014533017.tif 000011
【００４９】
より一般的な場合には、このベクトル・プロセッサのベクトル・データの各成分に対して異なる関数が適用されうる、ということに注意しておく。
【００５０】
図７に示されているように、機能ユニット７１０は、ルックアップ・テーブルまたは係数などのユーザによる指定を、レジスタに格納するために、メモリから受け取る。
【００５１】
結論
本発明の例示的な実施形態を、デジタル・プロセッサの内部にあるデジタル論理ブロックおよびメモリ・テーブルに関して説明してきたが、当業者には明らかであるように、様々な機能が、ソフトウェア・プログラムにおける、回路素子もしくはステート・マシンによるハードウェアにおける、またはソフトウェアとハードウェアとの両方の組み合わせにおける処理ステップとして、デジタル領域で実装されうる。そのようなソフトウェアは、例えば、デジタル信号プロセッサ、特定用途向け集積回路、またはマイクロコントローラにおいて、用いることができる。そのようなハードウェアおよびソフトウェアは、集積回路の内部において実装された回路内で具体化することができる。
【００５２】
このように、本発明の機能は、方法、およびそのような方法を実現させる装置という形式で、具体化することが可能である。本発明の１つまたは複数の態様は、例えば、記憶媒体に格納されているプログラム・コード、マシンにロードされるプログラム・コード、かつ／またはマシンによって実行されるプログラム・コードという形式で、具体化することが可能であり、このプログラム・コードがプロセッサなどのマシンにロードされて実行されると、そのマシンは、本発明を実施する装置になる。このプログラム・コードのセグメントは、汎用のプロセッサ上で実装されると、プロセッサと組み合わされて、特定のロジック回路と同様に動作するデバイスを提供する。本発明は、集積回路、デジタル・プロセッサ、マイクロプロセッサ、およびマイクロコントローラの内の１つまたは複数として実装されることもありうる。
【００５３】
本明細書で示され説明された実施形態および変形例は単に本発明の原理を解説しているだけであり、当業者であれば本発明の範囲および精神から逸脱せずに様々な修正を行いうるということを、理解すべきである。
【図１】
2014533017.tif 000012
【図２】
2014533017.tif 000013
【図３】
2014533017.tif 000014
【図４Ａ】
2014533017.tif 000015
【図４Ｂ】
2014533017.tif 000016
【図５Ａ】
2014533017.tif 000017
【図５Ｂ】
2014533017.tif 000018
【図６】
2014533017.tif 000019
【図７】
2014533017.tif 000020
【国際調査報告】
2014533017.tif 000021
2014533017.tif 000022