IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザイリンクス インコーポレイテッドの特許一覧

特許7447088信号処理のためのベクトル化されたピーク検出
<>
  • 特許-信号処理のためのベクトル化されたピーク検出 図1
  • 特許-信号処理のためのベクトル化されたピーク検出 図2
  • 特許-信号処理のためのベクトル化されたピーク検出 図3
  • 特許-信号処理のためのベクトル化されたピーク検出 図4
  • 特許-信号処理のためのベクトル化されたピーク検出 図5
  • 特許-信号処理のためのベクトル化されたピーク検出 図6
  • 特許-信号処理のためのベクトル化されたピーク検出 図7
  • 特許-信号処理のためのベクトル化されたピーク検出 図8
  • 特許-信号処理のためのベクトル化されたピーク検出 図9
  • 特許-信号処理のためのベクトル化されたピーク検出 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-01
(45)【発行日】2024-03-11
(54)【発明の名称】信号処理のためのベクトル化されたピーク検出
(51)【国際特許分類】
   G06F 7/02 20060101AFI20240304BHJP
   G06F 17/16 20060101ALI20240304BHJP
【FI】
G06F7/02
G06F17/16 L
【請求項の数】 14
(21)【出願番号】P 2021510950
(86)(22)【出願日】2019-08-20
(65)【公表番号】
(43)【公表日】2021-12-27
(86)【国際出願番号】 US2019047278
(87)【国際公開番号】W WO2020046647
(87)【国際公開日】2020-03-05
【審査請求日】2022-08-01
(31)【優先権主張番号】16/117,605
(32)【優先日】2018-08-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】バーマン,カウシック
(72)【発明者】
【氏名】ダイヒ,パラグ
(72)【発明者】
【氏名】オズグル,バリス
(72)【発明者】
【氏名】デイト,スネーハー・バルチャンドラ
【審査官】佐賀野 秀一
(56)【参考文献】
【文献】国際公開第2014/084162(WO,A1)
【文献】米国特許出願公開第2014/0044215(US,A1)
【文献】特表2015-504261(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/00- 7/36
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
データ処理エンジンを有する集積回路(IC)における信号処理のための方法であって、
ピーク検出窓(PDW)に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するステップを備え、前記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、前記方法はさらに、
前記データ処理エンジンにおいて前記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップと、
前記ベクトル演算に基づいて、前記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップとを備え、前記ランニングインデックスは、前記PDWにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちのあるサブセットのインデックスに、前記複数のサブセットの各々におけるいくつかのデータサンプルを乗算して積を生成し、前記PDWにわたって前記最大の振幅を有する前記サンプルの端数インデックスを前記積に加算することにより求められる、方法。
【請求項2】
前記ベクトル演算を実行するステップは、
第1のベクトル演算を実行して、前記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるステップと、
第2のベクトル演算を実行して、前記複数のサブセットの各サンプルについて2進値を求めるステップと、
第3のベクトル演算を実行して、前記第2のベクトル演算において求められた前記2進値に基づいて累積値を求めるステップとを備える、請求項1に記載の方法。
【請求項3】
前記ランニングインデックスを求めるステップは、
前記複数のサブセットの各々の中の前記求められたサンプルに基づいて、前記PDWにわたって前記最大の振幅を有する前記サンプルの前記端数インデックスを求めるステップと、
前記累積値をいくつかの前記複数のサブセットから減算することによって、前記PDWにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちの前記サブセットの前記インデックスを求めるステップとを備える、請求項2に記載の方法。
【請求項4】
前記第1のベクトル演算は、前記サブセットにおける第1のパワーベクトルと前記サブセットにおけるサンプルの第2のパワーベクトルとを比較して、前記サブセットにおける各サンプルについて、前記第1または第2のパワーベクトルのうちの大きい方のパワーベクトルを出力するレーンごとの演算である、請求項2に記載の方法。
【請求項5】
前記第2のベクトル演算は、前記複数のサブセットの各々にわたって、第1のサブセットにおけるサンプルと第2のサブセットにおける対応するサンプルとを比較して、前記第1のサブセットにおける前記サンプルが第2のサブセット前記対応するサンプルよりも大きい場合には0を出力し、前記第1のサブセットにおける前記サンプルが前記第2のサブセットにおける前記対応するサンプルよりも小さい場合には1を出力するレーンごとの演算である、請求項2に記載の方法。
【請求項6】
前記第3のベクトル演算は、
前記累積値をゼロに初期化するステップと、
前記PDWにおける各サンプルについて、前記サブセットにおける前記サンプルの前記出力がゼロである場合には、前記累積値をゼロにリセットするステップと、
前記PDWにおける各サンプルについて、前記サブセットにおける前記サンプルの前記出力が1である場合には、前記累積値を1だけインクリメントするステップとを備える、請求項5に記載の方法。
【請求項7】
第1のPDWにわたって最大の振幅を有する第1のサンプルのための第1のランニングインデックスを求めるステップと、
第2のPDWにわたって最大の振幅を有する第2のサンプルのための第2のランニングインデックスを求めるステップと、
前記第1のランニングインデックスと前記第2のランニングインデックスとを比較するステップと、
前記第1のランニングインデックスと前記第2のランニングインデックスとの間の差が前記第2のPDWにおけるサンプル数よりも大きい場合に、前記第1のPDWにわたって前記最大の振幅を有する前記第1のサンプルをピークと見なすステップとをさらに備える、請求項1に記載の方法。
【請求項8】
前記ピークを前記データ信号から除去するステップをさらに備える、請求項に記載の方法。
【請求項9】
データ処理エンジン(DPE)であって、
レジスタファイルと、
前記レジスタファイルに結合されたプロセッサとを備え、前記プロセッサは、
ピーク検出窓(PDW)に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、前記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、前記プロセッサはさらに、
前記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成され、
前記ベクトル演算に基づいて、前記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成され、前記ランニングインデックスは、前記PDWにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちのあるサブセットのインデックスに、前記複数のサブセットの各々におけるいくつかのデータサンプルを乗算して積を生成し、前記PDWにわたって前記最大の振幅を有する前記サンプルの端数インデックスを前記積に加算することにより求められる、DPE。
【請求項10】
前記プロセッサは、
第1のベクトル演算を実行して、前記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるように構成され、
第2のベクトル演算を実行して、前記複数のサブセットの各サンプルについて2進値を求めるように構成され、
第3のベクトル演算を実行して、前記第2のベクトル演算において求められた前記2進値に基づいて累積値を求めるように構成される、請求項に記載のDPE。
【請求項11】
前記プロセッサは、
前記複数のサブセットの各々の中の前記求められたサンプルに基づいて、前記PDWにわたって前記最大の振幅を有する前記サンプルの前記端数インデックスを求めること、および
前記累積値をいくつかの前記複数のサブセットから減算することによって、前記PDWにわたって前記最大の振幅を有する前記サンプルを含む前記複数のサブセットのうちの前記サブセットの前記インデックスを求めること、によって前記ランニングインデックスを求めるように構成される、請求項10に記載のDPE。
【請求項12】
前記第1のベクトル演算は、レーンごとの演算であり、前記プロセッサは、
前記サブセットにおける第1のパワーベクトルと前記サブセットにおけるサンプルの第2のパワーベクトルとを比較すること、および
前記サブセットにおける各サンプルについて、前記第1または第2のパワーベクトルのうちの大きい方のパワーベクトルを出力すること、によって前記第1のベクトル演算を実行するように構成される、請求項10に記載のDPE。
【請求項13】
前記第2のベクトル演算は、レーンごとの演算であり、前記プロセッサは、
前記複数のサブセットの各々にわたって、第1のサブセットにおけるサンプルと第2のサブセットにおける対応するサンプルとを比較すること、および
前記第1のサブセットにおける前記サンプルが前記第2のサブセットにおける前記対応するサンプルよりも大きい場合には0を出力し、前記第1のサブセットにおける前記サンプルが前記第2のサブセットにおける前記対応するサンプルよりも小さい場合には1を出力すること、によって前記第2のベクトル演算を実行するように構成される、請求項10に記載のDPE。
【請求項14】
前記プロセッサは、
第1のPDWにわたって最大の振幅を有する第1のサンプルのための第1のランニングインデックスを求めるようにさらに構成され、
第2のPDWにわたって最大の振幅を有する第2のサンプルのための第2のランニングインデックスを求めるようにさらに構成され、
前記第1のランニングインデックスと前記第2のランニングインデックスとを比較するようにさらに構成され、
前記第1のランニングインデックスと前記第2のランニングインデックスとの間の差が前記第2のPDWにおけるサンプル数よりも大きい場合に、前記第1のPDWにわたって前記最大の振幅を有する前記第1のサンプルをピークと見なすようにさらに構成される、請求項に記載のDPE。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本開示の例は、一般に電子回路に関し、特にベクトル化されたピーク検出を使用するためのデータ処理に関する。
【背景技術】
【0002】
背景
プロセッサ、システムオンチップ(SoC)および特定用途向け集積回路(ASIC)は、デジタル信号の処理、暗号化技術の実行、ソフトウェアアプリケーションの実行、グラフィックスの描画などの計算動作を実行するための複数のコアを含み得る。複数のコアは、単一命令複数データ(SIMD)の原理を使用するベクトルプロセッサとして実現可能である。SIMDでは、複数のプロセッサが(たとえば、要素とも称されるデータサンプルのセットとしての)複数のデータ点上で同時に動作を実行する。したがって、SIMDは、複数の同時計算のためのデータレベル並列性を単一のプロセスまたは命令に活用する。
【0003】
SIMDを使用して複数のコアによって実行可能なプロセスの一例は、ピーク検出である。ピーク検出は、データサンプルのセット(要素とも称される)上で極大点を見つけ出すという問題である。データをスキャンすることによってサンプルの大きさまたは二乗の大きさ(たとえば、累乗)と隣接するサンプルの大きさまたは累乗とを比較することによって、サンプル同士を比較することができる。したがって、入来するデータxのストリームについて、点xは、以下を満たす場合に極大として定義される。
【0004】
【数1】
【0005】
ピーク検出は、ピーク・キャンセレーション・ベース・クレスト・ファクタ・リダクション(PC-CFR)などの信号処理機能に使用することができる。PC-CFRでは、検出されたピークは、それらが予め設定された閾値を超えるか否かを確認する資格がある。この資格は、ピーク検出窓(PDW)と呼ばれるデータの予め規定されたブロックにわたって最高のピークを選択する。資格のあるピークは、スケーリングされ、フィルタリングされ、次いで元のデータストリームから減算される。したがって、ピーク検出を使用したPC-CFRでは、結果として生じる信号は、より低いピーク対平均値比を示す。
【0006】
ピーク検出は、データサンプルのセットに対して同一の動作を実行することを含む。ピーク検出は、要素ごとの比較およびインデックス発見を含み、このことは、それをベクトルプロセッサ上で実行することを困難にしている。たとえば、ピーク検出は、一般に、ベクトルパイプラインを遮断すること、または、大きなデータセットにわたってスカラ演算を用いることを含む。これにより、さらなる計算サイクルが生じてプロセスが減速する。
【0007】
したがって、ピーク検出、たとえばPC-CFRのための技術の向上が有用であろう。
【発明の概要】
【課題を解決するための手段】
【0008】
概要
集積回路(IC)のためのデータ処理エンジン(DPE)に関連する技術が記載されている。一例では、ベクトル化されたピーク検出のための方法が提供される。上記方法は、ピーク検出窓(PDW)に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットにするステップを含み、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備える。上記方法は、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップを含む。上記方法は、上記ベクトル演算に基づいて、上記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップを含む。
【0009】
別の例では、DPEが提供される。上記DPEは、レジスタファイルと、上記レジスタファイルに結合されたプロセッサとを含む。上記プロセッサは、PDWに対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備える。上記プロセッサは、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成される。上記プロセッサは、上記ベクトル演算に基づいて、上記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成される。
【0010】
これらのおよび他の局面は、以下の詳細な説明を参照して理解され得る。
上記の特徴を詳細に理解することができるように、より特定的な説明(上に簡潔にまとめられている)が例示的な実現例を参照することによりなされてもよく、例示的な実現例のうちのいくつかは添付の図面に示されている。しかし、添付の図面は、典型的な例示的な実現例を示しているにすぎないため、その範囲を限定するものとして考えられるべきではない、ということに注意されたい。
【図面の簡単な説明】
【0011】
図1】一例に係るシステムオンチップ(SoC)のブロック図である。
図2】一例に係るタイル回路を示すブロック図である。
図3】一例に係る図2の回路をより詳細に示すブロック図である。
図4】一例に係るタイルインターコネクト回路を示すブロック図である。
図5図1に示されるSoCの実現例として使用することができる、一例に係るプログラマブルICを示すブロック図である。
図6】一例に係る、2つのピーク検出窓にわたるいくつかのサンプルの振幅のグラフの一例である。
図7】一例に係る、より大きなサイズのピーク検出窓の一例を示す図である。
図8】一例に係る、ベクトル化されたピーク検出のための動作の一例を示すフロー図である。
図9】一例に係る、CFR動作のためのプログラマブルロジック要素を示すブロック図である。
図10】一例に係る、CFR動作のベクトル化されたピーク検出ブロックのためのプログラマブルロジック要素の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
理解を容易にするために、図面に共通している同一の要素を示すために、可能な限り同一の参照番号が使用されている。1つの例の要素は他の例に有利に組み込まれ得ると考えられる。
【0013】
詳細な説明
以下、図面を参照してさまざまな特徴について説明する。なお、図面は一定の縮尺に応じて描かれている場合もあれば、そうでない場合もあり、図面全体を通して同様の構造または機能の要素は同様の参照番号によって示されている。なお、図面は、特徴の説明を容易にすることを意図したものであるに過ぎない。それらは、クレームされている発明の網羅的な説明として意図されているわけではなく、またはクレームされている発明の範囲を限定するものとして意図されているわけでもない。また、示されている例は、示されている全ての局面または利点を有していなくてもよい。特定の例に関連して記載されている局面または利点は、必ずしもその例に限定されるわけではなく、たとえそのように示されていなくても、またはそのように明確に記載されていなくても、その他の例において実施することができる。
【0014】
本開示の例は、ベクトル化されたピーク検出のための技術および装置に関する。いくつかの例では、ピーク検出は、処理のために多数のデータサンプルをより小さなブロックに分割することによってこれらのサンプルにわたって実行される。これらのデータのより小さなブロックは、ベクトル化されることができるため、要素ごとまたはレーンごとのベクトル-max演算のためのSIMDプロセッサなどのベクトルプロセッサ上で実現することが容易であり得る。いくつかの例は、データのより小さなブロックの処理中に、ベクトル化された態様でのピークのインデックス追跡を提供する。いくつかの例は、SIMDタイプのプロセッサなどのプロセッサ上で実現される最大値発見およびインデックス追跡のためのベクトル命令を提供し、これらのベクトル命令は、大きなデータセットにわたるピーク検出およびピークインデックス発見のために反復的に実行され得る。
【0015】
図1は、システムオンチップ(SoC)100の一例のブロック図であり、SoC100は、ベクトル化されたピーク検出のために本開示の例を実行することができるプロセッサの一例として、データ処理エンジン(DPE)アレイ105を含む。DPEアレイ105は、格子状、クラスタ状またはチェッカー盤状にSoC100内に配置され得る複数のデータ処理エンジン(DPE)110を含む。図1は、行および列を有する2次元配列の状態でDPE110を配置することを示しているが、例はこの構成に限定されるものではない。さらに、DPEアレイ105は、任意のサイズであってもよく、DPE110によって形成された任意の数の行および列を有していてもよい。
【0016】
一例では、これらのDPE110は同一である。すなわち、DPE110(タイルまたはブロックとも称される)の各々は、同一のハードウェアコンポーネントまたは回路を有していてもよい。さらに、本明細書における例は、DPE110に限定されるものではない。その代わりに、SoC100は、任意の種類の処理要素またはデータ処理エンジンのアレイを含んでいてもよい。さらに、DPE110は、1つまたは複数の専門的なタスクを実行するための暗号化エンジンまたは他の専門的なハードウェアであってもよい。したがって、DPE110は、一般にデータ処理エンジンと称され得る。
【0017】
図1において、DPEアレイ105は、全てが同一のタイプ(たとえば、均一な配列)であるDPE110を含む。しかし、別の例では、DPEアレイ105は、異なるタイプのエンジンを含んでいてもよい。たとえば、DPEアレイ105は、DPE110、暗号化エンジン、前方誤り訂正(FEC)エンジンなどを含んでいてもよい。DPEアレイ105が均一であるか不均一であるかにかかわらず、DPE110は、隣接するDPE110におけるメモリモジュールとの接続を含み得て、これらの接続は、以下でより詳細に説明するように、DPE110がメモリモジュールを共有することを可能にする。
【0018】
一例では、DPE110は、プログラマブルでないロジックから形成されており、すなわちハード化されている。そのようにする1つの利点は、プログラマブルロジックを使用してDPE110におけるハードウェア要素を形成することと比較して、DPE110がSoC100内で占める空間が少なくなるということである。すなわち、ハード化されたまたはプログラマブルでないロジック回路を使用して、ハードウェア要素(プログラムメモリ、命令フェッチ/復号ユニット、固定点ベクトルユニット、浮動小数点ベクトルユニット、演算論理装置(ALU)、乗累算器(MAC)など)をDPE110内に形成することにより、SoC100におけるDPEアレイ105のフットプリントを大幅に減少させることができる。DPE110はハード化され得るが、これは、DPE110がプログラマブルでないことを意味するものではない。すなわち、DPE110は、さまざまな機能またはタスクを実行するためにSoC100が電源投入または再起動されたときに構成され得る。
【0019】
DPEアレイ105は、SoC100におけるDPE110と他のハードウェアコンポーネントとの間の通信インターフェイスの役割を果たすDPE-SoCインターフェイス回路115も含む。この例では、SoC100は、DPE-SoCインターフェイス回路115に通信可能に結合されたネットワークオンチップ(NoC)120を含む。図示されていないが、NoC120は、SoC100内のさまざまなコンポーネントが互いに通信することを可能にするようにSoC100全体にわたって延在していてもよい。たとえば、物理的な実現例において、DPEアレイ105は、SoC100を形成する集積回路の右上部分に配置されてもよい。しかし、それとは関係なく、NoC120を使用して、DPEアレイ105は、たとえばSoC100全体にわたってさまざまな場所に配置され得るプログラマブルロジック(PL)125、プロセッササブシステム(PS)130または入力/出力(I/O)135と通信することができる。
【0020】
DPE110とNoC120との間にインターフェイスを提供することに加えて、DPE-SoCインターフェイス回路115は、PL125における通信ファブリックとの直接接続も提供してもよい。一例では、DPE-SoCインターフェイス回路115は、DPE110をNoC120に通信可能に結合するための別個のハードウェアコンポーネントおよびDPE110をSoC100内のDPEアレイ105の近くに配置されたPL125に通信可能に結合するための別個のハードウェアコンポーネントを含む。
【0021】
図1は、PL125の1つのブロックを示しているが、SoC100は、SoC100内のさまざまな場所に配置され得るPL125の複数のブロック(構成ロジックブロックとも称される)を含んでいてもよい。たとえば、SoC100は、フィールドプログラマブルゲートアレイ(FPGA)を形成するハードウェア要素を含んでいてもよい。しかし、他の例では、SoC100はPL125を含まなくてもよく、たとえば、SoC100はASICである。
【0022】
図2は、一例に係るタイル回路200を示すブロック図である。タイル回路200は、上記されて図1に示されているDPE110として使用することができる。タイル回路200は、コア202(すなわち、データ処理エンジン)と、メモリ204と、ストリーミングインターコネクト210と、メモリマップド(MM)インターコネクト212と、サポート回路214とを含む。いくつかの例では、サポート回路214は、デバッグ回路216と、ハードウェア(HW)同期回路(「HWロック218」)と、ダイレクトメモリアクセス(DMA)回路(「DMA220」)とを含む。メモリ204は、プログラムメモリ(「PM206」)と、データメモリ(「DM208」)とを含む。
【0023】
コア202は、PM206に格納された命令に従ってデータを処理するための1つまたは複数の計算ユニットを含む。一例では、コア202は、超長命令語(VLIW)プロセッサ、単一命令複数データ(SIMD)もしくはベクトルプロセッサ、またはVLIW SIMD/ベクトルプロセッサを含む。一例では、PM206は、コア202にとってプライベートである(たとえば、PM206は、タイル回路200におけるコア202しか使用できない命令を格納している)。一例では、PM206は、シングルポートランダムアクセスメモリ(RAM)を備える。PM206は、MMインターコネクト212に結合されて、命令を構成およびロードすることができる。
【0024】
コア202は、ストリーミングインターコネクト210に直接結合されて、入力ストリームを受信するおよび/または出力ストリームを提供することができる。また、コア202は、タイル回路200におけるDM208にデータを読み書きすることができる。以下でさらに説明するように、タイル回路200におけるコア202は、1つまたは複数の隣接するタイル回路(たとえば、北側、南側、東側および西側の隣接するタイル回路)におけるDMにもアクセスすることができる。一例では、コア202は、累算器出力を転送するための1つまたは複数の隣接するタイルにおけるデータ処理エンジンとの直接接続(たとえば、入力および出力カスケード接続)も含み得る。一例では、コア202は、タイル回路200におけるDM208および隣接するタイルにおける他のDMをメモリの1つの連続ブロックと見なす。DPE110は、HWロック218とのインターフェイスおよびデバッグ回路216とのインターフェイスも含み得る。デバッグ回路216は、トレース、デバッグおよび/またはプロファイル回路を含み得る。
【0025】
MMインターコネクト212は、コンポーネント間のアドレストランザクションを使用してデータを送信するように構成されたAXIメモリマップドインターコネクトなどであってもよい。一例では、MMインターコネクト212は、タイル回路200のための構成、制御およびデバッグ機能に使用される。MMインターコネクト212は、アドレスに基づいてトランザクションをルーティングする1つまたは複数のスイッチを含む。回路は、MMインターコネクト212を使用して、タイル回路200におけるメモリ204、コア202、DMA220および構成レジスタにアクセスすることができる。
【0026】
ストリーミングインターコネクト210は、コンポーネント間でストリーミングデータを送信するように構成されたアドバンスド・エクステンシブル・インターコネクト(AXI)ストリーミングインターコネクトなどであってもよい。ストリーミングインターコネクト210は、タイル回路200と外部回路との間でデータを転送するのに使用される。ストリーミングインターコネクト210は、データおよび制御の両方のために回路交換機構もパケット交換機構もサポートすることができる。
【0027】
一例では、DM208は、1つまたは複数のメモリバンク(たとえば、ランダムアクセスメモリ(RAM)バンク)を含み得る。DMA220は、ストリーミングインターコネクト210とDM208との間に結合されている。DMA220は、ストリーミングインターコネクト210からDM208にデータを移動させ、DM208からストリーミングインターコネクト210にデータを移動させるように構成される。このように、外部回路(たとえば、プログラマブルロジック内に構成された回路またはICの埋め込み処理システム内の回路)は、DMAを使用してストリーミングインターコネクト210を介してDM208との間でデータを読み書きすることができる。DMA220は、MMインターコネクト212および/またはストリーミングインターコネクト210を介して制御されることができる。
【0028】
HWロック218は、コア202、別のタイルにおける別のデータ処理エンジン、またはDMA220によるアクセスのためにDM208の特定のメモリバンクをロックするのに使用することができる。HWロック218は、隣接するタイルにおける隣接するデータ処理エンジン間、コア202とDMA220との間、およびDPE110と外部回路(たとえば、外部プロセッサ)との間の同期を提供する。また、HWロック218は、DM208における特定のバッファをロックするのに使用することができ、この特定のバッファは、1つもしくは複数のメモリバンクまたは単一のメモリバンクの一部に格納されていてもよい。デバッグ回路216は、デバッグ、トレースおよびプロファイル機能を提供するように構成される。デバッグ回路216は、タイル回路200における回路によって生成されたイベントをトレースすることができる。デバッグ回路216は、プロファイル機能、たとえば構成可能なパフォーマンスカウンタを提供することができる。
【0029】
図3は、一例に係るタイル回路200をより詳細に示すブロック図である。この例では、タイル回路200は、データ処理回路350と、メモリ回路351と、インターコネクト回路320とを含む。データ処理回路350は、コア202と、PM206とを含む。メモリ回路351は、メモリインターフェイス302N,302S,302Eおよび302W(まとめてメモリインターフェイスまたは個々に「mem IF」)と、RAMバンク318と、HWロック218と、レジスタ(「regs304」)と、DMAインターフェイス204Aと、DMAインターフェイス220Bとを含む。コア202は、レジスタ(「regs306」)を含む。インターコネクト回路320は、MMインターコネクト212と、ストリーミングインターコネクト210とを含む(明確には図示せず)。RAMバンク318は、バンク当たり調整ロジック319を含む。調整ロジック319は、どのインターフェイス(N,S,E,W,DMA,外部PSなど)がどのバンクにアクセスできるかを制御するように構成される。
【0030】
インターコネクト回路320は、西側タイルとのストリーミング接続314Wと、東側タイルとのストリーミング接続314Eと、北側タイルとのストリーミング接続314Nと、南側タイルとのストリーミング接続314Sとを含む。各ストリーミング接続314は、各々が特定のビット幅を有する1つまたは複数の独立したストリーミングインターフェイス(たとえば、バス)を含む。また、インターコネクト回路320は、南側タイルからのメモリマップド接続312Sと、北側タイルとのメモリマップド接続312Nとを含む。北側および南側MM接続のみが示されているが、インターコネクト回路320は、MMインターコネクトのための他の構成(たとえば、東側と西側、西側と東側、北側と南側など)を含んでいてもよいということが理解されるべきである。インターコネクト回路320は、図3の例に示されている構成以外のストリーミング接続およびメモリマップド接続の他の構成を含んでいてもよいということが理解されるべきである。一般に、インターコネクト回路320は、少なくとも1つのストリーミング接続314と、少なくとも1つのメモリマップド接続312とを含む。
【0031】
コア202は、西側タイルにおけるメモリ回路との接続308Wと、南側タイルにおけるメモリ回路との接続308Sと、北側タイルにおけるメモリ回路との接続308Nと、メモリ回路351との接続308Eとを含む。コア202は、インターコネクション回路320とのストリームライニングインターフェイスを含む。また、コア202は、西側タイルにおける処理エンジンからの接続310Aと、東側タイルにおける処理エンジンとの接続310Bとを含む(たとえば、カスケード接続)。データ処理エンジンは、図3の例に示されている構成以外のメモリおよびカスケード接続の他の構成を含んでいてもよいということが理解されるべきである。一般に、コア202は、少なくとも1つのメモリ接続を含み、少なくとも1つのカスケード接続を含み得る。
【0032】
mem IF302Wは、コア202のメモリ接続308Eに結合されている。mem IF302Nは、北側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。mem IF302Fは、東側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。mem IF302Sは、南側タイルにおけるデータ処理エンジンのメモリ接続に結合されている。mem IF302W,302N,302Eおよび302Sは、RAMバンク318に結合されている。DMA220Aは、インターコネクト回路320に結合されて、メモリからインターコネクトへのストリームを処理するための出力を含む。DMAインターフェイス220Bは、インターコネクト回路320に結合されて、インターコネクトからメモリへのストリームを処理するための入力を含む。regs304およびregs306は、インターコネクト回路320に結合されて、そこから(たとえば、メモリマップドインターコネクトを使用して)構成データを受信する。
【0033】
図4は、一例に係るコア202を示すブロック図である。コア202は、レジスタファイル402と、プロセッサ404と、サポート回路406とを含む。レジスタファイル402は、スカラレジスタファイル408と、ベクトルレジスタファイル410とを含む。スカラレジスタファイル408は、汎用レジスタ、ポインタレジスタ、修飾子レジスタ(modifier register)、構成レジスタなどを含む。ベクトルレジスタファイル410は、ベクトルデータ経路のためのSIMD命令をサポートする(スカラレジスタと比較して)高幅のレジスタを含む。ベクトルレジスタファイル410は、ベクトルレジスタ、累算器レジスタなどを含み得る。レジスタファイル402は、プログラムカウンタ、スタックポインタ、リンクレジスタ、さまざまな構成、制御およびステータスレジスタなどの他のタイプのレジスタを含み得る。
【0034】
プロセッサ404は、スカラプロセッサ412と、ベクトルプロセッサ414とを含む。スカラプロセッサ412は、スカラ演算を実行するように構成され、スカラ演算は、符号付きおよび符号なし乗算、加算/減算、シフト、比較、論理演算、初等関数(平方根、サイン/コサインなど)などを含む。ベクトルプロセッサ414は、ベクトル演算を実行するように構成され、ベクトル演算は、置換関数、加算前関数、乗算関数、加算後関数、累積関数、シフト、ラウンドおよび飽和関数、アップシフト関数などを含む。ベクトルプロセッサ414は、複素数オペランドおよび実数オペランドのために複数の精度をサポートする。ベクトルプロセッサ414は、固定点データ経路も浮動小数点データ経路も含み得る。
【0035】
サポート回路406は、メモリインターフェイス416と、アドレス生成部418と、命令フェッチおよび復号回路420と、1つまたは複数の追加インターフェイス422とを含む。命令フェッチおよび復号回路420は、PM206からの命令をフェッチし、フェッチされた命令を復号し、復号された命令に従ってプロセッサ404の動作を制御するための制御信号をプロセッサ404に提供するように構成される。アドレス生成部418は、データメモリからデータをロードしたりデータメモリにデータを格納したりするための、データメモリのためのアドレスを生成するように構成される。メモリインターフェイス416は、データメモリと通信して、復号された命令およびアドレス生成部418によって生成されたアドレスに従ってデータを送受信するように構成される。他のインターフェイス422は、HWロック218とのインターフェイス、ストリーミングインターコネクト210とのインターフェイス、他のデータ処理エンジンからカスケードストリームを受信するためのインターフェイス、デバッグ回路216とのインターフェイスなどを含み得る。
【0036】
図5は、図1に示されるSoC100の実現例として使用することができる、一例に係るプログラマブルIC500を示すブロック図である。プログラマブルIC500は、プログラマブルロジック510と、構成ロジック515と、構成メモリ520とを含む。プログラマブルIC500は、不揮発性メモリ525、DRAM530および他の回路535などの外部回路に結合されることができる。プログラマブルロジック510は、ロジックセル511と、サポート回路512と、プログラマブルインターコネクト513とを含む。ロジックセル511は、複数の入力の一般的な論理機能を実行するように構成され得る回路を含む。サポート回路512は、トランシーバ、入力/出力ブロック、デジタル信号プロセッサ、メモリなどの専用の回路を含む。ロジックセル511とサポート回路512とは、プログラマブルインターコネクト513を使用して相互接続可能である。ロジックセル511をプログラムするための情報、サポート回路512のパラメータを設定するための情報、およびプログラマブルインターコネクト513をプログラムするための情報は、構成ロジック515によって構成メモリ520に格納される。構成ロジック515は、不揮発性メモリ525またはその他のソース(たとえば、DRAM530または他の回路29)から構成データを取得することができる。いくつかの例では、プログラマブルIC500は、処理システム505を含む。処理システム505は、マイクロプロセッサ、メモリ、サポート回路、IO回路などを含み得る。
【0037】
データサンプルのセットについて、PDWは、データサンプルのセットのサンプルのサブセットとして定義される。一般的なピーク検出は、ピークを見つけ出して、PDWにおける最高のピークを選択することによって、各PDWにわたってピークを1つだけ認定する。データをスキャンしてPDWにわたってピークを選択する代わりに、ブロック最大値がPDWにわたって選択される。ブロックサイズが大きい場合、最大値はほとんどの場合ピークである。図6は、2つのピーク検出窓にわたるブロック最大値検出を示すグラフの一例600を示す。図6は、2つのPDW602および604を示している。S個のサンプルがインデックスx...xs-1を有するデータのブロック(すなわち、PDW602,604)では、最大値はブロック境界xまたはxs-1に位置し得る。
【0038】
ピークnのインデックスは、PDW602のブロック最大値606のために記録されることができる。すぐ次のPDW604のブロック最大値608を見つけ出すことができ、ピークnのインデックスが記録される。以下に従って、ピーク同士の間のサンプル数がPDWのサイズSよりも大きい場合にのみ、ピークnがピークとして認定される。
【0039】
【数2】
【0040】
これは、ピークが時間の点で十分に分離されることを確実にする。また、これは、境界に位置するいかなるピークも排除する。なぜなら、すぐ後のPDWにおけるブロック最大値までのサンプル数がPDWのサイズよりも大きくないからである。
【0041】
PDWのためのブロック最大値は、ベクトル演算を使用して求めることができる。ブロック最大値ベクトル演算VMAX()は、N個のサンプルのセットに対して要素ごとまたはレーンごとの(n番目のレーンはn番目のベクトルに対応する)maxを実行する。以下に従って、ブロックベクトル演算は、ベクトルxおよびyに対してレーンごとのmaxを実行してベクトルzを返し、最大値は、xまたはyのレーンから選択される。
【0042】
【数3】
【0043】
式中、x(n)>y(n)であればz(n)=x(n)であり、x(n)<y(n)であればz(n)=y(n)であり、0≦n≦N-1であり、x,y,zはパワーベクトルである。最大値は、データのブロックにわたって固有である。
【0044】
長さNのサンプルのセット(すなわち、ベクトル)に対する上記のブロック最大値演算は、より大きなサイズのデータのブロックに拡張することができる。PDWは、Nの整数の倍数であるいくつかのサンプル(または、時間)であると定義され得る。たとえば、図7に示されるように、PDWは、長さL=N×K(Kは正の整数)を有すると定義され得る。zは、たとえばゼロ要素に初期化される。以下に従って、i番目のバッファxに対してVMAX演算が実行される。
【0045】
【数4】
【0046】
したがって、ブロック最大値演算は、L個のサンプルのより大きなブロックに対してK回反復して実行される。K個のバッファを処理した後、すなわちPDWのL個のサンプルに対してK回ブロック最大値演算を繰り返した後、ベクトルzは、より大きなPDWにわたる最大値を含む。最大値を含むバッファは、サバイババッファzと称される。最大値max(z)は、スカラ演算または要素ごとのチェックを使用して計算することができる。たとえば、max(z)=[V,m]であり、式中、Vは、サンプルにわたる最大パワー値であり、mは、サバイババッファzにおけるVのインデックス(端数インデックスと称される)であり、0≦m≦Nである。VMAX演算のブーリアン結果は、レジスタに格納され得る。
【0047】
インデックス追跡は、場所(すなわち、ピークのインデックス)およびピークに対応する複素数データサンプルを見つけ出すためになされる。最大値のインデックスmは、ベクトルピーク検出を使用して求めることができる。PDWにわたる最大値がq番目のバッファx内にあると仮定すると、PDWにわたる最大値の完全なインデックス(ランニングインデックスと称される)は、以下のように示すことができる。
【0048】
【数5】
【0049】
N個のサンプルのセットについてウィニングレーンcを返す別のベクトル演算VSEL()を使用することができる。
【0050】
【数6】
【0051】
式中、x(n)>y(n)であればc(n)=0であり、x(n)<y(n)であればc(n)=1であり、0≦n≦N-1である。したがって、VSEL演算は、二値比較を実行して、ベクトルxおよびyについてレーンごとの最大値を求める。次いで、以下でさらに説明するようにインデックス発見を使用してcを処理することによって、バッファqを求めることができる。
【0052】
いくつかの例では、ベクトル化されたピーク検出のための技術は、VMAX演算とVSEL演算とを組み合わせることができる。図8は、一例に係る、ベクトル化されたピーク検出のための動作の一例800を示すフロー図である。
【0053】
動作802において、サイズLのピーク検出窓を整数の倍数K個のサイズNのより小さなブロック(たとえば、バッファ)に分割する。上記のように、PDWの長さLは、Nの倍数Kとして定義され得る。
【0054】
動作804において、ブロック最大値ベクトルをゼロに初期化する。たとえば、上記のようにバッファzをゼロ要素に初期化することができる。
【0055】
動作806において、サイズNのより小さなブロックの各々について、ブロック最大値ベクトル演算VMAXを反復的に実行して、ブロック最大値インデックスmを求める。動作808において、サイズNのより小さなブロックの各々について、レーンごとの最大値ベクトル演算VSELを反復的に実行して、ウィニングレーンを選択する。たとえば、上記のように、i番目のデータバッファxについて、以下のようにVMAXベクトル演算およびVSELベクトル演算をK回反復して実行することができる。
【0056】
【数7】
【0057】
式中、xは、i番目のデータバッファであり、cは、xのためのウィニングレーンを含む。K個のバッファを処理した後、ベクトルzは、サバイババッファzにおけるPDWにわたる最大値を含む。サバイババッファmax(z)における最大値は、最大値[V,m](mはウィニングレーンであり、0≦m≦Nである)のインデックスを得るためにスカラ演算または要素ごとのチェックを使用して計算される。最大値を含むq番目のデータバッファを処理した後、VSEL演算によってウィニングレーンcにおけるm番目の要素を1に設定する。すなわち、c(m)=1である。したがって、後続のレーンc(m)(i≧q)におけるm番目の要素も1に設定される。この結果は、ベクトル演算を使用して、ランニングインデックスpの計算に活用することができる。
【0058】
動作810において、レーンごとの最大値ベクトル演算に基づいてベクトル和演算を実行する。以下に従って、さらに別のベクトル演算を実行することができる。
【0059】
【数8】
【0060】
式中、c(j)=0であればR(j)=0(たとえば、レジスタをリセットする)であり、c(j)=1であればR(j)=Ri-1(j)+1(たとえば、累積する)であり、0≦j≦Nである。
【0061】
動作812において、ベクトル和演算の結果をより小さなブロックの数Kから減算することによってウィニングバッファインデックスを計算する。ウィニングバッファインデックスqは、以下に従って計算することができる。
【0062】
【数9】
【0063】
動作814において、ウィニングバッファインデックスにバッファの長さNを乗算し、ブロック最大値インデックスmを加算することによって、ランニングインデックスを計算する。qについての式2を式1に代入して、以下に従ってランニングインデックスpを計算することができる。
【0064】
【数10】
【0065】
図9は、一例に係る、CFR演算のためのプログラマブルロジック要素900を示すブロック図である。図9は、処理サブシステムのプログラマブルロジック要素の一部を示している。図9に示されるように、PL要素900は、ベクトル化されたピーク検出(VPD)ブロック905と、IFブロック910と、ピーク認定ブロック915と、アドレス生成およびスケール発見ブロック920と、IFブロック925と、PCFRブロック930と、加算演算ブロック935と、遅延ブロック940とを含む。VPDブロック905は、動作800を実行するように構成されてもよい。
【0066】
図10は、一例に係る、CFR演算のVPD905ブロックのためのプログラマブルロジック要素の一例を示すブロック図である。図10に示されるように、VPD905は、Hb23 2x Intブロック1005と、Hb11 2x Intブロック1010と、演算ブロック1015と、VMAX16ブロック1020と、インデックス追跡ブロック1025と、SUにおける16要素検索ブロック1030とを含み得る。ブロック1005および1010は、データ補間を実行することができる。演算ブロック1015は、VMAX演算を実行して、二値振幅比較を実行することができる。VMAX16は、上記のVSEL演算を実行して、レーンごとの最大値を求め、レーンごとのウィナーを有するベクトルを出力することができ、そのより小さなブロックの場所でPDWは最大値を含む。ブーリアン型のレーンごとのウィナーは、レジスタに格納され得る。インデックス追跡ブロック1025は、ベクトル和演算を実行して、ウィニングレーンインデックスおよびランニングインデックスを計算することができる。ベクトル和演算は、ベクトルレジスタにおける二進値を累積することができる。SUにおける要素検索ブロック1030は、最大の大きさmの端数インデックスを検索し、最大インデックスpを再構築し、対応するサンプルをデータストリームから抽出することができる。
【0067】
一例において、データ処理エンジンを有する集積回路(IC)における信号処理のための方法は、ピーク検出窓(PDW)に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するステップを含み、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、上記方法はさらに、上記データ処理エンジンにおいて上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するステップと、上記ベクトル演算に基づいて、上記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるステップとを含む。
【0068】
一例において、上記ベクトル演算を実行するステップは、第1のベクトル演算を実行して、上記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるステップと、第2のベクトル演算を実行して、上記複数のサブセットの各サンプルについて2進値を求めるステップと、第3のベクトル演算を実行して、上記第2のベクトル演算において求められた上記2進値に基づいて累積値を求めるステップとを含む。
【0069】
一例において、上記ランニングインデックスを求めるステップは、上記複数のサブセットの各々の中の上記求められたサンプルに基づいて、上記PDWにわたって上記最大の振幅を有する上記サンプルの端数インデックスを求めるステップと、上記累積値をいくつかの上記複数のサブセットから減算することによって、上記PDWにわたって上記最大の振幅を有する上記サンプルを含む上記複数のサブセットのうちのあるサブセットのインデックスを求めるステップと、上記複数のサブセットのうちの上記サブセットの上記インデックス、複数のサブセットの各々における上記いくつかのデータサンプル、および上記端数インデックスに基づいて、上記ランニングインデックスを求めるステップとを含む。
【0070】
一例において、上記第1のベクトル演算は、上記サブセットにおける第1のパワーベクトルと上記サブセットにおけるサンプルの第2のパワーベクトルとを比較して、上記サブセットにおける各サンプルについて、上記第1または第2のパワーベクトルのうちの大きい方のパワーベクトルを出力するレーンごとの演算である。
【0071】
一例において、上記第2のベクトル演算は、上記複数のサブセットの各々にわたって、第1のサブセットにおけるサンプルと第2のサブセットにおける対応するサンプルとを比較して、上記第1のサブセットにおける上記サンプルが第2のサブセット上記対応するサンプルよりも大きい場合には0を出力し、上記第1のサブセットにおける上記サンプルが上記第2のサブセットにおける上記対応するサンプルよりも小さい場合には1を出力するレーンごとの演算である。
【0072】
一例において、上記第3の演算は、上記累積値をゼロに初期化するステップと、上記PDWにおける各サンプルについて、上記サブセットにおける上記サンプルの上記出力がゼロである場合には、上記累積値をゼロにリセットするステップと、上記PDWにおける各サンプルについて、上記サブセットにおける上記サンプルの上記出力が1である場合には、上記累積値を1だけインクリメントするステップとを含む。
【0073】
一例において、上記ランニングインデックスを求めるステップは、上記複数のサブセットのうちの上記サブセットの上記インデックスに、複数のサブセットの各々における上記いくつかのデータサンプルを乗算するステップと、上記端数インデックスを上記積に加算するステップとを含む。
【0074】
一例において、上記方法は、第2のPDWにわたって最大の振幅を有する第2のサンプルのための第2のランニングインデックスを求めるステップと、上記第1のランニングインデックスと上記第2のランニングインデックスとを比較するステップと、上記第1のランニングインデックスと上記第2のランニングインデックスとの間の差が上記PDWにおけるサンプル数よりも大きい場合に、上記第1のPDWにわたって上記最大の振幅を有する上記第1のサンプルをピークと見なすステップとをさらに含む。
【0075】
一例において、上記方法は、上記ピークを上記信号から除去するステップをさらに含む。
【0076】
一例において、データ処理エンジン(DPE)は、レジスタファイルと、上記レジスタファイルに結合されたプロセッサとを含み、上記プロセッサは、ピーク検出窓(PDW)に対応するデータ信号のデータサンプルのセットをデータサンプルの複数のサブセットに分割するように構成され、上記データサンプルの複数のサブセットの各々は、いくつかのデータサンプルを備え、上記プロセッサはさらに、上記データサンプルの複数のサブセットの各々に対してベクトル演算を実行するように構成され、上記ベクトル演算に基づいて、上記PDWにわたって最大の振幅を有するサンプルのランニングインデックスを求めるように構成される。
【0077】
一例において、上記プロセッサは、第1のベクトル演算を実行して、上記複数のサブセットの各々の中で、最大の振幅を有するサンプルを求めるように構成され、第2のベクトル演算を実行して、上記複数のサブセットの各サンプルについて2進値を求めるように構成され、第3のベクトル演算を実行して、上記第2のベクトル演算において求められた上記2進値に基づいて累積値を求めるように構成される。
【0078】
一例において、上記プロセッサは、上記複数のサブセットの各々の中の上記求められたサンプルに基づいて、上記PDWにわたって上記最大の振幅を有する上記サンプルの端数インデックスを求めること、上記累積値をいくつかの上記複数のサブセットから減算することによって、上記PDWにわたって上記最大の振幅を有する上記サンプルを含む上記複数のサブセットのうちのあるサブセットのインデックスを求めること、および上記複数のサブセットのうちの上記サブセットの上記インデックス、複数のサブセットの各々における上記いくつかのデータサンプル、および上記端数インデックスに基づいて、上記ランニングインデックスを求めること、によって上記ランニングインデックスを求めるように構成される。
【0079】
一例において、上記第1のベクトル演算は、レーンごとの演算であり、上記プロセッサは、上記サブセットにおける第1のパワーベクトルと上記サブセットにおけるサンプルの第2のパワーベクトルとを比較すること、および上記サブセットにおける各サンプルについて、上記第1または第2のパワーベクトルのうちの大きい方のパワーベクトルを出力すること、によって上記第1のベクトル演算を実行するように構成される。
【0080】
一例において、上記第2のベクトル演算は、レーンごとの演算であり、上記プロセッサは、上記複数のサブセットの各々にわたって、第1のサブセットにおけるサンプルと第2のサブセットにおける対応するサンプルとを比較すること、および上記第1のサブセットにおける上記サンプルが第2のサブセット上記対応するサンプルよりも大きい場合には0を出力し、上記第1のサブセットにおける上記サンプルが上記第2のサブセットにおける上記対応するサンプルよりも小さい場合には1を出力すること、によって上記第2のベクトル演算を実行するように構成される。
【0081】
一例において、上記プロセッサは、第2のPDWにわたって最大の振幅を有する第2のサンプルのための第2のランニングインデックスを求めるようにさらに構成され、上記第1のランニングインデックスと上記第2のランニングインデックスとを比較するようにさらに構成され、上記第1のランニングインデックスと上記第2のランニングインデックスとの間の差が上記PDWにおけるサンプル数よりも大きい場合に、上記第1のPDWにわたって上記最大の振幅を有する上記第1のサンプルをピークと見なすようにさらに構成される。
【0082】
上記は具体的な例に向けられているが、その基本的な範囲から逸脱することなく他のおよびさらなる例が考案されてもよく、その範囲は以下の特許請求の範囲によって決定される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10