(57)【要約】  集積回路（ＩＣ）（１００）のためのデータ処理エンジン（１１０）に関連する技術が記載されている。一例では、ベクトル化されたピーク検出のための方法（８００）が提供される。方法（８００）は、ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するステップ（８０２）を含み、データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備える。上記方法（８００）は、データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップ（８０６〜８１０）を含む。上記方法（８００）は、ベクトル演算に基づいて、ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップ（８１４）を含む。
2021536622.tif 000002
【特許請求の範囲】
【請求項１】
データ処理エンジンを有する集積回路（ＩＣ）における信号処理のための方法であって、
ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するステップを備え、前記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、前記方法はさらに、
前記データ処理エンジンにおいて前記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップと、
前記ベクトル演算に基づいて、前記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップとを備える、方法。
【請求項２】
前記ベクトル演算を実行するステップは、
第１のベクトル演算を実行して、前記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるステップと、
第２のベクトル演算を実行して、前記複数のサブセットの各サンプルについて２進値を求めるステップと、
第３のベクトル演算を実行して、前記第２のベクトル演算において求められた前記２進値に基づいて累積値を求めるステップとを備える、請求項１に記載の方法。
【請求項３】
前記ランニングインデックスを求めるステップは、
前記複数のサブセットの各々の中の前記求められたサンプルに基づいて、前記ＰＤＷにわたって前記最大の振幅を有する前記サンプルの端数インデックスを求めるステップと、
前記累積値をいくつかの前記複数のサブセットから減算することによって、前記ＰＤＷにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちのあるサブセットのインデックスを求めるステップと、
前記複数のサブセットのうちの前記サブセットの前記インデックス、複数のサブセットの各々における前記いくつかのデータサンプル、および前記端数インデックスに基づいて、前記ランニングインデックスを求めるステップとを備える、請求項２に記載の方法。
【請求項４】
前記第１のベクトル演算は、前記サブセットにおける第１のパワーベクトルと前記サブセットにおけるサンプルの第２のパワーベクトルとを比較して、前記サブセットにおける各サンプルについて、前記第１または第２のパワーベクトルのうちの大きい方のパワーベクトルを出力するレーンごとの演算である、請求項２に記載の方法。
【請求項５】
前記第２のベクトル演算は、前記複数のサブセットの各々にわたって、第１のサブセットにおけるサンプルと第２のサブセットにおける対応するサンプルとを比較して、前記第１のサブセットにおける前記サンプルが第２のサブセット前記対応するサンプルよりも大きい場合には０を出力し、前記第１のサブセットにおける前記サンプルが前記第２のサブセットにおける前記対応するサンプルよりも小さい場合には１を出力するレーンごとの演算である、請求項２に記載の方法。
【請求項６】
前記第３の演算は、
前記累積値をゼロに初期化するステップと、
前記ＰＤＷにおける各サンプルについて、前記サブセットにおける前記サンプルの前記出力がゼロである場合には、前記累積値をゼロにリセットするステップと、
前記ＰＤＷにおける各サンプルについて、前記サブセットにおける前記サンプルの前記出力が１である場合には、前記累積値を１だけインクリメントするステップとを備える、請求項５に記載の方法。
【請求項７】
前記ランニングインデックスを求めるステップは、
前記複数のサブセットのうちの前記サブセットの前記インデックスに、複数のサブセットの各々における前記いくつかのデータサンプルを乗算するステップと、
前記端数インデックスを前記積に加算するステップとを備える、請求項３に記載の方法。
【請求項８】
第２のＰＤＷにわたって最大の振幅を有する第２のサンプルのための第２のランニングインデックスを求めるステップと、
前記第１のランニングインデックスと前記第２のランニングインデックスとを比較するステップと、
前記第１のランニングインデックスと前記第２のランニングインデックスとの間の差が前記ＰＤＷにおけるサンプル数よりも大きい場合に、前記第１のＰＤＷにわたって前記最大の振幅を有する前記第１のサンプルをピークと見なすステップとをさらに備える、請求項１に記載の方法。
【請求項９】
前記ピークを前記信号から除去するステップをさらに備える、請求項１０に記載の方法。
【請求項１０】
データ処理エンジン（ＤＰＥ）であって、
レジスタファイルと、
前記レジスタファイルに結合されたプロセッサとを備え、前記プロセッサは、
ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、前記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、前記プロセッサはさらに、
前記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成され、
前記ベクトル演算に基づいて、前記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成される、ＤＰＥ。
【請求項１１】
前記プロセッサは、
第１のベクトル演算を実行して、前記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるように構成され、
第２のベクトル演算を実行して、前記複数のサブセットの各サンプルについて２進値を求めるように構成され、
第３のベクトル演算を実行して、前記第２のベクトル演算において求められた前記２進値に基づいて累積値を求めるように構成される、請求項１０に記載のＤＰＥ。
【請求項１２】
前記プロセッサは、
前記複数のサブセットの各々の中の前記求められたサンプルに基づいて、前記ＰＤＷにわたって前記最大の振幅を有する前記サンプルの端数インデックスを求めること、
前記累積値をいくつかの前記複数のサブセットから減算することによって、前記ＰＤＷにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちのあるサブセットのインデックスを求めること、および
前記複数のサブセットのうちの前記サブセットの前記インデックス、複数のサブセットの各々における前記いくつかのデータサンプル、および前記端数インデックスに基づいて、前記ランニングインデックスを求めること、によって前記ランニングインデックスを求めるように構成される、請求項１１に記載のＤＰＥ。
【請求項１３】
前記第１のベクトル演算は、レーンごとの演算であり、前記プロセッサは、
前記サブセットにおける第１のパワーベクトルと前記サブセットにおけるサンプルの第２のパワーベクトルとを比較すること、および
前記サブセットにおける各サンプルについて、前記第１または第２のパワーベクトルのうちの大きい方のパワーベクトルを出力すること、によって前記第１のベクトル演算を実行するように構成される、請求項１１に記載のＤＰＥ。
【請求項１４】
前記第２のベクトル演算は、レーンごとの演算であり、前記プロセッサは、
前記複数のサブセットの各々にわたって、第１のサブセットにおけるサンプルと第２のサブセットにおける対応するサンプルとを比較すること、および
前記第１のサブセットにおける前記サンプルが第２のサブセット前記対応するサンプルよりも大きい場合には０を出力し、前記第１のサブセットにおける前記サンプルが前記第２のサブセットにおける前記対応するサンプルよりも小さい場合には１を出力すること、によって前記第２のベクトル演算を実行するように構成される、請求項１１に記載のＤＰＥ。
【請求項１５】
前記プロセッサは、
第２のＰＤＷにわたって最大の振幅を有する第２のサンプルのための第２のランニングインデックスを求めるようにさらに構成され、
前記第１のランニングインデックスと前記第２のランニングインデックスとを比較するようにさらに構成され、
前記第１のランニングインデックスと前記第２のランニングインデックスとの間の差が前記ＰＤＷにおけるサンプル数よりも大きい場合に、前記第１のＰＤＷにわたって前記最大の振幅を有する前記第１のサンプルをピークと見なすようにさらに構成される、請求項１０に記載のＤＰＥ。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本開示の例は、一般に電子回路に関し、特にベクトル化されたピーク検出を使用するためのデータ処理に関する。
【背景技術】
【０００２】
背景
プロセッサ、システムオンチップ（ＳｏＣ）および特定用途向け集積回路（ＡＳＩＣ）は、デジタル信号の処理、暗号化技術の実行、ソフトウェアアプリケーションの実行、グラフィックスの描画などの計算動作を実行するための複数のコアを含み得る。複数のコアは、単一命令複数データ（ＳＩＭＤ）の原理を使用するベクトルプロセッサとして実現可能である。ＳＩＭＤでは、複数のプロセッサが（たとえば、要素とも称されるデータサンプルのセットとしての）複数のデータ点上で同時に動作を実行する。したがって、ＳＩＭＤは、複数の同時計算のためのデータレベル並列性を単一のプロセスまたは命令に活用する。
【０００３】
ＳＩＭＤを使用して複数のコアによって実行可能なプロセスの一例は、ピーク検出である。ピーク検出は、データサンプルのセット（要素とも称される）上で極大点を見つけ出すという問題である。データをスキャンすることによってサンプルの大きさまたは二乗の大きさ（たとえば、累乗）と隣接するサンプルの大きさまたは累乗とを比較することによって、サンプル同士を比較することができる。したがって、入来するデータｘのストリームについて、点ｘｎは、以下を満たす場合に極大として定義される。
【０００４】
【数１】
2021536622.tif 000003
【０００５】
ピーク検出は、ピーク・キャンセレーション・ベース・クレスト・ファクタ・リダクション（ＰＣ−ＣＦＲ）などの信号処理機能に使用することができる。ＰＣ−ＣＦＲでは、検出されたピークは、それらが予め設定された閾値を超えるか否かを確認する資格がある。この資格は、ピーク検出窓（ＰＤＷ）と呼ばれるデータの予め規定されたブロックにわたって最高のピークを選択する。資格のあるピークは、スケーリングされ、フィルタリングされ、次いで元のデータストリームから減算される。したがって、ピーク検出を使用したＰＣ−ＣＦＲでは、結果として生じる信号は、より低いピーク対平均値比を示す。
【０００６】
ピーク検出は、データサンプルのセットに対して同一の動作を実行することを含む。ピーク検出は、要素ごとの比較およびインデックス発見を含み、このことは、それをベクトルプロセッサ上で実行することを困難にしている。たとえば、ピーク検出は、一般に、ベクトルパイプラインを遮断すること、または、大きなデータセットにわたってスカラ演算を用いることを含む。これにより、さらなる計算サイクルが生じてプロセスが減速する。
【０００７】
したがって、ピーク検出、たとえばＰＣ−ＣＦＲのための技術の向上が有用であろう。
【発明の概要】
【課題を解決するための手段】
【０００８】
概要
集積回路（ＩＣ）のためのデータ処理エンジン（ＤＰＥ）に関連する技術が記載されている。一例では、ベクトル化されたピーク検出のための方法が提供される。上記方法は、ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットにするステップを含み、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備える。上記方法は、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップを含む。上記方法は、上記ベクトル演算に基づいて、上記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップを含む。
【０００９】
別の例では、ＤＰＥが提供される。上記ＤＰＥは、レジスタファイルと、上記レジスタファイルに結合されたプロセッサとを含む。上記プロセッサは、ＰＤＷに対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備える。上記プロセッサは、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成される。上記プロセッサは、上記ベクトル演算に基づいて、上記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成される。
【００１０】
これらのおよび他の局面は、以下の詳細な説明を参照して理解され得る。
上記の特徴を詳細に理解することができるように、より特定的な説明（上に簡潔にまとめられている）が例示的な実現例を参照することによりなされてもよく、例示的な実現例のうちのいくつかは添付の図面に示されている。しかし、添付の図面は、典型的な例示的な実現例を示しているにすぎないため、その範囲を限定するものとして考えられるべきではない、ということに注意されたい。
【図面の簡単な説明】
【００１１】
【図１】一例に係るシステムオンチップ（ＳｏＣ）のブロック図である。
【図２】一例に係るタイル回路を示すブロック図である。
【図３】一例に係る図２の回路をより詳細に示すブロック図である。
【図４】一例に係るタイルインターコネクト回路を示すブロック図である。
【図５】図１に示されるＳｏＣの実現例として使用することができる、一例に係るプログラマブルＩＣを示すブロック図である。
【図６】一例に係る、２つのピーク検出窓にわたるいくつかのサンプルの振幅のグラフの一例である。
【図７】一例に係る、より大きなサイズのピーク検出窓の一例を示す図である。
【図８】一例に係る、ベクトル化されたピーク検出のための動作の一例を示すフロー図である。
【図９】一例に係る、ＣＦＲ動作のためのプログラマブルロジック要素を示すブロック図である。
【図１０】一例に係る、ＣＦＲ動作のベクトル化されたピーク検出ブロックのためのプログラマブルロジック要素の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
理解を容易にするために、図面に共通している同一の要素を示すために、可能な限り同一の参照番号が使用されている。１つの例の要素は他の例に有利に組み込まれ得ると考えられる。
【００１３】
詳細な説明
以下、図面を参照してさまざまな特徴について説明する。なお、図面は一定の縮尺に応じて描かれている場合もあれば、そうでない場合もあり、図面全体を通して同様の構造または機能の要素は同様の参照番号によって示されている。なお、図面は、特徴の説明を容易にすることを意図したものであるに過ぎない。それらは、クレームされている発明の網羅的な説明として意図されているわけではなく、またはクレームされている発明の範囲を限定するものとして意図されているわけでもない。また、示されている例は、示されている全ての局面または利点を有していなくてもよい。特定の例に関連して記載されている局面または利点は、必ずしもその例に限定されるわけではなく、たとえそのように示されていなくても、またはそのように明確に記載されていなくても、その他の例において実施することができる。
【００１４】
本開示の例は、ベクトル化されたピーク検出のための技術および装置に関する。いくつかの例では、ピーク検出は、処理のために多数のデータサンプルをより小さなブロックに分割することによってこれらのサンプルにわたって実行される。これらのデータのより小さなブロックは、ベクトル化されることができるため、要素ごとまたはレーンごとのベクトル−ｍａｘ演算のためのＳＩＭＤプロセッサなどのベクトルプロセッサ上で実現することが容易であり得る。いくつかの例は、データのより小さなブロックの処理中に、ベクトル化された態様でのピークのインデックス追跡を提供する。いくつかの例は、ＳＩＭＤタイプのプロセッサなどのプロセッサ上で実現される最大値発見およびインデックス追跡のためのベクトル命令を提供し、これらのベクトル命令は、大きなデータセットにわたるピーク検出およびピークインデックス発見のために反復的に実行され得る。
【００１５】
図１は、システムオンチップ（ＳｏＣ）１００の一例のブロック図であり、ＳｏＣ１００は、ベクトル化されたピーク検出のために本開示の例を実行することができるプロセッサの一例として、データ処理エンジン（ＤＰＥ）アレイ１０５を含む。ＤＰＥアレイ１０５は、格子状、クラスタ状またはチェッカー盤状にＳｏＣ１００内に配置され得る複数のデータ処理エンジン（ＤＰＥ）１１０を含む。図１は、行および列を有する２次元配列の状態でＤＰＥ１１０を配置することを示しているが、例はこの構成に限定されるものではない。さらに、ＤＰＥアレイ１０５は、任意のサイズであってもよく、ＤＰＥ１１０によって形成された任意の数の行および列を有していてもよい。
【００１６】
一例では、これらのＤＰＥ１１０は同一である。すなわち、ＤＰＥ１１０（タイルまたはブロックとも称される）の各々は、同一のハードウェアコンポーネントまたは回路を有していてもよい。さらに、本明細書における例は、ＤＰＥ１１０に限定されるものではない。その代わりに、ＳｏＣ１００は、任意の種類の処理要素またはデータ処理エンジンのアレイを含んでいてもよい。さらに、ＤＰＥ１１０は、１つまたは複数の専門的なタスクを実行するための暗号化エンジンまたは他の専門的なハードウェアであってもよい。したがって、ＤＰＥ１１０は、一般にデータ処理エンジンと称され得る。
【００１７】
図１において、ＤＰＥアレイ１０５は、全てが同一のタイプ（たとえば、均一な配列）であるＤＰＥ１１０を含む。しかし、別の例では、ＤＰＥアレイ１０５は、異なるタイプのエンジンを含んでいてもよい。たとえば、ＤＰＥアレイ１０５は、ＤＰＥ１１０、暗号化エンジン、前方誤り訂正（ＦＥＣ）エンジンなどを含んでいてもよい。ＤＰＥアレイ１０５が均一であるか不均一であるかにかかわらず、ＤＰＥ１１０は、隣接するＤＰＥ１１０におけるメモリモジュールとの接続を含み得て、これらの接続は、以下でより詳細に説明するように、ＤＰＥ１１０がメモリモジュールを共有することを可能にする。
【００１８】
一例では、ＤＰＥ１１０は、プログラマブルでないロジックから形成されており、すなわちハード化されている。そのようにする１つの利点は、プログラマブルロジックを使用してＤＰＥ１１０におけるハードウェア要素を形成することと比較して、ＤＰＥ１１０がＳｏＣ１００内で占める空間が少なくなるということである。すなわち、ハード化されたまたはプログラマブルでないロジック回路を使用して、ハードウェア要素（プログラムメモリ、命令フェッチ／復号ユニット、固定点ベクトルユニット、浮動小数点ベクトルユニット、演算論理装置（ＡＬＵ）、乗累算器（ＭＡＣ）など）をＤＰＥ１１０内に形成することにより、ＳｏＣ１００におけるＤＰＥアレイ１０５のフットプリントを大幅に減少させることができる。ＤＰＥ１１０はハード化され得るが、これは、ＤＰＥ１１０がプログラマブルでないことを意味するものではない。すなわち、ＤＰＥ１１０は、さまざまな機能またはタスクを実行するためにＳｏＣ１００が電源投入または再起動されたときに構成され得る。
【００１９】
ＤＰＥアレイ１０５は、ＳｏＣ１００におけるＤＰＥ１１０と他のハードウェアコンポーネントとの間の通信インターフェイスの役割を果たすＤＰＥ−ＳｏＣインターフェイス回路１１５も含む。この例では、ＳｏＣ１００は、ＤＰＥ−ＳｏＣインターフェイス回路１１５に通信可能に結合されたネットワークオンチップ（ＮｏＣ）１２０を含む。図示されていないが、ＮｏＣ１２０は、ＳｏＣ１００内のさまざまなコンポーネントが互いに通信することを可能にするようにＳｏＣ１００全体にわたって延在していてもよい。たとえば、物理的な実現例において、ＤＰＥアレイ１０５は、ＳｏＣ１００を形成する集積回路の右上部分に配置されてもよい。しかし、それとは関係なく、ＮｏＣ１２０を使用して、ＤＰＥアレイ１０５は、たとえばＳｏＣ１００全体にわたってさまざまな場所に配置され得るプログラマブルロジック（ＰＬ）１２５、プロセッササブシステム（ＰＳ）１３０または入力／出力（Ｉ／Ｏ）１３５と通信することができる。
【００２０】
ＤＰＥ１１０とＮｏＣ１２０との間にインターフェイスを提供することに加えて、ＤＰＥ−ＳｏＣインターフェイス回路１１５は、ＰＬ１２５における通信ファブリックとの直接接続も提供してもよい。一例では、ＤＰＥ−ＳｏＣインターフェイス回路１１５は、ＤＰＥ１１０をＮｏＣ１２０に通信可能に結合するための別個のハードウェアコンポーネントおよびＤＰＥ１１０をＳｏＣ１００内のＤＰＥアレイ１０５の近くに配置されたＰＬ１２５に通信可能に結合するための別個のハードウェアコンポーネントを含む。
【００２１】
図１は、ＰＬ１２５の１つのブロックを示しているが、ＳｏＣ１００は、ＳｏＣ１００内のさまざまな場所に配置され得るＰＬ１２５の複数のブロック（構成ロジックブロックとも称される）を含んでいてもよい。たとえば、ＳｏＣ１００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を形成するハードウェア要素を含んでいてもよい。しかし、他の例では、ＳｏＣ１００はＰＬ１２５を含まなくてもよく、たとえば、ＳｏＣ１００はＡＳＩＣである。
【００２２】
図２は、一例に係るタイル回路２００を示すブロック図である。タイル回路２００は、上記されて図１に示されているＤＰＥ１１０として使用することができる。タイル回路２００は、コア２０２（すなわち、データ処理エンジン）と、メモリ２０４と、ストリーミングインターコネクト２１０と、メモリマップド（ＭＭ）インターコネクト２１２と、サポート回路２１４とを含む。いくつかの例では、サポート回路２１４は、デバッグ回路２１６と、ハードウェア（ＨＷ）同期回路（「ＨＷロック２１８」）と、ダイレクトメモリアクセス（ＤＭＡ）回路（「ＤＭＡ２２０」）とを含む。メモリ２０４は、プログラムメモリ（「ＰＭ２０６」）と、データメモリ（「ＤＭ２０８」）とを含む。
【００２３】
コア２０２は、ＰＭ２０６に格納された命令に従ってデータを処理するための１つまたは複数の計算ユニットを含む。一例では、コア２０２は、超長命令語（ＶＬＩＷ）プロセッサ、単一命令複数データ（ＳＩＭＤ）もしくはベクトルプロセッサ、またはＶＬＩＷ  ＳＩＭＤ／ベクトルプロセッサを含む。一例では、ＰＭ２０６は、コア２０２にとってプライベートである（たとえば、ＰＭ２０６は、タイル回路２００におけるコア２０２しか使用できない命令を格納している）。一例では、ＰＭ２０６は、シングルポートランダムアクセスメモリ（ＲＡＭ）を備える。ＰＭ２０６は、ＭＭインターコネクト２１２に結合されて、命令を構成およびロードすることができる。
【００２４】
コア２０２は、ストリーミングインターコネクト２１０に直接結合されて、入力ストリームを受信するおよび／または出力ストリームを提供することができる。また、コア２０２は、タイル回路２００におけるＤＭ２０８にデータを読み書きすることができる。以下でさらに説明するように、タイル回路２００におけるコア２０２は、１つまたは複数の隣接するタイル回路（たとえば、北側、南側、東側および西側の隣接するタイル回路）におけるＤＭにもアクセスすることができる。一例では、コア２０２は、累算器出力を転送するための１つまたは複数の隣接するタイルにおけるデータ処理エンジンとの直接接続（たとえば、入力および出力カスケード接続）も含み得る。一例では、コア２０２は、タイル回路２００におけるＤＭ２０８および隣接するタイルにおける他のＤＭをメモリの１つの連続ブロックと見なす。ＤＰＥ１１０は、ＨＷロック２１８とのインターフェイスおよびデバッグ回路２１６とのインターフェイスも含み得る。デバッグ回路２１６は、トレース、デバッグおよび／またはプロファイル回路を含み得る。
【００２５】
ＭＭインターコネクト２１２は、コンポーネント間のアドレストランザクションを使用してデータを送信するように構成されたＡＸＩメモリマップドインターコネクトなどであってもよい。一例では、ＭＭインターコネクト２１２は、タイル回路２００のための構成、制御およびデバッグ機能に使用される。ＭＭインターコネクト２１２は、アドレスに基づいてトランザクションをルーティングする１つまたは複数のスイッチを含む。回路は、ＭＭインターコネクト２１２を使用して、タイル回路２００におけるメモリ２０４、コア２０２、ＤＭＡ２２０および構成レジスタにアクセスすることができる。
【００２６】
ストリーミングインターコネクト２１０は、コンポーネント間でストリーミングデータを送信するように構成されたアドバンスド・エクステンシブル・インターコネクト（ＡＸＩ）ストリーミングインターコネクトなどであってもよい。ストリーミングインターコネクト２１０は、タイル回路２００と外部回路との間でデータを転送するのに使用される。ストリーミングインターコネクト２１０は、データおよび制御の両方のために回路交換機構もパケット交換機構もサポートすることができる。
【００２７】
一例では、ＤＭ２０８は、１つまたは複数のメモリバンク（たとえば、ランダムアクセスメモリ（ＲＡＭ）バンク）を含み得る。ＤＭＡ２２０は、ストリーミングインターコネクト２１０とＤＭ２０８との間に結合されている。ＤＭＡ２２０は、ストリーミングインターコネクト２１０からＤＭ２０８にデータを移動させ、ＤＭ２０８からストリーミングインターコネクト２１０にデータを移動させるように構成される。このように、外部回路（たとえば、プログラマブルロジック内に構成された回路またはＩＣの埋め込み処理システム内の回路）は、ＤＭＡを使用してストリーミングインターコネクト２１０を介してＤＭ２０８との間でデータを読み書きすることができる。ＤＭＡ２２０は、ＭＭインターコネクト２１２および／またはストリーミングインターコネクト２１０を介して制御されることができる。
【００２８】
ＨＷロック２１８は、コア２０２、別のタイルにおける別のデータ処理エンジン、またはＤＭＡ２２０によるアクセスのためにＤＭ２０８の特定のメモリバンクをロックするのに使用することができる。ＨＷロック２１８は、隣接するタイルにおける隣接するデータ処理エンジン間、コア２０２とＤＭＡ２２０との間、およびＤＰＥ１１０と外部回路（たとえば、外部プロセッサ）との間の同期を提供する。また、ＨＷロック２１８は、ＤＭ２０８における特定のバッファをロックするのに使用することができ、この特定のバッファは、１つもしくは複数のメモリバンクまたは単一のメモリバンクの一部に格納されていてもよい。デバッグ回路２１６は、デバッグ、トレースおよびプロファイル機能を提供するように構成される。デバッグ回路２１６は、タイル回路２００における回路によって生成されたイベントをトレースすることができる。デバッグ回路２１６は、プロファイル機能、たとえば構成可能なパフォーマンスカウンタを提供することができる。
【００２９】
図３は、一例に係るタイル回路２００をより詳細に示すブロック図である。この例では、タイル回路２００は、データ処理回路３５０と、メモリ回路３５１と、インターコネクト回路３２０とを含む。データ処理回路３５０は、コア２０２と、ＰＭ２０６とを含む。メモリ回路３５１は、メモリインターフェイス３０２Ｎ，３０２Ｓ，３０２Ｅおよび３０２Ｗ（まとめてメモリインターフェイスまたは個々に「ｍｅｍ  ＩＦ」）と、ＲＡＭバンク３１８と、ＨＷロック２１８と、レジスタ（「ｒｅｇｓ３０４」）と、ＤＭＡインターフェイス２０４Ａと、ＤＭＡインターフェイス２２０Ｂとを含む。コア２０２は、レジスタ（「ｒｅｇｓ３０６」）を含む。インターコネクト回路３２０は、ＭＭインターコネクト２１２と、ストリーミングインターコネクト２１０とを含む（明確には図示せず）。ＲＡＭバンク３１８は、バンク当たり調整ロジック３１９を含む。調整ロジック３１９は、どのインターフェイス（Ｎ，Ｓ，Ｅ，Ｗ，ＤＭＡ，外部ＰＳなど）がどのバンクにアクセスできるかを制御するように構成される。
【００３０】
インターコネクト回路３２０は、西側タイルとのストリーミング接続３１４Ｗと、東側タイルとのストリーミング接続３１４Ｅと、北側タイルとのストリーミング接続３１４Ｎと、南側タイルとのストリーミング接続３１４Ｓとを含む。各ストリーミング接続３１４は、各々が特定のビット幅を有する１つまたは複数の独立したストリーミングインターフェイス（たとえば、バス）を含む。また、インターコネクト回路３２０は、南側タイルからのメモリマップド接続３１２Ｓと、北側タイルとのメモリマップド接続３１２Ｎとを含む。北側および南側ＭＭ接続のみが示されているが、インターコネクト回路３２０は、ＭＭインターコネクトのための他の構成（たとえば、東側と西側、西側と東側、北側と南側など）を含んでいてもよいということが理解されるべきである。インターコネクト回路３２０は、図３の例に示されている構成以外のストリーミング接続およびメモリマップド接続の他の構成を含んでいてもよいということが理解されるべきである。一般に、インターコネクト回路３２０は、少なくとも１つのストリーミング接続３１４と、少なくとも１つのメモリマップド接続３１２とを含む。
【００３１】
コア２０２は、西側タイルにおけるメモリ回路との接続３０８Ｗと、南側タイルにおけるメモリ回路との接続３０８Ｓと、北側タイルにおけるメモリ回路との接続３０８Ｎと、メモリ回路３５１との接続３０８Ｅとを含む。コア２０２は、インターコネクション回路３２０とのストリームライニングインターフェイスを含む。また、コア２０２は、西側タイルにおける処理エンジンからの接続３１０Ａと、東側タイルにおける処理エンジンとの接続３１０Ｂとを含む（たとえば、カスケード接続）。データ処理エンジンは、図３の例に示されている構成以外のメモリおよびカスケード接続の他の構成を含んでいてもよいということが理解されるべきである。一般に、コア２０２は、少なくとも１つのメモリ接続を含み、少なくとも１つのカスケード接続を含み得る。
【００３２】
ｍｅｍ  ＩＦ３０２Ｗは、コア２０２のメモリ接続３０８Ｅに結合されている。ｍｅｍ  ＩＦ３０２Ｎは、北側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。ｍｅｍ  ＩＦ３０２Ｆは、東側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。ｍｅｍ  ＩＦ３０２Ｓは、南側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。ｍｅｍ  ＩＦ３０２Ｗ，３０２Ｎ，３０２Ｅおよび３０２Ｓは、ＲＡＭバンク３１８に結合されている。ＤＭＡ２２０Ａは、インターコネクト回路３２０に結合されて、メモリからインターコネクトへのストリームを処理するための出力を含む。ＤＭＡインターフェイス２２０Ｂは、インターコネクト回路３２０に結合されて、インターコネクトからメモリへのストリームを処理するための入力を含む。ｒｅｇｓ３０４およびｒｅｇｓ３０６は、インターコネクト回路３２０に結合されて、そこから（たとえば、メモリマップドインターコネクトを使用して）構成データを受信する。
【００３３】
図４は、一例に係るコア２０２を示すブロック図である。コア２０２は、レジスタファイル４０２と、プロセッサ４０４と、サポート回路４０６とを含む。レジスタファイル４０２は、スカラレジスタファイル４０８と、ベクトルレジスタファイル４１０とを含む。スカラレジスタファイル４０８は、汎用レジスタ、ポインタレジスタ、修飾子レジスタ（modifier register）、構成レジスタなどを含む。ベクトルレジスタファイル４１０は、ベクトルデータ経路のためのＳＩＭＤ命令をサポートする（スカラレジスタと比較して）高幅のレジスタを含む。ベクトルレジスタファイル４１０は、ベクトルレジスタ、累算器レジスタなどを含み得る。レジスタファイル４０２は、プログラムカウンタ、スタックポインタ、リンクレジスタ、さまざまな構成、制御およびステータスレジスタなどの他のタイプのレジスタを含み得る。
【００３４】
プロセッサ４０４は、スカラプロセッサ４１２と、ベクトルプロセッサ４１４とを含む。スカラプロセッサ４１２は、スカラ演算を実行するように構成され、スカラ演算は、符号付きおよび符号なし乗算、加算／減算、シフト、比較、論理演算、初等関数（平方根、サイン／コサインなど）などを含む。ベクトルプロセッサ４１４は、ベクトル演算を実行するように構成され、ベクトル演算は、置換関数、加算前関数、乗算関数、加算後関数、累積関数、シフト、ラウンドおよび飽和関数、アップシフト関数などを含む。ベクトルプロセッサ４１４は、複素数オペランドおよび実数オペランドのために複数の精度をサポートする。ベクトルプロセッサ４１４は、固定点データ経路も浮動小数点データ経路も含み得る。
【００３５】
サポート回路４０６は、メモリインターフェイス４１６と、アドレス生成部４１８と、命令フェッチおよび復号回路４２０と、１つまたは複数の追加インターフェイス４２２とを含む。命令フェッチおよび復号回路４２０は、ＰＭ２０６からの命令をフェッチし、フェッチされた命令を復号し、復号された命令に従ってプロセッサ４０４の動作を制御するための制御信号をプロセッサ４０４に提供するように構成される。アドレス生成部４１８は、データメモリからデータをロードしたりデータメモリにデータを格納したりするための、データメモリのためのアドレスを生成するように構成される。メモリインターフェイス４１６は、データメモリと通信して、復号された命令およびアドレス生成部４１８によって生成されたアドレスに従ってデータを送受信するように構成される。他のインターフェイス４２２は、ＨＷロック２１８とのインターフェイス、ストリーミングインターコネクト２１０とのインターフェイス、他のデータ処理エンジンからカスケードストリームを受信するためのインターフェイス、デバッグ回路２１６とのインターフェイスなどを含み得る。
【００３６】
図５は、図１に示されるＳｏＣ１００の実現例として使用することができる、一例に係るプログラマブルＩＣ５００を示すブロック図である。プログラマブルＩＣ５００は、プログラマブルロジック５１０と、構成ロジック５１５と、構成メモリ５２０とを含む。プログラマブルＩＣ５００は、不揮発性メモリ５２５、ＤＲＡＭ５３０および他の回路５３５などの外部回路に結合されることができる。プログラマブルロジック５１０は、ロジックセル５１１と、サポート回路５１２と、プログラマブルインターコネクト５１３とを含む。ロジックセル５１１は、複数の入力の一般的な論理機能を実行するように構成され得る回路を含む。サポート回路５１２は、トランシーバ、入力／出力ブロック、デジタル信号プロセッサ、メモリなどの専用の回路を含む。ロジックセル５１１とサポート回路５１２とは、プログラマブルインターコネクト５１３を使用して相互接続可能である。ロジックセル５１１をプログラムするための情報、サポート回路５１２のパラメータを設定するための情報、およびプログラマブルインターコネクト５１３をプログラムするための情報は、構成ロジック５１５によって構成メモリ５２０に格納される。構成ロジック５１５は、不揮発性メモリ５２５またはその他のソース（たとえば、ＤＲＡＭ５３０または他の回路２９）から構成データを取得することができる。いくつかの例では、プログラマブルＩＣ５００は、処理システム５０５を含む。処理システム５０５は、マイクロプロセッサ、メモリ、サポート回路、ＩＯ回路などを含み得る。
【００３７】
データサンプルのセットについて、ＰＤＷは、データサンプルのセットのサンプルのサブセットとして定義される。一般的なピーク検出は、ピークを見つけ出して、ＰＤＷにおける最高のピークを選択することによって、各ＰＤＷにわたってピークを１つだけ認定する。データをスキャンしてＰＤＷにわたってピークを選択する代わりに、ブロック最大値がＰＤＷにわたって選択される。ブロックサイズが大きい場合、最大値はほとんどの場合ピークである。図６は、２つのピーク検出窓にわたるブロック最大値検出を示すグラフの一例６００を示す。図６は、２つのＰＤＷ６０２および６０４を示している。Ｓ個のサンプルがインデックスｘ０...ｘｓ−１を有するデータのブロック（すなわち、ＰＤＷ６０２，６０４）では、最大値はブロック境界ｘ０またはｘｓ−１に位置し得る。
【００３８】
ピークｎ１のインデックスは、ＰＤＷ６０２のブロック最大値６０６のために記録されることができる。すぐ次のＰＤＷ６０４のブロック最大値６０８を見つけ出すことができ、ピークｎ２のインデックスが記録される。以下に従って、ピーク同士の間のサンプル数がＰＤＷのサイズＳよりも大きい場合にのみ、ピークｎ１がピークとして認定される。
【００３９】
【数２】
2021536622.tif 000004
【００４０】
これは、ピークが時間の点で十分に分離されることを確実にする。また、これは、境界に位置するいかなるピークも排除する。なぜなら、すぐ後のＰＤＷにおけるブロック最大値までのサンプル数がＰＤＷのサイズよりも大きくないからである。
【００４１】
ＰＤＷのためのブロック最大値は、ベクトル演算を使用して求めることができる。ブロック最大値ベクトル演算ＶＭＡＸ（）は、Ｎ個のサンプルのセットに対して要素ごとまたはレーンごとの（ｎ番目のレーンはｎ番目のベクトルに対応する）ｍａｘを実行する。以下に従って、ブロックベクトル演算は、ベクトルｘおよびｙに対してレーンごとのｍａｘを実行してベクトルｚを返し、最大値は、ｘまたはｙのレーンから選択される。
【００４２】
【数３】
2021536622.tif 000005
【００４３】
式中、ｘ（ｎ）＞ｙ（ｎ）であればｚ（ｎ）＝ｘ（ｎ）であり、ｘ（ｎ）＜ｙ（ｎ）であればｚ（ｎ）＝ｙ（ｎ）であり、０≦ｎ≦Ｎ−１であり、ｘ，ｙ，ｚはパワーベクトルである。最大値は、データのブロックにわたって固有である。
【００４４】
長さＮのサンプルのセット（すなわち、ベクトル）に対する上記のブロック最大値演算は、より大きなサイズのデータのブロックに拡張することができる。ＰＤＷは、Ｎの整数の倍数であるいくつかのサンプル（または、時間）であると定義され得る。たとえば、図７に示されるように、ＰＤＷは、長さＬ＝Ｎ×Ｋ（Ｋは正の整数）を有すると定義され得る。ｚは、たとえばゼロ要素に初期化される。以下に従って、ｉ番目のバッファｘｉに対してＶＭＡＸ演算が実行される。
【００４５】
【数４】
2021536622.tif 000006
【００４６】
したがって、ブロック最大値演算は、Ｌ個のサンプルのより大きなブロックに対してＫ回反復して実行される。Ｋ個のバッファを処理した後、すなわちＰＤＷのＬ個のサンプルに対してＫ回ブロック最大値演算を繰り返した後、ベクトルｚは、より大きなＰＤＷにわたる最大値を含む。最大値を含むバッファは、サバイババッファｚｓと称される。最大値ｍａｘ（ｚｓ）は、スカラ演算または要素ごとのチェックを使用して計算することができる。たとえば、ｍａｘ（ｚｓ）＝［Ｖ，ｍ］であり、式中、Ｖは、サンプルにわたる最大パワー値であり、ｍは、サバイババッファｚｓにおけるＶのインデックス（端数インデックスと称される）であり、０≦ｍ≦Ｎである。ＶＭＡＸ演算のブーリアン結果は、レジスタに格納され得る。
【００４７】
インデックス追跡は、場所（すなわち、ピークのインデックス）およびピークに対応する複素数データサンプルを見つけ出すためになされる。最大値のインデックスｍは、ベクトルピーク検出を使用して求めることができる。ＰＤＷにわたる最大値がｑ番目のバッファｘｑ内にあると仮定すると、ＰＤＷにわたる最大値の完全なインデックス（ランニングインデックスと称される）は、以下のように示すことができる。
【００４８】
【数５】
2021536622.tif 000007
【００４９】
Ｎ個のサンプルのセットについてウィニングレーンｃを返す別のベクトル演算ＶＳＥＬ（）を使用することができる。
【００５０】
【数６】
2021536622.tif 000008
【００５１】
式中、ｘ（ｎ）＞ｙ（ｎ）であればｃ（ｎ）＝０であり、ｘ（ｎ）＜ｙ（ｎ）であればｃ（ｎ）＝１であり、０≦ｎ≦Ｎ−１である。したがって、ＶＳＥＬ演算は、二値比較を実行して、ベクトルｘおよびｙについてレーンごとの最大値を求める。次いで、以下でさらに説明するようにインデックス発見を使用してｃを処理することによって、バッファｑを求めることができる。
【００５２】
いくつかの例では、ベクトル化されたピーク検出のための技術は、ＶＭＡＸ演算とＶＳＥＬ演算とを組み合わせることができる。図８は、一例に係る、ベクトル化されたピーク検出のための動作の一例８００を示すフロー図である。
【００５３】
動作８０２において、サイズＬのピーク検出窓を整数の倍数Ｋ個のサイズＮのより小さなブロック（たとえば、バッファ）に分割する。上記のように、ＰＤＷの長さＬは、Ｎの倍数Ｋとして定義され得る。
【００５４】
動作８０４において、ブロック最大値ベクトルをゼロに初期化する。たとえば、上記のようにバッファｚをゼロ要素に初期化することができる。
【００５５】
動作８０６において、サイズＮのより小さなブロックの各々について、ブロック最大値ベクトル演算ＶＭＡＸを反復的に実行して、ブロック最大値インデックスｍを求める。動作８０８において、サイズＮのより小さなブロックの各々について、レーンごとの最大値ベクトル演算ＶＳＥＬを反復的に実行して、ウィニングレーンを選択する。たとえば、上記のように、ｉ番目のデータバッファｘｉについて、以下のようにＶＭＡＸベクトル演算およびＶＳＥＬベクトル演算をＫ回反復して実行することができる。
【００５６】
【数７】
2021536622.tif 000009
【００５７】
式中、ｘｉは、ｉ番目のデータバッファであり、ｃｉは、ｘｉのためのウィニングレーンを含む。Ｋ個のバッファを処理した後、ベクトルｚは、サバイババッファｚｓにおけるＰＤＷにわたる最大値を含む。サバイババッファｍａｘ（ｚｓ）における最大値は、最大値［Ｖ，ｍ］（ｍはウィニングレーンであり、０≦ｍ≦Ｎである）のインデックスを得るためにスカラ演算または要素ごとのチェックを使用して計算される。最大値を含むｑ番目のデータバッファを処理した後、ＶＳＥＬ演算によってウィニングレーンｃｑにおけるｍ番目の要素を１に設定する。すなわち、ｃｑ（ｍ）＝１である。したがって、後続のレーンｃｉ（ｍ）（ｉ≧ｑ）におけるｍ番目の要素も１に設定される。この結果は、ベクトル演算を使用して、ランニングインデックスｐの計算に活用することができる。
【００５８】
動作８１０において、レーンごとの最大値ベクトル演算に基づいてベクトル和演算を実行する。以下に従って、さらに別のベクトル演算を実行することができる。
【００５９】
【数８】
2021536622.tif 000010
【００６０】
式中、ｃｊ（ｊ）＝０であればＲｉ（ｊ）＝０（たとえば、レジスタをリセットする）であり、ｃｊ（ｊ）＝１であればＲｉ（ｊ）＝Ｒｉ−１（ｊ）＋１（たとえば、累積する）であり、０≦ｊ≦Ｎである。
【００６１】
動作８１２において、ベクトル和演算の結果をより小さなブロックの数Ｋから減算することによってウィニングバッファインデックスを計算する。ウィニングバッファインデックスｑは、以下に従って計算することができる。
【００６２】
【数９】
2021536622.tif 000011
【００６３】
動作８１４において、ウィニングバッファインデックスにバッファの長さＮを乗算し、ブロック最大値インデックスｍを加算することによって、ランニングインデックスを計算する。ｑについての式２を式１に代入して、以下に従ってランニングインデックスｐを計算することができる。
【００６４】
【数１０】
2021536622.tif 000012
【００６５】
図９は、一例に係る、ＣＦＲ演算のためのプログラマブルロジック要素９００を示すブロック図である。図９は、処理サブシステムのプログラマブルロジック要素の一部を示している。図９に示されるように、ＰＬ要素９００は、ベクトル化されたピーク検出（ＶＰＤ）ブロック９０５と、ＩＦブロック９１０と、ピーク認定ブロック９１５と、アドレス生成およびスケール発見ブロック９２０と、ＩＦブロック９２５と、ＰＣＦＲブロック９３０と、加算演算ブロック９３５と、遅延ブロック９４０とを含む。ＶＰＤブロック９０５は、動作８００を実行するように構成されてもよい。
【００６６】
図１０は、一例に係る、ＣＦＲ演算のＶＰＤ９０５ブロックのためのプログラマブルロジック要素の一例を示すブロック図である。図１０に示されるように、ＶＰＤ９０５は、Ｈｂ２３  ２ｘ  Ｉｎｔブロック１００５と、Ｈｂ１１  ２ｘ  Ｉｎｔブロック１０１０と、演算ブロック１０１５と、ＶＭＡＸ１６ブロック１０２０と、インデックス追跡ブロック１０２５と、ＳＵにおける１６要素検索ブロック１０３０とを含み得る。ブロック１００５および１０１０は、データ補間を実行することができる。演算ブロック１０１５は、ＶＭＡＸ演算を実行して、二値振幅比較を実行することができる。ＶＭＡＸ１６は、上記のＶＳＥＬ演算を実行して、レーンごとの最大値を求め、レーンごとのウィナーを有するベクトルを出力することができ、そのより小さなブロックの場所でＰＤＷは最大値を含む。ブーリアン型のレーンごとのウィナーは、レジスタに格納され得る。インデックス追跡ブロック１０２５は、ベクトル和演算を実行して、ウィニングレーンインデックスおよびランニングインデックスを計算することができる。ベクトル和演算は、ベクトルレジスタにおける二進値を累積することができる。ＳＵにおける要素検索ブロック１０３０は、最大の大きさｍの端数インデックスを検索し、最大インデックスｐを再構築し、対応するサンプルをデータストリームから抽出することができる。
【００６７】
一例において、データ処理エンジンを有する集積回路（ＩＣ）における信号処理のための方法は、ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するステップを含み、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、上記方法はさらに、上記データ処理エンジンにおいて上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップと、上記ベクトル演算に基づいて、上記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップとを含む。
【００６８】
一例において、上記ベクトル演算を実行するステップは、第１のベクトル演算を実行して、上記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるステップと、第２のベクトル演算を実行して、上記複数のサブセットの各サンプルについて２進値を求めるステップと、第３のベクトル演算を実行して、上記第２のベクトル演算において求められた上記２進値に基づいて累積値を求めるステップとを含む。
【００６９】
一例において、上記ランニングインデックスを求めるステップは、上記複数のサブセットの各々の中の上記求められたサンプルに基づいて、上記ＰＤＷにわたって上記最大の振幅を有する上記サンプルの端数インデックスを求めるステップと、上記累積値をいくつかの上記複数のサブセットから減算することによって、上記ＰＤＷにわたって上記最大の振幅を有する上記サンプルを含む上記複数のサブセットのうちのあるサブセットのインデックスを求めるステップと、上記複数のサブセットのうちの上記サブセットの上記インデックス、複数のサブセットの各々における上記いくつかのデータサンプル、および上記端数インデックスに基づいて、上記ランニングインデックスを求めるステップとを含む。
【００７０】
一例において、上記第１のベクトル演算は、上記サブセットにおける第１のパワーベクトルと上記サブセットにおけるサンプルの第２のパワーベクトルとを比較して、上記サブセットにおける各サンプルについて、上記第１または第２のパワーベクトルのうちの大きい方のパワーベクトルを出力するレーンごとの演算である。
【００７１】
一例において、上記第２のベクトル演算は、上記複数のサブセットの各々にわたって、第１のサブセットにおけるサンプルと第２のサブセットにおける対応するサンプルとを比較して、上記第１のサブセットにおける上記サンプルが第２のサブセット上記対応するサンプルよりも大きい場合には０を出力し、上記第１のサブセットにおける上記サンプルが上記第２のサブセットにおける上記対応するサンプルよりも小さい場合には１を出力するレーンごとの演算である。
【００７２】
一例において、上記第３の演算は、上記累積値をゼロに初期化するステップと、上記ＰＤＷにおける各サンプルについて、上記サブセットにおける上記サンプルの上記出力がゼロである場合には、上記累積値をゼロにリセットするステップと、上記ＰＤＷにおける各サンプルについて、上記サブセットにおける上記サンプルの上記出力が１である場合には、上記累積値を１だけインクリメントするステップとを含む。
【００７３】
一例において、上記ランニングインデックスを求めるステップは、上記複数のサブセットのうちの上記サブセットの上記インデックスに、複数のサブセットの各々における上記いくつかのデータサンプルを乗算するステップと、上記端数インデックスを上記積に加算するステップとを含む。
【００７４】
一例において、上記方法は、第２のＰＤＷにわたって最大の振幅を有する第２のサンプルのための第２のランニングインデックスを求めるステップと、上記第１のランニングインデックスと上記第２のランニングインデックスとを比較するステップと、上記第１のランニングインデックスと上記第２のランニングインデックスとの間の差が上記ＰＤＷにおけるサンプル数よりも大きい場合に、上記第１のＰＤＷにわたって上記最大の振幅を有する上記第１のサンプルをピークと見なすステップとをさらに含む。
【００７５】
一例において、上記方法は、上記ピークを上記信号から除去するステップをさらに含む。
【００７６】
一例において、データ処理エンジン（ＤＰＥ）は、レジスタファイルと、上記レジスタファイルに結合されたプロセッサとを含み、上記プロセッサは、ピーク検出窓（ＰＤＷ）に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、上記プロセッサはさらに、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成され、上記ベクトル演算に基づいて、上記ＰＤＷにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成される。
【００７７】
一例において、上記プロセッサは、第１のベクトル演算を実行して、上記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるように構成され、第２のベクトル演算を実行して、上記複数のサブセットの各サンプルについて２進値を求めるように構成され、第３のベクトル演算を実行して、上記第２のベクトル演算において求められた上記２進値に基づいて累積値を求めるように構成される。
【００７８】
一例において、上記プロセッサは、上記複数のサブセットの各々の中の上記求められたサンプルに基づいて、上記ＰＤＷにわたって上記最大の振幅を有する上記サンプルの端数インデックスを求めること、上記累積値をいくつかの上記複数のサブセットから減算することによって、上記ＰＤＷにわたって上記最大の振幅を有する上記サンプルを含む上記複数のサブセットのうちのあるサブセットのインデックスを求めること、および上記複数のサブセットのうちの上記サブセットの上記インデックス、複数のサブセットの各々における上記いくつかのデータサンプル、および上記端数インデックスに基づいて、上記ランニングインデックスを求めること、によって上記ランニングインデックスを求めるように構成される。
【００７９】
一例において、上記第１のベクトル演算は、レーンごとの演算であり、上記プロセッサは、上記サブセットにおける第１のパワーベクトルと上記サブセットにおけるサンプルの第２のパワーベクトルとを比較すること、および上記サブセットにおける各サンプルについて、上記第１または第２のパワーベクトルのうちの大きい方のパワーベクトルを出力すること、によって上記第１のベクトル演算を実行するように構成される。
【００８０】
一例において、上記第２のベクトル演算は、レーンごとの演算であり、上記プロセッサは、上記複数のサブセットの各々にわたって、第１のサブセットにおけるサンプルと第２のサブセットにおける対応するサンプルとを比較すること、および上記第１のサブセットにおける上記サンプルが第２のサブセット上記対応するサンプルよりも大きい場合には０を出力し、上記第１のサブセットにおける上記サンプルが上記第２のサブセットにおける上記対応するサンプルよりも小さい場合には１を出力すること、によって上記第２のベクトル演算を実行するように構成される。
【００８１】
一例において、上記プロセッサは、第２のＰＤＷにわたって最大の振幅を有する第２のサンプルのための第２のランニングインデックスを求めるようにさらに構成され、上記第１のランニングインデックスと上記第２のランニングインデックスとを比較するようにさらに構成され、上記第１のランニングインデックスと上記第２のランニングインデックスとの間の差が上記ＰＤＷにおけるサンプル数よりも大きい場合に、上記第１のＰＤＷにわたって上記最大の振幅を有する上記第１のサンプルをピークと見なすようにさらに構成される。
【００８２】
上記は具体的な例に向けられているが、その基本的な範囲から逸脱することなく他のおよびさらなる例が考案されてもよく、その範囲は以下の特許請求の範囲によって決定される。
【図１】
2021536622.tif 000013
【図２】
2021536622.tif 000014
【図３】
2021536622.tif 000015
【図４】
2021536622.tif 000016
【図５】
2021536622.tif 000017
【図６】
2021536622.tif 000018
【図７】
2021536622.tif 000019
【図８】
2021536622.tif 000020
【図９】
2021536622.tif 000021
【図１０】
2021536622.tif 000022
【国際調査報告】
2021536622.tif 000023
2021536622.tif 000024
2021536622.tif 000025