ポーラ符号逐次除去リスト復号器でのメモリ管理およびパスソート技法

申请号 JP2018525737 申请日 2016-11-23 公开(公告)号 JP2018535608A 公开(公告)日 2018-11-29
申请人 コーヒレント・ロジックス・インコーポレーテッド; 发明人 ラーザ,ザヒール; シェルビー,ケヴィン・エイ;
摘要 改善されたSCL復号器動作のためのシステムおよび方法のさまざまな実施形態について記述する。詳細には、更新されたパス指標統計情報に基づきバッファ管理の効率を改善するさまざまな実施形態について記述する。いくつかの実施形態では、SCL復号器は、先行する更新サイクル以来、変化した統計情報だけに、行あたりのLLR更新の範囲を制限するように選択的置換を遂行してもよい。いくつかの実施形態では、SCL復号器は、更新された行が導出される元の行に基づき、 【数1】 と 【数2】 の両方のビット推定値(LLR)更新のインプレースの計算を伴う場合がある遅延更新を遂行してもよい。 【選択図】図7
权利要求

受信した、符号化された通信データに対して逐次除去リスト(successive cancellation list、SCL)復号を遂行するシステムであって、 複数の処理要素と、 前記複数の処理要素の間に散在し、隣接する処理要素に結合した複数のメモリと を備え、 前記処理要素の各々により、前記符号化された通信データの一部の潜在的復号である、対応するビットパスに対して復号動作を遂行し、ビット統計情報を生成し、 前記処理要素により生成された前記対応するビットパスのリストを、捨てるべきビットパスの前記リストのサブセットを決定するために、前記ビット統計情報に基づきソートし、 捨てられないビットパスを有する対応する処理要素の少なくともサブセットに関して、 2つの長くなったビットパスを生成し、 前記対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、前記長くなったビットパスの一方、および前記対応する処理要素により生成されたビット統計情報をコピーする ことにより、前記受信した、符号化された通信データを復号するように構成され、前記コピーするステップは、前記第2のビットパス内の対応するビットおよび/またはビット統計情報と異なる、前記長くなったビットパス内のビットおよび/またはビット統計情報だけをコピーするステップを備えるシステム。前記ソートするステップは、前記リストの2つの異なるサブセットをソートするステップを備え、各サブセットは、前記リストのサイズの半分の大きさにすぎない、 請求項1に記載のシステム。前記ソートするステップは、 可能性の高い追加ビット値に対応する複数のビットパスの第1のリスト、および可能性の低い追加ビット値に対応する複数のビットパスの第2のリストを、異なる順序でソートするステップと、 第1の新しいビットパスの前記ソートされたリストの少なくとも一部と、第2の新しいビットパスの前記ソートされたリストの少なくとも一部を比較するステップと、 前記比較するステップに応答して、第1の新しいビットパスの前記ソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスの前記ソートされたリストからの1つまたは複数のビットパスを置換することにより、ビットパスの前記リストの新しいサブセットを作成するステップと を備える、 請求項1に記載のシステム。前記符号化された通信データを復号することにより、復号されたデータがもたらされ、 前記システムは、前記復号されたデータをメモリに記憶するようにさらに構成され、前記復号されたデータは、前記ビットパスの選択された1つである、 請求項1に記載のシステム。前記処理要素の少なくとも1つは、マスタ処理要素として指定され、前記メモリは、前記複数の処理要素を相互接続するルーティング機構を備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備え、 前記システムは、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達する ようにさらに構成される、 請求項1に記載のシステム。受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行するシステムであって、 複数の処理要素と、 前記複数の処理要素の間に散在し、隣接する処理要素に結合した複数のメモリと を備え、 前記処理要素の各々により、前記符号化された通信データの一部の潜在的復号である、対応するビットパスに対して復号動作を遂行し、ビット統計情報を生成し、 前記処理要素により生成された前記対応するビットパスのリストを、捨てるべきビットパスの前記リストのサブセットを決定するために、前記ビット統計情報に基づきソートし、 捨てられないビットパスを有する対応する処理要素の少なくともサブセットに関して、 2つの長くなったビットパスを生成し、 復号動作を遂行し、前記2つの長くなったビットパスに関する、更新されたビット統計情報を生成し、 前記対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、前記長くなったビットパスの一方、および前記対応する処理要素により生成された、更新されたビット統計情報をコピーする ことにより前記受信した、符号化された通信データを復号するように構成されるシステム。前記メモリは、前記複数の処理要素を相互接続するルーティング機構を備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備える、 請求項6に記載のシステム。前記処理要素の少なくとも1つは、マスタ処理要素として指定され、 前記システムは、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達する ようにさらに構成される、 請求項6に記載のシステム。前記ソートするステップは、 可能性の高い追加ビット値に対応する複数のビットパスの第1のリスト、および可能性の低い追加ビット値に対応する複数のビットパスの第2のリストを、異なる順序でソートするステップと、 第1の新しいビットパスの前記ソートされたリストの少なくとも一部と、第2の新しいビットパスの前記ソートされたリストの少なくとも一部を比較するステップと、 前記比較するステップに応答して、第1の新しいビットパスの前記ソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスの前記ソートされたリストからの1つまたは複数のビットパスを置換することにより、ビットパスの前記リストの前記新しいサブセットを作成するステップと を備える、 請求項6に記載のシステム。受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行する方法であって、 前記符号化された通信データを通信路から受信するステップと、 前記符号化された通信データを、 プロセッサを内部に備える複数の処理要素により、復号動作を遂行するステップであって、各処理要素は、ビットパスの第1のリスト内の対応するビットパスに対して復号動作を遂行し、各ビットパスは、前記符号化された通信データの一部の潜在的復号であり、前記復号動作を遂行するステップは、前記ビットパス内のビットに関連する第1のビット統計情報を備えるステップ、 前記第1のビット統計情報に基づき、ビットパスの前記第1のリストをソートするステップ、 パスの前記第1のリストの前記ソートするステップに基づき、ビットパスの前記第1のリストのサブセットを捨てるべきであると判断するステップ、 捨てるべきではないと判断された各ビットパスから、2つの長くなったビットパスを生成するステップであって、前記長くなったビットパスは、ビットパスの第2のリストを備えるステップ、および 捨てるべきではないと判断されたビットパスに関連する対応する処理要素ごとに、 前記対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、前記長くなったビットパスの一方、および前記対応する処理要素に関連するビット統計情報をコピーするステップ を繰り返すことにより復号するステップと を備える方法。前記長くなったビットパスの一方およびビット統計情報をコピーする前記ステップは、前記第2のビットパス内の対応するビットおよびビット統計情報と異なる、前記長くなったビットパス内のビットおよびビット統計情報だけをコピーするステップを備える、請求項10に記載の方法。捨てるべきではないと判断されたビットパスに関連する各処理要素により、 前記コピーするステップの前に、 前記2つの長くなったビットパスに対して復号動作を遂行するステップと、 長くなったビットパスそれぞれに対する前記復号動作に少なくとも一部は基づき、前記2つの長くなったビットパスの各々に関する第2のビット統計情報を生成するステップと、 前記第2のビット統計情報の少なくともサブセットに関して追加で前記コピーするステップを遂行するステップと をさらに備える、請求項10に記載の方法。前記ソートするステップは、 可能性の高い追加ビット値に対応する複数のビットパスの第1のリスト、および可能性の低い追加ビット値に対応する複数のビットパスの第2のリストを、異なる順序でソートするステップと、 第1の新しいビットパスの前記ソートされたリストの少なくとも一部と、第2の新しいビットパスの前記ソートされたリストの少なくとも一部を比較するステップと 前記比較するステップに応答して、第1の新しいビットパスの前記ソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスの前記ソートされたリストからの1つまたは複数のビットパスを置換することにより、ビットパスの前記リストの新しいサブセットを作成するステップと を備える、 請求項10に記載の方法。前記符号化された通信データを復号する前記ステップは、所定のしきい値を超えるビットパスに到達するまで、連続的により大きくなるビットパスに関して複数回遂行される、 請求項10に記載の方法。前記ビットパスの半分は、捨てるべきであると判断される、請求項10に記載の方法。前記符号化された通信データを復号することにより、復号されたデータがもたらされ、 前記方法は、前記復号されたデータをメモリに記憶するステップをさらに備え、前記復号されたデータは、前記ビットパスの選択された1つである、 請求項10に記載の方法。前記プロセッサは、前記複数の処理要素を相互接続するルーティング機構をさらに備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備える、 請求項10に記載の方法。前記プロセッサ内の前記処理要素の少なくとも1つは、マスタ処理要素として指定され、 前記方法は、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達するステップ をさらに備える、 請求項10に記載の方法。受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行するためのプログラム命令を備えるコンピュータ可読記憶媒体であって、前記プログラム命令は、 前記符号化された通信データを通信路から受信し、 前記符号化された通信データを、 前記記憶媒体に結合した処理要素により、復号動作を遂行するステップであって、前記処理要素は、ビットパスに対して復号動作を遂行し、前記ビットパスは、前記符号化された通信データの一部の潜在的復号であり、前記復号動作を遂行するステップは、前記ビットパス内のビットに関連する第1のビット統計情報を生成するステップを備えるステップと、 前記ビットパスを捨てない通知を受信するステップと、 第2の記憶媒体は、捨てられるビットパスと関連づけられるという通知を受信するステップと、 2つの長くなったビットパスを生成するステップと、 前記第2の記憶媒体に、前記長くなったビットパスの一方、および前記第1のビット統計情報の少なくともサブセットをコピーするステップと を繰り返すことにより復号する ように実行可能であるコンピュータ可読記憶媒体。前記長くなったビットパスの一方および前記ビット統計情報をコピーする前記ステップは、前記捨てられるビットパス内の対応するビットおよびビット統計情報と異なる、前記長くなったビットパス内のビットおよびビット統計情報だけをコピーするステップを備える、請求項19に記載の記憶媒体。前記プログラム命令は、 前記コピーするステップの前に、 前記2つの長くなったビットパスに対して復号動作を遂行し、 長くなったビットパスそれぞれに対する前記復号動作に少なくとも一部は基づき、前記2つの長くなったビットパスの各々に関する第2のビット統計情報を生成し、 前記第2のビット統計情報の少なくともサブセットに関して追加で前記コピーするステップを遂行する ようにさらに実行可能である、請求項19に記載の記憶媒体。前記符号化された通信データを復号するステップは、 前記ビットパスを捨てる通知を受信するステップと、 第3の記憶媒体から、長くなったビットパス、および前記長くなったビットパスに関連するビット統計情報を受信するステップと をさらに備える、請求項19に記載の記憶媒体。

受信した、符号化された通信データに対して逐次除去リスト(successive cancellation list、SCL)復号を遂行するシステムであって、 複数の処理要素と、 前記複数の処理要素の間に散在し、隣接する処理要素に結合した複数のメモリと を備え、前記受信した、符号化された通信データを復号するために、 前記処理要素の各々により、前記符号化された通信データの一部の潜在的復号である、対応するビットパスに対して復号動作を遂行し、ビット統計情報を生成し、 前記処理要素により生成された前記対応するビットパスのリストを、捨てるべきビットパスの前記リストのサブセットを決定するために、前記ビット統計情報に基づきソートし、 捨てられないビットパスを有する対応する処理要素の少なくともサブセットに関して、 2つの長くなったビットパスを生成し、 前記対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、前記長くなったビットパスの一方、および前記対応する処理要素により生成されたビット統計情報をコピーする ように構成され、前記コピーするステップは、前記第2のビットパス内の対応するビットおよび/またはビット統計情報と異なる、前記長くなったビットパス内のビットおよび/またはビット統計情報だけをコピーするステップを備えるシステム。前記ソートするステップは、前記リストの2つの異なるサブセットをソートするステップを備え、各サブセットは、前記リストのサイズの半分の大きさにすぎない、 請求項1に記載のシステム。前記ソートするステップは、 可能性の高い追加ビット値に対応する複数のビットパスの第1のリスト、および可能性の低い追加ビット値に対応する複数のビットパスの第2のリストを、異なる順序でソートするステップと、 第1の新しいビットパスの前記ソートされたリストの少なくとも一部と、第2の新しいビットパスの前記ソートされたリストの少なくとも一部を比較するステップと、 前記比較するステップに応答して、第1の新しいビットパスの前記ソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスの前記ソートされたリストからの1つまたは複数のビットパスを置換することにより、ビットパスの前記リストの新しいサブセットを作成するステップと を備える、 請求項1に記載のシステム。前記符号化された通信データを復号することにより、復号されたデータがもたらされ、 前記システムは、前記復号されたデータをメモリに記憶するようにさらに構成され、前記復号されたデータは、前記ビットパスの選択された1つである、 請求項1に記載のシステム。前記処理要素の少なくとも1つは、マスタ処理要素として指定され、前記メモリは、前記複数の処理要素を相互接続するルーティング機構を備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備え、 前記システムは、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達する ようにさらに構成される、 請求項1に記載のシステム。捨てられないビットパスを有する対応する処理要素の前記少なくともサブセットに関して、 復号動作を遂行し、前記2つの長くなったビットパスに関する、更新されたビット統計情報を生成する ようにさらに構成され、前記コピーするステップは、前記コピーされた、長くなったビットパスに関連する前記更新されたビット統計情報をコピーするステップをさらに備える、 請求項1に記載のシステム。前記メモリは、前記複数の処理要素を相互接続するルーティング機構を備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備える、 請求項6に記載のシステム。前記処理要素の少なくとも1つは、マスタ処理要素として指定され、 前記システムは、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達する ようにさらに構成される、 請求項6に記載のシステム。受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行する方法であって、 前記符号化された通信データを通信路から受信するステップと、 前記符号化された通信データを、 プロセッサを内部に備える複数の処理要素により、復号動作を遂行するステップであって、各処理要素は、ビットパスの第1のリスト内の対応するビットパスに対して復号動作を遂行し、各ビットパスは、前記符号化された通信データの一部の潜在的復号であり、前記復号動作を遂行するステップは、前記ビットパス内のビットに関連する第1のビット統計情報を備えるステップ、 前記第1のビット統計情報に基づき、ビットパスの前記第1のリストをソートするステップ、 パスの前記第1のリストの前記ソートするステップに基づき、ビットパスの前記第1のリストのサブセットを捨てるべきであると判断するステップ、 捨てるべきではないと判断された各ビットパスから、2つの長くなったビットパスを生成するステップであって、前記長くなったビットパスは、ビットパスの第2のリストを備えるステップ、および 捨てるべきではないと判断されたビットパスに関連する対応する処理要素ごとに、 前記対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、前記長くなったビットパスの一方、および前記対応する処理要素に関連するビット統計情報をコピーするステップ を繰り返すことにより復号するステップと を備え、 前記長くなったビットパスの一方および前記ビット統計情報をコピーする前記ステップは、前記第2のビットパス内の対応するビットおよび/またはビット統計情報と異なる、前記長くなったビットパス内のビットおよび/またはビット統計情報だけをコピーするステップを備える方法。捨てるべきではないと判断されたビットパスに関連する各処理要素により、 前記コピーするステップの前に、 前記2つの長くなったビットパスに対して復号動作を遂行するステップと、 長くなったビットパスそれぞれに対する前記復号動作に少なくとも一部は基づき、前記2つの長くなったビットパスの各々に関する第2のビット統計情報を生成するステップと、 前記第2のビット統計情報の少なくともサブセットに関して追加で前記コピーするステップを遂行するステップと をさらに備える、請求項9に記載の方法。前記符号化された通信データを復号する前記ステップは、所定のしきい値を超えるビットパスに到達するまで、連続的により大きくなるビットパスに関して複数回遂行される、 請求項9に記載の方法。前記ビットパスの半分は、捨てるべきであると判断される、請求項9に記載の方法。前記符号化された通信データを復号することにより、復号されたデータがもたらされ、 前記方法は、前記復号されたデータをメモリに記憶するステップをさらに備え、前記復号されたデータは、前記ビットパスの選択された1つである、 請求項9に記載の方法。前記プロセッサは、前記複数の処理要素を相互接続するルーティング機構をさらに備え、 前記コピーするステップは、前記コピーするステップを達成するために、前記ルーティング機構内に動的ルートを作成するステップを備える、 請求項9に記載の方法。前記プロセッサ内の前記処理要素の少なくとも1つは、マスタ処理要素として指定され、 前記方法は、 前記マスタ処理要素により、動的ルートを作成するための命令を他の処理要素それぞれに伝達するステップ をさらに備える、 請求項9に記載の方法。受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行するためのプログラム命令を備えるコンピュータ可読記憶媒体であって、前記プログラム命令は、 前記符号化された通信データを通信路から受信し、 前記符号化された通信データを、 前記コンピュータ可読記憶媒体に結合した処理要素により、復号動作を遂行するステップであって、前記処理要素は、ビットパスに対して復号動作を遂行し、前記ビットパスは、前記符号化された通信データの一部の潜在的復号であり、前記復号動作を遂行するステップは、前記ビットパス内のビットに関連する第1のビット統計情報を生成するステップを備えるステップと、 前記ビットパスを捨てない通知を受信するステップと、 第2の記憶媒体は、捨てられるビットパスと関連づけられるという通知を受信するステップと、 2つの長くなったビットパスを生成するステップと、 前記第2の記憶媒体に、前記長くなったビットパスの一方、および前記第1のビット統計情報の少なくともサブセットをコピーするステップと を繰り返すことにより復号する ように実行可能であり、 前記長くなったビットパスの一方および前記第1のビット統計情報をコピーする前記ステップは、前記捨てられるビットパス内の対応するビットおよび/またはビット統計情報と異なる、前記長くなったビットパス内のビットおよび/またはビット統計情報だけをコピーするステップを備えるコンピュータ可読記憶媒体。前記プログラム命令は、 前記コピーするステップの前に、 前記2つの長くなったビットパスに対して復号動作を遂行し、 長くなったビットパスそれぞれに対する前記復号動作に少なくとも一部は基づき、前記2つの長くなったビットパスの各々に関する第2のビット統計情報を生成し、 前記第2のビット統計情報の少なくともサブセットに関して追加で前記コピーするステップを遂行する ようにさらに実行可能である、請求項16に記載の記憶媒体。前記符号化された通信データを復号するステップは、 前記ビットパスを捨てる通知を受信するステップと、 第3の記憶媒体から、長くなったビットパス、および前記長くなったビットパスに関連するビット統計情報を受信するステップと をさらに備える、請求項16に記載の記憶媒体。

说明书全文

本発明の分野は、一般に通信で使用する復号器に関する。

復号器は、通信の多くの領域で使用される。通信の用途で使用される復号器の一例は、前方誤り訂正(Forward Error Correction、FEC)復号器である。データ移動およびデータ記憶領域は、前方誤り訂正(FEC)復号器から所与のプロセッサアーキテクチャへの効率的マッピングを決定する際に重量な考慮事項である。ポーラ符号(Polar Code)復号器の現在の設計は、逐次除去(Successive Cancellation、SC)復号器の拡張を伴う。ポーラ復号器の現在の設計の一例に関する詳細な情報については、以下の参考文献1を参照されたい。SC復号器は、低い復号複雑度をもたらすが、その一方で、ビット誤り性能に関して、ターボ(Turbo)符号または低密度パリティ検査(Low Density Parity Check、LDPC)符号に対抗するためには、100万ビットに近づく長いブロックサイズ(N=2n)を必要とする(すなわちn=20)。

逐次除去リスト(Successive Cancellation List、SCL)復号器は、SC復号器の拡張である。SCL復号器は、実現可能なブロック長、たとえば、N=211に対してビット誤り性能を改善する場合がある。SCL復号は、SC復号器ループの各フェーズで、2つの可能性、すなわち、

および

を並列に考慮してもよい。結果は、復号器木であり、その次元は、復号される情報ビットそれぞれに対して2倍になる。複雑度を管理するために、SCL復号器の現在の実装は、木の各分岐に沿った累積パス指標に基づき、各復号ステージでリストを固定リストサイズLに枝刈りをしてもよい。詳細な議論、およびこれらの考えの初期の実装については、以下の参考文献2を参照のこと。

米国特許第7,415,594号明細書

米国特許第8,880,866号明細書

E.Arikan,“Channel Polarization:A method for constructing capacity achieving codes for symmetric binary−input memoryless channels(通信路分極:対称2元無記憶通信路のための符号を達成する容量を構築する方法),” IEEE Trans.on Inf.Theory,vol.55,no.7,pp.3051−3073,Jul.2009

I.Tal and A.Vardy,“List Decoding of Polar Codes(ポーラ符号のリスト復号),” IEEE Trans.on Information Theory,vol.61,no.5,pp.2213−2226,May 2015

G.Sarkis,P.Giard,A.Vardy,C.Thibeault and W.J.Gross,“Fast Polar Decoders:Algorithm and Implementation(高速ポーラ符号:アルゴリズムおよび実装),”IEEE J.on Selected Areas in Communications,vol.32,no.5,pp.946−957,May 2014

A.Balatsoukas−Stimming,M.B.Parizi and A.Burg,“LLR−Based Successive Cancellation List Decoding of Polar Codes(LLRに基づくポーラ符号の逐次除去リスト復号),” in IEEE Transactions on Signal Processing,vol.63,no.19,pp.5165−5179,October,2015

プロセッサステージ間でデータを交換することは、適切なSCL復号器動作にとって重要であり、データ交換は、SCL復号器動作にかなりの待ち時間を導入する場合がある。したがって、本分野で改善が望まれる。

改善されたSCL復号器動作のためのシステムおよび方法のさまざまな実施形態について記述する。詳細には、更新されたパス指標統計情報に基づきバッファ管理の効率を改善するさまざまな実施形態について記述する。通常使用されるパス指標統計情報は、ビット位置、推定された情報ベクトル、ビット位置に関して新しく受信したシンボル、すでに復号されたビットに依存する対数尤度比(log likelihood ratio、LLR)であり、以下で規定する。LLR指標は、以下の参考文献4で説明されているように、他の指標よりも高い数値安定性を生み出す。

第1の実施形態では、SCL復号器は、選択的置換を遂行してもよい。従来の復号器の実装は、ビット推定値(たとえば、LLR)更新の前段から計算されたパス指標に基づき、バッファ内の全部の行を更新してもよい。選択的置換は、行ごとのLLR更新の範囲を、先行する更新サイクル以来変更された統計情報だけに限定する。

第2の実施形態では、SCL復号器は、遅延更新を遂行してもよい。従来の復号器は、パス指標を更新し、ソートし、次いで、LLR更新の次ステージの前に必要に応じて統計情報バッファの行を置換してもよい。この動作順序は、各行への入が所定のバッファ位置にコピーされ、その後、LLR更新処理を再開することができるという前提で、入力コピー(Input Copy)と呼ばれる。結果マルチキャスト(Result Multicast)と称される、本明細書に記載する新しい取り組み方法によれば、いくつかの実施形態では、方法は、むしろ、更新された行が導出される元の行に基づき、

の両方のビット推定値(LLR)更新のインプレース計算を伴う。入力統計情報をコピーするのではなく、出力統計情報を、インプレースで計算し、次いで、イン・プレース・バッファだけではなく任意の追加の宛先バッファにも同時に遅延マルチキャストで転送してもよい。

好ましい実施形態に関する以下の詳細な記述を以下の図面と併せて考慮するとき、本発明のよりよい理解を得ることができる。

一例の無線通信システムを示す。

機器の復号器内の、一例のプロセッサシステムを示す。

n=11の場合の、通信路分極の一例を示す。

n=3の場合の、一例の符号器を示す。

n=3の場合の、一例の復号器を示す。

一例のSCLメモリ構成を示す。

いくつかの実施形態による、選択的置換復号器の動作を示す流れ図である。

いくつかの実施形態による、遅延更新を遂行してもよい、復号器のメイン処理ループ(コア復号器ループ)を示す。

いくつかの実施形態による、最適ソートアルゴリズムの動作を示す流れ図である。

いくつかの実施形態による、待ち時間の短いソートアルゴリズムの動作を示す流れ図である。

いくつかの実施形態による、待ち時間の短いソートアルゴリズムでの変数ε、η、およびLの図式による説明である。

いくつかの実施形態による、マージアルゴリズムの動作を示す流れ図である。

ノイズ、および本明細書に記述する方法のためのメモリ移動が存在する状態での、復号性能の比較を示す。

いくつかの実施形態による、マスタ処理要素を使用して、L=8で復号器を実装するように構成されたマルチ・プロセッサ・アレイを示す。

いくつかの実施形態による、共用メモリを有する復号器を実装するように構成されたマルチ・プロセッサ・アレイを示す。

本発明は、さまざまな修正形態および代替形態が可能であるが、それらの具体的実施形態について、図面で例として示し、本明細書で詳細に記述する。しかしながら、それらの実施形態に対する図面および詳細な記述は、開示する特定の形態に本発明を限定することを意図するものではなく、それどころか、その意図は、添付の特許請求の範囲により規定されるような本発明の趣旨および範囲にはいるすべての修正形態、均等物、および代替形態を包含することであることを理解されたい。 参照による援用

以下の参考文献は、あたかも本明細書にあらゆる点で完全に示されているかのように、全体が参照により本明細書に援用される。

1.E.Arikan,“Channel Polarization:A method for constructing capacity achieving codes for symmetric binary−input memoryless channels(通信路分極:対称2元無記憶通信路のための符号を達成する容量を構築する方法),” IEEE Trans.on Inf.Theory,vol.55,no.7,pp.3051−3073,Jul.2009

2.I.Tal and A. Vardy,“List Decoding of Polar Codes(ポーラ符号のリスト復号),” IEEE Trans.on Information Theory,vol.61,no.5,pp.2213−2226,May 2015

3.G.Sarkis,P.Giard,A.Vardy,C.Thibeault and W.J.Gross,“Fast Polar Decoders: Algorithm and Implementation(高速ポーラ符号:アルゴリズムおよび実装),” IEEE J.on Selected Areas in Communications,vol.32,no.5,pp.946−957,May 2014

4.A.Balatsoukas−Stimming,M.B.Parizi and A.Burg,“LLR−Based Successive Cancellation List Decoding of Polar Codes(LLRに基づくポーラ符号の逐次除去リスト復号),” in IEEE Transactions on Signal Processing,vol.63,no.19,pp.5165−5179,October,2015 用語

以下は、本出願で使用する用語の解説である。

記憶媒体−さまざまなタイプのメモリ機器または記憶装置のいずれか。用語「記憶媒体」は、インストール媒体、たとえば、CD−ROM、フロッピーディスク104、またはテープ装置;コンピュータ・システム・メモリ、またはDRAM、DDR RAM、SRAM、EDO RAM、Rambus RAMなどのようなランダム・アクセス・メモリ;または磁気媒体、たとえば、ハードドライブ、光学記憶装置、もしくはROM、EPROM,フラッシュなどの不揮発性メモリを含むことが意図される。記憶媒体は、同様に他のタイプのメモリも、またはそれらの組合せを含んでもよい。さらに、記憶媒体は、プログラムが実行される第1のコンピュータ内に配置されてもよい、および/またはインターネットなどのネットワークを介して第1のコンピュータに接続する、第2の異なるコンピュータ内に配置されてもよい。第2の異なるコンピュータ内に配置される実例では、第2のコンピュータは、実行するために、第1のコンピュータにプログラム命令を提供してもよい。用語「記憶媒体」は、異なる場所に、たとえば、ネットワークを介して接続される異なるコンピュータ内に存在してもよい2つ以上の記憶媒体を含んでもよい。

キャリア媒体−上述のような記憶媒体、ならびにバス、ネットワーク、および/または電気信号または光信号などの信号を伝達する他の物理的伝送媒体などの物理的伝送媒体。

プログラム可能ハードウェア素子−プログラム可能な相互接続または有線接続された相互接続を介して接続された複数のプログラム可能機能ブロックを備えるさまざまなハードウェア機器を含む。例には、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)、FPOA(Field Programmable Object Array)、およびCPLD(Complex PLD)が含まれる。プログラム可能機能ブロックは、微細なもの(組合せ論理またはルック・アップ・テーブル)から粗大なもの(算術論理演算装置またはプロセッサコア)までに及んでもよい。プログラム可能ハードウェア素子はまた、「再構成可能論理」とも呼ばれる場合がある。

特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)−この用語は、その通常の意味の広さを完全に有することが意図される。ASICは、プログラム可能プロセッサコアをビルディングブロックとして含有してもよいが、用語ASICは、汎用プログラム可能機器というよりはむしろ特定用途のためにカスタマイズされた集積回路を含むことが意図される。携帯電話セル、MP3プレーヤチップ、および他の単一機能ICは、ASICの例である。ASICは、通常はVerlogまたはVHDLなどのハードウェア記述言語で記述される。

プログラム−用語「プログラム」は、その通常の意味の広さを完全に有することが意図される。用語「プログラム」は、1)メモリに記憶してもよく、プロセッサにより実行可能なソフトウェアプログラム、または2)プログラム可能なハードウェア素子またはASICを構成するために使用可能なハードウェア構成プログラムを含む。

ソフトウェアプログラム−用語「ソフトウェアプログラム」は、その通常の意味の広さを完全に有することが意図され、記憶媒体に記憶して、プロセッサにより実行してもよい、任意のタイプのプログラム命令、コード、スクリプト、および/もしくはデータ、またはそれらの組合せを含む。代表的ソフトウェアプログラムは、テキストベースのプログラミング言語、たとえば、C、C++、PASCAL、FORTRAN、COBOL JAVA(登録商標)、アセンブラ言語などのような命令型言語もしくは手続き型言語で書かれたプログラム;グラフィカルプログラム(グラフィカルプログラミング言語で書かれたプログラム);アセンブラ言語プログラム;機械語にコンパイルされたプログラム;スクリプト;および他のタイプの実行可能ソフトウェアを含む。ソフトウェアプログラムは、何らかの手法で相互運用する2つ以上のソフトウェアプログラムを備えてもよい。

ハードウェア構成プログラム−プログラム、たとえば、プログラム可能ハードウェア素子またはASICをプログラムする、または構成するために使用することができるネットリストまたはビットファイル。

コンピュータシステム−パーソナル・コンピュータ・システム(PC)、メインフレーム・コンピュータ・システム、ワークステーション、ネット家電、インターネット家電、携帯情報端末(personal digital assistant、PDA)、グリッド・コンピューティング・システム、もしくは他の機器、または機器の組合せを含む、さまざまなタイプのコンピューティングシステムまたは処理システムのいずれか。一般に、用語「コンピュータシステム」を、記憶媒体から命令を実行する少なくとも1つのプロセッサを有する任意の機器(または機器の組合せ)を包含するように、広範囲に規定することができる。

自動的に−ユーザ入力が活動または動作を直接指定または遂行することなく、コンピュータシステム(たとえば、コンピュータシステムにより実行されるソフトウェア)、または機器(たとえば、回路、プログラム可能ハードウェア素子、ASIC)により遂行される動作または活動を指す。したがって、用語「自動的に」は、ユーザが操作を直接遂行するための入力を提供する、ユーザにより手動で遂行される、または指定される動作とは対照をなす。自動手順は、ユーザにより提供される入力により開始されてもよいが、「自動的に」遂行される後続の活動は、ユーザにより指定されない、すなわち、遂行すべき各活動をユーザが指定する「手動で」行われない。たとえば、ユーザが各フィールドを選択し、情報を指定する入力を提供することにより(たとえば、情報をタイプし、チェックボックス、ラジオボタン選択などを選択することにより)電子式フォームに必要事項を書き入れることは、たとえコンピュータシステムがユーザの活動に応答してフォームを更新しなければならなくても、フォームに必要事項を手動で書き入れることになる。コンピュータシステムは、フォームに必要事項を自動的に書き入れてもよく、この場合、ユーザ入力がフィールドへの回答を指定することなく、コンピュータシステム(たとえば、コンピュータシステム上で実行されるソフトウェア)がフォームのフィールドを解析し、フォームに書き込む。上記に示したように、ユーザは、フォームの自動書込を起動してもよいが、フォームを実際に書き込むことには関与しない(たとえば、ユーザがフィールドへの回答を手動で指定するのではなく、むしろ、フィールドが自動的に完成される)。本明細書は、ユーザが行った活動に応答して、操作が自動的に遂行されるさまざまな例を提供する。

システム概観 図1は、無線通信機器12と通信する基地局10を伴う一例の通信システムを示す。基地局10は、複数の無線通信機器とセルラ通信を遂行するセルラ基地局であってもよい。あるいは、基地局10は、802.11規格または関連規格によるなどのWi−Fi通信を遂行するための無線アクセスポイントであってもよい。無線通信機器12は、スマートホン、タブレット機器、コンピュータシステムなどのような、さまざまな機器のいずれかであってもよい。基地局10および無線通信機器12の一方または両方は、本明細書に記述するような復号器論理を含んでもよい。

図2は、復号器内に存在してもよい一例のプロセッサシステムを示し、そこでは、復号器は、基地局10および/または無線通信機器12の一方または両方に含有されてもよい。この例では、図示するように、プロセッサシステムは、複数の散在したプロセッサおよびメモリを備えてもよく、この場合、矩形は、処理要素(機能ユニットとも呼ばれる)であり、円は、データ記憶ルータとも呼ばれるメモリである。プロセッサシステムは、本明細書に記述する方法を実装するようにプログラムされてもよい。いくつかの実施形態で使用されてもよい一例のプロセッサ・システム・アーキテクチャに関する情報については、あらゆる点で完全に本明細書に示されるかのように、全体が参照により本明細書に援用される、米国特許第7,415,594号明細書および米国特許第8,880,866号明細書を参照されたい。プロセッサシステムの別の例は、上記に規定されるようなプログラム可能ハードウェア素子(programmable hardware element、PHE)である。たとえば、復号器は、本明細書に記述する方法を実装するように構成されてもよいFPGAなどのPHEを含んでもよい。

無記憶2元対称通信路のための符号を実現する容量を構築する方法は、当技術分野で公知である(上記のArikanの参考文献1を参照)。その結果得られるポーラ符号は、通信路容量、すなわち、最大相互情報量が、1(完全に利用可能)または0(利用不可能)に向かう傾向がある再帰的処理から生じる、通信路分極(図3参照)として公知の現象を活用する。対応するビット確率1および0.5は、コード長N=2nが、正の整数値nと共に増大するにつれ、それぞれそれらの極限に近づく。最も信頼できる通信路上に情報ビットを配置することにより、データを転送してもよく、その一方で、最も信頼できない通信路上に配置されたビットは、固定値、たとえば0に設定されてもよい。これらのビットは、凍結ビット(frozen bit)と呼ばれる場合がある。凍結ビット、および符号行列への凍結ビットのマッピングは、送信側と受信側の両方に既知であってもよい。その結果、凍結ビットは、通信路内のノイズにより、または他の点で、誤りが発生したかどうかを判断するために、復号アルゴリズムにより基準として使用されてもよい。たとえば、復号アルゴリズムを通して決定された値と凍結ビットの既知の値を比較して、誤りが発生したかどうかを判断してもよい。

情報ビットを、それらのシミュレートされた容量または相互情報量に基づき、「良い(good)」情報ビットおよび「不良(bad)」情報ビットにさらに分類してもよい。同様に、送信側と受信側の両方は、どのビットが良い情報ビットおよび不良情報ビットであるかわかるように構成されてもよい。以下でさらに詳細に説明するように、復号アルゴリズムは、「不良」ビットに対する精査を向上させることに集中することにより、復号誤りの尤度を低減するように構成されてもよい。

逐次除去アルゴリズム 符号化法の実行可能性を例証するために、Arikanは、逐次除去(SC)復号器を考案した。複雑度の低い復号を提供しているが、復号器は、競争相手であるターボ符号または低密度パリティ検査(LDPC)符号と競争するために、100万(すなわち、220)ビットに近づく長いブロックサイズを必要とする。さらに、SC復号器の逐次的性質は、復号器スループットにかなりの制限を課す。

逐次除去リストアルゴリズム 少なくともいくつかの実施形態によれば、本明細書に記述する方法は、上記の参考文献1でArikanにより概要を述べられた取り組み方法の制限を克服しようとして、SC復号器の拡張を伴ってもよい。上記の参考文献2でTalおよびVardyは、逐次除去リスト(SCL)復号の方法について記述している。SCL復号は、非凍結ビットごとに、各復号器フェーズで2つの可能性を、すなわち、

および

を並列に詳しく調べる。復号器は、各ステージで、最も可能性の高いパスを保持して、複数のパスを並列に追跡してもよい。復号器はまた、利用可能なL個のパスから適切なビットの判定を判断する際に、最終的に使用する巡回冗長検査(cyclic redundancy check、CRC)を付加してもよく、Balatsoukas−Stimming et al.の上記の参考文献4を参照されたい。

ポーラ符号 ポーラ符号は、生成行列Gにより記述される線形ブロック符号のクラスを形成する。ブロック長Nのポーラ符号は、次式に従って生成されてもよい。

式中、FNは、他の可能性の中でもとりわけ、

のクロネッカー(Kronecker)積を示す。

ポーラ符号は、長さNのブロック内の、k個の情報ビットおよび(N−k)個の凍結ビットの位置により規定される。符号レートR=k/Nは、ブロック長に対する非凍結ビットの比として表現される。符号レートは、ブロックあたりの非凍結ビットの数を変えることにより線形に調節することができる。典型的には、ブロック長Nを、N=2nなどの2の累乗となるように選び、nは自然数である。

代表的ポーラ符号器 図4は、ブロック長N=23に対する一例のポーラ符号構造を示す。符号器は、入力uiから開始され、入力uiは、出力xiに符号化される。情報は太字で示されている。残りの入力を、凍結ビット値0に割り当ててもよい。各ステージsで、符号器は、右側に示す符号化木に従ってビットの対を組み合わせ、図中、

は、排他的OR(XOR)演算を示す。

SC復号器 (図7および図8を参照してさらに導入される)updateLLRセクションでは、SCL復号器を、累積対数尤度比(LLR)統計情報の行に対して独立したmin−sum計算をそれぞれ採用するSC復号器の集合と見てもよい。

各ビット位置iで、SC復号器は、次式のようにビットuiを推定することを目指す。

式中、

は、推定した情報ベクトル

所与の受信したシンボルy、およびすでに復号されたビット

に関して、ビット位置iで対数尤度比(LLR)を計算する。

図5は、n=3の場合の、したがって、ブロック長N=23である、一例の復号器を示す。

次式に従って、図5に示すマルチステージ線図に、復号器アルゴリズムを再帰的に適用する。

式中、λl,iは、SC復号器グラフの行iおよびステージlのLLRを示す。関連するカーネル計算は、min−sumアルゴリズムを構成する。

λfab)=sgn(λa)・sgn(λb)・min(|λa|,|λb|)

SCL復号器 リスト復号器は、パス指標更新セクションupdateUを導入して、ベースラインSC復号器から逸脱してもよい。各バイ・デコーディング・ステージが完了すると、パス指標は、可能なビット値

の両方の可能性を考慮して更新される。いくつかの実施形態では、正しく復号されたストリングであるパスの尤度により、リスト内のパスをランクづけするように、ソーティング動作を遂行してもよい。このとき、可能なパスの「木」を、L個の最も可能性の高いパスだけを保持して、枝刈りをしてもよい。伝送ブロック内の各ビットに対して、LLR計算およびパス拡張のサイクル、ならびに枝刈りを繰り返してもよく、この時点で、ペイロード・データ・ビットの最良の推定値を現す、最も可能性の高いパスを選ぶ。

上記の参考文献2および4に記述されるSCL復号器は、ソーティング動作の結果を使用して、複数のメモリコピー(memcpy)を指示し、memcpy動作が完了するまで、LLR更新が再開することができないので、処理オーバヘッドが加わる。

メモリ構成 図6は、一例のSCLメモリ構成を示す。図6に示す、基礎となるメモリ構成について、SCL復号器の動作を考察してもよい。ビット統計値とも呼ばれる場合があるLLR指標を、L×NバッファgLLR[L][N]の形で記憶してもよく、そこでは、Lはリスト内のエントリの数を指定し、Nはリスト内の各パスの長さをビット単位で指定する。LLR指標の各平行は、パスと呼ばれる場合があり、図5に示す復号器のインスタンスに対応してもよい。異なるインスタンスは、典型的には、異なる「ビットパス」と呼ばれる場合があるu_hat値のための異なるビットに対応する。たとえば、最初に、u_hat(0)=1およびu_hat(0)=0に対して2つのビットパスを生成してもよく、u_hat(0)およびu_hat(1)の第2の異なる組合せに対して4つのビットパスを生成してもよく、以下同様である。いくつかの実施形態では、図2の処理要素に各行を割り当ててもよい。すべての利用可能な行を埋めると、いくつかの実施形態では、updateUは、累積パス指標に基づきパスをランクづけし、正しいパスである尤度が低いパスを枝刈りする。枝刈りされたパス上の処理要素に、新しいパスを割り当ててもよく、これには、より可能性の高いパスから、新しいパスを割り当てられる処理要素に隣接する新しいメモリ要素に、gLLRの行をコピーするステップが含まれてもよい。いくつかの実施形態では、パスごとの独立したLLR更新を考慮すると、Lを、それぞれ次元Nの別個のLLRアレイと考えることがより容易な場合がある。updateLLRは、L×Nバッファの行ごとに独立して動作する。updateUは、パス指標を計算し、ソートし、次いで、置換および並べ替えのためにパス指標(path metric、PM)ベクトルの行に印をつける。LLRバッファの行に対して直接、並べ替えを行ってもよい。中間のU、およびビット推定値U_hatを、図6に示すように、同じ並べ替えに従って修正してもよい。UおよびU_hatは、硬判定に対応する場合があることに留意されたい。したがって、UおよびU_hatの記憶およびmemcpy要件を低減してもよい。しかしながら、LLRバッファ管理に関連するオーバヘッドを低減するためにとるステップは、UおよびU_hatバッファにも同様に適用されてもよい。

SCL復号のための代表的方法 いくつかの実施形態では、SCL復号を以下の手法で遂行してもよい。プロセッサは、符号化された通信データを通信路から受信してもよい。プロセッサは、複数の処理要素、および複数の処理要素の間に散在した複数のメモリを備えてもよく、そこでは、メモリは、隣接する処理要素に結合される。プロセッサは、復号動作を繰り返して遂行することにより、符号化された通信データを復号するように構成されてもよい。復号処理は、プロセッサを具備する複数の処理要素により遂行されてもよい。いくつかの実施形態では、各処理要素は、ビットパスのリスト内の対応するビットパスに対して復号動作を遂行するように構成されてもよく、そこでは、復号動作(たとえば、updateLLR)は、それぞれのビットパスに関連するビット統計情報(たとえば、パス指標)を生成する。ビットパス、および関連するビット統計情報を、それぞれの処理要素に接続されたメモリに記憶してもよい。上記で説明したように、ビットパスは、符号化されたデータの一部分の潜在的復号を備えてもよく、ビット統計情報は、ビットパスが正しい復号である尤度を判断する、ビットパスに関連する1組のLLRを備えてもよい。

いくつかの実施形態では、方法は、ビット統計情報(たとえば、updateU手順)に基づき、ビットパスのリストをソートすることにより継続してもよい。他の場所で「枝刈り」と呼んだ処理では、ソーティングに基づき、ビットパスのリスト内の、ビットパスのサブセットを捨てるべきであると判断してもよい。プロセッサは、処理要素の対応する1つに、自分に関連するビットパスを捨てるべきであることを通知するように構成されてもよい。プロセッサは、処理要素の他のそれぞれの1つに、自分に関連するビットパスを捨てるべきではないことを通知するようにさらに構成されてもよい。たとえば、ビットパスが正しい復号である尤度が比較的低いことを示すビット統計情報に関連するビットパスを、優先的に捨ててもよい。いくつかの実施形態では、ビットパスが所定のサイズに大きくなるまで、枝刈りを開始しなくてもよく、その結果、ビットパスのリストは、所定のリストサイズよりも大きくなり、事前に構成された数の処理要素を同時に使用して、復号動作を遂行することになる。

いくつかの実施形態では、捨てるべきではないと判断されたビットパスを使用して、2つの、増分で長くなったビットパスを生成してもよく、たとえば、ビットui=0およびui=1をビットパスに追加して、2つの長くなったビットパスを作成してもよい。計算性能を改善するために、処理要素は、長くなったビットパスの一方、およびそれに関連するビット統計情報を、対応するビットパスが捨てられた別の処理要素にコピーしてもよい。次いで、復号処理は、長くなったビットパスに関する後続のフェーズに進んでもよく、そのとき、各処理要素は、復号動作を遂行すべき単一の(長くなった)ビットパスを再び有してもよい。いくつかの実施形態では、枝刈りが開始されると、方法は、復号処理の各パスでビットパスの半分を捨てるように構成されてもよい。そのような場合、ビットパスの総数は、フェーズごとに変わらないままである。たとえば、各ビットパスを使用して、2つの長くなったビットパスを生成するので、ビットパスの数Lが、L/2に枝刈りされる場合、枝刈りされたL/2個のビットパスは、L個の長くなったビットパスをもたらす。

いくつかの実施形態では、復号処理は、後続のフェーズに関して複数回行われてもよく、そこでは、各フェーズは、連続的により長くなるビットパスに対して処理要素が復号処理を遂行するステップを備える。方法は、ビットパスの長さが所定のしきい値に到達するまで、復号処理を継続するように構成されてもよい。方法は、適切に復号されたデータになるように、ビットパスの最終リスト内のビットパスの1つを選択するように構成されてもよい。たとえば、復号処理の最終フェーズでソーティングを遂行したあとに、最上位のランキングのビット統計情報(たとえば、最大対数尤度比を有するビット統計情報)に関連するビットパスを、適切に復号されたデータであると解釈してもよい。次いで、方法は、復号されたデータをメモリに記憶するように構成されてもよい。

いくつかの実施形態では、「選択的置換」と呼ばれる処理で、処理要素は、コピー先のメモリに記憶されたビットパスおよびビット統計情報と異なることがわかっている、長くなったビットパスおよび関連するビット統計情報の部分だけをコピーするように構成されてもよい。たとえば、処理要素Bが、それに関連するビットパス(たとえば、ビットパスB)が捨てられると判断され、かつ処理要素Aが、その関連するビットパスが2つの長くなったビットパス(たとえば、ビットパスA1およびA2)を生成すると判断された場合、処理要素Aは、ビットパスB内の対応するビットと異なる、ビットパスA1内のビットだけをコピーしてもよい。処理要素Aは、ビットパスBに関連する、対応するビット統計情報と異なる、ビットパスA1に関連するビット統計情報だけをさらにコピーしてもよい。選択的置換処理について、以下でさらに詳細に、補足的に記述する。

いくつかの実施形態では、「遅延更新」と呼ばれる処理で、処理要素は、長くなったビットパスの一方、および関連するビット統計情報を別の処理要素に関連するメモリにコピーする前に、長くなったビットパスに対して復号動作の後続のフェーズを遂行するように構成されてもよい。処理要素は、復号動作に少なくとも一部は基づき、長くなったビットパスの各々に関する、更新されたビット統計情報を生成してもよい。いくつかの実施形態では、ビットパスおよびビット統計情報をコピーする処理は、望ましくない待ち時間を計算処理に導入する場合がある。そのような場合、長くなったビットパスに対して後続の復号動作を遂行することにより、コピー処理によって導入される、処理のボトルネックが軽減される場合がある。遅延更新処理について、以下でさらに詳細に補足的に記述する。

いくつかの実施形態では、複数のビットパスおよびビット統計情報を、対応する処理要素に同時にコピーすることは、複数の処理要素が同じメモリを使用してデータを同時にコピーしようと試みる場合があるので、望ましくない待ち時間をコピー処理に導入する場合がある。そのような場合、複数の散在したメモリに備わったルーティング機構を通して複数のコピー処理を動的にルーティングすることが望ましい場合がある。たとえば、コピー処理は、コピー処理のさまざまな1つの間の衝突を最小にするように動的にルーティングされてもよく、そこでは、衝突は、メモリに同時にアクセスする、複数のコピー処理を備える。いくつかの実施形態では、処理要素の少なくとも1つを、マスタ処理要素として指定してもよく、そこでは、1つまたは複数のマスタ処理要素は、動的ルートを作成するための命令を他の処理要素それぞれに伝達する。動的ルーティングについて、以下でさらに詳細に補足的に記述する。 SCLバッファ管理

図7は、コア復号器ループの一例を示す。図示するように、SC復号器を、updateLLRステージを通る、L個の独立したSC復号器と見ることができる。

のパスと

のパスの両方を考慮して、復号されたビットそれぞれの完了と共にパス指標更新を行ってもよい。ソーティング後、最も可能性の高いL個のパスを識別してもよい。残りのパスを捨ててもよく、その結果、更新されたL個のパスでupdateLLR処理が再開するために、生き残っているパスの1つまたは複数からの統計情報を、空になったバッファの中にコピーしてもよい。この処理は、上記の参考文献2ではクローニングと呼ばれている。

SCL復号に関連するバッファ管理の単純な構造は、統計情報バッファ内で置換される行ごとに、updateLLRルーチンの入力でmemcpyを伴う場合がある。LLR統計情報の更新でmemcpyに伴って招くオーバヘッドを著しく低減するための、2つの技法が確認されている。

選択的置換:いくつかの実施形態では、この技法は、updateUのインスタンス間で大部分が変更されなかったLLR統計情報の行全体を更新するのとは対照的に、修正された統計情報だけを置換する。換言すれば、コピーすべき、図6のgLLR内の所与のバッファ行については、バッファ行全体ではなく、1組の最新の(たとえば、図の右側のエントリ)LLR統計情報だけをコピーしてもよい。これにより、クローニング操作で転送されるデータ量が著しく低減される場合がある。

遅延更新:いくつかの実施形態では、この技法は、LLR更新をインプレースで計算し、次いで、結果をイン・プレース・バッファに書き込むと同時に、意図する宛先アレイに結果を転送するステップを伴う。LLR更新を計算する前に入力バッファを新しい処理にコピーするのではなく、提案する方法は、むしろ既存の処理の中で

の両方のLLR更新を計算し、次いで、パスの1つに関する結果を新しい宛先バッファに転送する。動作の順序を逆にすることにより、memcpy転送が行われる間、処理を中断する必要が回避される場合がある。いくつかの実施形態では、提案する方法は、最初にコピーし、次いで新しい処理を開始するのとは対照的に、updateLLRをインプレースで遂行し、次いで、結果を宛先処理にストリーミングする。この方法は、他の処理と一緒にデータ移動のコストを隠すことにより、処理のボトルネックを軽減する場合がある。 選択的置換

Balatsoukas−Stimmingら(上記の参考文献4)は、SCL復号器について論じており、そこでは、新しいビット位置に至る各ステップで、L個の生き残っているパスは複製される(「0」値のビット拡張のためのパス、「1」値のビット拡張のためのパス)。次いで、LLR指標に関して2L個のパスを評価し、ソートして、L個の最も可能性の高いパスだけを保有する。パスを複製するために、LLRメモリバンクをコピーする。選択的置換のこのような実験的なハードウェア実装は、LLR統計情報が一方のバンクから別のバンクにコピーされ、解がL×Lのクロスバーでもたらされる、単一サイクルのカスタマイズされたハードウェアの1組のメモリバンクとして記述される。クロスバーは、最終的に、メモリバンクがLLR統計情報の更新を完了するまで、処理の待ち時間につながる。本明細書に記述する少なくともいくつかの実施形態は、メモリ転送の数を低減し、かつL・N・logN複雑度近くに達することを目指すことにより、処理へのこのような影響を軽減するように動作する。次のソートおよび更新のルーチン前に、次の1組のビットを復号するために各SC復号器が必要とするものを並列L−SC復号器に提供することにより、転送されるメモリ量の低減を達成してもよい。

上記で論じたように、図7は、いくつかの実施形態による選択的置換復号器を示す。不良ビットは、通信チャネルで誤りを招く可能性がより高いので、SCL復号器は、各不良ビットの判定(不良ビットに関して1と0の両方の値に対応する)で検索を2つのパスに分岐させるように構成されてもよい。対照的に、SCL復号器は、良いビットを復号するとき、2つの検索パスに分岐することなく、良いビットに対して硬判定をするように構成されてもよい。

良いビットおよび不良ビットの位置は、送信側と受信側の両方により、復号前に既知であるので、(期待される、パス分岐の頻度に関係がある)期待されるメモリ要件を予備的に割り当てることにより、いくつかの実施形態によれば、計算性能が改善される場合がある。たとえば、いくつかの実施形態では、ビット統計情報を計算する前に、復号処理の準備としてMaxStageテーブルを構築することが望ましい場合がある。1つのソートインスタンスから、すなわち、1つの不良ビットインスタンスから、別のソートインスタンスに、どんな統計情報(LLR)が必要とされるかを評価するために、ルーチンInitMaxStageは、最大サイズK(情報ビット)を有するテーブルを生成してもよい(ステップ706)。以下でさらに詳細に説明するように、InitMaxStageアルゴリズムは、1つの不良ビットの復号と次の不良ビットの復号の間でメモリ要件を予想するMaxStageテーブルを構築する。ルーチンは、以下のように記述される。

InitMaxStageは、復号器および符号器で先験的に既知の、ルック・アップ・テーブル、情報ビットの位置、良いビットの位置、および復号される各ビットの深度を横断する。テーブルを詳しく検討する際、アルゴリズムは、復号されているブロック内の、符号化された情報ビットの数に等しい最大サイズを有する追加ルック・アップ・テーブルを導出し、そのとき、これまで実行されたパスのリストのうちどれが生き残ったか、およびパスのどのリストをキルしなければならないかを判断するために、ソートルーチンを実行する。maxStageルック・アップ・テーブルは、現在の不良ビットnを次の不良ビットn+1にマッピングする。ステージに分割されたLLRメモリの各バンクを考慮して、maxStageルック・アップ・テーブルは、現在の不良ビットと次の不良ビットの間で横断した最大ステージに信号を送出する。

さらに詳細には、アルゴリズムは、i=0…Nからのビット割当てを照会して、第1の不良ビット、すなわち、info_bit[i]=1およびgood[i]≠1を識別し、その時点で、最大深度を第1の不良ビットの深度に設定する。次いで、アルゴリズムは、次の情報ビットに遭遇するまで残りのビット割当てを続けて照会し、その時点で、次の不良ビットへの最大ステージが設定される。

本明細書に記述するSCL復号器アルゴリズムは、所定の数のパスLを得るまで、各不良ビットインスタンスで分岐することにより開始しても良い。アルゴリズムがL個のパスに増大すると、後続のフェーズは、分岐した各1組の2L個のパスをL個のパスに減らして戻す、枝刈りをするように構成されてもよい。枝刈りは、各パスに関連するビット統計情報に従って遂行されてもよく、その結果、正しくない復号になる可能性がより高いパスは、枝刈りされる、または捨てられる可能性がより高い。枝刈りが始まると、捨てられなかった各ビットパスは、2つの長くなったビットパスを生成し、これらの長くなったビットパスの一方は(関連するビット統計情報と共に)、ビットパスを捨てるべきであると判断された処理要素にコピーされてもよい。この場合、2つの長くなったビットパスを生成した処理要素を、「ルート」であると考えてもよく、ルートからビットパスを受信した処理要素を、ルートの「分岐」であると考えてもよい。

上記の参考文献2および4は、ビットのシーケンスを処理するSCL復号器からもたらされる、パスの進展について論じ、含まれるソート手順の結果として、パス「キリング」(同様な意味合いで、枝刈りまたは捨てること)、およびパス「クローニング」(パスの複製)について論じている。これは、SCL復号器の特色をよく示し、選択的置換復号では、活動状態の(生き残っている)パスおよび非活動状態の(キルされた)パスの状況、ならびにそれらに関連する統計情報を常に把握している必要がある。このトラッキングは、「ルート」パスをそのビット拡張された「分岐」と関連づける関係データベース(relDB)と呼ばれる、次元Lの基本テーブルを使って達成されてもよい。relDBアレイは、処理要素(PE)をパスjからのビット統計情報に接続し、使用法についてはclonePathを参照されたい。パスが置換されないとき、そのrelDB[PE]=PEであり、そうではない場合、relDB[PE]≠PEである。

選択的置換復号では、ルーチンclonePathは、ビットパスおよび関連するビット統計情報を一方の処理要素から別の処理要素にコピーするタスクを達成する(ステップ716)。clonePathは、パス指標データを、活動状態の(サバイバ)パスjのためのメモリ位置から、非活動状態とみなされるパスの1つのためのPEのメモリ位置にコピーする。データ転送のサイズは、現在のビット位置を求めてmaxStageに到達した、現在のビット位置に関する深度に左右される。clonePathアルゴリズムは、以下のように記述される。

この設計では、clonePathは、2つのデータベースを更新し、関係データベースは、パス(今は分岐である)をそのルートに関連づけ、watermarkDBは、関連するPEに関するLLRのメモリバンク内のデータの有効性を追跡する。一方のLLRプロセッサから別のLLRプロセッサにデータを転送する、またはメモリコピーすることにより、後続の処理ステージの間、メモリバンク衝突の影響が取り除かれ、必要なメモリだけを転送することにより、メモリ転送が後続の処理ステージの複雑度と一致することを保証する。いくつかの先行するシステムと異なり、クロスバーの影響および/または発生を低減する場合がある、方法clonePathを使用するメモリ転送を、カスタマイズする必要がない場合がある。しかしながら、clonePathの結果として、1組のパスはルートおよび分岐に分割される。

さらに詳細には、アルゴリズムは、非活動状態とみなされた、1組のPE=0…L−1内の各パスを識別し、そのパスを、サバイバとみなされたパスの1つjと1対にする。現在の不良ビットの深度がそのパスに関してmaxStageに到達した場合、LLRメモリからのデータの一部2^maxStage[bad_bit]は、jから、メモリアドレスgLLR[PE][2^maxStage[bad_bit]]から始まるPEのパスにコピーされる(図6参照)。そうではない場合、LLRメモリからのデータのより小さな部分2^(maxStage[bad_bit]−depth[bad_bit])は、jから、メモリアドレスgLLR[PE][2^depth[bad_bit]]から始まるPEのパスにコピーされる。最後に、そのレイヤに関してmaxStageにウォーターマークを入れる。

場合によっては、ソート処理のいくつかのフェーズ後に、ルートよりもルートの分岐がよりすぐれて生き残るシナリオが発生する可能性がある。ルーチンinheritRootは、パスがそれらのルートよりも、よりすぐれて生き残るシナリオを取り扱うように設計される(ステップ718)。

ルートが生き残らなかった分岐が処理されると、次の1組のステージのために更新されなければならない分岐は、ルーチンupdateBranchesにより処理される(ステップ720)。

updateBranchesは、パスソーティング後のデータを、サバイバメモリから非活動状態とみなされるパスの1つにコピーする。データ転送のサイズは、現在のビット位置がそのビット位置に関してmaxStageに到達した深度に左右される。

これらの開示される関数は、さまざまな実施形態で、パスのクローンを作成する際に転送されるデータの量を著しく低減する場合がある。 遅延更新

遅延更新は、いくつかの実施形態では、次にupdateLLRが続くソートと置換の動作を逆転させて、LLR更新の計算をインプレースでできるようにし、その結果を、次のupdateUの計算を遂行している間に、該当する宛先バッファに誘導する。この目的は、他の処理の下で行われるデータ通信を「隠して」、むしろmemcpyに伴って招くオーバヘッドを最小にすることである。選択的更新は、必要とされるデータ移動を低減し、他の処理と共に並列に行われた場合、隠匿することがはるかにより容易になるという点で、遅延更新は、選択的更新について上記で記述した方法と互換性がある。

図8は、遅延更新動作を含む、復号器動作の流れ図である。遅延更新動作は、いくつかの実施形態では、updateUステップで行われてもよい。

従来の方法では、updateUステップは、以下の形をとってもよい。

パス指標の更新:

その結果、パスの数が2倍になる(たとえば、32から64に)

最も可能性の高いサバイバパスを選択する

置換するために残りのパス(行)を指定する

1つまたは複数のサバイバを置換バッファにコピーする

updateLLRを再開する

しかしながら、これにより、コピーステップを待っている間に、機能ユニットは比較的にアイドルになる場合がある。したがって、いくつかの実施形態では、updateUステップは、以下の形をとってもよい。

パス指標の更新:

その結果、パスの数が2倍になる(たとえば、32から64に)

最も可能性の高いサバイバパスを選択する

置換するために残りのパス(行)を指定する

「0」パスおよび「1」パスをインプレースで計算し、結果をローカルバッファおよび置換バッファにストリーミングする(計算したパスの一方をローカルバッファにストリーミングし、他方を置換バッファにストリーミングしてもよい)ことを含み、サバイバパスに対して即時にupdateLLRを続ける

これらの実施形態では、コピー動作の前に、両方のパスに対してupdateLLRをインプレースで遂行する。これらの実施形態では、たとえば、memcpy、またはダイレクト・メモリ・アクセス(direct memory access、DMA)転送を使用してコピーするステップを遂行してもよい。 代表的なパス生成およびクローニング変形形態

いくつかの実施形態では、復号器は、各フェーズで2L個のパスすべてに関するパス指標を更新するのではなく、代わりに、先行するフェーズを生き残った最も可能性の高いL/2個のパスを最初に選択し、これらの最も可能性の高いL/2個のパスに関してビット=0およびビット=1の場合を拡張し、これらの結果を使用して、次のフェーズでL個のパスを継続するように構成されてもよい。この技法を、たとえば、遅延更新および選択的置換などの、本明細書で開示するさまざまな他の技法と併用して使用してもよい。 パスおよび優先度トラッキングへの機能ユニットの代表的マッピング

いくつかの実施形態では、復号器は、どの処理要素が、どのパス、およびさまざまな異なるパスの(たとえば、パス指標に基づく)どの相対的優先度に責任を負うかを判断するための、1つまたは複数のデータ構造を維持するように構成されたマスタ処理要素を含む。マスタ処理要素はまた、枝刈りのためのパスを選択し、クローニング動作のためのパスデータを処理要素に転送し、データ転送のための通信パスをセットアップし、破棄するなどをするように指示するように構成されてもよい。いくつかの実施形態では、マスタ処理要素は、図2に示すようなマルチ・プロセッサ・アレイ内の処理要素の1つである。他の実施形態では、マスタ処理要素は、専用の機能ユニットであってもよい。

復号処理の各フェーズの間、パスの相対的尤度は、たとえば、ソーティング動作により判断されるように、変化する場合がある。したがって、マスタ処理要素は、各パスの相対的優先度のマッピングを維持してもよい。たとえば、所与のフェーズ後、現在最も可能性の高いパスAに優先度0を割り当ててもよく、一方では、たとえば、Lが32である一実施形態では、現在最も可能性の低いパスBに優先度31を割り当ててもよい。しかしながら、後続のフェーズでは、パスAは、もはや可能性が最も高いわけではない場合があり、たとえば優先度7を割り当てられてもよい。さらに、処理要素は、どのパスが、どの処理要素および/またはローカルバッファに割り当てられるかを常に把握してもよい。これにより、どのメモリバッファを使用して、復号処理の最後に適切に受信されたデータビットを生成するかを判断することが可能になる場合がある(これは、典型的には、最終フェーズの最後でパス指標に基づく最も可能性の高いパスであってもよいが、たとえば、別のパスが巡回冗長検査を満たし、かつ最も可能性の高いパスが巡回冗長検査を満たさない場合、他のパスを選択してもよい)。

他の実施形態では、機能ユニット、パス、および優先度のマッピングは、(たとえば、マスタコントローラなしに)分散方式で遂行されてもよく、分散方式では、各処理要素は、マッピング情報の少なくとも一部を維持し、処理要素は、たとえば、所与のフェーズで、通信して、どこで枝刈りし、クローンを作成すべきかを判断する。 代表的ルーティング技法

いくつかの実施形態では、クロスバーを回避すること、たとえば、クローニング動作に関するフェーズ間のデータ転送待ち時間を回避することが望ましい。たとえば、図2に示すようなマルチ・プロセッサ・アレイ(multi−processor array、MPA)の実施形態では、復号器は、フェーズごとに通信経路を動的にセットアップし、破棄するように構成されてもよい。たとえば、代表的処理要素A、B、およびCについて考えてみる。第1のフェーズで、処理要素Aは、そのバッファのLLR統計情報(またはたとえば、選択的置換を使用して、LLR統計情報の一部)を処理要素Bに転送してもよい(たとえば、処理要素Bのパスは、枝刈りされた場合がある)。いくつかの実施形態では、復号器は、転送のためのルートを、処理要素Aがそのルートを介してDMA転送を単に開始し、次いでそれに関して忘れることができるように、動的にセットアップするように構成されてもよい。いくつかの状況では、ルーティングは、通信資源に関して衝突が全くないように遂行されてもよい(たとえば、転送は、同じフェーズで他の転送のために使用されるデータ記憶ルータを使用しない、または転送を、データ記憶ルータのスループット能力に基づき、他のデータ転送と並列に遂行することができる)。他の状況では、衝突するルートを完全に回避するのに十分な通信資源が存在しない場合があるが、これらの実施形態では、処理要素Aは、通信資源が現在のフェーズで利用可能であるときはいつも、DMA転送を依然として開始でき、DMA転送は遂行される。フェーズが完了すると、処理要素Aと処理要素Bの間のルートは、破棄されてもよい。次に、後続のフェーズで、処理要素Aが処理要素Cにパス統計情報を転送する必要がある状況について考えてみる。このフェーズで、復号器は、処理要素Aから処理要素Cへのルートをセットアップしてもよい。

その結果、動的ルーティングは、クロスバー実装に比べて通信の性能および効率を改善する場合があり、上記に記述するMPAアーキテクチャにより可能になる場合がある。図6に示すように、バッファ間の直接ルートは、クロスバーの必要性を排除する場合がある。動的ルーティングは、1組の通信ルートがポーラ符号処理の各フェーズで変わってもよいという意味で、「動的」であってもよい。

いくつかの実施形態では、上記に記述するように、マスタ処理要素は、通信経路をセットアップし、破棄してもよい。他の実施形態では、個々の処理要素(たとえば、1つまたは複数の転送する処理要素)は、経路をセットアップしてもよい、および/または破棄してもよい。

図13は、ポーラ符号をL=8で実装するように構成された代表的MPAを示す。図示する実施形態では、PE1〜8は、図6のバッファgLLR内の水平行に対して動作するように構成され、それぞれSC復号器の別個のインスタンスを走らせてもよい。これらのPEは、updateLLRフェーズを遂行するように構成されてもよい。図示する実施形態では、PE0は、いくつかの実施形態に従って上記に記述するように、マスタコントローラとして構成される。いくつかの実施形態では、PE0は、LLR統計情報を転送するためのデータ移動対の割当を新しいパスに送信するように構成される。PE1〜8間のルートは、フェーズごとに(たとえば、インスタンス更新ごとに)動的にセットアップされ、破棄されてもよい。PE0からその他のPEへのルートを使用して、たとえば、優先度を割り当てて、状態を指示し、および/またはデータ移動を開始してもよい。 代表的ソート技法

いくつかの従来のSCL復号器実装では、パスソーティング動作の性能は、SCL復号のためのデータ転送問題のために、比較的重要ではない場合がある。しかしながら、上記の技法を使用すれば、データ転送待ち時間は、大きく低減される場合がある。この場合、ソートの性能は、復号器全体の性能に、より大きな影響を及ぼす場合がある。したがって、ソーティング技法を改善することが望ましい場合がある。 最適ソート

いくつかの実施形態では、パス指標は、ビットパスでの推定不確実性の累積和を記録する。たとえば、凍結ビットの判定ごとに、復号された凍結ビットが、凍結ビットの既知の値と異なる場合、パス指標を増加してもよい。この場合、パス指標は、凍結ビットの対数尤度比の大きさに等しい量だけ増加させられてもよい(すなわち、凍結ビットが正しくないビットになるように、より確信をもって計算される場合、パス指標、およびその結果としてパスの不確実性は、より大きな量だけ増加する)。これらの実施形態では、パス指標は、関連するパス増加の長さが増加するにつれ、厳密に増加する、または同じにとどまる。

最大パス長Lの従来のSCL復号器アルゴリズムは、2L個のパス指標をソートし、半分は、追加ビットが0に設定され、半分は、追加ビットが1に設定される。性能を改善するために、可能な場合、ソートすべき項目の数を最小にすることが望ましい場合がある。いくつかの実施形態では、品質を損なうことなく、サイズLおよびL/2の、2つの別個のソートを使用して、2L個のパス指標のソートを遂行してもよい。この取り組み方法は、更新されたパス指標(path metric、PM)が、更新される元のパス指標以上であることを保証され、かつ最大でL/2個のパス指標が更新されるという所見を使用する。

図9は、いくつかの実施形態による代表的な最適ソートアルゴリズムを示す。L個のパスごとに、遭遇した不良ビットに関する対数尤度比(LLR)を計算してもよい(ステップ902)。正のLLRは、不良ビットが0である可能性がより高いことを示してもよく、負のLLRは、不良ビットが1である可能性がより高いことを示してもよい。L個のパスごとに、2組のパス指標PMおよびPM2を生成してもよい。各PMは、より可能性の高い不良ビット値を付加する対応するパスそれぞれと関連づけられてもよく(すなわち、PMは、不良ビットに関するLLRが正である場合に0を、LLRが負である場合に1を付加するパスと関連づけられる)、各PMは、不良ビット値を付加する前の、対応するパスのパス指標に等しく設定されてもよい(すなわち、PMは、先行するフェーズから変更されないままである)。各PM2は、より可能性の低い不良ビット値を付加する対応するパスそれぞれと関連づけられてもよく(すなわち、PM2は、不良ビットに関するLLRが正である場合に1を、LLRが負である場合に0を付加するパスに関連づけられる)、各PM2は、不良ビット値を付加する前の、対応するパスのパス指標に等しく、対応する不良ビットのLLRの絶対値を加えて設定されてもよい(ステップ904〜908)。この方法では、各PM2は、それに関連するPMよりも大きくなる。

次に、1組のPMは、降順にソートされてもよく(ステップ916〜920の繰り返し)、1組のPM2は、昇順にソートされてもよく(ステップ930〜932の繰り返し)、サイズLの2つのソートを備える。PMの最大値を、PM2の最小値と比較してもよい(ステップ924)。比較に応じて、いくつかの結果が考えられる。

PMの最大値がPM2の最小値よりも小さい場合、PM2のすべては、PMの各々よりも必然的に大きく、PM2に関連するパスのすべては、捨てられてもよい(ステップ926、rep=1なので、ヌル・マージ・アルゴリズムを伴う)。この場合、復号処理は、PMに関連するパスを続行する。

PMの最大値がPM2の最小値よりも大きい場合、PM2パスの一部は、PMパスの一部を置換する(ステップ934〜936)。以下で説明するように、各PM2は、その関連するPMよりも厳密に大きいので、最大L/2個のパスは、置換される。換言すれば、PM(j)よりも小さな各PM2(i)(その結果、PM2(i)パスはPM(j)パスを置換してもよい)は、PM2(i)よりも小さなPM(i)と関連づけられ、PM(i)パスは、置換されなくてもよく、その結果、最大L/2個の置換が行われてもよい。このため、PMの降順リスト内の最初のL/2個のPMだけを、PM2の昇順リスト内の最初のL/2個のPM2と比較して、潜在的置換を判断する。換言すれば、その結果得られるアルゴリズムは、既存のPMの最も小さいL/2個(組A)、既存のPMの最も大きいL/2個(組B)、および最も小さいL/2個のPM2(組C)を別個に保持してもよい。次いで、その結果得られるアルゴリズムは、組Cをソートして、組Cが組Bをどこで置換してもよいかを識別する。

リストをソートするために必要な計算時間および計算資源は、リストのサイズと共に指数関数的に増大するので、サイズLおよびL/2の逐次ソートを遂行するステップは、サイズ2Lの単一のソートと比較して、性能を大きく改善する場合がある。さらに、これらの実施形態で得られる改善の量は、リストサイズLが増大するにつれ、増大する場合がある。

待ち時間の短いソート 先行する実施形態は、長さ2Lのリストを最適にソートするソートアルゴリズムについて記述している。換言すれば、先行する実施形態は、リスト内の各エントリをソートすることにより、最適な耐性を提供する。いくつかの実施形態では、最適以下のソート性能という代価を払って、ソート手順の待ち時間を低減することが望ましい場合がある。そのような場合、図10Aのフローチャートに示すように、待ち時間を低減するために、ソートアルゴリズムに以下の調整のうち1つまたは複数の組合せを行ってもよい。

いくつかの実施形態では、計算時間および計算資源は、パスの小部分L−εに対してだけに上述のソーティングアルゴリズムを遂行することにより(ステップ1014)低減される場合があり、ここで、εはパラメータである。εの役割は、図10Bに示されている。これらの実施形態では、復号性能と待ち時間/スループットの間のトレードオフを最適化するように、εを選択してもよい。換言すれば、εを増大させることにより、復号の精度をさらに低下させるという代価を払って、ソートのサイズが低減される。

いくつかの実施形態では、PMの最大値がPM2の最小値よりも大きい場合、PMの降順リスト内の最初のL/2−η個のPMを、PM2の昇順リスト内の最初のL/2−η個のPM2と比較して、潜在的置換を判断してもよく、ここで、ηは整数パラメータである(ステップ928および1022)。図10Bに、ηの役割について図式で示す。ηを増大させることにより、ソートの精度を低下させるという代価を払ってソートのサイズが低減されるという点で、ηは、εに匹敵する機能を果たす場合がある。

いくつかの実施形態では、凍結ビットのクラスタがヒットしなかった状況で、(サイズL/2の検索を使用して)さらによりよい性能を得る場合がある。いくつかの実施形態では、クラスタは、1からN×Rまでの、いくつかの凍結ビットであり、ここで、Rは、ポーラ符号のレートである。いくつかの実施形態では、凍結ビットに遭遇するたびに、パス指標を変える。したがって、ソートは、凍結ビットを処理したあとに(たとえば、次の情報ビット(すなわち、非凍結ビット)の前のクラスタの最後に、ステップ916〜920、および1010参照)だけ遂行される必要があってもよい。

凍結ビットに遭遇しなかった場合(ステップ910、914、および1008)、以下でさらに詳細に記述するアルゴリズムは、リストが次のフェーズのためにソートされたことを保証してもよい。この実例では、ソートおよび選択を、L/2個のソートを使用して遂行することができる(ステップ916〜920、および1010)。これは、先行するソート手順以来、凍結ビットを横断しなかった場合、PMおよびPM2は、先行するソート手順から変わらなかったことになるので、凍結ビットを横断しなかったとき、上記の技法でPMおよびPM2の初めのL個のソートを飛ばすことにより遂行されてもよい(ステップ912および922)。いくつかの実施形態では、これは、L/2個のソートをもたらし、計算時間および計算資源をさらに改善する。

いくつかの実施形態では、パスごとのPM2を、パスごとのPMの、ソートされた順序に基づきソートしてもよい(ステップ1016〜1018)。詳細には、いくつかの実施形態では、PMを、最初に降順でソートしてもよい(サイズLのソート)。次いで、第2のサイズLのソートの待ち時間を伴うことなく、PMソートの逆順でPM2を順序づけてもよい。各PM2は、現在遭遇した不良ビットに関する追加の対数尤度比を加えた、遭遇した凍結ビットごとの累積パス指標を備える。十分な数の凍結ビットに遭遇すると、不良ビットに関する単一の対数尤度比を追加することにより、PMに対してPM2の順序を変更する可能性が非常に低い場合がある(すなわち、単一のLLRは、多数の凍結ビットの累積LLRよりも大きな、パス間の相違を導入する可能性が低い場合がある)。その結果、いくつかの実施形態では、所定のしきい数の凍結ビットに遭遇すると、PMの逆順でPM2をソートすることが望ましい場合がある。他の実施形態では、PM2を、PMの逆順で常にソートしてもよい。これらの実施形態は、ソート耐性に限定的な影響しか及ぼさずに、計算待ち時間を著しく低減する場合がある。

図11は、いくつかの実施形態による代表的マージアルゴリズムを示す流れ図である。図9に記述した最適ソートアルゴリズムの完了後に、マージアルゴリズムを使用してもよい。ステップ1102で、mergカウンタをゼロに設定する。ステップ1106で、1〜repまでのiPathの各値についてforループを開始し、ここで、repは、図9のソートアルゴリズムでPM値と比較されたPM2値の数を表す。マージアルゴリズムは、ソートされたリスト内の各エントリの始めから終わりまで続行し、リストを並べ替えて、リストを厳密に降順に戻す。図10Aの待ち時間の短いソートの場合について、類似の処理をステップ1024に示す。

動的リストサイズおよび共用変数 いくつかの実施形態では、ポーラ符号は、フェーズ間でリストサイズを動的に調節するように構成される。たとえば、復号器は、最大L個のパスの並列処理をサポートしてもよいとしても、L個未満のパスを実行するように動的に判断してもよい。これにより、以下で論じるように、電力消費が低減される場合がある、および/または性能が改善される場合がある。

さまざまな状況で、パスは、比較的少数のパスを使用して入力ビットベクトルの復号を終了することができるように、急速に収束する場合がある。これにより、未使用のPEを低電力状態にする、または未使用のPEを、他のコードブロックの復号に関連するタスクなどの、他のタスクに割り当てることができるようにすることにより、電力消費が低減される場合がある。いくつかの実施形態では、復号器は、信号対雑音比(signal to noise ratio、SNR)、ソーティング結果、および/または通信路LLRのうち1つまたは複数に基づき、リストサイズを動的に調節するように構成される。他の実施形態では、リストサイズを動的に調節する判定は、本明細書で論じるパラメータに加えて、および/またはそれらの代わりに、さまざまな該当するパラメータのいずれかに基づいてもよい。開示する技法を、移動体機器、および基地局で使用してもよい。リストサイズを動的に変更することは、異なるユーザのために通信路条件が広範囲に変わる場合がある基地局で、特に効果的な場合がある。したがって、基地局は、受信データが同時に復号されている、異なるユーザのために、異なるリストサイズを使用するように構成されてもよい。

いくつかの実施形態では、復号器は、SNRに基づき、リストサイズを動的に増大する、または低減するように構成される。たとえば、復号器は、SNRが特定のしきい値を超えたとき、リストサイズを低減してもよい。SNRが大きいとき、より少数の並列パスは、復号性能に悪影響を及ぼすことなく電力消費を低減する場合がある。

いくつかの実施形態では、復号器は、ソーティング結果に基づき、リストサイズを動的に増大する、または低減するように構成される。存続可能なパスは収束し始めるので、そのパスは、複数のフェーズの間、高いランキングを維持する場合がある。この状況を検出したことに基づき、復号器は、他のパスを除去することにより、リストサイズを低減してもよい。たとえば、1組の、T個の最上位ランクのパスの中にM個のパスが残ったNフェーズ後(ここで、MおよびTは整数であり、TはM以上である)、復号器は、リストサイズを低減して、最上位ランクのパスだけを保持してもよい。

いくつかの実施形態では、復号器は、(たとえば、デマッパ(de−mapper)からの入力として)通信路LLRに基づきリストサイズを判断するように構成される。これには、絶対値がしきい値未満である通信路LLR値の数Nを計算するステップが伴う場合がある。この場合、リストサイズLは、たとえば、N/block_sizeを使用して、Nに基づき決定されてもよい。いくつかの実施形態では、次いで、リストは、パス指標の収束(または収束の欠如)に基づき、縮小させられる、または拡張される。

上記で論じた技法をさらに組み合わせてもよく、複数のパラメータに基づきリストサイズを決定してもよい。リストサイズを低減することにより、性能が著しい低下することなく、電力消費が低減される場合がある。

さらに、いくつかの実施形態では、小さなリストサイズは、さらなる最適化を可能にして、電力消費および復号時間を低減する場合がある。図14は、いくつかの実施形態による、マルチ・プロセッサ・アレイ内の代表的復号器部分を示す構成図である。各「パスプロセッサ」は、図示する実施形態では、たとえば、複数のPEおよびDMRを含んでもよい1つのパスを処理するように構成された回路を含む。図示する実施形態では、共用メモリA〜Eは、パスプロセッサ0〜3のうち任意の2つ以上のプロセッサ間で共用変数に迅速にアクセスすることができるようにする。いくつかの実施形態では、共用メモリは、DMRに含まれてもよい。いくつかの実施形態では、各パスプロセッサは、結果を内部メモリに書き込むのと同時に、各パスプロセッサのポーラ符号フェーズの結果を共用メモリに書き込むように構成される。いくつかの実施形態では、このプリエンプティブな書込みは、フェーズ間のデータ転送に伴う待ち時間を排除する場合があり、新しいパス割当が行われるとすぐに、updateLLRが入力のために共用メモリを使用して、ただちに続行することができるようする場合がある。いくつかの実施形態では、データ転送待ち時間を排除することにより、復号時間全体が低減される場合がある。これらの技法は、先行するインプレースのupdateLLR計算の最後にメッセージを介してデータを送信するのとは対照的に、プリエンプティブな書込みが次のupdateLLRインスタンスへの入力として事前に行われることを除き、上記で論じた遅延更新技法にいくらか類似する。

一般的に言って、1つまたは複数の共用メモリがそれらのプロセッサ間で潜在的に共用されるだけの、共用されるデータのための十分なバッファ空間で、各対のパスプロセッサがアクセス可能になるようにリストサイズが低減されるとき、ルーティングデータの代わりに、フェーズ間の伝送すべてのために、共用変数を使用してもよい。これは、リストサイズを動的に調節することの別の利点を例証する。

いくつかの実施形態では、選択的更新技法を使用して、各共用メモリで必要とされるバッファのサイズを低減する。

共用変数を使用するときにデータルーティングを排除することができる、パスの最大数は、共用メモリ資源の可用性に依存する場合がある。たとえば、共用メモリAが排除された場合、パスプロセッサ0および3、ならびに1および2は、両方がアクセスすることができる共用メモリを有しないので、図示する実施形態では、パスプロセッサのこの数は、2である。しかしながら、共用メモリAを含む、図示する実施形態では、パスプロセッサのこの数は4である。これは、図示する実施形態で、共用メモリAが、すべての組のパスプロセッサ間の共用変数のために十分なバッファ空間を含むと仮定すると、共用メモリB〜Eが排除された場合でさえあてはまる。他の実施形態では、さらにより大きなグループのパスプロセッサは、フェーズ間でデータを転送するために共用変数を排他的に使用するに足るように相互接続されてもよい。

HyperXアーキテクチャは、メッセージパッシング、DMA転送などのような他のデータルーティング技法と比較して、共用変数をいつ使用すべきかを動的に決定するための、さまざまなツールを提供する場合がある。これらのツールを使用して、パスプロセッサ間で(各復号フェーズ間で動的にセットアップされてもよい)通信機構を割り当ててもよい。共用変数は、MPA内のさまざまな位置に割り振られてもよい。いくつかの実施形態では、共用変数を使用して、関係がある両方のプロセッサに物理的に隣接する共用メモリ内に共用変数が配置されていないときでさえ、ビット推定情報をプリエンプティブに書き込んでもよい。これは、あとで書込みを待つのを回避する場合があるので、プリエンプティブではない書込みに対して依然として効率的である場合がある。関係があるパスプロセッサがただちにアクセス可能な共用メモリ内に共用変数が割り当てられる実施形態および状況では、データ転送待ち時間を効果的に排除する場合がある。

いくつかの実施形態では、いくつかの他のタイプのデータルーティングをさらに使用するときでさえ、共用変数を使用してもよい。たとえば、パスプロセッサ0およびパスプロセッサ2がデータを交換する必要がある場合、共用変数を使用してこれを遂行することができるが、その一方で、パスプロセッサ0はまた、他のルーティング技法を使用して、(図示しない、パスプロセッサ0がメモリを共用しない)他のパスプロセッサとデータを交換するように構成されてもよい。したがって、いくつかの実施形態では、ルータは、各復号フェーズで、データ転送のために共用変数または他のルーティング技法を使用すべきかどうかを動的に判断するように構成される。上記で論じたように、いくつかの実施形態では、共用メモリ内に配置されていない共用変数もまた使用してもよい。

いくつかの実施形態では、復号器は、階層方式でデータ転送をスケジュールするように構成される。たとえば、N個(たとえば、2、4など)のプロセッサのグループごとに、共用メモリへのプリエンプティブな書込みを遂行してもよい。共用メモリは、パスプロセッサの各グループの中心にあってもよい。パス割当に基づき、この場合、グループ間で他のタイプのデータルーティングをスケジュールする前に、各グループ内で共用変数を使用してデータを転送してもよい。

いくつかの実施形態では、共用変数を使用して互いにすべて通信することができるプロセッサの各グループを、セルとして復号器に割り当ててもよい。装置が複数の復号器を実行している実施形態では、1つの復号器のリストサイズが低減されたとき、1つの復号器は、セルを解放してもよく、次いで、そのセルは、別の復号器に割り当てられてもよい。さまざまな実施形態では、セルの細分性で処理資源を復号器に割り当てることにより、処理資源を復号器に十分に割り当てることができるようになる場合があり、これにより、電力消費が著しく低減される場合がある。 ***

本開示の実施形態は、さまざまな形態のいずれかで実現されてよい。たとえば、いくつかの実施形態では、本発明は、コンピュータ実装方法、コンピュータ可読記憶媒体、またはコンピュータシステムとして実現されてもよい。他の実施形態では、本発明は、ASICなどの1つまたは複数のカスタム設計ハードウェア機器を使用して実現されてよい。他の実施形態では、本発明は、FPGAなどの1つまたは複数のプログラム可能ハードウェア素子を使用して実現されてよい。

いくつかの実施形態では、非一時的コンピュータ可読媒体は、プログラム命令および/またはデータを記憶するように構成されてもよく、この場合、プログラム命令は、コンピュータシステムにより実行された場合、方法を、たとえば、本明細書に記述する方法の実施形態のいずれか、または本明細書に記述する方法の実施形態の任意の組合せ、または本明細書に記述する方法の実施形態のいずれかからなる任意のサブセット、またはそのようなサブセットの任意の組合せを、コンピュータシステムに遂行させる。

いくつかの実施形態では、コンピューティング機器は、プロセッサ(または1組のプロセッサ)および記憶媒体を含むように構成されてもよく、この場合、記憶媒体は、プログラム命令を記憶し、この場合、プロセッサは、記憶媒体からプログラム命令を読み出し、実行するように構成され、この場合、プログラム命令は、本明細書に記述するさまざまな方法の実施形態のいずれか(または本明細書に記述する方法の実施形態の任意の組合せ、または本明細書に記述する方法の実施形態のいずれかからなる任意のサブセット、またはそのようなサブセットの任意の組合せ)を実現するように実行可能である。機器は、さまざまな形態のいずれかで実現されてもよい。

具体的な実施形態について上記に記述したが、これらの実施形態は、特定の特徴に関して、単一の実施形態だけについて記述している場合でさえ、本開示の範囲を限定することを意図するものではない。本開示で提供する特徴の例は、特に指定のない限り、制限的ではなく、例示的であることが意図される。上記の記述は、本開示の恩恵を受ける当業者に明らかなように、そのような代替形態、修正形態、および均等物を包含することが意図される。

本開示の範囲は、(明示的に、または暗示的に)本明細書で開示する任意の特徴もしくは特徴の組合せ、またはそれらの任意の一般化を、それが本明細書で対処する問題のいずれか、もしくはすべてを軽減してもしなくても含む。したがって、本出願(またはその優先権を主張する出願)の手続き中に、任意のそのような特徴の組合せに対して、新しい請求項を考案してもよい。詳細には、添付の特許請求の範囲を参照すると、従属クレームからの特徴は、独立クレームの特徴と組み合わせられてもよく、それぞれの独立クレームからの特徴は、添付の特許請求の範囲に列挙された具体的組合せだけではなく、任意の適切な手法で組み合わせられてもよい。

他の実施形態は、以下の段落に従って実装されてもよい。

通信路上で受信した、符号化されたデータを復号する方法であって、前記復号するステップは、 符号化されたデータを通信路から受信するステップと、 符号化されたデータを、 復号動作を遂行し、複数のビットパスに関するビット統計情報を生成するステップであって、各ビットパスは、符号化された通信データの一部の潜在的復号であるステップ、 ビットパスのリストの新しいサブセットを決定するために、ビット統計情報に基づき、処理要素により生成された複数のビットパスのリストをソートするステップ を繰り返すことにより復号するステップと を備え、前記ソートするステップは、 可能性の高い追加ビット値に対応する複数のビットパスの第1のリスト、および可能性の低い追加ビット値に対応する複数のビットパスの第2のリストを、異なる順序でソートするステップと、 第1の新しいビットパスのソートされたリストの少なくとも一部と、第2の新しいビットパスのソートされたリストの少なくとも一部を比較するステップと、 比較するステップに応答して、第1の新しいビットパスのソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスのソートされたリストからの1つまたは複数のビットパスを置換することによりビットパスのリストの新しいサブセットを作成するステップと を備える方法。

通信路上で受信した、符号化されたデータを復号する方法であって、前記復号するステップは、 符号化されたデータを通信路から受信するステップと、 符号化されたデータを、 復号動作を遂行し、複数のビットパスに関するビット統計情報を生成するステップであって、各ビットパスは、符号化された通信データの一部の潜在的復号であるステップ、 捨てるべきビットパスのリストのサブセットを決定するために、ビット統計情報に基づき、処理要素により生成された複数のビットパスのリストをソートするステップ を繰り返すことにより復号するステップと を備え、 前記ソートするステップは、 ビットパスのリスト内の対応するビットパスごとに、 関連する第1のパス指標と共に第1の新しいビットパスを作成するステップであって、第1の新しいビットパスは、追加ビットとして可能性の高い値が追加された、対応するビットパスを備えるステップと、 関連する第2のパス指標と共に第2の新しいビットパスを作成するステップであって、第2の新しいビットパスは、追加ビットとして可能性の低い値が追加された、対応するビットパスを備え、第2のパス指標は、第1のパス指標よりも低い尤度の正確な復号を現すステップと、 第1の新しいビットパスのリストを第1の順序でソートするステップと、 第2の新しいビットパスのリストを第2の異なる順序でソートするステップと、 第1の新しいビットパスのソートされたリストの少なくとも一部と、第2の新しいビットパスのソートされたリストの少なくとも一部を比較するステップと、 比較するステップに応答して、第1の新しいビットパスのソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスのソートされたリストからの1つまたは複数のビットパスを置換するステップと を備える方法。

通信路上で受信した、符号化されたデータを復号する方法であって、前記復号するステップは、 符号化されたデータを通信路から受信するステップと、 符号化されたデータを、 復号動作を遂行し、複数のビットパスに関するビット統計情報を生成するステップであって、各ビットパスは、符号化された通信データの一部の潜在的復号であるステップ、 捨てるべきビットパスのリストのサブセットを決定するために、ビット統計情報に基づき、処理要素により生成された複数のビットパスのリストをソートするステップ を繰り返すことにより復号するステップと を備え、前記ソートするステップは、 ビットパスのリスト内の対応するビットパスごとに、 対応するビットパスに追加される追加ビットに関連するビット統計情報を計算するステップであって、ビット統計情報は追加ビットに関して可能性の高い値を示すステップと、 可能性の高い値が追加ビットとして追加された対応するビットパスを備える、第1の新しいビットパスを作成するステップと、 可能性の低い値が追加ビットとして追加された対応するビットパスを備える、第2の新しいビットパスを作成するステップと、 対応するビットパスに関連するパス指標に等しい、第1の新しいビットパスに関するパス指標を設定するステップと、 対応するビットパスに関連するパス指標に等しい、第2の新しいビットパスに関するパス指標に加えて、対応するビット統計情報の絶対値を設定するステップと、 第1の新しいビットパスのリストを降順でソートするステップと、 第2の新しいビットパスのリストを昇順でソートするステップと、 第1の新しいビットパスおよび第2の新しいビットパスのパス指標に基づき、第1の新しいビットパスのソートされたリストの少なくとも一部と、第2の新しいビットパスのソートされたリストの少なくとも一部を比較するステップと、 比較するステップに応答して、第1の新しいビットパスのソートされたリスト内の1つまたは複数のビットパスと、第2の新しいビットパスのソートされたリストからの1つまたは複数のビットパスを置換するステップと を備える方法。

受信した、符号化された通信データに対して逐次除去リスト(SCL)復号を遂行するシステムであって、 複数の処理要素と、 複数の処理要素の隣接する処理要素に結合した複数のメモリと を備え、 処理要素の各々により、 符号化された通信データの一部の潜在的復号であるビットパスをメモリから受信し、 ビットパスに対して復号動作を遂行し、 復号動作に少なくとも一部は基づき、ビットパスに関するビット統計情報を生成する ことにより、受信した、符号化された通信データを復号するように構成され、 各処理要素で受信したビットパスは、ビットパスの第1のリストを集合的に備え、 各処理要素で生成されたビット統計情報は、第1のビット統計情報を集合的に備え、 システムは、 第1のビット統計情報に基づき、ビットパスの第1のリストをソートし、 パスの第1のリストのソーティングに基づき、ビットパスの第1のリストのサブセットを捨てるべきであると判断し、 捨てるべきではないと判断されたビットパスに関連する対応する処理要素それぞれにより、 2つの長くなったビットパスを生成し、 対応する処理要素に関連する第1のメモリから、捨てるべきであると判断された第2のビットパスに関連する処理要素に関連する第2のメモリに、長くなったビットパスの一方、および対応する処理要素により生成されたビット統計情報をコピーする ようにさらに構成されるシステム。

QQ群二维码
意见反馈