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

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

▶ ゼットティーイー マイクロエレクトロニクス テクノロジー カンパニー リミテッドの特許一覧

特許7495933ソート方法、装置、電子デバイス及びコンピュータプログラム
<>
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図1
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図2
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図3
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図4
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図5
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図6
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図7
  • 特許-ソート方法、装置、電子デバイス及びコンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-28
(45)【発行日】2024-06-05
(54)【発明の名称】ソート方法、装置、電子デバイス及びコンピュータプログラム
(51)【国際特許分類】
   H03M 13/13 20060101AFI20240529BHJP
【FI】
H03M13/13
【請求項の数】 13
(21)【出願番号】P 2021531976
(86)(22)【出願日】2019-12-05
(65)【公表番号】
(43)【公表日】2022-01-26
(86)【国際出願番号】 CN2019123423
(87)【国際公開番号】W WO2020114469
(87)【国際公開日】2020-06-11
【審査請求日】2022-12-01
(31)【優先権主張番号】201811483150.7
(32)【優先日】2018-12-05
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】516010548
【氏名又は名称】セインチップス テクノロジー カンパニーリミテッド
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】シー,グアンミン
【審査官】川口 貴裕
(56)【参考文献】
【文献】特表2018-535608(JP,A)
【文献】特開昭62-055725(JP,A)
【文献】特開2008-199308(JP,A)
【文献】国際公開第2017/178056(WO,A1)
【文献】暮町 尚俊ほか,演算の対象となるデータに注目したアルゴリズム実行中の消費電力削減手法,FIT2002 情報科学技術フォーラム 一般講演論文集 第1分冊,2002年09月13日,pp.61~62
【文献】Jun Lin and Zhiyuan Yan,An Efficient List Decoder Architecture for Polar Codes,IEEE Transactions on Very Large Scale Integration (VLSI) Systems,2015年,Vol. 23, No. 11,pp. 2508-2518
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/00 - 99/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ソート方法であって、
サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削除指示及び切り捨てビット幅Wを含む構成情報を取得するステップと、
前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた後の各データの切り捨てられた下位情報をメモリに記憶するステップと、
前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録するステップと、
前記抽出されたデータに対して配列処理を行い、配列処理によって得られたデータの数を決定するステップと、
前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定するステップと、を含
前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行う前記ステップは、
抽出ルールと各前記サバイバーパスのパス削除指示に従って、下位情報が切り捨てられた後の前記複数のデータにおけるデータを対応して抽出するステップであって、前記抽出ルールとはすべての情報ビットに対応するデータを保持することである、ステップを含む、ソート方法。
【請求項2】
前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定する前記ステップは、
前記配列処理によって得られたデータの数がLよりも大きい場合、予め設定されたアレイを使用し、前記配列処理によって得られたデータに対してバイトニックソートし、L個のデータを抽出するステップと、
前記配列処理によって得られたデータの数がL以下である場合、前記配列処理によって得られたデータをL個のデータに補完するステップと、を含む、請求項1に記載の方法。
【請求項3】
L個のデータを抽出する前記ステップは、
前記配列処理によって得られたデータから最小のL個のデータを選択し、前記L個のデータのそれぞれに対応するビット順序を決定するステップを含む、請求項2に記載の方法。
【請求項4】
前記配列処理によって得られたデータをL個のデータに補完する前記ステップは、
補充データの数及び値を決定するステップであって、各前記補充データの値が現在のデータビット幅が表せる最大値である、ステップを含む、請求項2に記載の方法。
【請求項5】
L個の出力対象のデータを決定する前記ステップの後、
前記配列処理によって得られたデータの数がLよりも大きい場合、抽出されたL個のデータのビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を取り出し、前記抽出されたL個のデータと取り出された下位情報を元のデータにスプライスするステップと、
前記配列処理によって得られたデータの数がL以下である場合、前記配列処理によって得られたデータに対応するビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を抽出し、前記配列処理によって得られたデータと抽出された下位情報を元のデータにスプライスするステップと、を含む、請求項2、3又は4に記載の方法。
【請求項6】
マザーコード長N0はN0=2K>Mによって計算され、ただし、Mはソート対象データの数であり、KはN0=2K>Mを満たす最小の整数である、請求項1に記載の方法。
【請求項7】
ソート装置であって、
サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削除指示及び切り捨てビット幅Wを含む構成情報を取得するように設けられる取得モジュールと、
前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた後の各データの切り捨てられた下位情報をメモリに記憶するように設けられる切り捨てモジュールと、
前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録し、前記抽出されたデータに対して配列処理を行い、配列処理によって得られたデータの数を決定するように設けられる抽出モジュールと、
前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定するように設けられる出力制御モジュールと、を備え、
前記抽出モジュールは、
抽出ルールと各前記サバイバーパスのパス削除指示に従って、下位情報が切り捨てられた後の前記複数のデータにおけるデータを対応して抽出するように設けられ、前記抽出ルールとはすべての情報ビットに対応するデータを保持することである、ソート装置。
【請求項8】
前記出力制御モジュールは、
前記配列処理によって得られたデータの数がLよりも大きい場合、予め設定されたアレイを使用し、前記抽出モジュールが配列処理によって得られたデータに対してバイトニックソートし、L個のデータを抽出するように設けられるソートモジュールと、
前記抽出モジュールが配列処理によって得られたデータの数がL以下である場合、前記配列処理によって得られたデータをL個のデータに補完するように設けられる補完モジュールと、を含む、請求項に記載の装置。
【請求項9】
前記ソートモジュールは、
前記配列処理によって得られたデータから最小のL個のデータを選択し、前記L個のデータのそれぞれに対応するビット順序を決定するように設けられる、請求項に記載の装置。
【請求項10】
前記補完モジュールは、
補充データの数及び値を決定するように設けられ、各前記補充データの値が現在のデータビット幅が表せる最大値である、請求項に記載の装置。
【請求項11】
ビット補充モジュールをさらに備え、前記ビット補充モジュールは、
前記配列処理によって得られたデータの数がLよりも大きい場合、抽出されたL個のデータのビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を取り出し、前記抽出されたL個のデータと取り出された下位情報を元のデータにスプライスし、
前記配列処理によって得られたデータの数がL以下である場合、前記配列処理によって得られたデータに対応するビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を抽出し、前記配列処理によって得られたデータと抽出された下位情報を元のデータにスプライスするように設けられる、請求項又は1に記載の装置。
【請求項12】
電子デバイスであって、
少なくとも1つのプロセッサと、
少なくとも1つのコンピュータプログラムを記憶するように設けられるメモリと、を備え、
前記少なくとも1つのコンピュータプログラムが前記少なくとも1つのプロセッサに実行されると、前記少なくとも1つのプロセッサが請求項1~のいずれか1項に記載のソート方法を実行させる、電子デバイス。
【請求項13】
コンピュータに請求項1~のいずれか1項に記載のソート方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2018年12月5日に中国特許庁に提出された、出願番号が201811483150.7である中国特許出願に対する優先権を主張し、そのすべての内容が参照により本出願に組み込まれる。
【0002】
本開示は、通信分野に関し、例えばソート方法、装置、電子デバイス及びコンピュータプログラムに関する。
【背景技術】
【0003】
ポーラーコード(polar code)を復号する場合、通常、シリアルキャンユニットリスト(SCL:Successive Cancellation List)アルゴリズムが使用され、当該アルゴリズムは、復号するときに最大L個のパスを同時にメンテナンスし、各パスを測定して、復号性能を向上させる。ここで、サバイバーパスの数Lが2の整数乗でなければならず、かつLを大きくするとデコーダーの性能を向上させることができ、これと同時に、復号の複雑さが増すことも意味している。
【0004】
ポーラーコードを復号する前に、まず、デコードツリーに従って復号順序を決定する必要がある。復号プロセスにおいて、デコーダーは、デコードツリー内の現在のノードの位置に応じて対数尤度比(LLR:Likelihood Rate)とパスメトリック値(PM:Path Merit)を対応して更新し、情報ビットの場合、現在の情報ビットに対応する復号パスを2つのパスに分割し、現在の拡張されているパスの総数がLよりも大きい場合、ソートアルゴリズムを起動し、PM値の最も小さいL個のパスを選択する。
【0005】
ルートノード以外の2N0-2(N0はマザーコード長)個のノードが反復を完了した後、復号プロセスを終了し、一定のルールに従って復号結果を出力する。
【0006】
各復号プロセスでは、拡張されたパスの数がサバイバーパスの数Lよりも大きい場合、ソートによってPM値の最も小さいL個のサバイバーパスを選択する必要がある。ソート性能は、復号性能に直接影響する。現在のSCLデコーダー内のソート演算遅延が長く、ハードウェアリソースが大きく占有されているため、ソート性能が低く、消費電力が大きく、柔軟性が悪い。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の実施例は、関連技術におけるポーラーコード復号プロセスに存在する復号遅延が長く、ハードウェアリソース消費が大きく、柔軟性が悪いという問題を克服することができるソート方法及び装置、電子デバイス及び媒体を提供する。
【課題を解決するための手段】
【0008】
本発明の実施例は、
サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削減指示及び切り捨てビット幅Wを含む構成情報を取得するステップと、
前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた各データの切り捨てられた下位情報をメモリに記憶するステップと、
前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録するステップと、
前記抽出されたデータに対して緊密な配列処理を行い、緊密な配列処理によって得られたデータの数を決定するステップと、
前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記緊密な配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定するステップと、を含む、ソート方法を提供する。
【0009】
本発明の実施例は、
サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削減指示及び切り捨てビット幅Wを含む構成情報を取得するように設けられる取得モジュールと、
前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた各データの切り捨てられた下位情報をメモリに記憶するように設けられる切り捨てモジュールと、
前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録し、前記抽出されたデータに対して緊密な配列処理を行い、緊密な配列処理によって得られたデータの数を決定するように設けられる抽出モジュールと、
前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記緊密な配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定するように設けられる出力制御モジュールと、を備える、ソート装置を提供する。
【0010】
本発明の実施例は、少なくとも1つのプロセッサと、少なくとも1のコンピュータプログラムを記憶するように設けられ、前記少なくとも1つのコンピュータプログラムが前記少なくとも1つのプロセッサに実行されると、前記少なくとも1つのプロセッサが本発明の実施例で記載されるソート方法を実現するメモリと、を備える、電子デバイスをさらに提供する。
【0011】
本発明の実施例は、本発明の実施例で記載されるソート方法を実行するためのコンピュータ実行可能命令を記憶する、コンピュータ可読記憶媒体をさらに提供する。
【発明の効果】
【0012】
本発明の実施例によって提供される技術的解決策により、関連技術におけるポーラーコード復号プロセスに存在する復号遅延が長く、ハードウェアリソース消費が大きく、柔軟性が悪いなどの問題を克服することができる。
【図面の簡単な説明】
【0013】
図1】本発明の実施例に係るソート方法のフローチャートである。
図2】本発明の実施例に係る従来のバイトニックソート原理の概略図である。
図3】本発明の実施例に係るbmN基本ユニットの概略図である。
図4】本発明の実施例に係る64入力及び出力の完全にソートされたbmアレイの概略図である。
図5】本発明の実施例に係るソート装置の構成構造概略図である。
図6】本発明の実施例に係るソートシステムのシステムアーキテクチャ概略図である。
図7】本発明の実施例に係るN0=512、L=32をサポートする、ソートされたbmアレイの概略図である。
図8】本発明の実施例に係る電子デバイスの構造概略図である。
【発明を実施するための形態】
【0014】
本発明の実施例の特徴と技術的内容をより詳しく理解することができるために、以下に図面と組み合わせて本発明の実施例の実現を詳しく説明し、添付の図面は、例示のみを目的としており、本発明の実施例を限定するために使用されない。
実施例1
【0015】
図1は本発明の実施例に係るポーラーコード復号プロセスに応用されるソート方法のフローチャートである。図1に示すように、前記方法は以下のステップを含む:
【0016】
ステップ101において、サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削除指示及び切り捨てビット幅Wを含む構成情報を取得する。
【0017】
本実施例では、前記構成情報は、ポーラーコードの復号ニーズに応じて予め設定されてもよい。
【0018】
ステップ102において、前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた各データの切り捨てられた下位情報をメモリに記憶する。
【0019】
つまり、入力されたデータごとに、構成情報の切り捨てビット幅Wに基づいて当該データの下位ビット(下位情報)を切り捨て、下位ビットデータをメモリに記憶する。
【0020】
ここで、切り捨てビット幅Wに基づき、入力されたデータに対して切り捨て処理を行い、その切り捨て方式は、
入力されたデータがa[N:0]であると仮定すると、切り捨てから出力されたデータがa[N:W]であり、切り捨てられたデータa[W-1:0]をメモリに記憶することである。
【0021】
このようにして、切り捨て処理により得られた上位情報はステップ103の入力データとして使用される。
【0022】
ステップ103において、前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録する。
【0023】
いくつかの実施形態では、前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行う前記ステップは、
抽出ルールと各前記サバイバーパスのパス削除指示に従って、下位情報が切り捨てられた前記複数のデータにおけるデータを対応して抽出するステップを含むことができ、前記抽出ルールとはすべての情報ビットに対応するデータを保持することである。
【0024】
例えば、現在、2つのサバイバーパスがあると、抽出ルールは、すべての情報ビットに対応するデータを保持することである。1番目の第1のサバイバーパスから抽出される前のデータのフォーマットは、{info0、null、info1、null、info2、null、info3、null}であり、ここでのパス削除指示は、info0~info3が情報ビットに対応するデータであり、nullが非情報ビットに対応するデータであり、抽出後のデータが{info0、info1、info2、info3}に配列されることを示している。
【0025】
2番目のサバイバーパスから抽出される前のデータのフォーマットは、{info6、null、info7、null、info8、null、info9、null}であり、抽出後のデータは、{info6、info7、info8、info9}に配列されるである。そこで、2つのサバイバーパスから抽出されたデータに対して緊密な配列処理をすると、{info0、info1、info2、info3、info6、info7、info8、info9}が得られる。
【0026】
一実施形態では、まず、ステップ103で受信されたすべての入力データに番号を昇順で付け、前記番号が各データのビット順序を記録するために使用される。構成情報におけるパス削除指示に従ってデータを抽出し、抽出されたデータのビット順序を記録し、バイトニックソートbmNアレイ又は出力制御モジュールなどの後続の処理モジュールに送信する。4b-SCLを例とすると、各サバイバーパスは、一度に4ビットで復号し、最大16つのパスが拡張され、これらの4ビットのどのビットを拡張する必要があるかを示す必要がある。
【0027】
パス削除指示のフォーマットは、{info_flg0、info_flg1、info_flg2、info_flg3}であり、info_flg0とinfo_flg2が1であると仮定すると、これらの2ビットに対応するパスを拡張する必要があることを示し、即ちこれらの2ビットは、値0及び1を取ることができ、info_flg1とinfo_flg2が0であると、これらの2つのビットに対応するパスが拡張されていないことを示し、即ちこれらの2つのビットは値0のみを取ることができ、保持されているデータパスの番号は4’b0000、4’b0010、4’b1000、4’b1010であり、即ち0番目、2番目、8番目、10番目のパスに対応するデータを抽出する。
【0028】
ステップ104において、前記抽出されたデータに対して緊密な配列処理を行い、緊密な配列処理によって得られたデータの数を決定する。
【0029】
このようにして、これは、L個の出力対象のデータを決定するための方式を、緊密な配列処理によって得られたデータの数によって選択するというステップ105に便利である。
【0030】
なお、抽出中に各データのビット順序を同時に記録する。例えば、{info0、null、info1、null、info2、null、info3、null}の場合、info0に対応するビット順序が0で、1番目のnullに対応するビット順序が1で、info1に対応するビット順序が2で、2番目のnullに対応するビット順序が3で、info2に対応するビット順序が4で、3番目のnullに対応するビット順序が5で、info3に対応するビット順序が6であり、4番目のnullに対応するビット順序が7である。抽出後のデータは、「info0、info1、info2、info3}に配列され、それらに対応するビット順序は{0、2、4、6}に記録される。
【0031】
ステップ105において、前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び緊密な配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定する。
【0032】
いくつかの実施形態では、前記サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び緊密な配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定する前記ステップは、
緊密な配列処理によって得られたデータの数がLよりも大きい場合、予め設定されたアレイを使用し、緊密な配列処理によって得られたデータに対してバイトニックソートし、L個のデータを抽出するステップと、
緊密な配列処理によって得られたデータの数がL以下である場合、緊密な配列処理によって得られたデータをL個のデータに補完するステップと、を含むことができる。
【0033】
ここで、前記予め設定されたアレイは、bmNアレイ(ソートの基本ユニット)である。
【0034】
一実施形態では、L個のデータを抽出する前記ステップは、
緊密な配列処理によって得られたデータから最小のL個のデータを選択し、前記L個のデータのそれぞれに対応するビット順序を決定するステップを含む。
【0035】
ここで、前記ビット順序は、ステップ103でデータを抽出するプロセスに番号を付けるときに示されるビット順序と一致する。
【0036】
本実施例では、任意のN0についてLを選択することをサポートし、N0の値は、32、64、128、256、512を含むがこれらに限定されない。Lの値は、8、16、32を含むがこれらに限定されない。
【0037】
このようにして、サバイバーパスの数L、マザーコード長N0及び有効データの数に基づいてbmNアレイからL個のデータを抽出する。ここで、有効データの数は、緊密な配列処理によって得られたデータの数として理解されてもよい。
【0038】
図2は従来のバイトニックソートの基本原理を示す図である。bmNは、N個のデータを入力し、これらのN個のデータをソートして出力する順序付きシーケンスである。例えば、bm4は、4つのデータを入力してこれらの4つのデータをソートして出力する順序付きシーケンスである。
【0039】
本発明の実施例ではbm4は改善され、最適化されている。図2に示すように、bm16には、左から右に4つのレベルの比較がある。先頭の2つのレベルの比較は1つのレベルのbm4_bに組み合わせられてもよいが、ここでデータを、間隔をあけて抽出する必要があり、図2の黒い点で示されている位置のデータは、1つのbm4_bに送信された4つのデータであり、このように間隔をあけて抽出された4つのデータだけが1つのbm_bに組み合わせられてもよい。
【0040】
後の2つのレベルの比較は、1つの従来のbm4で実現されてもよく、bm4_aと記され、2対2で比較しながら判決する方式で完全なソートを完了する。上記の最適化により、元のbm16の4つのレベルのbm2の比較ロジックは、2レベルのbm4の比較ロジックに減らされてもよい。
【0041】
図2の黒い点で示されている4つのデータは規則的であり、それの前のレベルの入力がバイトーンシーケンスであるため、元のbm4_aの6つのコンパレータを4つのコンパレータに減らすことができるように、dat1>=dat0&dat2>=dat3が必要であり、また、bm4_bは、最大値がda1又はdat2だけであり、最小値がdat0又はdat3だけであり、次の最小値又は次の最大値がdat0又はdat3だけであり、このルールに従って、bm4_bは非常に少ないロジックだけで4つのデータの完全なソートを実現することができる。
【0042】
上記の原理に基づき、図3には最適化されたソート基本ユニットbmNが示される。
bm4がbm4_aで構成され、
bm8がbm4_bとbm2でカスケードされて構成され、
bm16がbm4_bとbm4_aでカスケードされて構成され、
bm32がbm4_b、bm2とbm4_aでカスケードされて構成され、
bm64がbm4_b、bm4_aとbm4_aでカスケードされて構成される。
【0043】
図4には64つのデータの完全なソートに必要なソートアレイが示されている。N0=32、L=8又は16の場合、bm32ユニットのレベル1のbm4_bアレイの出力データから最小の8つ又は16つのデータを抽出すると、ポーラーコード復号ニーズを満たすことができる。N0=64、L=16又は32の場合、bm64ユニットのレベル1のbm4_bアレイの出力データから最小の16つ又は32つのデータを抽出すると、ポーラーコード復号ニーズを満たすことができる。同じ原理に従って、bm64が2つのレベルのbm64、1つのレベルのbm2及び1つのレベルのbm4とカスケードされた後、N0=32、64、128、256、512についてLを選択するソート操作を1つのアレイで実現することができる。
【0044】
一実施形態では、緊密な配列処理によって得られたデータをL個のデータに補完する前記ステップは、
補充データの数及び値を決定するステップであって、各補充データの値が、現在のデータビット幅が表せる最大値である、ステップを含む。
【0045】
例えば、補充データの数がXであると決定された場合、このX個の補充データの値は一致している。
【0046】
このようにして、緊密な配列処理によって得られたデータの数がL-Xであると仮定すると、まず、緊密な配列処理によって得られたデータを補完させ、次にX個の補充データ及びこれらのX個の補充データの値を決定する。
【0047】
本発明の実施例では、L個の出力対象のデータを決定する前記ステップの後、
前記緊密な配列処理によって得られたデータの数がLよりも大きい場合、抽出されたL個のデータのビット順序情報に基づき、メモリから対応する切り捨てられた下位情報を取り出し、前記抽出されたL個のデータと取り出された下位情報を元のデータにスプライスするステップと、
前記緊密な配列処理によって得られたデータの数がL以下である場合、前記緊密な配列処理によって得られたデータに対応するビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を抽出し、前記緊密な配列処理によって得られたデータと抽出された下位情報を元のデータにスプライスするステップとをさらに含むことができる。
【0048】
このようにして、まずbmNアレイからL個のデータを抽出し、次に前記L個のデータを補完させることができる。
【0049】
例えば、データに対して緊密に配列及びソートするプロセスで記録されたビット順序情報を使用し、切り捨てられた下位情報をステップ102のメモリから抽出し、元のデータにスプライスして出力し、スプライス方式は、{a[N:W]、a[W-1:0]}であり、即ち出力データはa[N:0]である。
【0050】
本発明の実施例によって提供される技術的解決策は、関連技術と比較して、より少ないハードウェアリソースを使用してポーラーコード復号に必要なソート機能を完了することができ、かつ高速回路の設計を容易にする。マルチタップbmNアレイにより、様々なコード長のポーラーコードの復号及びソートニーズを1つの回路セットでサポートすることができる。
【0051】
実施例2
図5は本発明の実施例に係るソート装置の構成構造図である。図5に示すように、前記ソート装置は、取得モジュール10、切り捨てモジュール20、抽出モジュール30、出力制御モジュール40を備え、ここで、
前記取得モジュール10は、サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削除指示及び切り捨てビット幅Wを含む構成情報を取得するように設けられ、
前記切り捨てモジュール20は、前記切り捨てビット幅Wに基づき、入力された複数のデータのそれぞれに対して切り捨て処理を行い、切り捨て処理が行われた各データの切り捨てられた下位情報をメモリに記憶するように設けられ、
前記抽出モジュール30は、前記少なくとも1つのパス削除指示に従って、下位情報が切り捨てられた後の複数のデータに対してデータ抽出を行い、抽出されたデータのビット順序を記録し、前記抽出されたデータに対して緊密な配列処理を行い、緊密な配列処理によって得られたデータの数を決定するように設けられ、
前記出力制御モジュール40は、サバイバーパスの数L、前記マザーコード長N0、前記抽出されたデータ、前記抽出されたデータのビット順序及び前記緊密な配列処理によって得られたデータの数に基づき、L個の出力対象のデータを決定するように設けられる。
【0052】
1つの実施形態として、前記出力制御モジュール40は、
前記緊密な配列処理によって得られたデータの数がLよりも大きい場合、予め設定されたアレイを使用し、前記抽出モジュール30が緊密な配列処理によって得られたデータに対して、予め設定されたアレイによってバイトニックソートし、L個のデータを抽出するように設けられるソートモジュール50と、
前記抽出モジュール30が緊密な配列処理によって得られたデータの数がL以下である場合、緊密な配列処理によって得られたデータをL個のデータに補完するように設けられる補完モジュール60と、を含むことができる。
【0053】
いくつかの実施形態では、前記ソートモジュール50は、
前記緊密な配列処理によって得られたデータから最小のL個のデータを選択し、前記L個のデータのそれぞれに対応するビット順序を決定するように設けられる。
【0054】
いくつかの実施形態では、前記補完モジュール60は、
補充データの数及び値を決定するように設けられ、各補充データの値は、現在のデータビット幅が表せる最大値である。
【0055】
いくつかの実施形態では、前記装置は、ビット補充モジュール70をさらに含み、前記ビット補充モジュール70は、
緊密な配列処理によって得られたデータの数がLよりも大きい場合、抽出されたL個のデータのビット順序情報に基づき、メモリから対応する切り捨てられた下位情報を取り出し、前記抽出されたL個のデータと取り出された下位情報を元のデータにスプライスし、
前記緊密な配列処理によって得られたデータの数がL以下である場合、前記緊密な配列処理によって得られたデータに対応するビット順序情報に基づき、前記メモリから対応する切り捨てられた下位情報を抽出し、前記緊密な配列処理によって得られたデータと抽出された下位情報を元のデータにスプライスするように設けられる。
【0056】
いくつかの実施形態では、前記抽出モジュール30は、
抽出ルールと各サバイバーパスのパス削除指示に従って、下位情報が切り捨てられた前記複数のデータにおけるデータを対応して抽出するように設けられ、ここで、抽出ルールとはすべての情報ビットに対応するデータを保持するように設けられる。
【0057】
実際の応用において、前記取得モジュール10、切り捨てモジュール20、抽出モジュール30、出力制御モジュール40、ソートモジュール50、補完モジュール60とビット補充モジュール70は、いずれも前記ソート装置での中央処理ユニット(CPU:Central Processing Unit)、マイクロプロセッサ(MPU:Microprocessor Unit)、デジタル信号プロセッサ(DSP:Digital Signal Processor)又はフィールドプログラマブルゲートアレイ(FPGA:Field -Programmable Gate Array)で実現されてもよい。
【0058】
本実施で記載されるソート装置は、より少ないハードウェアリソースを使用してポーラーコード復号に必要なソート機能を完了することができ、かつ高速回路の設計を容易にする。マルチタップbmNアレイにより、様々な各コード長のポーラーコードの復号及びソートニーズを1つの回路セットでサポートすることができる。
【0059】
実施例3
図6はソートシステムのシステムアーキテクチャ概略図である。図6に示すように、当該アーキテクチャは、主に切り捨て、抽出、バイトニックソートbmNアレイ、出力制御及びビット補充などのいくつかの部分を含み、ここで、
【0060】
(1)切り捨て:
構成情報に基づき、入力されたデータの下位ビットを切り捨て、下位ビットデータをメモリに記憶し、切り捨てられたデータを抽出モジュールに出力する。例えば、入力されたデータがa[N:0]とすると仮定すると、切り捨てた後に出力されたデータがa[N:W]であり、切り捨てた後のデータa[W-1:0]をメモリに記憶する。
【0061】
上記切り捨て処理は、切り捨てモジュールによって実現されてもよい。
【0062】
(2)抽出:
まず、すべての入力されたデータに番号を昇順で付け、前記番号で各データのビット順序を記録し、次に、構成情報におけるパス削除指示に従ってデータを抽出し、抽出されたデータのビット順序を記録し、後のバイトニックソートbmNアレイ又は出力制御モジュールに送信する。4b-SCLを例とすると、各サバイバーパスは、一度に4ビットで復号し、最大16つのパスが拡張され、これらの4ビットのどのビットを拡張する必要があるかを示す必要がある。
【0063】
パス削除指示で示されるフォーマットは、{info_flg0、info_flg1、info_flg2、info_flg3}であり、info_flg0とinfo_flg2が1であると仮定すると、これらの2ビットに対応するパスを拡張する必要があることを示し、即ちこれらの2ビットは値0及び1を取ることができ、info_flg1とinfo_flg2が0であると、これらの2つのビットに対応するパスが拡張されていないことを示し、即ちこれらの2つのビットは値0のみを取ることができ、保持されているデータパスの番号が4’b0000、4’b0010、4’b1000、4’b1010であり、即ち0番目、2番目、8番目、10番目のパスに対応するデータを抽出する。
【0064】
上記抽出処理は、抽出モジュールによって実現されてもよい。
【0065】
(3)バイトニックソートbmNアレイ:
入力されたデータをソートし、最小のL個のデータ及び各データに対応するビット順序を選択する。任意のN0についてLを選択することをサポートし、N0の値は、32、64、128、256、512を含むがこれらに限定されない。Lの値は、8、16、32を含むがこれらに限定されない。
【0066】
図2に示すように、従来のバイトニックソートの基本原理を示す図である。bmNは、N個のデータを入力し、これらのN個のデータをソートして出力する順序付きシーケンスである。例えば、bm4は、4つのデータを入力してこれらの4つのデータをソートして出力する順序付きシーケンスである。
【0067】
本発明の実施例では、bm4は改善され、最適化されている。図2に示すように、bm16には、左から右に4つのレベルの比較がある。先頭の2つのレベルの比較は1つのレベルのbm4_bに組み合わせられてもよいが、ここでデータを、間隔をあけて抽出する必要があり、図2の黒い点で示されている位置のデータは、1つのbm4_bに送信された4つのデータであり、このように間隔をあけて抽出された4つのデータだけが1つのbm_bに組み合わせられてもよい。
【0068】
後の2つのレベルの比較は、1つの従来のbm4で実現されてもよく、bm4_aと記され、2対2で比較しながら判決する方式で完全なソートを完了する。上記の最適化により、元のbm16の4つのレベルのbm2の比較ロジックは、2レベルのbm4の比較ロジックに減らされてもよい。
【0069】
図2の黒い点で表されている4つのデータは規則的であり、それの前のレベルの入力がバイトーンシーケンスであるため、元のbm4_aの6つのコンパレータを4つのコンパレータに減らすことができるように、dat1>=dat0&dat2>=dat3が必要であり、また、bm4_bは、最大値がda1又はdat2であり、最小値がdat0又はdat3だけであり、次の最小値又は次の最大値がdat0又はdat3だけであり、このようなルールに従ってbm4_bは非常に少ないロジックだけで4つのデータの完全なソートを実現することができる。
【0070】
上記の原理に基づき、図3に最適化されたソート基本ユニットbmNが示される。
bm4がbm4_aで構成され、
bm8がbm4_bとbm2でカスケードされて構成され、
bm16がbm4_bとbm4_aでカスケードされて構成され、
bm32がbm4_b、bm2とbm4_aでカスケードされて構成され、
bm64がbm4_b、bm4_aとbm4_aでカスケードされて構成される。
【0071】
図4には64つのデータの完全なソートに必要なソートアレイが示されている。N0=32、L=8又は16の場合、bm32ユニットのレベル1のbm4_bアレイの出力データから最小の8つ又は16つのデータを抽出すると、ポーラーコード復号ニーズを満たすことができる。N0=64、L=16又は32の場合、bm64ユニットのレベル1のbm4_bアレイの出力データから最小の16つ又は32つのデータを抽出すると、ポーラーコード復号ニーズを満たすことができる。同じ原理に従って、bm64が2つのレベルのbm64、1つのレベルのbm2及び1つのレベルのbm4とカスケードされた後、N0=32、64、128、256、512についてLを選択するソート操作を1つのアレイで実現することができる。
【0072】
上記バイトーンソートbmNアレイの処理は、ソートモジュールによって実現されてもよい。
【0073】
(4)出力制御:
構成情報のLとN0、及び抽出モジュールによって入力された制御情報に基づき、バイトーンソートbmNアレイによって出力されたデータ又は抽出モジュールによって出力されたデータからL個のデータを選択して出力する。
【0074】
抽出モジュールによって入力された制御情報は、抽出されたデータ及びこれらのデータに対応するビット順序、抽出モジュールが緊密な配列処理によって得られたデータの数を含む。
【0075】
上記出力制御処理は、出力制御モジュールによって実現されてもよい。
【0076】
(5)ビット補充:
選択されたL個のデータのビット順序情報を使用し、切り捨てられた下位情報を切り捨てモジュールのメモリから抽出し、データを補完させて出力する。
【0077】
上記ビット補充処理は、ビット補充モジュールによって実現されてもよい。
【0078】
なお、上記のシステムアーキテクチャは、例示に過ぎず、本開示は、ソートシステムのアーキテクチャを制限するものではない。
【0079】
実施例4
以下では、4b-SCL復号アルゴリズム、N0=512、L=32を例として詳細に説明する。
【0080】
4b-SCL復号アルゴリズムは、反復ごとに4ビットデータを復号し、反復ごとに各サバイバーパスが最大16つのパスに拡張され、すべてのサバイバーパスが最大512つのパスに拡張される。
【0081】
まず、サバイバーパスの数L、マザーコード長N0、少なくとも1つのパス削除指示、切り捨てビット幅Wを設定し、次にデータを入力してソート及び選択操作を行う。
【0082】
切り捨てモジュールによって入力されたデータの数は、512つであり、ビット順序番号が0~511である。各データからW個の下位ビットを切り捨てた後に出力されたデータを抽出モジュールに送信するとともに、切り捨てた後のデータをメモリに記憶する。
【0083】
抽出モジュールは、受信されたデータを16つのデータごとにグループ化して抽出する。
【0084】
各グループの16つのデータは、独立したパス削除指示があり、そのフォーマットが{info_flg0、info_flg1、info_flg2、info_flg3}であり、info_fligNが1であると、情報ビットにはパス拡張が必要であることを示し、当該ビット(bit)位置の値が0/1であってよく、info_flgNが0の場合、パス拡張が不要であることを示し、当該ビット位置の値が0だけである。当該ルールに従って得られたデータの値は、当該グループに保持されるデータビット順序番号となるグループ番号がスプライスされる。
【0085】
例えば、第1のグループ{0、0、1、0}は、10進数が2で、グループ番号が0で、ビット順序が2であるデータが保持されることを示す。第2のグループ{1、0、1、0}は、10進数が2で、グループ番号が1で、ビット順序が18であるデータが保持されることを示す。
【0086】
すべてのグループのデータ抽出が完了された後、データは、A={グループ0の抽出データ、グループ1の抽出データ、…、グループ31の抽出データ}にスプライスされ、ビット順序は、B={グループ0のデータビット順序、グループ1のデータビット順序、…、グループ31のデータビット順序}にスプライスされる。グループAのデータの数が32以下である場合、AとBを出力制御モジュールに直接出力し、Aのデータの数が32よりも大きい場合、AとBをバイトーンソートbmNアレイモジュールに出力し、バイトーンソートを行う。
【0087】
図7に示すように、N0=512、L=32をサポートするソートbmアレイであり、bm4アレイは128個のbm4ソートユニットで並列に構成され、ソートが完了された後、すべてのデータをbm8アレイに送信し、bm8アレイは64個のbm8ソートユニットで並列に構成され、ソートが完了された後、すべてのデータをbm16アレイに送信し、bm16アレイは32個のbm16ソートユニットで並列に構成され、ソートが完了された後、すべてのデータをbm32アレイに送信する。
【0088】
bm32アレイは16個のbm32セットで並列に構成され、ソートが完了された後、すべてのデータをbm64_aアレイに送信し、bm64_aアレイは8個のbm64ソートユニットで並列に構成され、ソートが完了された後、各bm64出力結果の小さい方の32つのデータを選択し、合計256つのデータをbm64_bアレイに送信する。
【0089】
bm64_bアレイは、4つのbm64ソートユニットで並列に構成され、ソートが完了された後、各bm64の出力結果の小さい方の32つのデータを選択し、合計128つのデータをbm64_cアレイに送信し、bm64_cアレイは、2つのbm64ソートユニットで並列に構成され、ソートが完了された後、各bm64の出力結果の小さい方の32つのデータを選択し、合計64つのデータをbm2アレイに送信し、bm2アレイは32個のbm2ソートユニットで構成され、入力された64つのデータから小さい方の32つのデータを選択して出力する。
【0090】
ソート及び選択中に各データに対応するビット順序を同時に保持し、データと一緒に下位モジュールに送信する必要がある。
【0091】
図7に示すように、当該ソートアレイは、512つのデータを入力し、小さい方の32つのデータを選択すること、即ちN0=512、L=32のポーラーコード復号ニーズをサポートする。異なるタップにより、N0=32、L=16/8のポーラーコード復号ニーズ、N0=64、L=32/16/8のポーラーコード復号ニーズ、N0=128、L=32/16/8のポーラーコード復号ニーズ、N0=256、L=32/16のポーラーコード復号ニーズをサポートすることもできる。このソートアレイの後に異なるbmNがカスケードされると、任意のN0/Lのポーラーコードニーズをサポートすることができる。
【0092】
出力制御モジュールは、抽出モジュールによって送信されたAの有効データの数、N0及びL情報に基づき、対応するタップのデータを選択して出力する。本実施例では、Aの有効データの数が32より大きい場合、N0=512、L=32のタップのデータを選択して出力し、Aの有効データの数が32以下の場合、抽出モジュールによって送信されたデータをビット補充モジュールに直接出力する。
【0093】
ビット補充モジュールは、受信された各データのビット順序情報に基づき、当該データの切り捨てられた下位ビット(bit)情報を切り捨てモジュールから取り出し、データを補完させてから出力する。
【0094】
実施例5
図5のバイトーンソートbmNアレイモジュールを個別に抽出してソート及び選択操作のみを実行し、即ちM個のデータから最小又は最大のL個のデータを選択する。
【0095】
ソートアレイ構造は図7に示される。ソート対象データの数Mが2の整数乗でない場合、ソート対象データの後にN0-M個の入力データビット幅で表せる最大値を補充する必要がある。例えば、入力データのビット幅がNである場合、補充される最大値は2-1である。ここでN0の計算方法は以下のとおりである:
N0=2K>Mとし、Kはこの式を満たす最小の整数である。
【0096】
最小の32つのデータを500つのデータ(各データのビット幅Nが8である)から選択して出力し、N0=2K>500とし、Kがこの式を満たす最小の整数であると仮定すると、K=9、N0=5、500つのデータの後に12つのデータを補充し、これらの12つのデータの値は、いずれも現在のデータビット幅が表せる最大値255であり、512つのデータが得られる。図7で説明された回路の左側からこれらの512つのデータを入力すると、最も右側で最小の32つのデータを取得することができる。
【0097】
上記の500つのデータから最大の32つのデータを選択する場合、まず500つのデータの後に12つのデータを補充する必要があり、これらの12つのデータの値は、いずれも現在のデータビット幅が表せる最小値0であり、512つのデータを補完した後、図7の前記回路の左側から入力し、bm4/bm8/bm16/bm32/bm64/bm2のソート回路構造は、最小値を選択する上記のソート回路構造と全く同じであるが、bm64と最後のレベルのbm2のソートが完了された後の出力結果の選択のみが異なる。各bm64のソートが完了された後、出力結果のうち、大きい方の32つのデータを選択し、最後のレベルのbm2アレイが入力された64つのデータから大きい方の32つのデータを選択して出力し、このようにして500つのデータから最大の32つのデータを選択することができる。
【0098】
図8は本出願の実施例による電子デバイスのハードウェア構造図である。図8に示すように、当該電子デバイスは、1つ又は複数のプロセッサ810とメモリ820とを備える。図8では、1つのプロセッサ810が例として挙げられる。
【0099】
前記電子デバイスは、入力装置830と出力装置840とをさらに備えることができる。
【0100】
前記電子デバイスでのプロセッサ810、メモリ820、入力装置830と出力装置840は、バス又は他の方式で接続されてもよく、図7ではバスで接続されることが例として挙げられる。
【0101】
メモリ820は、コンピュータ可読記憶媒体として、ソフトウェアプログラム、コンピュータ実行可能プログラム及びモジュールを記憶するように設けられる。プロセッサ810は、メモリ820に記憶されているソフトウェアプログラム、命令及びモジュールを実行することにより、様々な機能アプリケーション及びデータ処理を実行して、上記の実施例の任意の1つの方法を実現する。
【0102】
メモリ820は、プログラム記憶領域とデータ記憶領域とを含むことができ、ここで、プログラム記憶領域にはオペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムが記憶されてもよく、データ記憶領域には電子デバイスの使用に応じて作成されたデータが記憶されてもよい。また、メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)などの揮発性メモリを含むことができ、少なくとも1つの磁気ディスクメモリデバイス、フラッシュメモリデバイス又は他の非一時的なソリッドステートメモリデバイスなどの非揮発性メモリをさらに含むことができる。
【0103】
メモリ820は、非一時的なコンピュータ記憶媒体又は一時的なコンピュータ記憶媒体であってもよい。当該非一時的なコンピュータ記憶媒体は、例えば、少なくとも1つの磁気ディスクメモリデバイス、フラッシュメモリデバイス又は他の非一時的なソリッドステートメモリデバイスである。いくつかの実施例では、メモリ820は、プロセッサ810に対して遠隔に設置されたメモリを選択可能に含むことができ、これらの遠隔メモリは、ネットワークを介してコンピュータ装置に接続されてもよい。上記ネットワークの実施例は、インターネット、イントラネット、ローカルエリアネットワーク、移動通信ネットワーク及びそれらの組み合わせを含むことができる。
【0104】
入力装置830は、入力された数字又は文字情報を受信し、電子デバイスのユーザ設定及び機能制御に関するキー信号入力を生成するように設けられる。出力装置840は、表示画面などの表示デバイスを含むことができる。
【0105】
本実施例は、コンピュータプログラムを記憶しており、前記コンピュータプログラムがプロセッサによって実行された後、上記の任意の1つ又は複数のソート方法を実現することができる、記憶媒体をさらに提供する。
【0106】
前記コンピュータ記憶媒体は、様々なタイプの記憶媒体であってもよく、本実施例では、好ましくは、非一時的な記憶媒体であってもよい。
【0107】
当業者は、本実施例の記憶媒体における各プログラムの機能について実施例で記載されるソート方法の関連説明を参照して理解することができる。
【0108】
本発明の実施例で記載される方法を採用することにより、関連技術と比較して、少ないハードウェアリソースを使用してポーラーコード復号に必要なソート機能を完了することができ、かつ高速回路の設計を容易にする。マルチタップbmNアレイにより、様々なコード長のポーラーコードの復号及びソートニーズを1つの回路セットでサポートすることができる。
【0109】
本発明の実施例で記載される技術的解決策は、衝突することなく任意に組み合わせられてもよい。
【0110】
本開示で提供されるいくつかの実施例では、開示される方法及びスマートデバイスが他の方式により実現されてもよいことを理解すべきである。上述したデバイスの実施例は例示的なものだけであり、例えば、前記ユニットの区分は、論理機能的区分だけであり、実際に実施するときに他の区分方式もあり得て、例えば複数のユニット又は構成要素は組み合わせられてもよく又は別のシステムに統合されてもよく、又はいくつかの特徴は無視されてもよく、又は実行されなくてもよい。また、示されるか、又は議論される各コンポーネントの間の相互結合、又は直接結合、又は通信接続はいくつかのインターフェース、デバイス又はユニットを介する間接的結合又は通信接続であってもよいし、電気的、機械的又は他の形態であってもよい。
【0111】
分離部材として説明された前記ユニットは、物理的に分離するものであってもよく又は物理的に分離するものでなくてもよく、ユニットとして表示された部材は物理的ユニットであってもよく又は物理的ユニットでなくてもよく、即ち1つの箇所に位置してもよいし、複数のネットワークユニットに分布してもよく、実際のニーズに応じてその中の一部又は全部のユニットを選択して本実施例の解決策の目的を達成することができる。
【0112】
また、本発明の各実施例における各機能ユニットは、すべて1つの第2の処理ユニットに統合されてもよく、各ユニットは、それぞれ1つのユニットとして単独して使用されてもよく、2つ以上のユニットは、1つのユニットに統合されてもよく、上記の統合されたユニットは、ハードウェアの形で実現されてもよいし、ハードウェアとソフトウェア機能の組み合わせの形で実現されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8