(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-16
(54)【発明の名称】入力サンプルのセットに基づいて複数の出力サンプルを提供するための信号処理装置、および入力サンプルのセットに基づいて複数の出力サンプルを提供するための方法
(51)【国際特許分類】
G06F 7/57 20060101AFI20230209BHJP
G06F 17/10 20060101ALI20230209BHJP
H03H 17/00 20060101ALI20230209BHJP
H03H 17/06 20060101ALI20230209BHJP
H03H 17/02 20060101ALI20230209BHJP
【FI】
G06F7/57 204
G06F17/10 D
H03H17/00 621E
H03H17/06 635Z
H03H17/02 681G
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022537661
(86)(22)【出願日】2019-12-23
(85)【翻訳文提出日】2022-06-17
(86)【国際出願番号】 EP2019086996
(87)【国際公開番号】W WO2021129935
(87)【国際公開日】2021-07-01
(81)【指定国・地域】
(71)【出願人】
【識別番号】390005175
【氏名又は名称】株式会社アドバンテスト
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100133215
【氏名又は名称】真家 大樹
(72)【発明者】
【氏名】ボルマー、クリスチャン
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB28
(57)【要約】
入力サンプルのセットの複数のサブセットを異なる時間シフトと関連付けられた処理演算を実行する複数の処理コアに提供するように構成されたサンプル分配論理と、出力サンプルを取得するために異なる時間シフトと関連付けられた処理演算を並列に実行するように構成された複数の処理コアとを備え、サンプル分配論理が、複数の階層レベルを有する階層ツリー構造を備え、最下位階層レベルのそれぞれの分割ノードが、2つ以上のサブセットを最下位階層レベルのそれぞれの分割ノードに結合された複数の処理コアに提供し、最下位階層レベルよりも上位の所与の階層レベルのそれぞれの分割ノードが、2つ以上のサブセットを所与の階層レベルのそれぞれの分割ノードに結合された複数のサブツリーに提供し、それぞれの分割ノードが、対応するサブツリー結合された処理コアと関連付けられた時間シフトの範囲に従うように各サブセットを選択する、信号処理装置。
【選択図】
図2
【特許請求の範囲】
【請求項1】
入力サンプルのセットに基づいて、複数の出力サンプルを提供するための信号処理装置であって、
異なる時間シフトと関連付けられた処理演算を実行する複数の処理コアに、前記入力サンプルのセットの複数のサブセットを提供するように構成されたサンプル分配論理であって、
前記サンプル分配論理が、複数の階層レベルを含む階層ツリー構造を有し、
最下位階層レベルのそれぞれの分割ノードが、最下位階層レベルの前記それぞれの分割ノードの前記入力サンプルから、2つ以上のサブセットを、前記最下位階層レベルの前記それぞれの分割ノードに結合された複数の処理コアに提供するように構成されており、
前記最下位階層レベルよりも上位の所与の階層レベルのそれぞれの分割ノードが、前記所与の階層レベルの前記それぞれの分割ノードの前記入力サンプルから、2つ以上のサブセットを、前記所与の階層レベルの前記それぞれの分割ノードに結合された複数のサブツリーに提供するように構成されており、
前記それぞれの分割ノードが、対応するサブツリーに結合された前記処理コアと関連付けられた時間シフトの範囲に従うように、各サブセットを選択するように構成されている、前記サンプル分配論理と、
前記出力サンプルを取得するために、異なる時間シフトと関連付けられた処理演算を並列に実行するように構成された前記複数の処理コアと
を備える、信号処理装置。
【請求項2】
前記入力サンプルの入力サンプルレートが、前記出力サンプルのターゲット出力サンプルレート以下である、
請求項1に記載の信号処理装置。
【請求項3】
前記時間シフトを追跡し、
前記時間シフトが前記入力サンプルのサンプリング周期の所定の倍数をオーバーフローするたびに、前記サンプル分配論理に結合された入力レジスタ内の新しい入力サンプルの取得をトリガする
ように構成された時間アキュムレータを備える、
請求項1または2に記載の信号処理装置。
【請求項4】
同じ階層レベル内の複数の分割ノードの入力サンプルのセット内のサンプル数が同一であり、かつ/または
同じ階層レベル内の複数の分割ノードによって提供される、入力サンプルの前記サブセットの各々のサンプル数が同一である、
請求項1から3のいずれか一項に記載の信号処理装置。
【請求項5】
所与の分割ノードの入力サンプルのセット内のサンプル数が、次の下位階層レベルの分割ノードに提供される、または入力サンプルとして処理コアに提供されるサンプルの前記サブセットの各々のサンプル数よりも大きい、
請求項1から4のいずれか一項に記載の信号処理装置。
【請求項6】
前記サンプル分配論理が、次の上位階層レベルのそれぞれの分割ノードによって入力サンプルとして分割ノードに提供されるサブセットあたりのサンプル数が、階層レベルが下がるにつれて段階的に減少するように構成されている、
請求項1から5のいずれか一項に記載の信号処理装置。
【請求項7】
それぞれの分割ノードの入力サンプル数および/またはそれぞれの分割ノードによって提供される入力サンプルの前記サブセットの各々のサンプル数が、単一の処理コアに提供される前記入力サンプルのセットの前記サブセット内の前記サンプル数、および/またはそれぞれの分割ノードの前記階層レベル、および/または前記処理コアの数の整数因数への因数分解に基づくものである、
請求項1から6のいずれか一項に記載の信号処理装置。
【請求項8】
それぞれの分割ノードによって提供される入力サンプルの前記サブセットの数が、前記処理コアの数の整数因数への因数分解に依存する、
請求項1から7のいずれか一項に記載の信号処理装置。
【請求項9】
所与の階層レベルのそれぞれの分割ノードによって提供される入力サンプルの前記サブセットの数が、p
hと等しく、
p
kが、
【数1】
によるPの整数因数(必ずしも素因数ではない)を表し、
式中、
Pが、前記処理コアの数を表し、
Hが、前記選択された整数因数分解における因数の総数を表し、
hが、それぞれの分割ノードの前記階層レベルを表す、
請求項1から8のいずれか一項に記載の信号処理装置。
【請求項10】
それぞれの分割ノードの入力サンプル数が、次の式に基づくものであり、
【数2】
式中、
N
inputが、前記入力サンプル数を表し、
p
kが、
【数3】
によるPの整数因数(必ずしも素因数ではない)を表し、
式中、
Pが、前記処理コアの数を表し、
Hが、前記選択された整数因数分解における因数の総数を表し、
hが、それぞれの分割ノードの前記階層レベルを表し、
Mが、単一の処理コアに提供される前記入力サンプルのセットの前記サブセット内の前記サンプル数を表す、
請求項1から9のいずれか一項に記載の信号処理装置。
【請求項11】
それぞれの分割ノードによって提供される入力サンプルの前記サブセットの各々のサンプル数が、以下の式に基づくものであり、
【数4】
式中、
N
inputが、それぞれの分割ノードによって提供される入力サンプルの前記サブセットの各々の前記サンプル数を表し、
p
hが、それぞれの分割ノードによって提供される入力サンプルの前記サブセットの数を表し、
p
kが、
【数5】
によるPの整数因数(必ずしも素因数ではない)を表し、
式中、
Pが、前記処理コアの数を表し、
Hが、前記選択された整数因数分解における因数の総数を表し、
hが、それぞれの分割ノードの前記階層レベルを表し、
Mが、単一の処理コアに提供される前記入力サンプルのセットの前記サブセット内の前記サンプル数を表す、
請求項1から10のいずれか一項に記載の信号処理装置。
【請求項12】
前記それぞれの分割ノードが、入力サンプルのセット内のサンプルを複数のサブツリーまたは処理コアに割り当てるように構成されており、
前記サンプル分配論理のそれぞれの階層レベル内の前記それぞれの分割ノードが、同じかまたは異なるサンプルインデックスから開始する、前記入力サンプルの同じかまたは異なるサブセットが前記サブツリーまたは前記処理コアの各々に提供されるように、前記入力サンプルからサンプルを選択するように構成されており、
各サブツリーに提供される入力サンプルのサブセットの開始インデックスが、それぞれの分割ノードの前記階層レベル、および/または前記処理コアの数の因数分解のために選択された整数因数、および/または前記時間シフト、および/または前記入力サンプルのセットに割り当てられた時間情報に依存する、
請求項1から11のいずれか一項に記載の信号処理装置。
【請求項13】
それぞれの分割ノードのインデックスiを有する前記サブツリーに提供される入力サンプルの前記サブセットの開始インデックスが、以下の式に基づくものであり、
【数6】
式中、
index
iが、インデックスiを有する前記サブツリーに提供される入力サンプルのサブセットの開始インデックスを表し、最初のサブツリーがi=0によって指され、
p
hが、それぞれの分割ノードによって提供される入力サンプルの前記サブセットの数を表し、
Wが、
【数7】
によって記述され、
式中、
p
kが、
【数8】
によるPの整数因数(必ずしも素因数ではない)を表し、
式中、
Pが、前記処理コアの数を表し、
Hが、前記選択された整数因数分解における因数の総数を表し、
hが、それぞれの分割ノードの前記階層レベルを表し、
【数9】
が、引数以下の最大整数を表し、
frac
prevが、前記入力サンプルのセットに割り当てられた時間情報を表し、
Δtが、前記時間シフトを表す、
請求項1から12のいずれか一項に記載の信号処理装置。
【請求項14】
前記それぞれの階層レベルのそれぞれの分割ノードが、前記それぞれの分割ノードの前記入力サンプルに割り当てられた時間情報、および/または前記それぞれの分割ノードの前記階層レベル、および/または前記処理コアの数の因数分解のために選択された整数因数、および/または前記時間シフトに基づいて時間情報を各サブツリーに割り当てるように構成されている、
請求項1から13のいずれか一項に記載の信号処理装置。
【請求項15】
前記それぞれの分割ノードのインデックスiを有する前記サブツリーに割り当てられる時間情報が、以下の式に基づくものであり、
【数10】
式中、
frac
iが、インデックスiを有する前記サブツリーに割り当てられる時間情報を表し、最初のサブツリーがi=0によって指され、
Wが、
【数11】
によって記述され、
式中、
p
kが、
【数12】
によるPの整数因数(必ずしも素因数ではない)を表し、
式中、
Pが、前記処理コアの数を表し、
Hが、前記選択された整数因数分解における因数の総数を表し、
hが、それぞれの分割ノードの前記階層レベルを表し、
【数13】
が、引数以下の最大整数を表し、
frac
prevが、前記入力サンプルのセットに割り当てられた前記時間情報を表し、
Δtが、前記時間シフトを表す、
請求項1から14のいずれか一項に記載の信号処理装置。
【請求項16】
複数の入力サンプルを格納するように構成された入力レジスタをさらに備える、
請求項1から15のいずれか一項に記載の信号処理装置。
【請求項17】
前記入力レジスタが、シフトレジスタである、
請求項1から16のいずれか一項に記載の信号処理装置。
【請求項18】
前記複数の入力サンプルから前記サンプル分配論理の前記入力サンプルのセットを選択するように構成されたセレクタをさらに備える、
請求項1から17のいずれか一項に記載の信号処理装置。
【請求項19】
前記時間シフトの長さが、等距離または非等距離である、
請求項1から18のいずれか一項に記載の信号処理装置。
【請求項20】
前記信号処理装置が、前記入力サンプル間の補間を実行する、
請求項1から19のいずれか一項に記載の信号処理装置。
【請求項21】
前記信号処理装置が、畳み込みを実行する、
請求項1から20のいずれか一項に記載の信号処理装置。
【請求項22】
前記複数の処理コアが、Farrow構造を実装する、
請求項1から21のいずれか一項に記載の信号処理装置。
【請求項23】
異なるサブツリーの構造が、前記処理コアの数の整数因数の同じかまたは異なる選択から導出される、
請求項1から22のいずれか一項に記載の信号処理装置。
【請求項24】
異なるサブツリーの構造が、前記処理コアの数の前記整数因数の同じかまたは異なる順序付けから導出される、
請求項1から23のいずれか一項に記載の信号処理装置。
【請求項25】
入力サンプルのセットに基づいて複数の出力サンプルを提供するための方法であって、
複数の階層レベルを有する階層ツリー構造を使用して、異なる時間シフトと関連付けられた処理演算を実行する複数の処理演算に、前記入力サンプルのセットの複数のサブセットを提供するステップであって、
最下位階層レベルのそれぞれの分割演算が、最下位階層レベルの前記それぞれの分割演算の前記入力サンプルから、2つ以上のサブセットを、前記最下位階層レベルの前記それぞれの分割演算に結合された複数の処理コアに提供し、
前記最下位階層レベルよりも上位の所与の階層レベルのそれぞれの分割演算が、前記所与の階層レベルの前記それぞれの分割演算の前記入力サンプルから、2つ以上のサブセットを、前記所与の階層レベルの前記それぞれの分割演算に結合された複数のサブツリーに提供し、
それぞれの分割演算が、対応するサブツリーと関連付けられた前記処理演算と関連付けられた時間シフトの範囲に従うように各サブセットを選択する、ステップと、
前記出力サンプルを取得するために、異なる時間シフトと関連付けられた処理演算を並列に実行するステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、デジタル信号処理に関する。
本発明によるさらなる実施形態は、デジタル信号プロセッサ上でのリアルタイム波形生成に関する。より具体的には、本発明は、処理されるデータのレートがデジタル信号プロセッサのクロック速度よりも高く、したがって並列処理アーキテクチャが採用されるDSP上のリアルタイム波形生成に関する。
本発明の実施形態は、並列補間デジタルコンボルバに関する。
【背景技術】
【0002】
補間は、アップサンプリングおよびフィルタリングしてシーケンスの近似を生成するプロセスを記述し、出力サンプリングは一般に入力サンプリングよりも密度が高く、ゆえに「補間」コンボルバという名前である。
【0003】
補間器または補間コンボルバは、等距離サンプリングで与えられた入力波形を連続時間インパルス応答で畳み込み、その出力で、等距離である場合もそうでない場合もある、異なるサンプリングでこの演算の結果を生成する。補間器は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)上での好都合な実装に役立つアルゴリズムアーキテクチャを示す。従来使用されている補間器は、Farrow補間器である。Farrow補間器のインパルス応答は、区分的多項式形式で記述される。
【0004】
順次デジタル信号プロセッサ(DSP)に対して補間デジタル畳み込みを実行するための従来の演算の実装はFarrowによるものであり、以下として要約される。時間アキュムレータが、Δtの増分で半開区間[0:1)における分数サンプルを累算する。時間アキュムレータがオーバーフローすると、時間アキュムレータは1つの入力サンプルを要求する。入力レジスタには、最新の入力サンプルおよび複数の以前の入力サンプルが格納されている。格納された入力サンプルは、有限インパルス応答(FIR)コアに供給される。FIRコアの係数は、連続時間畳み込みカーネルを、したがって補間器の応答を、区分的多項式形式で決定する。FIR演算の結果は、多項式評価器における多項式の係数として用いられる。多項式は、累算時間の分数部を用いて独立変数として評価される。Farrow補間器は一度に1つのサンプルを処理し、クロックサイクルごとに1つの出力サンプルを生成するので、標準的なFarrow実装形態は並列度1を有する。Farrow補間器は、順次デジタル処理のみをサポートする。
【0005】
サンプルレートがデジタル信号プロセッサのクロックレートよりも高いときはいつでも、サンプル分配を適度に小さくするための労力を保ちながら、(例えば、共通のサンプルのセットに対して)並列処理演算を実行する必要がある。
【0006】
この目的は、独立請求項の主題によって解決される。
【発明の概要】
【0007】
本発明の一実施形態(例えば、請求項1を参照)は、例えば2P+M-2個のサンプルなどの入力サンプルまたは入力値のセットに基づいて、例えばP個のFarrowコアによって提供されたP個の出力サンプルなどの複数の出力サンプル、または出力値を並列に提供するための、補間器や補間コンボルバなどのデジタル信号処理装置である。
【0008】
デジタル信号処理装置は、入力サンプルのセットの複数のサブセットを、例えば基準時間、例えば入力サンプルと関連付けられた時間に対する異なる時間シフトと関連付けられた処理演算を実行する、Farrowコアのような補間コアなどの複数の処理コアに提供するように構成されたサンプル分配論理または構造を備える。
【0009】
サンプル分配論理は、複数の階層レベルの分割ノードを有する階層ツリー構造を備える。
【0010】
最下位階層レベルのそれぞれの分割ノードは、最下位階層レベルのそれぞれの分割ノードの入力サンプルから、2つ以上のサブセットを、最下位階層レベルのそれぞれの分割ノードに結合された複数の処理コアに提供するように構成される。
【0011】
さらに、最下位階層レベルよりも上位の所与の階層レベルのそれぞれの分割ノードは、所与の階層レベルのそれぞれの分割ノードの入力サンプルから、2つ以上のサブセットを、所与の階層レベルのそれぞれの分割ノードに結合された複数のサブツリーに提供するように構成される。
【0012】
さらに、それぞれの分割ノードは、対応するサブツリーに結合された処理コアと関連付けられた時間シフトの範囲に従うように、例えば、第1のサブセットが、最初のサブツリーの処理コアと関連付けられた時間シフトの範囲に依存して、第2のサブセットに対してシフトされるか、または第1のサブセットと同一であるように、各サブセットを選択するように構成される。
【0013】
デジタル信号処理装置は、出力サンプルを取得するために、並列に異なる時間シフトと関連付けられた処理演算、例えば補間演算やまたは補間デジタル畳み込み演算を実行するように構成された複数の処理コアをさらに備える。
【0014】
言い換えれば、例えばP個の出力サンプルは、P個の処理コアまたはFarrowコアによって提供される。各処理コアは、複数の階層レベルの分割ノードから構成された階層ツリー構造を備えるサンプル分配論理から例えば、M個の入力サンプルを受け取る。
【0015】
各分割ノードは、所与の分割ノードの入力サンプルの2つ以上のサブセットを提供するように構成される。所与の階層レベルの各分割ノードは、次の上位階層レベルの分割ノードから入力サンプルを受け取り、次の下位階層レベルの分割ノードに入力サンプルのその出力サブセットを供給する。
【0016】
サンプル分配論理の入力サンプル、例えばP+M-1個のサンプルは、最上位階層レベルの分割ノードの入力であり、サンプル分配論理の出力サブセット、例えばM個のサンプルのサブセットは、最下位階層レベルの分割ノードの出力サブセットである。
【0017】
実施形態(例えば、請求項2参照)によれば、デジタル信号処理装置の入力サンプルの入力サンプルレートは、デジタル信号処理装置の出力サンプルのターゲット出力サンプルレート以下である。
【0018】
デジタル信号処理装置は、入力サンプリングよりも概して密度が高い出力サンプリングを提供するように構成される。
【0019】
デジタル信号処理装置のこの属性のいくつかの典型的であるが限定的ではない使用事例および/または用途を以下に列挙する。
- ターゲットサンプルレートがソースサンプルレート以上である場合の、柔軟な(もしくはほぼ任意の)サンプルレート変換、および/または
- ターゲットレートがソースレートに等しいときの、柔軟な(もしくはほぼ任意の)サンプルレート変換の特殊事例である、サブサンプル分解能を有するデジタル遅延、および/または
- デジタルパターン生成のためのパルス整形、および/または
- 例えば、測定計器における制御された信号調節のためのタイミングジッタの導入、および/または
- インターリーブデジタル・アナログ変換器(DAC)のタイミング誤差補正。
【0020】
好ましい実施形態(例えば、請求項3参照)では、デジタル信号処理装置は、時間シフトを追跡し、入力レジスタ内の新しい入力サンプルの取得をトリガするように構成された時間アキュムレータを備える。入力レジスタは、例えば選択ブロックを介して、サンプル分配論理に結合される。時間シフトが入力サンプルのサンプリング周期のPなどの所定の倍数をオーバーフローするたびに、新しい入力サンプルの取得がトリガされる。
【0021】
時間アキュムレータは、P×Δt増分で半開区間[0:P)における分数サンプルを累算する。アキュムレータがオーバーフローするたびに、アキュムレータは、例えばP個の入力サンプルを要求する。
【0022】
実施形態(例えば、請求項4参照)によれば、サンプル分配論理の同じ階層レベル内の複数の分割ノードの入力サンプルのセット内のサンプル数は同一であり、かつ/またはサンプル分配論理の同じ階層レベル内の複数の分割ノードによって出力サンプルとして提供される、入力サンプルのサブセットの各々のサンプル数は同一である。
【0023】
例えば、第1の分割ノードの入力サンプルのセット内のサンプル数および出力サンプルのセット内のサンプル数は、同じ階層レベルの第2の分割ノードの入力サンプルのセット内のサンプル数および出力サンプルのセット内のサンプル数と等しい。
【0024】
同じ階層レベルの分割ノードが、等しい量の入力サンプルおよび入力サンプルの等しい量の出力サブセットを有し、サブセット内に等しい量のサンプルを有する、サンプル分配論理は、同じモジュールから構築された階層レベルを有するモジュール構造を有し、これにより、サンプル分配論理の生成および/または計画がより単純に、より安価に、かつ/またはより高速になる。
【0025】
好ましい実施形態(例えば、請求項5参照)では、所与の分割ノードの入力サンプルのセット内のサンプル数は、次の下位階層レベルの分割ノードに提供される、または入力サンプルとして処理コアに提供されるサンプルのサブセットの各々のサンプル数よりも大きい。
【0026】
所与の分割ノードは、入力サンプルを、等しい量のサンプルを有する2つ以上の入力サンプルのセットまたはサブセットに分割し、それらを出力サンプルとして提供する。2つ以上の入力サンプルのサブセットは、互いに交差していてもよい。
【0027】
所与の分割ノードの入力サンプル数は、所与の分割ノードの任意の出力サブセット内のサンプル数よりも大きい。所与の分割ノードの出力サブセットは、等しい数のサンプルを含み、それらのサンプルは、次の下位階層レベルの分割ノードの入力サンプルのセットとして、または処理コアの入力サンプルのセットとして提供される。
【0028】
一実施形態(例えば、請求項6参照)によれば、サンプル分配論理は、次の階層レベルのそれぞれの分割ノードによって入力サンプルとして分割ノードに提供されるサブセットあたりのサンプル数が、階層レベルが下がるにつれて段階的に減少するように構成される。
【0029】
サンプル分配論理は、分割ノードの連鎖であり、各分割ノードは、上位階層レベルの分割ノードから入力サンプルとして1つの出力サブセットを受け取り、下位階層レベルの2つ以上の分割ノードに出力サブセットを供給する。
【0030】
最下位階層レベルの分割ノードは、2つ以上の出力サブセットをそれぞれの2つ以上の処理コアに提供する。
【0031】
上から下へのサンプル分配論理のツリー構造に従って、異なる階層レベルの分割ノードの入力サンプル数は減少し、より下位の階層レベルの分割ノードの出力サブセット内のサンプル数も減少する。
【0032】
実施形態(例えば、請求項7参照)によれば、それぞれの分割ノードの入力サンプル数および/またはそれぞれの分割ノードによって出力サンプルとして提供される入力サンプルのサブセットの各々のサンプル数は、例えばMとして表される、単一の処理コアに提供される入力サンプルのセットのサブセット内のサンプル数、および/または例えばhとして表される、それぞれの分割ノードの階層レベル、および/または例えばPとして表される処理コアの数の、例えばpkとして表される整数因数への因数分解に基づくものである。
【0033】
入力サンプル数と所与の分割ノードの出力サンプル数との間には関係があり、この関係は、分割ノードの階層レベル、処理コアの入力サンプル数、および処理コアの数の整数因数に依存する。この関係を、例えば方程式上で定義することにより、分割ノードおよび/またはサンプル分配論理全体の明確かつ直接的な理解が得られる。
【0034】
好ましい実施形態(例えば、請求項8参照)では、それぞれの分割ノードによって提供される入力サンプルのサブセットの数は、例えばPとして表される処理コアの数の、例えばpkとして表される整数因数への因数分解に依存する。
【0035】
p
kは、例えば、Pが
【数1】
によって記述されるような、Pの、必ずしも素因数ではない整数因数を表す。式中、Pは、処理コアの数を表し、kは、0と(H-1)との間の割当変数を表し、Hは、選択された整数因数分解における因数の総数を表す。
【0036】
所与の分割ノードは、入力サンプルのセットをサンプルのサブセットに分割し、サブセットは重複し得る。所与の分割ノードによって提供される入力サンプルのセットのサブセットの数は、処理コアの数Pの整数因数pkに依存する。
【0037】
所与の分割ノードによって提供されるサブセットの数は処理コアの数の整数因数に依存するため、整数個の階層レベルが得られる。
【0038】
同じ階層レベルの分割ノードは、入力サンプルのセット内に同じ量のサンプルを有し、サブセット内に同数のサンプルを有する同数のサブセットを提供する。
【0039】
実施形態(例えば、請求項9参照)によれば、所与の階層レベルのそれぞれの分割ノードによって提供される入力サンプルのサブセットの数は、例えば、phとして表され、これは処理コアの数Pの整数因数pkのうちの1つを表す。
【0040】
p
hは、上述したように、Pが
【数2】
によって記述されるような、処理コアの数Pの、必ずしも素因数ではない整数因数p
kのセットの1つの要素である。
【0041】
phのhは、それぞれの分割ノードの階層レベルを表す。最下位階層レベルはh=0によって記述され、hは階層レベルが増加するにつれて増加する。
【0042】
好ましい実施形態(例えば、請求項10参照)では、それぞれの分割ノードの入力サンプル数は、以下の式に基づくものである。
【数3】
【0043】
式中、N
inputは、入力サンプル数を表し、
p
kは、上述したように、
【数4】
であるような、処理コアの数Pの、必ずしも素因数ではない整数因数を表し、
hは、それぞれの分割ノードの階層レベルを表し、最下位階層レベルは、h=0によって記述され、hは、階層レベルが増加するにつれて増加し、
Mは、単一の処理コアに提供される入力サンプルのセットのサブセット内のサンプル数を表す。
【0044】
好ましい実施形態(例えば、請求項11参照)では、それぞれの分割ノードによって出力サンプルとして提供される入力サンプルのサブセットの各々のサンプル数は、以下の式に基づくものである。
【数5】
【0045】
式中、N
outputは、それぞれの分割ノードによって出力サンプルとして提供される入力サンプルのサブセットの各々のサンプル数を表し、
p
hは、所与の階層レベルのそれぞれの分割ノードによって提供される入力サンプルのサブセットの数を表し、
p
kは、上述したように、
【数6】
であるような、処理コアの数Pの、ただし必ずしも素因数ではない整数因数を表し、
hは、それぞれの分割ノードの階層レベルを表し、最下位階層レベルは、h=0によって記述され、hは、階層レベルが増加するにつれて増加し、
Mは、単一の処理コアによって提供される入力サンプルのセットのサブセット内のサンプル数を表す。
【0046】
好ましい実施形態(例えば、請求項12参照)では、それぞれの分割ノードは、入力サンプルのセット内のサンプルを複数のサブツリーまたは処理コアに割り当てるように構成され、サンプル分配論理のそれぞれの階層レベル内のそれぞれの分割ノードは、同じかまたは異なるサンプルインデックスから開始する、入力サンプルの同じかまたは異なる連続したサブセットがサブツリーまたは処理コアの各々に提供されるように、入力サンプルからサンプルおよび/または出力サンプルを選択するように構成される。さらに、各サブツリーに提供される入力サンプルのサブセットの開始インデックスは、それぞれの分割ノードの階層レベルh、および/または処理コアの数Pの因数分解のために選択された整数因数pk、および/または時間シフトΔt、および/または入力サンプルのセットに割り当てられた時間情報fracprevに依存する。
【0047】
所与の分割ノードは、所与の分割ノードに提供された入力サンプルのセットの2つ以上のサブセットを提供する。分割ノードによって提供される入力サンプルのサブセットは互いに重複してもよく、これは、同じサンプルが入力サンプルのセットの2つ以上のサブセットによって含まれ得ることを意味する。入力サンプルの差分サブセットは、サブツリーまたは処理コアの各々に提供される異なるサンプルインデックスから開始する。
【0048】
異なるサンプルインデックスから開始することにより、入力サンプルの非同一のサブセットが得られ、サンプルは入力サンプルのセットの複数のサブツリーに含まれ得る。入力サンプルのセットのサブセットの開始インデックスは、各サブツリーに提供され、かつ/または所与の分割ノードによって計算される。入力サンプルのセットのサブセットの開始インデックスを計算するための定義された開始インデックスおよび/または式を有することにより、入力サンプルのセットの複製可能なサブセットが提供される。
【0049】
実施形態(例えば、請求項13参照)によれば、それぞれの分割ノードのインデックスiを有するサブツリーに提供される入力サンプルのサブセットの開始インデックスは、以下の式に基づくものである。
【数7】
【0050】
式中、index
iは、インデックスiを有するサブツリーに提供される入力サンプルのサブセットの開始インデックスを表し、i=0は最初のサブツリーを指し、
p
hは、それぞれの分割ノードによって提供される入力サンプルのサブセットの数を表し、
Wは、
【数8】
によって記述され、式中、p
kは、上述したように、
【数9】
であるような、Pの、必ずしも素因数ではない整数因数を表し、
hは、それぞれの分割ノードの階層レベルを表し、最下位階層レベルは、h=0によって記述され、hは、階層レベルが増加するにつれて増加し、
【数10】
は、引数以下の最大整数を表し、
frac
prevは、入力サンプルのセットに割り当てられた時間情報を表し、
Δtは、例えば、隣接する処理コアによって提供されるサンプル間の時間シフトを表す。
【0051】
好ましい実施形態(例えば、請求項14参照)では、それぞれの階層レベルのそれぞれの分割ノードは、それぞれの分割ノードの入力サンプルに割り当てられた時間情報fracprev、および/またはそれぞれの分割ノードの階層レベルh、および/または処理コアの数Pの因数分解のために選択された整数因数pk、および/または時間シフトΔtに基づいて時間情報を各サブツリーに割り当てるように構成される。
【0052】
それぞれの分割ノードの入力サンプルに割り当てられた時間情報は、入力サンプルのセットのサブセットの開始インデックスを計算するために使用される。時間情報は、所与の分割ノードの階層レベル、および/または処理コアの数の整数因数、および/または時間シフトに依存する。
【0053】
実施形態(例えば、請求項15参照)によれば、例えばfrac
iとして表される、それぞれの分割ノードのインデックスiを有するサブツリーに割り当てられる時間情報は、以下の式に基づくものである。
【数11】
【0054】
式中、frac
iは、インデックスiを有するサブツリーに割り当てられる時間情報を表し、i=0は最初のサブツリーを指し、
Wは、上述の式
【数12】
によって記述され、
【数13】
は、引数以下の最大整数を表し、
frac
prevは、入力サンプルのセットに割り当てられた時間情報を表し、
Δtは、例えば、隣接する処理コアによって提供されるサンプル間の時間シフトを表す。
【0055】
好ましい実施形態(例えば、請求項16参照)では、デジタル信号処理装置は、複数の入力サンプルを格納するように構成された入力レジスタを備える。
【0056】
サンプルを入力レジスタに格納することにより、分配論理によって処理コアに分配されるべき格納されたサンプルのセットを選択することが可能になる。1つのサンプルを選択し、かつ/または1つもしくは複数の処理コアに数回分配することができる。
【0057】
好ましい実施形態(例えば、請求項17参照)では、入力レジスタはシフトレジスタである。
【0058】
限られた数の入力サンプルが格納されさえすればよいので、限られた数の入力サンプルを格納するにはシフトレジスタで十分である。シフトレジスタは、限られた数のサンプルを格納するための実行可能な解決策であり、広く使用されており、使用が簡単で費用効果が高い。
【0059】
実施形態(例えば、請求項18参照)によれば、複数の入力サンプルからサンプル分配論理の入力サンプルのセットを選択するように構成されたセレクタを備えるデジタル信号処理装置。
【0060】
セレクタは、入力レジスタに格納された複数の入力サンプルから、サンプル分配論理によって処理コアに分配されるべきサンプルのセットを選択し、入力サンプルの事前選択をもたらす。
【0061】
好ましい実施形態(例えば、請求項19参照)では、例えば、同じ階層レベルの分割ノードおよび/または異なる階層レベルの分割ノードで使用される時間シフトの長さは、タイミングジッタが適用される場合、等距離または非等距離である。
【0062】
時間シフトは処理演算と関連付けられるので、等距離または非等距離であり得る時間シフトの長さの可変性により、等距離または非等距離の時間シフトで可変処理演算を実行することになる。非等距離の時間シフトを使用して、インターリーブ高速DAC実装形態に存在するタイミング誤差を補正することができる。
【0063】
好ましい実施形態(例えば、請求項20参照)では、信号処理装置は、入力サンプル間の補間を実行する。
【0064】
デジタル信号処理装置は、時間シフトが時間アキュムレータ内の入力サンプルのサンプリング周期の所定の倍数をオーバーフローするたびに新しい入力サンプルを取得し、異なる時間シフトと関連付けられた処理演算を実行する複数の処理コアを介して出力サンプルを出力する。処理演算と関連付けられた時間シフトは、入力サンプルのサンプリング周期の分数であり、結果として出力サンプルは、入力サンプル間に位置する補間サンプルになる。
【0065】
実施形態(例えば、請求項21参照)によれば、デジタル信号処理装置は、畳み込みを実行する。
【0066】
所与の処理コアが処理演算を実行して、複数の入力サンプルを取得し、単一の出力サンプルを出力するので、処理コアは、複数の入力要素から単一の出力要素を提供する、加重平均演算または畳み込み演算を実行する。
【0067】
好ましい実施形態(例えば、請求項22参照)では、複数の処理コアは、Farrow構造を実装する。Farrow構造は、補間器の広く使用されている実装形態であり、これにより補間器が、適用が容易な、既製の、費用効果の高い解決策になる。
【0068】
実施形態(例えば、請求項23参照)によれば、異なるサブツリーの構造が、処理コアの数Pの整数因数pkの同じかまたは異なる選択から導出される。
【0069】
一例として、P=16の場合、処理コアの数を、ツリーの一部に対して16=(2×2×2)×2として、かつ/またはツリーの異なる部分に対して16=(4×2)×2として因数分解することができる。
【0070】
実施形態(例えば、請求項24参照)によれば、異なるサブツリーの構造が、処理コアの数Pの整数因数pkの同じかまたは異なる順序付けから導出される。
【0071】
一例として、P=16の場合、処理コアの数を、ツリーの一部に対して16=2×4×2として、かつ/またはツリーの異なる部分に対して16=4×2×2として因数分解することができる。
【0072】
本発明によるさらなる実施形態は、それぞれの方法を作り出す。
【0073】
しかしながら、方法は、対応する装置と同じ考察に基づくものであることに留意されたい。さらに、方法は、装置に関して本明細書に記載されている特徴および/または機能および/または詳細のいずれかによって、個別と組み合わせの両方によって補足され得る。
【図面の簡単な説明】
【0074】
以下において、本開示の実施形態を、図面を参照してより詳細に説明する。
【
図1】サンプル分配論理と複数の処理コアとを備える、信号処理装置を示すブロック図である。
【
図2】時間アキュムレータ、入力レジスタ、およびセレクタで拡張された信号処理装置を示すブロック図である。
【
図3】サンプル分配論理の分割ノードを示すブロック図である。
【
図4】それぞれの時間情報と共に入力サンプルの2つの出力サブセットを提供する分割ノードを示す例示的なブロック図である。
【
図5】Farrow補間器を示すブロック図である。
【
図6】拡張信号処理装置を示す例示的なブロック図である。
【
図7】拡張信号処理装置を示す別の例示的なブロック図である。
【
図8】拡張信号処理装置を示す別の例示的なブロック図である。
【発明を実施するための形態】
【0075】
以下において、様々な発明の実施形態および態様について説明する。また、さらなる実施形態も、添付の特許請求の範囲によって定義される。
【0076】
特許請求の範囲によって定義される任意の実施形態は、本明細書に記載される詳細、特徴および/または機能のいずれかによって補足できることに留意されたい。また、本明細書に記載される実施形態は、個別に使用することもでき、特許請求の範囲に含まれる詳細および/または特徴および/または機能のいずれかによって任意選択的に補足することもできる。
【0077】
また、本明細書に記載される個々の態様は、個別にまたは組み合わせて使用できることにも留意されたい。よって、前記態様の別の態様に詳細を付加することなく、前記個々の態様の各々に詳細を付加できる。
【0078】
本開示は、信号処理装置において使用可能な特徴を明示的または暗黙的に記述することに留意されたい。よって、本明細書に記載される特徴のいずれも、信号処理装置の文脈で使用できる。
【0079】
さらに、方法に関連して本明細書に開示される特徴および機能は、そのような機能を実行するように構成された装置においても使用することができる。さらに、装置に関して本明細書に開示される任意の特徴または機能は、対応する方法においても使用できる。言い換えれば、本明細書に開示される方法は、装置に関して説明される特徴および機能のいずれかによって補足できる。
【0080】
本発明は、以下に記載される詳細な説明、および本発明の実施形態の添付の図面を読めばより完全に理解されるが、これらは本発明を記載される特定の実施形態に限定するものと解釈されるべきではなく、説明および理解のためのものにすぎない。
【0081】
[
図1による実施形態]
図1に、サンプル分配論理110と複数の処理コア120とを備える、デジタル信号処理装置100のブロック図を示す。サンプル分配論理110は、複数の階層レベル140a~140cを有する階層ツリー構造140に編成された複数の分割ノード130a~130fを備える。
【0082】
デジタル信号処理装置100の入力サンプル150は、入力サンプルとしてサンプル分配論理110に提供され、入力サンプル150は、最上位階層レベル140aの分割ノード130aに提供される。分割ノード130aは、入力サンプル150を入力として取得し、入力サンプル150から2つ以上のサブセット160a、160bを提供する。レベル140aのサブセット160a~160bやレベル140bのサブセット160c~160fなどの、同じ階層レベルのサブセット内のサンプル数は同一である。サブセット、例えばサブセット160a、160bは、次の下位階層レベル140bの130b、130cなどの異なる分割ノードに与えられる。
【0083】
任意の所与の分割ノード130a~130fが、次の上位階層レベルから1つの入力サンプルのセットを取得し、例えば、分割ノード130cは、階層レベル140aの分割ノード130aから入力サンプル160bを取得し、2つ以上のサブセット、例えば160c、160dを次の下位階層レベル、例えば140cの2つ以上の分割ノード(図示されているのは分割ノード130fである)に提供する。
【0084】
サンプル分配論理は、分割ノード130a~130fの階層ツリー構造140を有し、最上位階層レベルの分割ノード130aは入力サンプル150を取得し、他のすべての分割ノード130b~130fは、次の上位階層レベルから入力サンプルのセットを取得する。最下位階層レベル140cの分割ノード130d~130fは、2つ以上の処理コアと結合されており、サンプル分配論理110の他のすべての分割ノード130a~130cは、次の下位階層レベルの2つ以上の分割ノード130b~130fと結合されている。
【0085】
複数の処理コア120は、その入力が、分配論理110の最下位階層レベル140cの分割ノード130d~130fに結合されている処理コア120a~120fを備える。処理コア120bは、サンプル分配論理110の最下位階層レベル140cの単一の分割ノード130dに結合されており、サンプル分配論理110の最下位階層レベル140cの分割ノード130dは、デジタル信号処理装置100の2つ以上の処理コア120a、120bに結合されている。所与の処理コア120bの入力サンプルのセット125bは、所与の処理コア120bに結合されたサンプル分配論理110の最下位階層レベル140cの分割ノード130dによって提供される。任意の所与の処理コア120a~120fは、それぞれの入力サンプルのセット125a~125fから単一の出力サンプル180a~180fを提供するように構成されている。複数の処理コア120は、複数の出力サンプル180を提供するために、処理演算を並列に実行し、処理演算は、異なる時間シフトと関連付けられている。
【0086】
言い換えれば、デジタル信号処理装置100は、複数の処理コア120とサンプル分配論理110とを備え、入力サンプルのセット150から複数の出力サンプル180を提供するように構成されている。複数の処理コア120は処理演算を並列に実行し、処理コア120a~120fは、異なる時間シフトと関連付けられている。処理コア120a~120fの入力サンプルのセット125a~125fは、サンプル分配論理110によって提供される。
【0087】
サンプル分配論理110は、階層レベル140a~140cに編成された分割ノード130a~130fの階層ツリー構造140を使用することによって、入力サンプルのセット150のサブセット125a~125fを提供する。
【0088】
入力サンプル150は、入力として処理コア120a~120fに供給されるサブセット125a~125fに分配され、サブセット125a~125f内のサンプル数はすべてのサブセット125a~125fについて等しい。
【0089】
サンプル分配論理110の各レベル140a~140cは、分割ノード130a~130fを含み、所与の階層レベル140a~140cの分割ノード130a~130fは、次の上位階層レベルから1つの入力サンプルのセットを取得し、次の下位階層レベル140a~140cに2つ以上のサブセット160a~160d、125a~125fを提供する。
【0090】
本明細書に記載されるデジタル信号処理装置100または並列補間デジタルコンボルバ100は、信号プロセッサ特定用途向け集積回路(ASIC)および/または他の計器の一部の重要な構成要素として使用され得る。
【0091】
本明細書に記載されるデジタル信号処理装置の適用形態は、例えば、デジタル信号処理装置がリアルタイムで100GSa/sのサンプルレートに対処することができるように、柔軟な(またはほぼ任意の高い)サンプルレートに対して、リアルタイムまたはほぼリアルタイムの応答時間で、並列DSP上で対処することができる。これは、並列処理コアを有するアーキテクチャの面積効率の良い実装形態である。
【0092】
さらに、信号処理装置を、無線周波数(RF)用途およびアナログベースバンド用途のために、リアルタイムで高品質の柔軟な(またはほぼ任意の)サンプルレート変換を提供するために使用できる。使用可能な帯域幅は、例えば、ナイキストレートの75%とすることができ、例えば、60dBのイメージ抑圧を達成できる。変換比は、いくつかの単純な分数に著しく限定されず、例えば、64ビットの分解能で0と1との間の数としてプログラムされるという意味で、真に柔軟である(またはほぼ任意である)。DSPのクロックレートをはるかに超えるサンプルレートに対処できる。
【0093】
さらに、信号処理装置は、柔軟な(またはほぼ任意の)ユーザビットレートに非ゼロ復帰(NRZ)デジタル波形および/またはパルス振幅変調(PAM)デジタル波形の生成のためのパルス整形を提供するために使用できる。
【0094】
非等距離サンプリング事例では、信号処理装置を使用して、メモリベースのタイミングジッタを注入することもできる。
【0095】
重要な使用事例が、時間・デジタル(TDC)ベースの同期機構のための分数サブサンプル遅延を提供することである。
【0096】
[
図2による実施形態]
図2に、
図1のデジタル信号処理装置100の強化または拡張バージョンである信号処理装置200の概略ブロック図またはハイレベルブロック図を示す。デジタル信号処理装置200の入力は、シフトレジスタである入力レジスタ270に結合されている。入力レジスタ270は、1入力1出力を有し、この入力はデジタル信号処理装置200の入力でもあり、入力レジスタ270の出力はセレクタ290に結合される。
【0097】
セレクタ290は、2入力1出力を有する。セレクタの第1の入力は入力レジスタ270に結合され、セレクタ290の第2の入力は時間アキュムレータ295に結合される。セレクタ290の出力は、
図1のサンプル分配論理110と同様のサンプル分配論理210に結合される。時間アキュムレータ295は、デジタル信号処理装置200の新しいサンプルをトリガするように構成されており、セレクタ290およびサンプル分配論理210と結合されている。
【0098】
サンプル分配論理210は、
図1のサンプル分配論理110と同様であり、複数の階層レベルに編成された分割ノード230a~230fの階層ツリー構造240を備える。
【0099】
サンプル分配論理210の最上位階層レベル240aの分割ノード230aの入力は、サンプル分配論理210の入力であり、セレクタ290に結合されている。分割ノード230aは、次の下位階層レベル、例えばレベル240bの異なる分割ノード230b~230cに結合された2つ以上の出力を有する。
【0100】
サンプル分配論理210の任意の分割ノード230a~230fは、1入力2つ以上の出力を有する。所与の分割ノード230a~230fの入力は、次の上位階層レベル240a~240cの別の分割ノード230a~230fに結合され、分割ノード230a~230fの出力は、次の下位階層レベル240a~240cの異なる分割ノード230a~230fに結合される。
【0101】
最下位階層レベル240cの分割ノード230d~230fの出力サンプルのセットは、サンプル分配論理210の出力サンプルのセットである。サンプル分配論理210の最下位階層レベル240cの分割ノード230d~230fは、
図1の複数の処理コア120と同様の、複数の処理コア220の2つ以上の処理コア220a~220fに結合されている。
【0102】
処理コア220a~220fのいずれか、例えば処理コア220bは、1入力1出力を有する。処理コア220a~220fは、結合された分割ノード230a~230fからの入力サンプルのセットを入力として期待し、単一の出力サンプル280a~280fを提供する。単一の出力サンプル280a~280fは、信号処理装置200の出力サンプル280である。
【0103】
言い換えれば、デジタル信号処理装置200は、
図1のデジタル信号処理装置100の拡張バージョンであり、デジタル信号処理装置100を備え、入力レジスタ270と、セレクタ290と、時間アキュムレータ295とによって拡張されている。
【0104】
時間アキュムレータ295は、時間シフトを追跡し、時間シフトが入力サンプルのサンプリング周期の所定の倍数、例えばPをオーバーフローするたびに、入力レジスタ270内の新しい入力サンプル250の取得をトリガするように構成されている。
【0105】
入力レジスタ270は、複数の入力サンプル250、例えば2P+M-2個のサンプルを格納するように構成されたシフトレジスタであり、セレクタブロック290を介してサンプル分配論理210に結合されている。
【0106】
セレクタ290は、入力レジスタ270とサンプル分配論理210の両方に結合されており、入力レジスタ270に格納された入力サンプルからサンプル分配論理210のための入力サンプルのセットを選択するように構成されている。
【0107】
セレクタ290によって選択されたサンプル分配論理210の入力サンプルは、時間情報298と共に、最初の階層240aにおける第1の分割ノード230aの入力サンプルである。それぞれの階層レベル240a~240cのそれぞれの分割ノード230a~230fは、各サブツリーまたは入力サンプルのサブセットに時間情報を割り当てるように構成されており、時間情報は、時間アキュムレータ295によって追跡される時間シフトに基づくものである。
【0108】
サンプル分配論理210の各分割ノード230a~230fは、入力サンプルのセットをサブセットに分割し、サブセットを出力として次の下位階層レベルの分割ノード230a~230fに提供するように構成されている。
【0109】
さらに、それぞれの階層レベル240a~240cのそれぞれの分割ノード230a~230fは、それぞれの分割ノード230a~230fの入力サンプルに割り当てられた時間情報、および/またはそれぞれの分割ノード230a~230fの階層レベル240a~240c、および/または処理コア220a~220fの数の整数因数、および/または時間シフト298に基づいて時間情報298を各サブツリーに割り当てるように構成されている。
【0110】
時間アキュムレータ295によって追跡される時間シフト298の長さは、タイミングジッタが適用される場合、等距離または非等距離であり得る。
【0111】
最下位階層レベル240cの分割ノード230d~230fは、処理コア220a~220fが出力サンプル280a~280fを提供するために、所与の分割ノード230d~230fに結合された処理コア220a~220fに供給する。
【0112】
すべての処理コア220a~220f、例えばFarrowコアは、セレクタ290によって事前選択され、例えば分配論理210の面積効率の良い実装形態によって分配された、入力レジスタ270に格納された入力サンプルのM個のサンプルのサブセットを受け取る。
【0113】
デジタル信号処理装置200は、例えば、Farrow補間器と同じおよび/または同様の数学演算を実行するが、複数の、例えばP個のサンプルをクロックサイクルごとに1回に処理する。デジタル信号処理装置200は、1クロック当たりP個の時間的に連続した出力サンプルを生成し、したがって、1より大きい並列度を有する。すべての分割ノードが2つの出力を有する、この特定の実施形態では、数Pは2の累乗である。
【0114】
複数の処理コアは、P個の同一の処理コア、またはFarrowコアを含む。各コアは、FIRフィルタコアと、FarrowコアまたはFarrow実装形態で使用される多項式評価器とを備える。
【0115】
時間アキュムレータ295は、P×Δtの増分で半開区間[0;P)における分数サンプルを累算する。時間シフトがPなどの所定の倍数をオーバーフローするたびに、時間アキュムレータはP個の入力サンプル250の取得を要求またはトリガする。入力サンプルは、P個の現在のサンプルおよびP+M-2個の過去のサンプルを含む2P+M-2個のサンプルを格納できる入力レジスタ270に格納されている。この2P+M-2個のサンプルから、セレクタ290は、サンプル分配論理210の入力サンプルのセットとしてP+M-1個のサンプルを選択する。サンプル分配論理210のP+M-1個の入力サンプルは、P個の処理コア220a~220fの間で分配され、各処理コア220a~220fにはM個ずつのサンプルが供給される。複数の処理コア220a~220fは、P個の同一の処理コア、または修正Farrowコアを含む。
【0116】
各処理コアは、またはFarrowコアは、FIRフィルタコアと、Farrow実装形態で使用される多項式評価器とを備える。そのようなすべてのコアは、M個の入力サンプルを取得し、P個の出力サンプル280a~280fのうちの1つを計算する。
【0117】
サンプルの分配は、選択または事前選択および分割の2段階で進行する。セレクタ290によって進められる選択は、入力レジスタ270からさらなる処理に適格なP+M-1個のサンプルの連続した部分範囲を選ぶことを含む。選択は、閉区間[0;P-1]において時間アキュムレータによって累算された時間シフトの整数部に基づくものである。
【0118】
分割段階は、すべての処理コア220a~220fまたはFarrowコア220a~220fが正しい連続したM個の入力サンプルを受け取るように、選択された部分範囲を分割する。P=2Hの事例では、分割プロセスには、H-1の高さを有する完全な2分木である階層構造240が関与する。したがって、階層レベルhにP/2h+1個の分割ノードを有するプロセスに関与するH個の階層レベルがあり、h=0…H-1である。最下位階層レベルh=0の2H-1個の分割ノードは、各々M個のサンプルのP個のセットを生成する。これらは、P個の処理コアの正しいサンプル数または必要なサンプル数である。
【0119】
階層レベルhにおける「分割ノード」の一般的な動作が
図3に示されている。前の段落で説明した完全な2分木(すなわち、すべてk=0…H-1に対してP=2
Hおよびp
k=2で)の一部である「分割ノード」の例示的な実装形態が
図4に示されている。
【0120】
[
図3による分割ノード]
図3に、
図1の分割ノード130と同様の分割ノード300の概略ブロック図を示す。分割ノード300の入力は、入力サンプル310および時間情報320を含む。分割ノード300は、入力サンプル310の2つ以上のサブセット360a~360cを、それぞれの関連付けられた時間情報350a~350cと共に提供する。
【0121】
所与の階層レベルhの分割ノード300は、入力サンプルのセット310を入力サンプル310の複数のサブセット360a~360cに分割するように構成されている。サブセット360a~360cは、同じ数のサンプル、例えばW+M-1個のサンプルを有し、Wは
【数14】
によって記述され、式中、p
kは処理コアの数の整数因数を表す。
【0122】
サブセットのW+M-1個のサンプルは、分割ノード300に提供された時間情報320に依存する開始インデックスから開始するW+M-1個のサンプルを含む入力サンプル310のサブセットを選択することによって、p
hW+M-1個の入力サンプル310から選択される。それぞれの分割ノードのインデックスiを有するサブツリーに提供される入力サンプルのサブセットの開始インデックスは、以下の式に基づくものである。
【数15】
式中、frac
prev320は、入力サンプルと関連付けられた時間情報を表す。
【0123】
さらに、分割ノード300は、所与の分割ノード300によって提供されたサブセット360a~360cに時間情報350a~350cを関連付けるように構成されている。サブセット360a~360cと関連付けられた時間情報350a~350cは、分割ノード300に提供された時間情報320、分割ノード300の所与の階層レベル、および
図1の処理コア120の数の整数因数に依存する。
【0124】
時間情報350a~350cは、以下の式に基づくものである。
【数16】
【0125】
図3は、
図1のデジタル信号処理装置100で使用される分割ノード300の一般的なブロック図を示している。分割ノード300は、
図1の入力サンプル150を、
図1の複数の処理コア120のための入力サンプルまたは入力サンプルのセットとして機能する、等しいサンプルサイズを有する入力サンプルのサブセットに分割するために、
図1のサンプル分配論理110において階層ツリー構造に編成されている。
【0126】
[
図4による分割ノード]
図4に、
図3のより一般的な分割ノード300の特定の例である分割ノード400の図を示す。分割ノード400は、1つの入力サンプルのセット410および時間情報420を入力として取得し、2つの出力サンプルのセット430a、430bをそれぞれの時間情報440a、440bと共に提供する。
図4の具体例は、処理コアの数が2の累乗(すなわち、P=2
H)であり、この数がすべてのp
k=2である
【数17】
に従って因数分解される場合に得られる2分木構造の一部である。
【0127】
各サブセット430a、430bは、異なるインデックスから開始する入力サンプル410から選択されたW+M-1個のサンプルを含み、開始インデックスは時間情報420に依存するように構成されている。
【0128】
図4は、次の上位階層レベルの
図1の分割ノード130の出力サブセットである入力サンプル410を、等しい数のサンプルを有し、それぞれ関連付けられた時間情報440a、440bを有する2つの出力サブセット430a、430bに分割するために、サンプル分配論理(
図1の110や
図6の660など)で使用される分割ノード400を示しており、時間情報440a、440bは入力タイミング情報420に基づくものである。
【0129】
[
図5によるFarrow補間器]
図5に、従来のFarrow補間器500のブロック図を示す。Farrow補間器500は、入力レジスタ510と、時間アキュムレータ520と、Farrowコア530とを備える。
【0130】
時間アキュムレータ520は、Δtの増分で半開区間[0;1)における分数サンプルを累算する。アキュムレータがオーバーフローすると、時間アキュムレータは1つの入力サンプル540を要求する。
【0131】
入力レジスタ510には、最新の入力サンプル540および以前の入力サンプル、例えばM-1個のサンプルが格納されている。入力レジスタ510に格納され、補間の計算に使用される入力サンプルの総数は、Farrow補間器500のサポートMと呼ばれ得る。
【0132】
入力レジスタ510および時間アキュムレータ520は、Farrowコア530に結合されている。Farrow補間器500のFarrowコア530は、クロックサイクルごとに1つの出力サンプル550を生成し、入力サンプル540は、時間アキュムレータ520がオーバーフローするときに提供および/または要求される。
【0133】
Farrowコア530は、複数の有限インパルス応答(FIR)コア560と、多項式評価器ユニット570とを備える。入力レジスタ510は、Farrowコア530の各FIRコア560に結合されている。FIRコア560は、多項式評価器570に結合されている。多項式評価器570は、FIRコア560からの入力、および時間アキュムレータ520からの分数時間入力580を受け取り、Farrow補間器500の出力であるクロックサイクルごとに1つの出力サンプル550を提供する。
【0134】
時間アキュムレータは分数時間580を累算し、それをFarrowコア530の多項式評価器570に提供する。時間アキュムレータ520がオーバーフローすると、時間アキュムレータ520は新しい入力サンプル540を要求する。新しい入力サンプル540は、シフトレジスタである入力レジスタ510に格納されている。入力レジスタ510は、新しい入力サンプル540および以前の入力サンプル、例えばM-1個の入力サンプルを格納している。入力レジスタ510に格納された入力サンプルのセット、例えばM個の入力サンプルは、Farrowコア530に、特にFarrowコア530のFIRコア560に与えられる。各FIRコア560は、入力レジスタ510に格納された入力サンプルの加重平均値を計算し、FIRコアは、加重平均計算のための異なる重みおよび/または異なる係数を有し得る。FIRコア560によって提供された加重平均値は、多項式評価器570に提供される。多項式評価器570は、FIRコア560によって計算された計算加重平均値を多項式の係数値として、時間アキュムレータ520によって提供された分数時間値580を多項式の独立変数として使用して、多項式の値を計算し、この値を、Farrowコア530の出力および/またはFarrow補間器500の出力である、出力サンプル550として出力する。
【0135】
Farrow補間器500は、一度に1つのサンプルを処理する従来の補間器であり、1に等しい並列度を有する。
図5の従来のFarrow補間器500に対する
図1のデジタル信号処理装置100の新規性は、デジタル信号処理装置100が、高いサンプルレートに対してリアルタイムまたはほぼリアルタイムで、並列DSP上で対処することができることである。例えば、
図1のデジタル信号処理装置100は、1ギガヘルツ未満のクロック速度を有するDSP上で、リアルタイムで毎秒100ギガサンプルのサンプルレートに対処し得る。
【0136】
図1のデジタル信号処理装置100は、並列処理のための複数の処理コア120を備え、
図1の処理コア120は、
図5のFarrowコア530であり得る。
図1のサンプル分配論理110は、
図1の入力値150を、
図1の複数の処理コア120として使用される複数のFarrowコア530に分配する。
【0137】
さらに、信号処理装置は、各処理コアまたはFarrowコア530ごとに
図5の複数の時間アキュムレータ520の代わりに、単一の時間アキュムレータ、例えば
図2の295を使用し、よって、Farrowコア530が処理演算を並列に実行することを可能にする。
図1のデジタル信号処理装置100は、Farrowコア530である
図1の処理コア120を備える。
【0138】
この実装態様の複数の変形形態が以下のように存在し得る:
- 処理コアまたはFarrowコアは、Farrowの元の実装形態に従う必要はない。0個以上の入力サンプルおよび分数タイミング情報から出力サンプルを計算する任意の実装形態が、適格であり、信号処理装置で使用することができる。1つの代替例は多相FIRフィルタであり、係数は、分数タイミング情報580から、例えば、数学的関係、ルックアップテーブル、または両方の組み合わせによって決定される。
- 補間比は厳密に1より大である必要はなく、1と等しくすることができる。
- 補間比は一定である必要はない。
- 出力サンプリングは等距離である必要はない。時間アキュムレータまたはタイミングアキュムレータおよび分割論理またはサンプル分配論理は、非等距離の時点を生成することが可能である。
- 処理コアの並列度または数Pは2の整数乗に限定されないが、整数乗は最も効率的な実装形態をもたらすことができる。
- 「分割」段またはサンプル分配段の個々のスイッチを組み合わせることができる(
図7を参照)。
- 時間累算または分数タイミング情報を表すための異なる区間、例えば、[-0.5;P-0.5)、[-0.5;0.5)または[-1;1)が考えられる。
【0139】
以下では、サンプル分配論理内の分割ノードの数および/または入力サンプルのサンプル数、および/または処理コアの数、および/またはFarrowコアは異なり得る、デジタル信号処理装置の特定の例を提供する。
【0140】
[
図6による実施形態]
図6に、
図1のデジタル信号処理装置100の特定のデジタル信号処理装置600の例を示す。デジタル信号処理装置600は、入力レジスタ630に格納されている新しい入力サンプル620の取得をトリガするように構成された、時間アキュムレータ610を備える。入力レジスタ630はセレクタユニット640に結合されており、セレクタユニット640は入力サンプルを第1の分割ノード650に提供する。分割ノード650は、この例では2分木である、分割ノード650の階層ツリー構造660の第1の分割ノードである。分割ノードの2分木構造660内のすべての分割ノードが1入力2出力を有し、所与の分割ノードの入力サンプル670は、入力サンプル670のサブセット680a、680bに分割される。階層ツリー構造、この場合2分木構造660は、処理コア690またはFarrowコア690に等しい量の入力サンプルを提供する。Farrowコア690の各々は、2分木構造660の最下位階層レベルの分割ノードによって提供される所与の入力サンプルのセットから単一の出力サンプルを提供する。
【0141】
言い換えれば、増分累算時間分数Δt、またはその倍数16×Δtが時間アキュムレータ610でオーバーフローすると、16個の新しい入力サンプルが要求される。16個の新しい入力サンプルは、入力レジスタ630内に以前の入力サンプルに沿って格納されており、合計で45個のサンプルが格納されている。セレクタユニット640は、入力レジスタに格納された45個のサンプルのうちの30個のサンプルを選択し、それらを入力サンプルのセットとして第1の分割ノード650に提供する。第1の分割ノード650は、入力サンプルのセットの30個のサンプルから各々22個のサンプルを有する2つのサブセットを提供する。次の下位階層レベルの分割ノードは22個の入力サンプルを取得し、その各々が出力サンプルとして18個のサンプルを有する2つのサブセットを提供する。より下位の階層レベルの分割ノードほど、入力サンプルとしてより少数のサンプルを取得し、最上位階層レベルは入力サンプルとして30個のサンプルを取得し、後続の分割ノードは、下位階層レベルにおいて入力サンプルとして22個、18個、16個のサンプルを取得する。
【0142】
分割ノードによって提供されたサブセット内のすべてのサンプルは、次の階層レベル内の分割ノードの入力サンプルとして提供される。第1の分割ノード650は、入力サンプルのセットの30個のサンプルから22個のサンプルの2つのサブセットを提供する。異なる階層レベルの分割ノードが、それらの入力サンプルのセットからサブセットごとに22個、18個、16個、15個のサンプルを提供する。サンプル分配論理または階層ツリー構造660の最下位階層レベルの分割ノードは、プロセッサコアまたはFarrowコア690への入力サンプルとしての各々15個のサンプルを有する2つのサブセットを提供する。Farrowコア690は、
図5のFarrowコア530と同様であり、入力サンプルのセットから、この例では15個の入力サンプルから1つの出力サンプルを生成する。
【0143】
[
図7による実施形態]
図7に、
図1のデジタル信号処理装置100の特定の例として、デジタル信号処理装置700を示す。信号処理装置700は、入力サンプルのセット720、特に16個の入力サンプルの取得をトリガする時間アキュムレータ710を有する。新しい入力サンプルが以前の入力サンプルと共に、合計45個の入力サンプルとして入力レジスタ730に格納される。セレクタユニット740が、45個の入力サンプルから30を選択し、それらを入力サンプルとして分割ノード750または第1の分割ノードに提供する。第1の分割ノードは、分割ノード750の階層ツリー構造760の最上位階層レベルの分割ノードである。
【0144】
外部から見ると、
図6のデジタル信号処理装置600と
図7のデジタル信号処理装置700とは同じ計算を実行することができる。主な違いは、処理コアの数(
図6と
図7の両方で16である)の因数分解(2×2×2×2対4×2×2)と、結果として生じる異なるツリー構造および分割ノードの階層レベルの異なる数にあり、
図6の階層ツリー構造660は2分木であるが、階層ツリー構造760は3つの階層レベルのみを有し、最下位階層レベルの分割ノードは、入力サンプルのセットの4つのサブセットを提供する。
【0145】
最下位階層レベルの分割ノードは、各々18個の入力サンプルを有する入力サンプルのセットを取得し、各サブセット内に15個のサンプルを有する入力サンプルの4つのサブセットを4つの処理コアに提供する。処理コア790は、
図5のFarrowコア530と同様または同一のFarrowコアであり、入力サンプルのセット、特に15個の入力サンプルから各々1つの出力サンプルを提供する。
【0146】
[
図8による実施形態]
図8に、
図1のデジタル信号処理装置100と同様の、例示的なデジタル信号処理装置800を示す。時間アキュムレータ810がオーバーフローすると、15個の入力サンプルの取得がトリガされる。15個の入力サンプル820は、以前の入力サンプルと共に合計43個のサンプルとして入力レジスタ830に格納される。
【0147】
これら43個のサンプルから、セレクタユニット840は、第1の分割ノードへの入力サンプルとして29個のサンプルを選択する。デジタル信号処理装置800の分割ノード850は、階層ツリー構造860に編成されている。この特定の例では、処理コアの数Pは累乗および2ではなく、分割ノードの階層ツリー構造は2つの階層レベルを含み、最上位階層レベルの分割ノード850は、各々17個のサンプルを有する入力サンプルの5つのサブセットを提供し、最下位階層レベルでもある2番目に上位の階層レベルの分割ノード850は、各々15個のサンプルを有する入力サンプルの3つのサブセットを提供する。
【0148】
15個のサンプルは、
図5のFarrowコア530と同様の、複数の処理コア890、またはFarrowコアに提供される。各Farrowコア890は15個の入力サンプルから単一の出力サンプルを提供するので、複数のFarrowコア890は15個の出力サンプル895を提供する。
【0149】
(参考文献)
[Farrow88] C. W. Farrow, “A Continuously Variable Digital Delay Element,” in Proc. IEEE Int. Symp. Circuits & Syst., Espoo, Finland, June 6-9, 1988, pp. 2641-2645
[Erup93] L. Erup, F. M. Gardner, R. A. Harris, “Interpolation in Digital Modems-Part II: Implementation and Performance,” IEEE Trans. Commun., vol. 41, pp. 998-1008, Jun. 1993
【国際調査報告】