質問Aのモデリングにおける2020年中国の大学院数学コンテスト

問題Aのモデリングにおける2020年中国大学院数学コンテスト(Huawei社の提案)

ASIC チップ上のキャリア回復DSPアルゴリズムの設計と実装

光デジタル信号処理(DSP)チップは、光伝送の分野における「心臓」であり、このようなチップは多くの場合、特定用途向け集積回路(ASIC)に基づいて実装されます。たとえば、7nmチッププロセスで製造された光伝送チップの容量は800Gbpsに達する可能性があり、これは48T bpsの容量を達成できる単一の光ファイバーに相当し、ネットワークトラフィックの爆発的な成長を確実にします。DSPアルゴリズム設計ASICチップは通常2つの主要なステップで構成され、最初のステップはチャネル障害補償アルゴリズムの物理モデルに従って設計されます。この場合、浮動小数点計算のみを考慮する必要があります。2番目のステップは2チップのリソースと電力の制約、アルゴリズムASICチップで実現できる固定小数点形式に変換します。現時点では、アルゴリズムをチップ上での乗算や加算などの最も基本的な演算に洗練する必要があり、固定小数点量子化ノイズの影響を考慮する必要があります。特定のシナリオで最適な設計を達成するためにパフォーマンスとリソースを比較検討する方法は、DSPチップアルゴリズムエンジニアリングの分野での永続的なトピックです。この質問では、アルゴリズムとチップの最適なエンジニアリング設計について説明する例として、oDSPの主要なキャリアリカバリーアルゴリズムを取り上げます。

最初に、ASICチップ上の基本的な通信システムとアルゴリズム設計に関する基本的な知識を紹介します。

1.通信システムモデル

この質問では、図1に示すように、簡略化されたデジタル通信システムのパフォーマンス評価モデルを検討します。トランスミッターによってエンコードされたバイナリシーケンスは、コンスタレーションポイント上のシンボルにマッピングおよび変調されて送信されます。1秒あたりに送信されるシンボルの数は、ボーレートfBaudと呼ばれます。信号は、チャネル内の分散ノイズと位相ノイズの影響を受け、人工的なホワイトガウスノイズが人工的に追加されます。ノイズの量は、信号対ノイズパワーの比で表されます。レシーバーはまず分散を補償し、次にキャリアリカバリー(CR)アルゴリズムによって位相ノイズを補償します。最後に信号が判断され、バイナリビットシーケンスに逆マッピングされます。コンスタレーションはチャネルの損傷とノイズの影響を受け、[pq1] 広がるため、信号が誤って判断され、受信したバイナリシーケンスが送信側と一致しなくなり、ビットエラーが発生します。バイナリビット全体に対するエラーバイナリビットの比率は、ビットエラーレート(BER)と呼ばれます。BERが特定のしきい値未満である限り、誤り訂正符号化後のBERは1e-15のオーダーよりも小さくなり、工学的な意味での「エラーのない」伝送を実現できます。この質問ではエラー訂正コーディングは考慮されていません。BERは直接決定されたBERを指します。

RSNR(必要なSNR)コストは、アルゴリズムのパフォーマンスを評価するためのアルゴリズム評価で一般的に使用されます。SNR(信号対ノイズ比)は、信号電力とノイズ電力の比率を指します。たとえば、図1で、加法性ホワイトガウスノイズのみが存在する場合、SNRとBERの関係は、特定の変調形式に対して決定されます。BERがしきい値に達したときにチャネルに課されるSNRは、必要なSNR(RSNR)として定義されます。これは、システムが許容できるノイズの量として理解できます。位相ノイズや波長分散などの干渉がある場合同じ補正前のしきい値ポイントに対応するSNR値が増加し、システムが許容できるノイズの量が減少することを示します。RSNR の増加は、RSN Rコストと呼ばれます。RSNRコストは、システムとアルゴリズムのパフォーマンスを測定するために一般的に使用される指標です。たとえば、CRアルゴリズムのパフォーマンスが高いほど、RSNRコストは低くなります。図1モデルによって計算されたRSNRのノイズは、システムのパフォーマンスを評価する目的で「人工的に」追加されます。実際の光伝送システムでは、電気装置、光装置、光増幅器などのさまざまなシステムコンポーネントからノイズが発生することがあります。

モデルの用語については、以下でさらに説明します。

 

図1デジタル通信システムの簡略化された性能評価モデル

[変調、コンスタレーションダイアグラム、ビット誤り率BER]

バイナリシーケンスでは通常、「シンボル」としてKビットを送信する必要があり、各シンボルには2 Kの異なる状態があります。光伝送では、光波の複素振幅を使用して信号を伝送するため、複素平面上の異なるポイントを使用して、異なるシンボル状態に対応できます。このような、複素平面上のシンボル状態を描く絵は「コンスタレーションダイアグラム」と呼ばれ、絵上のポイントは「星座ポイント」。図2(a)に示すように、QPSK(直交位相シフトキーイング)変調では、チャネル重畳ノイズとレシーバー処理の後、受信側のコンスタレーションダイアグラムは理想的な4点ではなく、広がります。受信機は1シンボルを受信すると、送信されたシンボルをそのシンボルに最も近いコンスタレーションポイントと判断します。明らかに、ノイズが大きすぎる場合、図2(b)の青い点に示されているように、受信したシンボルが誤っていると判断され、ビットエラーが発生する可能性があります。ビットエラー率(BER)は、送信されたビットの総数に対するエラービットの数の比率として定義されます。たとえば、50シンボルが送信されると、合計100 ビットが送信され、1つのシンボルが隣接するシンボルとして誤判定されます。 1ビットの場合、ビット誤り率は0.01です。BERは、通信システムのパフォーマンスを測定するための最も基本的な指標です。

   

図2コンスタレーションダイアグラムとビットエラーの原因となるノイズの模式図

図3では、理想的なコンスタレーションポイントはs k表され、受信シンボルはr k表され、ノイズは

n k = r k - s k                                  (1)

ノイズは通常、平均値が0の正規分布に従います。ノイズの分散は、次のように定義されるノイズの平均パワーに等しい

P n = 1 N k = 1 N n k 2                             (2)ここで、Nは送信されたシンボルの総数です。平均信号電力は、送信されたシンボルの絶対値の二乗の平均値として定義されます。

P s = 1 N k = 1 N s k 2                             (3)

信号対雑音電力の比を信号対雑音比(SNR)として定義します。

SNR = P s / P n(4)

エンジニアリングでは、dBは通常、次のように定義されるSNRの単位として使用されます。

SNR dB = 10log10(P s / P n                        (5)

【位相ノイズとCRアルゴリズム】

位相ノイズは信号に時変位相を追加し、

S 1 T = S 0T)EXP { T }                           (6)

これらの中で、S 0tは、位相ノイズが重畳される前の)波形であるS 1 Tは、位相ノイズが重畳され、後の波形であり、θ tは、位相雑音です。通信システムは、多くの場合、等間隔でサンプリングした後、離散的に表現され、各サンプリングポイントは、特定の時間にサンプリングされた波形に対応します。位相ノイズの場合、k + 1とkの位相差は次のように表されます。

Dθ=θ K + 1 - θ K = 2π* LW F B * X K                        (7)

このうち、LWはレーザーの線幅の指標であり、単位はkHZです。f bはボーレート、X kは平均値が0、分散が1の確率変数です。時間とともに変化する位相ノイズの一般的な法則を図4に示します。位相変化も負の値に発展する可能性があります。

 

図4典型的な位相ノイズの進展曲線

図5に示すように、一般的なCRアルゴリズムは既知のパイロットシンボル(パイロット)を間隔を空けて挿入し、受信信号と既知のシンボルの位相差を比較して現在の位相ノイズを推定します。受信側で影響を受けるシンボルへの逆乗算により、位相ノイズ補償が実現されます。パイロットと合計シンボルの比率はパイロットオーバーヘッドと呼ばれ、たとえば、N個のシンボルごとにMパイロットが含まれている場合、オーバーヘッドはM / Nです。CRアルゴリズムを設計する際には、さまざまな考慮事項があります。たとえば、パイロット自体は既知の量であり、情報を送信しないため、システムのオーバーヘッドを減らすためにパイロットを最小化する必要があります。パイロット間のペイロードの位相は、さまざまな補間方法で補間できます。近似するには、加法性ホワイトノイズは位相推定の精度に影響します。2つの連続したパイロットシンボルを使用して平均化してホワイトノイズの影響を抑制できます。また、インターリーブされたパイロット間で平均化することもできます。もちろん、上記は一例であり、実際のCRアルゴリズムはこれに限定されない。

 

図5パイロットのキャリア回復アルゴリズム

【分散と分散補償アルゴリズム】

   ファイバ内の分散の影響は、式8に示すように、信号が直接フーリエ変換された後、周波数点の2乗で変化する位相を周波数領域データに適用すると考えることができます。

H F = EXP [ J * λ 2 πDz C F 2 ]                     (8)

このうち、λは波長、1550 nm、Dzは分散値、cは光速、fは周波数ポイントです。この質問で、チャネルに適用された分散とアルゴリズムの補償分散を図6に示します。分散値が既知であると仮定すると、最初にFFTが受信データを周波数領域に変換し、次に式の周波数領域応答を乗算し、次にIFFT時間領域に戻るだけです。チャネルの分散の周波数領域応答は、アルゴリズムの補償分散の周波数領域応答と共役関係にあります。

 

 図6分散と分散補償方法

2. ASICチップへのアルゴリズムの実装

通常コンピューターで実行するソフトウェアベースの数学計算とは異なり、ASICでの計算はハードウェア回路に基づいて実行されます。たとえば、特定の式を計算するために、汎用コンピューターが論理命令に変換され、同じCPUで時系列で実行され、最終的に結果が出力されます。計算はASICで行われ、計算は基本演算本体の加算、乗算などで分割するプロセスです。基本演算にそれぞれ対応するのは、チップ上の異なる専用ロジックであり、それぞれが特定の領域を占めます。ASICチップでDSPアルゴリズムを設計するには、並列実装、固定小数点量子化、タイミング制約、リソース/電力消費の制約などの制約を考慮する必要があります。これらについて以下で簡単に説明します。

【並列実装】

チップ上の計算はすべて、システムクロックの下でビートごとのリズムで実行されます。チップによって計算されるスループットは、情報が失われないようにするために、信号伝送速度よりも大きくなければなりません。シリアル処理方式を採用すると、チップクロック周波数が非常に高くなり、チップの消費電力はメインクロック周波数とほぼ二乗の関係になります。もちろん、メイン周波数をブラインドに上げても処理フローを増やすことはできません。並列処理を使ってリソースを増やす必要があります。処理トラフィックの増加と引き換えに。たとえば、図7に示す二乗演算では、シリアルの場合、1クロックサイクルで1つのシンボルが処理され、ボーレート100Gには少なくとも100GHzのクロック周波数が必要です。これは、実際に達成できるレベルをはるかに超えています。N回のリソースが支払われ、毎回N個のシンボルが同時に計算される場合、クロック周波数は1 / Nになり、消費電力は大幅に削減されます。現在のoDSPクロックの主な周波数は500MHz〜1GHzのオーダーであり、対応するシンボルの並列度は約100〜200です。

 

図7 ASICチップの並列動作の概略図

【定点量子化】

コンピューターでは、パラメーター変数を定義するために倍精度浮動小数点数が一般的に使用されますが、ASICは通常、パラメーター変数のサイズを示すために固定小数点数を使用します。ほとんどの場合、倍精度浮動小数点計算では精度がほとんど失われません。固定小数点ASIC ビットは小さくなる傾向があるため、量子化ノイズに応じて丸め誤差が増加します。固定小数点数を表す2進数の数は、固定小数点ビット幅と呼ばれます。固定小数点数は、下の図に示すように、多くの場合、符号付きビットと符号なしビットに分けられます。たとえば、S(8,4)は、小数点以下4を占める符号付き8ビット固定小数点数を表します。u(7,4)は、小数点以下4桁の符号なし7ビット固定小数点数。単一の固定小数点数は実数のみを表すことができますが、複素数は2つの固定小数点を使用して実数部と虚数部をそれぞれ表します。ASICでの計算はすべて固定小数点計算として定量化する必要があり、量子化ノイズの影響もアルゴリズム設計の鍵の1つです。たとえば、CR位相ノイズアルゴリズムでは、受信側で影響を受けるシンボルは6〜9ビットの固定小数点数で表されることが多く、位相ノイズ部分を計算するためのビット幅は実際の条件によって異なります。

 

図8固定小数点表現

【基本操作、タイミング制約、リソース/消費電力制約】

ASICのアルゴリズム設計では、計算を基本演算に分解する必要があります。この問題を考慮して、図9に示すように、4つの追加、乗算、データキャッシュルックアップ操作を実行します。加算と乗算の両方が2つの数値で実行され、実数部と虚数部は複素数演算で別々に計算されます。減算は、-1による乗算と、その後の加算と考えることができます。ASICは2進固定小数点数表現であるため、2の累乗による乗算または除算は、小数点をシフトすることと同じであり、追加のリソースコストは発生しません。ルックアップテーブルは、加算と乗算に直接実装できない演算に使用されます。たとえば、sin関数を見つけるには、入出力のマッピング関係を離散的な入出力の対応に定量化し、テーブルを参照して出力を取得できます。たとえば、d =sin⁡(a + b 2 * c)を見つけるには、最初に1レベルの加算によってa + bを計算し、次にshift によってa + b 2を取得、次に1段階の乗算によってa + b 2 * cを取得し、最後にsinによってチェックします。 dを取得するテーブルの方法。各操作は、チップ上のリソースに対応しています。明らかに、操作に関係するデータビット幅が大きいほど、より多くのリソースが占有されます。

 

図9 ASICチップの基本操作

一方、チップはメインクロック周波数で1ビートで動作するため、1ビートで連続して実行できる基本動作は限られていますが、バッファを追加することでパイプライン構造を実現できます。たとえば、図10では、操作1の結果が得られ、残りの時間内に操作2を1ビート以内に完了できない場合、操作1の出口に操作1の出力データを格納するためにレベル1バフバッファーを追加する必要があります。各ビート操作中に、操作2はバフに保存された操作1の前のビート出力を読み取って計算を実行し、操作1は現在の入力データを使用して計算を実行し、結果をバフに保存します。操作1と操作2は同時に実行できますが、出力1の操作結果は操作1と操作2が同じビートで完了する場合よりも1ビート遅れます。

 

図10キャッシュ実装パイプライン構造

コンピューティングパスが異なれば、クロック遅延も異なります。アルゴリズムに異なるコンピューティングパスがある場合、各パスの遅延が揃っていることを確認する必要があります。たとえば、CRアルゴリズムでは、計算された位相ノイズの差をデータに乗算する必要がありますが、位相ノイズの計算は通常1ビート以内に完了できないため、位相とデータの間で遅延が発生し、遅延をバッファーに合わせる必要があります。この質問では、1レベルの乗算、4レベルの加算、および1レベルのテーブルルックアップ演算が1クロックサイクルで完了すると想定しています。

加算、乗算、テーブルルックアップ、およびキャッシングはすべてリソースを必要とし、アルゴリズム設計でも考慮する必要があります。加算と乗算は2行2列の演算です。加算リソースは最大ビット幅にほぼ比例し、乗算リソースはビット幅積にほぼ比例し、遅延リソースはビット幅と遅延深度にほぼ比例します。MNのルックアップテーブルの場合、リソースは(2 ^ M)* Nに比例します。Mは入力ビット幅を表し、Nは出力ビット幅を表します。たとえば、既知の信号の位相に対するルックアップテーブル操作、信号ビット幅s(10,1)、位相ビット幅s(9,1)、このときM = 20 、N = 9。テーブルを参照すると、入力は信号の実数部と虚数部の組み合わせであり、トラバースされるアドレスは2 ^ 20であり、各アドレスに対応する位相値のビット幅はs(9,1)です。

表1

基本的な操作

8 + 8ビット

 加算器

8 * 8ビット

乗数

8ビット-8ビットのルックアップテーブル

8ビット、

2048シンボルごとに遅延

資源

1 U

8 U

128 U

1 U

第三にASIC チップアルゴリズム設計の一般的な手順

  上記の内容に基づいて、チップ上のアルゴリズム設計には通常、次の特定のステップが含まれます。

1)物理モデルと係数特性に従ってアルゴリズムのプロトタイプを設計します。たとえば、CRアルゴリズムでは、パイロットを使用して位相差を推定し、ペイロードの位相ノイズを内挿法などの方法で計算し、最後に推定した位相差を乗算してデータに戻し、位相ノイズを補正します。

2)並列処理の程度とタイミングの制約を考慮して、アルゴリズムを基本的な達成可能な操作に洗練し、アルゴリズムの実装に対するアルゴリズムの実装の複雑さの影響を大まかに考慮します。このとき、浮動小数点数とみなすことができ、固定小数点量子化ノイズを考慮する必要はありません。たとえば、CRアルゴリズムでは、ペイロードの位相ノイズの補間が基本操作によってどのように実現されるか、計算されたノイズパスの遅延が補償済みノイズパスの遅延とどのように一致するかなどを考慮する必要がある場合があります。

3)固定小数点量子化ノイズの影響をさらに考慮し、より少ないリソースでそれを達成するようにしてください現時点では、ビット幅の最適化が重要なステップです。

- - - - - - - - - - - - - - - - - - - - 問題 - - - - - ------------------------------------

質問1:ボーレートが150Gbaudの標準16QAM信号を考え、線幅を100kHz、分散値を20,000ps / nm、アルゴリズムの並列性を128に固定し、固定小数点量子化を考慮しません。パイロットのオーバーヘッドを最小限に抑えるために、基本的な加算、乗算、テーブルルックアップ、およびバッファリングに基づいて、RSNRコスト<0.3dBを目標として、CRアルゴリズムのセットを設計してください。

質問2:ライン幅が10 kHzから10 MHzに変化し、分散Dzが0から10,000 ps / nmに変化するシナリオを考えます。RSNRコストが0.3 dB未満を目標として、分散、線幅、パイロットオーバーヘッドの関係を定量的に調べます。

質問3:質問2のシナリオでは、チップによって実装されたリソースが調査にさらに含まれています。現時点では、パフォーマンスとリソースに対する固定小数点量子化の影響を考慮する必要があり、パイロットオーバーヘッドは任意に変更できます(ただし、ペイロードフローレートが> 145Gbaudであることを確認する必要があります) )、最小のリソースでCRアルゴリズムを設計するにはどうすればよいですか?

質問4:実際のパフォーマンスとリソースのトレードオフ、特定のシナリオに関連しています。たとえば、長距離トランク伝送は、多くの場合短距離伝送よりも高いパフォーマンス要件があり、長距離伝送はより多くのリソースを支払ってRSNR価格を下げることができます。そして、チームが質問3で代表的であると考えるシナリオを1つ選択し、「パフォーマンスリソース」を総合的に考慮して全体的なアルゴリズム設計のアイデアを与え、パフォーマンスとリソースの包括的なコスト関数を構築し、一連の自動ビット幅と実装設計計画を最適化し、アルゴリズム開発の指針となる定量的な結果を提供します。

注:この質問では、分散補償とビット誤り率計算の複雑さとリソースは考慮されず、CRアルゴリズムに関連するリソース(位相ノイズの計算+位相ノイズの補償)のみが考慮されます。

 

 

おすすめ

転載: blog.csdn.net/weixin_41971010/article/details/108634786