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

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

▶ EDGECORTIX株式会社の特許一覧

<>
  • 特開-シフタ実装巡回置換行列演算 図1
  • 特開-シフタ実装巡回置換行列演算 図2
  • 特開-シフタ実装巡回置換行列演算 図3
  • 特開-シフタ実装巡回置換行列演算 図4
  • 特開-シフタ実装巡回置換行列演算 図5
  • 特開-シフタ実装巡回置換行列演算 図6A
  • 特開-シフタ実装巡回置換行列演算 図6B
  • 特開-シフタ実装巡回置換行列演算 図6C
  • 特開-シフタ実装巡回置換行列演算 図6D
  • 特開-シフタ実装巡回置換行列演算 図6E
  • 特開-シフタ実装巡回置換行列演算 図7
  • 特開-シフタ実装巡回置換行列演算 図8
  • 特開-シフタ実装巡回置換行列演算 図9
  • 特開-シフタ実装巡回置換行列演算 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024166131
(43)【公開日】2024-11-28
(54)【発明の名称】シフタ実装巡回置換行列演算
(51)【国際特許分類】
   H03M 13/19 20060101AFI20241121BHJP
【FI】
H03M13/19
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024078488
(22)【出願日】2024-05-14
(31)【優先権主張番号】63/502,417
(32)【優先日】2023-05-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/657,786
(32)【優先日】2024-05-08
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520043615
【氏名又は名称】EDGECORTIX株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】家富邦彦
(72)【発明者】
【氏名】ネズ ニコライ
(72)【発明者】
【氏名】ハビン オレグ
(72)【発明者】
【氏名】ダスグプタ サキャシンガ
(57)【要約】      (修正有)
【課題】シフタ実装巡回置換行列演算を実現する集積回路及び方法を提供する。
【解決手段】シフタ実装巡回置換行列演算を利用する循環シフタは、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメントを生成するように構成された前方向シフタ、ターゲットセグメントの各連続値を、セグメント長からシフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成する逆方向シフタ、シフト量及びセグメント長に従い、前方向にシフトされた部分ターゲットセグメントと逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する結合器及びシフト量及びセグメント長に対応するマージマスク及びセグメント長に対応するフィルタマスクのうちの少なくとも一方を選択するマスクセレクタ、を備える。
【選択図】図5
【特許請求の範囲】
【請求項1】
ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメントを生成するように構成された前方向シフタ;
前記ターゲットセグメントの各連続値を、セグメント長から前記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成するように構成された逆方向シフタ;
前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成するように構成された結合器;及び
マスクセレクタであって、
前記シフト量及び前記セグメント長に対応するマージマスク、及び
前記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択するように構成されたマスクセレクタ
を備える集積回路。
【請求項2】
前記前方向シフタは、
前方側からの前記シフト量未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する;及び
前記ターゲットセグメントの各残りの連続値を、前記残りの連続値の前記元の位置から前記シフト量だけ前方向にシフトされた位置を表す、前記結合器の入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項3】
前記逆方向シフタは、
逆側からの前記逆シフト値未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する;及び
前記ターゲットセグメントの各残りの連続値を、前記残りの連続値の前記元の位置から前記逆シフト値だけ逆方向にシフトされた位置を表す、前記結合器の入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項4】
前記結合器は、
前記前方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る;
前記逆方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項5】
前記結合器は、前記マージマスクに従い、前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合するように更に構成されている、請求項1に記載の集積回路。
【請求項6】
前記マージマスクは、
前方側からの前記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの前記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、請求項1に記載の集積回路。
【請求項7】
前記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、前記フィルタマスクに従い、前記ターゲットセグメントをフィルタリングするように構成されたフィルタ
を更に備える、請求項1に記載の集積回路。
【請求項8】
前記結合器は、
前記フィルタマスクに従い、前記シフトされたターゲットセグメントをフィルタリングする
ように更に構成されている、請求項1に記載の集積回路。
【請求項9】
前記フィルタマスクは、前記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、請求項1に記載の集積回路。
【請求項10】
集積回路の前方向シフタが、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分ターゲットセグメントを生成する段階;
前記集積回路の逆方向シフタが、前記ターゲットセグメントの各連続値を、セグメント長から前記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成する段階;
前記集積回路の結合器が、前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する段階;及び
前記集積回路のマスクセレクタが、
前記シフト量及び前記セグメント長に対応するマージマスク、及び
前記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択する段階
を備える方法。
【請求項11】
前記前方向にシフトする段階は、
前方側からの前記シフト量未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する段階;及び
前記ターゲットセグメントの各残りの連続値を、前記残りの連続値の前記元の位置から前記シフト量だけ前方向にシフトされた位置を表す、前記結合器の入力に送る段階
を有する、請求項10に記載の方法。
【請求項12】
前記逆方向にシフトする段階は、
逆側からの前記逆シフト値未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する段階;及び
前記ターゲットセグメントの各残りの連続値を、前記残りの連続値の前記元の位置から前記逆シフト値だけ逆方向にシフトされた位置を表す、前記結合器の入力に送る段階
を有する、請求項10に記載の方法。
【請求項13】
前記結合する段階は、
前記前方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る段階;
前記逆方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る段階
を有する、請求項10に記載の方法。
【請求項14】
前記前方向にシフトされた部分ターゲットセグメントは、前記マージマスクに従い、前記逆方向にシフトされた部分ターゲットセグメントと結合される、請求項10に記載の方法。
【請求項15】
前記マージマスクは、
前方側からの前記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの前記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、請求項10に記載の方法。
【請求項16】
前記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、前記集積回路のフィルタが、前記フィルタマスクに従い、前記ターゲットセグメントをフィルタリングする段階
を更に備える、請求項10に記載の方法。
【請求項17】
前記マスクセレクタが、フィルタマスクを選択する段階;及び
前記結合器が、前記フィルタマスクに従い、前記シフトされたターゲットセグメントをフィルタリングする段階
を更に備える、請求項10に記載の方法。
【請求項18】
前記フィルタマスクは、前記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、請求項10に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
[関連出願の相互参照]
本願は、2023年5月16日に出願された仮出願第63/502,417号に対する優先権を主張するものであり、その内容はここでの参照によりそれらの全体が本明細書に組み込まれる。
[背景技術]
無線データ通信は、現代社会において遍在化している。デジタルデータ送信がより普及するにつれ、ノイズの多い無線チャネル上で、信頼性が高く誤りのない通信の有用性が明らかになった。これにより、前方誤り訂正(FEC)符号が作成されるに至った。FEC符号は、送信されたデータに冗長な情報を付加するために使用される数学的アルゴリズムであり、送信中に生じ得る誤りを受信側が訂正することを可能にする。FEC符号は、無線通信システムが拡大するにつれ、特に、移動電話及びデータ集約型アプリケーションの出現に伴い、不可欠なものとなった。FECがなければ、無線データ送信はより高い誤り率を被ることになり、データ破損及びコストのかかる再送信に繋がる。低密度パリティ検査(Low-Density Parity-Check:LDPC)符号などのFEC符号は、現代の無線技術の不可欠な構成要素であり、データの完全性を向上させ、チャネル障害の影響を軽減することで、無線通信を信頼性が高く効率的なものにしている。
【図面の簡単な説明】
【0002】
添付の図と共に読まれるときに、本開示の態様が以下の詳細な説明から最も良く理解される。産業における標準的な慣行に従って、様々な特徴は一定の縮尺で描かれていないことが留意される。実際には、様々な特徴の寸法は、論述の明確さのために、任意に増加又は減少し得る。
【0003】
図1】本発明の少なくとも1つの実施形態による、低密度パリティ検査(LDPC)データ送信のためのシステムの概略図である。
【0004】
図2】本発明の少なくとも1つの実施形態による、LDPCデータ符号化のための集積回路符号化器の概略図である。
【0005】
図3】本発明の少なくとも1つの実施形態による、LDPCデータ復号のための集積回路復号器の概略図である。
【0006】
図4】本発明の少なくとも幾つかの実施形態による、シフタ実装巡回置換行列演算を利用するプロセッサの概略図である。
【0007】
図5】本発明の少なくとも幾つかの実施形態による、シフタ実装巡回置換行列演算を利用する循環シフタの概略図である。
【0008】
図6A】本発明の少なくとも1つの実施形態による、ターゲットセグメントの元の位置の図である。
【0009】
図6B】本発明の少なくとも1つの実施形態による、セグメント長が3であり、2だけシフトされた、シフトされたターゲットセグメントの図である。
【0010】
図6C】本発明の少なくとも1つの実施形態による、セグメント長が4であり、2だけシフトされた、シフトされたターゲットセグメントの図である。
【0011】
図6D】本発明の少なくとも1つの実施形態による、セグメント長が5であり、2だけシフトされた、シフトされたターゲットセグメントの図である。
【0012】
図6E】本発明の少なくとも1つの実施形態による、セグメント長が6であり、2だけシフトされた、シフトされたターゲットセグメントの図である。
【0013】
図7】本発明の少なくとも幾つかの実施形態による、ページドバッファリングを利用するLDPCデータ復号のための動作フローである。
【0014】
図8】本発明の少なくとも1つの実施形態による、シフタ実装巡回置換行列演算を利用するデータ確率値セグメント復号のための動作フローである。
【0015】
図9】本発明の少なくとも1つの実施形態による、シフタ実装巡回置換行列演算を適用するための動作フローである。
【0016】
図10】本発明の少なくとも1つの実施形態による、シフタ実装巡回置換行列演算を受けるデータセグメントの図である。
【発明を実施するための形態】
【0017】
以下の開示は、提供される主題の異なる特徴を実装するための、多くの異なる実施形態又は例を提供する。構成要素、値、動作、材料又は配置等の具体例が、本開示を簡略化するために以下で説明される。当然ながら、これらは単なる例であって、限定を意図するものではない。他の構成要素、値、動作、材料又は配置等が企図される。加えて、本開示は、様々な例において参照番号及び/又は文字を繰り返し得る。この繰り返しは、簡潔さ及び明確さを目的としており、それ自体が、論述される様々な実施形態及び/又は構成間の関係を規定するものではない。
【0018】
FEC符号で符号化されたデータの効率的な復号は、モノのインターネット(Internet of Things:IoT)デバイスなど、その多くが限定された電力及び処理能力を有する膨大かつ多種多様なコネクテッドデバイスへの無線通信の普及において重要な役割を果たす。
【0019】
図1は、本発明の少なくとも1つの実施形態による、低密度パリティ検査(LDPC)データ送信のためのシステムの概略図である。本システムは、符号化器101、送信器103、受信器106、及び復号器108を備える。少なくとも幾つかの実施形態において、符号化器101及び送信器103は、無線アクセスネットワークの送信タワーなどの単一のデバイスの一部である。少なくとも幾つかの実施形態において、受信器106及び復号器108は、無線アクセスネットワークと通信する、スマートフォンなどの単一のデバイスの一部である。少なくとも幾つかの実施形態において、そのような単一のデバイスは、符号化器、送信器、受信器、及び復号器を有し、双方向通信を可能にする。図1において、送信器103は受信器106と直接通信しているため、符号化器101及び送信器103は、受信器106及び復号器108と同じデバイスの一部にはならない。
【0020】
符号化器101は、元のデータ100を受信し、符号化されたデータ102を送信器103に送信するように構成されている。少なくとも幾つかの実施形態において、符号化器101は、1つ又は複数の予め定められた長さのブロック内で、元のデータ100を受信するように構成されている。少なくとも幾つかの実施形態において、符号化器101は、元のデータ100にFEC符号化を適用して、符号化されたデータ102を生成するように構成されている。少なくとも幾つかの実施形態において、符号化器101は、元のデータ100にLDPC符号化を適用して、符号化されたデータ102を生成するように構成されている。少なくとも幾つかの実施形態において、符号化器101は、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等のような集積回路である。少なくとも幾つかの実施形態において、符号化器101は、プロセッサ、及び当該プロセッサによる実行のための命令を記憶するメモリ、を有するコンピュータである。
【0021】
送信器103は、無線通信を通じて、符号化器101から符号化されたデータ102を受信し、符号化されたデータ102の2進値104を受信器106に送信するように構成されている。少なくとも幾つかの実施形態において、送信器103は、1つ又は複数の予め定められた長さのブロック内で、符号化されたデータ102を送信するように構成されている。少なくとも幾つかの実施形態において、送信器103は、5G、BLUETOOTH(登録商標)、BLE、WiFi(登録商標)、3G GPRS、3G EVDO、3G HSPA、4G WiMAX(登録商標)、4G E-UTRAN(LTE)等のような規格無線プロトコルに従って2進値104を送信するように構成されている。3G及び4Gなど、前述の規格の全てが現在LDPCを利用しているわけではないが、少なくとも幾つかの実施形態において、送信器103は、複数の規格無線プロトコル用の構成を含む。少なくとも幾つかの実施形態において、送信器103は、規格無線プロトコルに従った周波数及びタイミング方式で送信するように構成されている。少なくとも幾つかの実施形態において、送信器103は、データチャネルを通じて2進値104を送信し、制御チャネルを通じて、パリティ検査行列を表す情報など、符号化されたデータ102を復号するための他の情報を送信するように構成されている。
【0022】
受信器106は、無線受信を通じて確率値105を受信し、符号化された確率値107を復号器108に送信するように構成されている。少なくとも幾つかの実施形態において、受信器106は、2進値104の受信を試みる際に確率値105を記録するように構成されており、確率値105は、送信器103によって送信されるような2進値104の送信から受信された2進値が1を表すか又は0を表すかの1つ又は複数の確率を表す。少なくとも幾つかの実施形態において、受信器106は、受信中に、信号対雑音比に比例する信頼度を有する確率値を記録する。少なくとも幾つかの実施形態において、受信器106は、より高い信号対雑音比のインスタンス中に、より信頼度の高い確率値を記録し、より低い信号対雑音比のインスタンス中に、より信頼度の低い確率値を記録するように構成されている。少なくとも幾つかの実施形態において、受信された値は以下のように表される:
=y+n 式1
ここで、zは受信された値を表し、yは送信された値を表し、nは加算性白色ガウス雑音(Additive White Gaussian Noise:AWGN)を表し、iは1~Nであり、ここで、Nは、受信された符号化された確率値の数量である。少なくとも幾つかの実施形態において、受信器106は、受信された値を、以下の通り、対数尤度比(Log-Likelihood Ratio:LLR)ドメインに変換する:
【数1】
ここで、p(z|y=0)は、受信された値が0である確率であり、p(z|y=1)は、受信された値が1である確率である。少なくとも幾つかの実施形態において、LLR値の使用は、確率値が追加されることを可能にし、LLRの絶対値は、確率の信頼度を示す。
【0023】
少なくとも幾つかの実施形態において、受信器106は、複数ビットのデータを使用して、2進値104のうちの1つの2進値に対応する確率値105のうちの1つ又は複数の確率値を記録するように構成されている。少なくとも幾つかの実施形態において、確率値105のうちの各確率値を記録するために使用されるデータのビット数は、受信器106又は復号器108のハードウェア能力に依存する。少なくとも幾つかの実施形態において、受信器106は、6ビットのデータを使用して、2進値104のうちの1つの2進値に対応する確率値105のうちの1つ又は複数の確率値を記録するように構成されている。少なくとも幾つかの実施形態において、受信器106は、1つ又は複数の予め定められた長さのブロック内で、確率値105を受信するように構成されている。少なくとも幾つかの実施形態において、受信器106は、符号化された確率値107のうちの確率値及び符号化されたデータ102のうちの2進値の間の対応を明確にするフォーマットを用いて、確率値105を符号化された確率値107にアセンブルするように構成されている。少なくとも幾つかの実施形態において、受信器106は、データチャネルを通じて確率値105を受信し、制御チャネルを通じて、パリティ検査行列を表す情報など、符号化されたデータ102を復号するための他の情報を受信するように構成されている。
【0024】
復号器108は、符号化された確率値107を受信器106から受信し、復号されたデータ109を出力するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107を復号されたデータ109に復号するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107にFEC復号を適用して、復号されたデータ109を生成するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107にLDPC復号を適用して、復号されたデータ109を生成するように構成されている。少なくとも幾つかの実施形態において、復号器108は、FPGA、ASIC等のような集積回路である。少なくとも幾つかの実施形態において、復号器108は、プロセッサ、及び当該プロセッサによる実行のための命令を記憶するメモリ、を有するコンピュータである。
【0025】
図2は、本発明の少なくとも1つの実施形態による、LDPCデータ符号化のための集積回路符号化器201の概略図である。集積回路符号化器201は、セグメンテーションプロセッサ210、符号化プロセッサ213、連結プロセッサ216、及びパラメータプロセッサ219を含む。
【0026】
セグメンテーションプロセッサ210は、元のデータブロック200を受信し、データセグメント211を符号化プロセッサ213及び連結プロセッサ216に送信するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロックを複数のデータセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロック200を1つ又は複数の予め定められた長さのセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロック200を、元のデータブロック200の長さに従った長さを有するセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロックを、LDPCベースグラフの列に従った複数のデータセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、元のデータブロック200は、5G規格における「情報ブロック」に対応し、当該情報ブロックは、セグメンテーションプロセッサ210によって実行されない、トランスポートブロックの、前のセグメンテーションの結果である。
【0027】
符号化プロセッサ213は、データセグメント211を受信し、パリティセグメント214を連結プロセッサ216に送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、データセグメント211にパリティ検査行列を適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、データセグメント211にLDPCパリティ検査行列を適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、パリティ検査行列に従って各データセグメント211に1つ又は複数の循環シフトを適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、パリティ検査行列に従ったパリティセグメント214のうちの「コア」パリティセグメントなどの幾つかのパリティセグメントに1つ又は複数の循環シフトを適用して、パリティセグメント214の中に他のパリティセグメントを生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、各パリティセグメントの各ビットに、当該ビットに対応する1つ又は複数のデータセグメント及び他のパリティセグメントの値のサブセット内のビット値及び2進値の総和が偶数になるような値を入力するように構成されている。
【0028】
連結プロセッサ216は、データセグメント211及びパリティセグメント214を受信し、符号化されたデータブロック202を出力するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ216は、データセグメント211をパリティセグメント214と連結して、符号化されたデータブロック202を生成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ216は、データセグメント211をパリティセグメント214と連結して、データセグメント211及びパリティセグメント214の値のサブセット間の対応を明確にするフォーマットにするように構成されている。
【0029】
パラメータプロセッサ219は、パラメータストリーム218を受信して、セグメンテーションプロセッサ210、符号化プロセッサ213、及び連結プロセッサ216に情報を送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、制御チャネルを通じてパラメータストリーム218を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、パラメータストリーム218内の元のデータブロック200に対応するパリティ検査行列を表す情報を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、セグメンテーションプロセッサ210、符号化プロセッサ213、及び連結プロセッサ216の各々に、関連するパラメータを送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、セグメントサイズを表す情報をセグメンテーションプロセッサ210に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、元のデータブロック200に対応するパリティ検査行列を表す情報を符号化プロセッサ213に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、元のデータブロック200に対応するパリティ検査行列を表す情報を連結プロセッサ216に送信するように構成されている。
【0030】
図3は、本発明の少なくとも1つの実施形態による、LDPCデータ復号のための集積回路復号器308の概略図である。集積回路復号器308は、セグメンテーションプロセッサ320、1つ又は複数の復号プロセッサ323、連結プロセッサ326、及びパラメータプロセッサ329を含む。
【0031】
セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を受信して、確率値セグメント321を復号プロセッサ323に送信するように構成されている。少なくとも幾つかの実施形態において、確率値セグメント321は、データ確率値セグメント及びパリティ確率値セグメントを含む。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロックを複数のデータ確率値セグメント及び複数のパリティ確率値セグメントに分割するように構成され、符号化されたデータブロックの各確率値は2進値間の尤度を表す。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を、1つ又は複数の予め定められた長さのセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を、符号化された確率値のデータブロック307の長さに従った長さを有するセグメントに分割するように構成されている。
【0032】
復号プロセッサ323は、それぞれ、確率値セグメント321を受信し、復号された2進値セグメント324を連結プロセッサ326に送信するように構成されている。少なくとも幾つかの実施形態において、各復号プロセッサ323は、反復変数正確度パラメータに従い、パリティ検査行列に基づき符号化されたデータブロックの確率値を調整するように構成されており、パリティ検査行列は、データ確率値セグメント及びパリティ確率値セグメントの間の対応を定義し、ここで、反復変数正確度パラメータは、正確度及び計算効率の間のトレードオフを表す。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、確率値セグメント321にパリティ検査行列を適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323は、それぞれ、確率値セグメント321にLDPCパリティ検査行列を適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、パリティ検査行列に従って確率値セグメント321のうちの各データ確率値セグメント及び各パリティ確率値セグメントに1つ又は複数の循環シフトを適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、対応するデータ確率値セグメント及びパリティ確率値セグメントの値のサブセット内の2進値を比較して、当該値の総和が偶数になることを確実にするように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323の各々は、確率値をセグメントにソートして最小値を求めるためのソータ、最小値から更新値を計算するための計算器、最小値に基づき調整量を判定するための正確な関数を選択するための関数セレクタ、及び、反復変数正確度パラメータを選択するための正確度パラメータセレクタ、を含む。
【0033】
連結プロセッサ326は、復号された2進値セグメント324を受信し、復号されたデータブロック309を出力するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、各データ確率値セグメントの確率値に関連付けられたパリティ検査行列を満たす尤もらしい2進値を連結して、復号されたデータブロックを形成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、復号された2進値セグメント324を連結して、復号されたデータブロック309を生成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、復号された2進値セグメント324を連結して、元のデータブロックと同一のフォーマットにするように構成されている。
【0034】
パラメータプロセッサ329は、パラメータストリーム328を受信し、セグメンテーションプロセッサ320、復号プロセッサ323、及び連結プロセッサ326に情報を送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメンテーションプロセッサ、復号プロセッサ、及び連結プロセッサの各々に複数のパラメータを送信するように構成され、ここで、当該複数のパラメータは、符号化されたデータブロックに対応する。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、制御チャネルを通じてパラメータストリーム328を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、パラメータストリーム328内の符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメンテーションプロセッサ320、復号プロセッサ323、及び連結プロセッサ326の各々に、関連するパラメータを送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメントサイズを表す情報をセグメンテーションプロセッサ320に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を復号プロセッサ323に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を連結プロセッサ326に送信するように構成されている。
【0035】
概して、データセグメント及び確率値セグメントへのパリティ検査行列の適用は、当該セグメントを巡回置換行列(circulant permutation matrix:CPM)で乗じることによって実装される。LDPC符号化において、元のデータブロックごとに、ビットのデータセグメントに対して実行される数百の演算が必要とされ得る。LDPC復号において、符号化されたデータブロックごとに、LLR値などのマルチビット値の確率値セグメントに対して実行される数百の演算が必要とされ得る。
【0036】
パリティ検査行列の特定の構造に起因して、これらの乗算演算を、本主題の開示の少なくとも幾つかの実施形態による循環シフト演算に置き換えることができる。本主題の開示の少なくとも幾つかの実施形態において、循環シフト演算のために使用される計算要素は、セグメントをCPMで乗じる演算を実行する計算要素よりもサイズ単位当たりの優れた性能を有する。少なくとも幾つかの実施形態において、セグメントの連続値の数、すなわちセグメント長は、2~384の範囲である。少なくとも幾つかの実施形態において、循環シフト演算の大きさ、すなわちシフト量は、0からセグメント長よりも1つ少ない値までの範囲である。少なくとも幾つかの実施形態において、パリティ検査行列は、セグメント長よりも数倍大きいシフト量を必要とし得るが、実際のシフト量は、シフト量がセグメント長で除されたときの余りとなる。例えば、シフト量が25であり、セグメント長が4である場合、25を4で除すると、6余り1である。
【0037】
少なくとも幾つかの実施形態において、各セグメントは、固定容量のメモリブロックに記憶される。少なくとも幾つかの実施形態において、固定容量は、所与の適用についての最大セグメント長である。少なくとも幾つかの実施形態において、LDPC適用についての固定容量は、データセグメントの場合は384ビットであり、確率値セグメントの場合はLLR値のビット幅の384倍である。少なくとも幾つかの実施形態において、最大セグメント長未満のデータセグメント及び確率値セグメントは、最大セグメント長に対応する固定容量を有するメモリブロックに記憶される。少なくとも幾つかの実施形態において、所与のシフト量の循環シフトは、セグメント長に応じて別様に実行される。少なくとも幾つかの実施形態において、前方向シフト及び逆方向シフトは独立して実行され、その結果がマスクに基づき結合されて、循環シフトが実行される。少なくとも幾つかの実施形態において、CPM演算用の大型マルチプレクサは不要である。少なくとも幾つかの実施形態において、循環シフトの一連の演算は、所望の周波数を達成するためにパイプライン化される。少なくとも幾つかの実施形態において、循環シフトは、最大セグメント長から最小セグメント長までスケーラブルである。
【0038】
図4は、本発明の少なくとも幾つかの実施形態による、シフタ実装巡回置換行列演算を利用するプロセッサの概略図である。プロセッサ430は入力セレクタ432、1つ又は複数の循環シフタ434及び1つ又は複数のアキュムレータ436を含む。
【0039】
入力セレクタ432は、データセグメント431及びパラメータストリーム438を受信し、データセグメント433を循環シフタ434に送信するように構成されている。少なくとも幾つかの実施形態において、入力セレクタ432は、図2のセグメンテーションプロセッサ210などのセグメンテーションプロセッサからデータセグメント431を受信するように構成されている。少なくとも幾つかの実施形態において、入力セレクタ432は、更なる処理のために、データセグメント431の中からデータセグメント433を選択するように構成されている。少なくとも幾つかの実施形態において、入力セレクタ432は、図2のパラメータプロセッサ219などのパラメータプロセッサからパラメータストリーム438を受信するように構成されている。少なくとも幾つかの実施形態において、入力セレクタ432は、パラメータストリーム438に従って動作を実行するように構成されている。
【0040】
循環シフタ434は、それぞれ、入力セレクタ432からデータセグメント433を受信し、シフトされたデータセグメント435をアキュムレータ436に送信するように構成されている。少なくとも幾つかの実施形態において、各循環シフタ434は、循環シフトをデータセグメント433に適用して、シフトされたデータセグメント435を生成するように構成されている。少なくとも幾つかの実施形態において、各循環シフタ434は、図2のパラメータプロセッサ219などのパラメータプロセッサからパラメータストリーム438を受信するように構成されている。少なくとも幾つかの実施形態において、各循環シフタ434は、パラメータストリーム438に従って動作を実行するように構成されている。少なくとも幾つかの実施形態において、1つよりも多くの循環シフタ434が、シフト演算を並列処理するために使用される。少なくとも幾つかの実施形態において、各循環シフタ434は、以下で説明される図5の構成を含む。
【0041】
アキュムレータ436は、それぞれ、シフトされたデータセグメント435を循環シフタ434のうちの1つから受信して、シフトされたデータセグメントを下流に送信するように構成されている。少なくとも幾つかの実施形態において、各アキュムレータ436は、パリティビットを蓄積してパリティセグメントを生成するように構成されている。少なくとも幾つかの実施形態において、各アキュムレータ436は、確率値を更新して復号された2進値セグメントを生成するための統計情報を蓄積するように構成されている。少なくとも幾つかの実施形態において、アキュムレータ436の数は、循環シフタ434の数に等しい。少なくとも幾つかの実施形態において、各アキュムレータ436は、図2のパラメータプロセッサ219などのパラメータプロセッサからパラメータストリーム438を受信するように構成されている。少なくとも幾つかの実施形態において、各アキュムレータ436は、パラメータストリーム438に従って動作を実行するように構成されている。
【0042】
少なくとも幾つかの実施形態において、プロセッサ430は、データセグメント431を前処理し、アキュムレータ436からの出力を後処理し、パラメータストリーム438のパラメータを分散させる等のための更なる計算要素を含む。少なくとも幾つかの実施形態において、プロセッサ430は、図2の符号化プロセッサ213などの符号化プロセッサである。少なくとも幾つかの実施形態において、符号化プロセッサは複数の循環シフタを利用し、各循環シフタは、1つ又は複数の確率値セグメントのうちの1つの確率値セグメントに循環シフトを適用する。図4においてはデータセグメント431の処理が示されているが、少なくとも幾つかの実施形態において、プロセッサ430は、図3の確率値セグメント321などの確率値セグメントを処理するように構成されている。少なくとも幾つかの実施形態において、プロセッサ430は、図3の復号プロセッサ323などの復号プロセッサである。少なくとも幾つかの実施形態において、複数の復号プロセッサは並列に動作し、各復号プロセッサは、単一の循環シフタを利用する。
【0043】
図5は、本発明の少なくとも幾つかの実施形態による、シフタ実装巡回置換行列演算を利用する循環シフタの概略図である。循環シフタ544は、フィルタ550、逆方向シフタ551、前方向シフタ553、マスクセレクタ555及び結合器557を含む。
【0044】
フィルタ550は、ターゲットセグメント543及びマスク556を受信し、ターゲットセグメント543を逆方向シフタ551及び前方向シフタ553に送信するように構成されている。少なくとも幾つかの実施形態において、フィルタ550は、ターゲットセグメント543の各連続値を、マスク556内のマスクされていないインジケータに対応する、逆方向シフタ551及び前方向シフタ553の入力に送る(direct)ように構成されている。少なくとも幾つかの実施形態において、フィルタ550は、マスク556に従い、ターゲットセグメント543の一部ではない値を破棄するように構成されており、その結果は、ターゲットセグメント543のままであるが、前の反復から残されたものなど、セグメント長の外側の任意の値を伴わない。少なくとも幾つかの実施形態において、フィルタ550は、並列に配置された複数のマルチプレクサを含む。少なくとも幾つかの実施形態において、フィルタ550は、シフト量及びセグメント長548のうちのセグメント長に対応するマスク556に従い、複数のマルチプレクサを制御するように構成されている。少なくとも幾つかの実施形態において、フィルタ550は、マスク556の対応する1ビットのフラグに従い、各マルチプレクサを制御するように構成されている。
【0045】
逆方向シフタ551は、ターゲットセグメント543、及び、シフト量及びセグメント長548を受信して、逆方向にシフトされた部分ターゲットセグメント552を結合器557に送信するように構成されている。少なくとも幾つかの実施形態において、逆方向シフタ551は、層状に配置された複数のマルチプレクサを含む。少なくとも幾つかの実施形態において、逆方向シフタ551は、並列2X1マルチプレクサのカスケードを含む。少なくとも幾つかの実施形態において、逆方向シフタ551は、シフト量及びセグメント長548に対応する信号により、マルチプレクサの少なくとも一部を制御するように構成されている。少なくとも幾つかの実施形態において、逆方向シフタ551は、ターゲットセグメント543の各連続値を、セグメント長からシフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメント552を生成するように構成されている。少なくとも幾つかの実施形態において、逆方向シフタ551は、逆側からの逆シフト値未満である、又はそれに等しい元の位置を有するターゲットセグメント543の各連続値を破棄するように構成されている。少なくとも幾つかの実施形態において、逆方向シフタ551は、ターゲットセグメント543の各残りの連続値を、当該残りの連続値の元の位置から逆シフト値だけ逆方向にシフトされた位置を表す、結合器557の入力に送るように構成されている。少なくとも幾つかの実施形態において、逆方向シフタ551は、逆シフト値だけ逆方向に論理シフトを実行するように構成されている。
【0046】
前方向シフタ553は、ターゲットセグメント543、及び少なくともシフト量548を受信して、前方向にシフトされた部分ターゲットセグメント554を結合器557に送信するように構成されている。少なくとも幾つかの実施形態において、前方向シフタ553は、層状に配置された複数のマルチプレクサを含む。少なくとも幾つかの実施形態において、前方向シフタ553は、並列2X1マルチプレクサのカスケードを含む。少なくとも幾つかの実施形態において、前方向シフタ553は、シフト量及びセグメント長548に対応する信号により、マルチプレクサの少なくとも一部を制御するように構成されている。少なくとも幾つかの実施形態において、前方向シフタ553は、ターゲットセグメント543の各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメント554を生成するように構成されている。少なくとも幾つかの実施形態において、前方向シフタ553は、前方側からのシフト量未満である、又はそれに等しい元の位置を有するターゲットセグメント554の各連続値を破棄するように構成されている。少なくとも幾つかの実施形態において、前方向シフタ553は、ターゲットセグメント554の各残りの連続値を、当該残りの連続値の元の位置からシフト量だけ前方向にシフトされた位置を表す、結合器557の入力に送るように構成されている。少なくとも幾つかの実施形態において、前方向シフタ551は、シフト値だけ前方向に論理シフトを実行するように構成されている。
【0047】
マスクセレクタ555は、シフト量及びセグメント長548を受信するように構成されており、フィルタ550及び結合器557のうちの少なくとも一方にマスク556を送信する。少なくとも幾つかの実施形態において、マスクセレクタ555は、シフト量及びセグメント長548のうちの少なくとも一方に対応するマスク556を選択するように構成されている。少なくとも幾つかの実施形態において、マスクセレクタ555は、ルックアップテーブル(Look-Up Table:LUT)である。少なくとも幾つかの実施形態において、マスクセレクタ555は、シフト量及びセグメント長の関数に基づきマスク556を生成するように構成されている。少なくとも幾つかの実施形態において、マスク556は、前方側からの逆シフト値に等しい連続位置における前方向位置インジケータ、及び、逆側に最も近接する前方向位置インジケータからのシフト量に等しい連続位置における逆方向位置インジケータ、の文字列を含むマージマスクである。少なくとも幾つかの実施形態において、マスク556は、セグメント長に等しい、前方側からの連続位置におけるマスクされていないインジケータの文字列を含むフィルタマスクである。少なくとも幾つかの実施形態において、マスク556は、1ビットのインジケータ、すなわち1及び0の文字列である。少なくとも幾つかの実施形態において、前方向位置インジケータは0で表され、逆方向位置インジケータは1で表される。少なくとも幾つかの実施形態において、マスクされていないインジケータは1で表され、文字列の残りは0で表される。
【0048】
結合器557は、逆方向にシフトされた部分ターゲットセグメント552、前方向にシフトされた部分ターゲットセグメント554を受信して、シフトされたターゲットセグメント545を送信するように構成されている。少なくとも幾つかの実施形態において、結合器557は、マスク556に従い、前方向にシフトされた部分ターゲットセグメント554と逆方向にシフトされた部分ターゲットセグメント552を結合して、シフトされたターゲットセグメント545を生成するように構成されている。少なくとも幾つかの実施形態において、結合器557は、前方向にシフトされた部分ターゲットセグメント554の各連続値を、マスク556内の前方向位置インジケータに対応する、図4のアキュムレータ436などのアキュムレータの入力に送るように構成されている。少なくとも幾つかの実施形態において、結合器557は、逆方向にシフトされた部分ターゲットセグメント552の各連続値を、マスク556内の逆方向位置インジケータに対応するアキュムレータの入力に送るように構成されている。少なくとも幾つかの実施形態において、結合器557は、並列に配置された複数のマルチプレクサを含む。少なくとも幾つかの実施形態において、結合器557は、シフト量及びセグメント長548に対応するマスク556により、複数のマルチプレクサを制御する。少なくとも幾つかの実施形態において、各マルチプレクサは、マスク556の対応する1ビットのフラグに従い制御される。少なくとも幾つかの実施形態において、結合器557は、並列に配置された複数のORゲートを含む。少なくとも幾つかの実施形態において、複数のORゲートは、前方向にシフトされた部分ターゲットセグメント554と逆方向にシフトされた部分ターゲットセグメント552を結合して、マージマスクを伴うことなく、シフトされたターゲットセグメント545を生成するように構成されている。少なくとも幾つかの実施形態において、フィルタ550がフィルタマスクを適用することを条件に、複数のORゲートは、マージマスクを必要としない。少なくとも幾つかの実施形態において、結合器557は、マスク556内の対応する前方向位置インジケータを欠く、前方向にシフトされた部分ターゲットセグメント554の各連続値を破棄するように構成されている。少なくとも幾つかの実施形態において、結合器557は、マスク556内の対応する逆方向位置インジケータを欠く、逆方向にシフトされた部分ターゲットセグメント554の各連続値を破棄するように構成されている。少なくとも幾つかの実施形態において、結合器557は、フィルタマスクに従い、シフトされたターゲットセグメント545をフィルタリングするためにフィルタ550の動作を実行するように更に構成されている。
【0049】
少なくとも幾つかの実施形態において、循環シフトは、時計回り方向に、反時計回り方向に、又は、何らかの他の基準点に対してなど、何らかの他の形態で実装される。少なくとも幾つかの実施形態において、前方向へのシフトは右へのシフトとして実装され、逆方向へのシフトは左へのシフトとして実装される。少なくとも幾つかの実施形態において、前方向へのシフトは左へのシフトとして実装され、逆方向へのシフトは右へのシフトとして実装される。少なくとも幾つかの実施形態において、連続値の破棄は、連続値を無視するなどの受動的作用又は作用の欠如によって実行される。少なくとも幾つかの実施形態において、連続値の破棄は、連続値をパイプラインの後続のステージの入力に送らないことによって実現される。少なくとも幾つかの実施形態において、連続値の破棄は、論理シフト中の「シフトアウト」と称される。少なくとも幾つかの実施形態において、マスクセレクタは、選択的に動作するように構成されている。少なくとも幾つかの実施形態において、マスクセレクタは、シフト量及びセグメント長を受信することに応答して、マージマスクのみを結合器に送信する、フィルタマスクのみをフィルタに送信する、又は、マージマスク及びフィルタマスクの両方を結合器に送信するように構成されている。結合器が複数のマルチプレクサを含む実施形態、又は、結合器がフィルタの動作をも実行する実施形態などの少なくとも幾つかの実施形態において、循環シフタはフィルタを含まない。
【0050】
図6Aは、本発明の少なくとも1つの実施形態による、ターゲットセグメントの元の位置の図である。ターゲットセグメント643のセグメント長は6であり、従って、右側からA、B、C、D、E及びFとして示される6つの連続値を含み、これは、本実施形態における前方側の実装である。各連続値は、当該連続値の元の位置を表す入力に送られる。少なくとも幾つかの実施形態において、各連続値は、図4の入力セレクタ432などの入力セレクタによって、当該連続値の元の位置を表す、図4の循環シフタ434などの循環シフタの入力に送られる。例えば、「B」として示される連続値は、右側からの第2の位置を表す入力658Aに送られ、「C」として示される連続値は、右側からの第3の位置を表す入力659Aに送られる。
【0051】
図6Bは、本発明の少なくとも1つの実施形態による、セグメント長が3であり、2だけシフトされた、シフトされたターゲットセグメントの図である。シフトされたターゲットセグメント645Bは、ターゲットセグメント643であるが、ただし右側からA、B及びCの3つの連続値のみを有するものなどのターゲットセグメントの循環シフトの結果である。シフト量2の結果として、「C」として示される連続値は、「C」の元の位置から2つの位置だけ右にシフトされた新たな位置を占有する。「C」として示される連続値は、右側からの第1の位置を表す入力659Bに送られる。少なくとも幾つかの実施形態において、「C」として示される連続値は、右側からの第1の位置を表す、図4のアキュムレータ436などのアキュムレータの入力659Bに送られる。シフト量2の結果として、「B」として示される連続値は、新たな位置を占有する。「B」として示される連続値によって占有される新たな位置は、2つの位置だけ右にシフトされたように見えず、1つの位置だけ左にシフトされたように見える。これは、循環シフトにおいて、第1の位置を超えた右側の位置へのシフトは、左側の第1の位置へのシフトであるためである。「B」として示される連続値は、右側からの第3の位置を表す入力658Bに送られる。
【0052】
図6Cは、本発明の少なくとも1つの実施形態による、セグメント長が4であり、2だけシフトされた、シフトされたターゲットセグメントの図である。シフトされたターゲットセグメント645Cは、ターゲットセグメント643であるが、ただし右側からA、B、C及びDの4つの連続値のみを有するものなどのターゲットセグメントの循環シフトの結果である。シフト量2の結果として、「C」として示される連続値は、「C」の元の位置から2つの位置だけ右にシフトされた新たな位置を占有する。「C」として示される連続値は、右側からの第1の位置を表す入力659Cに送られる。シフト量2の結果として、「B」として示される連続値は、「B」の元の位置から2つの位置だけ右へのシフトに相当する新たな位置を占有する。「B」として示される連続値は、右側からの第4の位置を表す入力658Cに送られる。
【0053】
図6Dは、本発明の少なくとも1つの実施形態による、セグメント長が5であり、2だけシフトされた、シフトされたターゲットセグメントの図である。シフトされたターゲットセグメント645Dは、ターゲットセグメント643であるが、ただし右側からA、B、C、D及びEの5つの連続値のみを有するものなどのターゲットセグメントの循環シフトの結果である。シフト量2の結果として、「C」として示される連続値は、「C」の元の位置から2つの位置だけ右にシフトされた新たな位置を占有する。「C」として示される連続値は、右側からの第1の位置を表す入力659Dに送られる。シフト量2の結果として、「B」として示される連続値は、「B」の元の位置から2つの位置だけ右へのシフトに相当する新たな位置を占有する。「B」として示される連続値は、右側からの第5の位置を表す入力658Dに送られる。
【0054】
図6Eは、本発明の少なくとも1つの実施形態による、セグメント長が6であり、2だけシフトされた、シフトされたターゲットセグメントの図である。シフトされたターゲットセグメント645Dは、ターゲットセグメント643などのターゲットセグメントの循環シフトの結果である。シフト量2の結果として、「C」として示される連続値は、「C」の元の位置から2つの位置だけ右にシフトされた新たな位置を占有する。「C」として示される連続値は、右側からの第1の位置を表す入力659Eに送られる。シフト量2の結果として、「B」として示される連続値は、「B」の元の位置から2つの位置だけ右へのシフトに相当する新たな位置を占有する。「B」として示される連続値は、右側からの第6の位置を表す入力658Eに送られる。
【0055】
図7は、本発明の少なくとも幾つかの実施形態による、シフタ実装巡回置換行列演算を利用するLDPCデータ復号のための動作フローである。本動作フローは、シフタ実装巡回置換行列演算を利用するLDPCデータ復号の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される集積回路復号器308などの集積回路によって実行される。
【0056】
S760で、セグメンテーションプロセッサは、LDCP符号化されたデータブロックをセグメント化する。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを複数のデータ確率値セグメント及び複数のパリティ確率値セグメントに分割することにより、低密度パリティ検査(LDPC)符号化された確率値のデータブロックをセグメント化し、符号化されたデータブロックの各確率値は2進値間の尤度を表す。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを、1つ又は複数の予め定められた長さのセグメントに分割する。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを、符号化されたデータブロックの長さに従った長さを有するセグメントに分割する。
【0057】
S763で、復号プロセッサは、データ確率値セグメントを復号する。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにLDPCパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、パリティ検査行列に従って、データ確率値セグメント及びパリティ確率値セグメントに1つ又は複数の循環シフトを適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、対応するデータ確率値セグメント及びパリティ確率値セグメントの値のサブセット内の2進値を比較して、当該値の総和が偶数になることを確実にする。少なくとも幾つかの実施形態において、復号プロセッサは、反復変数正確度パラメータに従い、パリティ検査行列に基づき符号化されたデータブロックの確率値を調整することによって符号化されたデータブロックを復号し、パリティ検査行列は、データ確率値セグメント及びパリティ確率値セグメントの間の対応を定義し、ここで、反復変数正確度パラメータは、正確度及び計算効率の間のトレードオフを表す。少なくとも幾つかの実施形態において、復号プロセッサは、図8において示される動作フローを実行し、これについては以下で説明される。
【0058】
S769で、連結プロセッサは、尤もらしい2進値を連結する。少なくとも幾つかの実施形態において、連結プロセッサは、各データ確率値セグメントの確率値に関連付けられたパリティ検査行列を満たす尤もらしい2進値を連結して、復号されたデータブロックを形成する。少なくとも幾つかの実施形態において、連結プロセッサは、尤もらしい2進値セグメントを連結して、復号されたデータブロックを生成する。少なくとも幾つかの実施形態において、連結プロセッサは、尤もらしい2進値セグメントを連結して、元のデータブロックと同一のフォーマットにする。
【0059】
図8は、本発明の少なくとも1つの実施形態による、シフタ実装巡回置換行列演算を利用するデータ確率値セグメント復号のための動作フローである。本動作フローは、シフタ実装巡回置換行列演算を利用するデータ確率値セグメント復号の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される集積回路復号器308などの集積回路によって実行される。
【0060】
S870で、復号器は入力を選択する。少なくとも幾つかの実施形態において、復号器は、図3のセグメンテーションプロセッサ321などのセグメンテーションプロセッサから受信された確率値セグメントの中からの1つ又は複数の確率値セグメントを、更なる処理のために選択する。少なくとも幾つかの実施形態において、復号器は、入力セレクタを利用して入力を選択する。
【0061】
S873で、復号器は循環シフトを適用する。少なくとも幾つかの実施形態において、復号器は、1つ又は複数の確率値セグメントに循環シフトを適用して、シフトされた確率値セグメントを生成する。少なくとも幾つかの実施形態において、復号器は、循環シフタを利用して、1つ又は複数の確率値セグメントに循環シフトを適用する。少なくとも幾つかの実施形態において、復号器は、循環シフタを利用して、各クロック周期における確率値セグメントの連続値の一部をシフトすることにより、複数のクロック周期にわたり確率値セグメントに循環シフトを適用する。少なくとも幾つかの実施形態において、確率値セグメントの連続値の一部をシフトすることで、より小さいシフタの利用が可能になり、これにより、回路サイズをより小さくすることが可能になる。
【0062】
S876で、復号器は統計情報を蓄積する。少なくとも幾つかの実施形態において、復号器は、確率値を更新して復号された2進値セグメントを生成するための統計情報を蓄積する。少なくとも幾つかの実施形態において、復号器は、循環シフタを利用して、1つ又は複数のシフトされた確率値セグメントからの統計情報を蓄積する。少なくとも幾つかの実施形態において、復号器は、複数のアキュムレータを利用し、各アキュムレータは、1つ又は複数のシフトされた確率値セグメントのうちの1つのシフトされた確率値セグメントからの統計情報を蓄積する。
【0063】
図9は、本発明の少なくとも1つの実施形態による、シフタ実装巡回置換行列演算を適用するための動作フローである。本動作フローは、シフタ実装巡回置換行列演算を適用する方法を提供する。少なくとも幾つかの実施形態において、本方法は、図5において示される循環シフタ544など、集積回路の循環シフタによって実行される。
【0064】
S982で、循環シフタはマスクを選択する。少なくとも幾つかの実施形態において、循環シフタは、ルックアップテーブル(LUT)を利用することにより、マスクを選択する。少なくとも幾つかの実施形態において、循環シフタは、集積回路のマスクセレクタによって、シフト量及びセグメント長に対応するマージマスクを選択する。少なくとも幾つかの実施形態において、循環シフタは、シフト量及びセグメント長の関数に基づきマージマスクを生成する。少なくとも幾つかの実施形態において、マージマスクは、前方側からの逆シフト値に等しい連続位置における前方向位置インジケータ、及び、逆側に最も近接する前方向位置インジケータからのシフト量に等しい連続位置における逆方向位置インジケータ、を含む。少なくとも幾つかの実施形態において、循環シフタは、マスクセレクタによって、セグメント長に対応するフィルタマスクを選択する。少なくとも幾つかの実施形態において、フィルタマスクは、セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む。
【0065】
S984で、循環シフタは、ターゲットセグメントを前方向にシフトする。少なくとも幾つかの実施形態において、循環シフタは、集積回路の前方向シフタによって、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分ターゲットセグメントを生成する。少なくとも幾つかの実施形態において、循環シフタは、前方側からのシフト量未満である、又はそれに等しい元の位置を有するターゲットセグメントの各連続値を破棄する。少なくとも幾つかの実施形態において、循環シフタは、ターゲットセグメントの各残りの連続値を、当該残りの連続値の元の位置からシフト量だけ前方向にシフトされた位置を表す、図5の結合器557などの結合器の入力に送る。
【0066】
S985で、循環シフタは、ターゲットセグメントを逆方向にシフトする。少なくとも幾つかの実施形態において、循環シフタは、集積回路の逆シフタによって、ターゲットセグメントの各連続値を、セグメント長からシフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成する。少なくとも幾つかの実施形態において、循環シフタは、逆側からの逆シフト値未満である、又はそれに等しい元の位置を有するターゲットセグメントの各連続値を破棄する。少なくとも幾つかの実施形態において、循環シフタは、ターゲットセグメントの各残りの連続値を、当該残りの連続値の元の位置から逆シフト値だけ逆方向にシフトされた位置を表す、結合器の入力に送る。
【0067】
S987で、循環シフタは部分セグメントを結合する。少なくとも幾つかの実施形態において、循環シフタは、集積回路の結合器によって、前方向にシフトされた部分ターゲットセグメントと逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する。少なくとも幾つかの実施形態において、循環シフタは、前方向にシフトされた部分ターゲットセグメントの各連続値を、シフト量及びセグメント長に対応する、図4のアキュムレータ436などのアキュムレータの入力に送る。少なくとも幾つかの実施形態において、循環シフタは、逆方向にシフトされた部分ターゲットセグメントの各連続値を、シフト量及びセグメント長に対応するアキュムレータの入力に送る。少なくとも幾つかの実施形態において、循環シフタは、シフト量及びセグメント長に対応しない、前方向にシフトされた部分ターゲットセグメントの各連続値を破棄する。少なくとも幾つかの実施形態において、循環シフタは、シフト量及びセグメント長に対応しない、逆方向にシフトされた部分ターゲットセグメントの各連続値を破棄する。少なくとも幾つかの実施形態において、循環シフタは、集積回路の結合器によって、マージマスクに従い、前方向にシフトされた部分ターゲットセグメントと逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する。少なくとも幾つかの実施形態において、循環シフタは、前方向にシフトされた部分ターゲットセグメントの各連続値を、マージマスク内の前方向位置インジケータに対応する、図4のアキュムレータ436などのアキュムレータの入力に送る。少なくとも幾つかの実施形態において、循環シフタは、逆方向にシフトされた部分ターゲットセグメントの各連続値を、マージマスク内の逆方向位置インジケータに対応するアキュムレータの入力に送る。少なくとも幾つかの実施形態において、循環シフタは、マージマスク内の対応する前方向位置インジケータを欠く、前方向にシフトされた部分ターゲットセグメントの各連続値を破棄する。少なくとも幾つかの実施形態において、循環シフタは、マージマスク内の対応する逆方向位置インジケータを欠く、逆方向にシフトされた部分ターゲットセグメントの各連続値を破棄する。
【0068】
S989で、循環シフタは、シフトされたターゲットセグメントをフィルタリングする。少なくとも幾つかの実施形態において、循環シフタは、結合器によって、フィルタマスクに従い、シフトされたターゲットセグメントをフィルタリングする。少なくとも幾つかの実施形態において、循環シフタは、シフトされたターゲットセグメントの各連続値を、フィルタマスク内のマスクされていないインジケータに対応するアキュムレータの入力に送る。少なくとも幾つかの実施形態において、循環シフタは、フィルタマスクに従い、シフトされたターゲットセグメントの一部ではない値を破棄し、その結果は、シフトされたターゲットセグメントのままであるが、前の反復から残されたものなどの、セグメント長の外側の任意の値を伴わない。少なくとも幾つかの実施形態において、循環シフタは、シフト量及びセグメント長548のうちのセグメント長に対応するフィルタマスクに従い、複数のマルチプレクサを制御する。少なくとも幾つかの実施形態において、循環シフタは、マスク556の対応する1ビットのフラグに従い、各マルチプレクサを制御する。
【0069】
循環シフト適用の少なくとも幾つかの実施形態において、循環シフタは、マージマスクを選択しない。循環シフト適用の少なくとも幾つかの実施形態において、フィルタリングは任意選択であるため、循環シフタは、フィルタマスクを選択しない、又はシフトされたターゲットセグメントをフィルタリングしない。少なくとも幾つかの実施形態において、S984及びS985における動作は、S984及びS985における当該動作がS987における動作の前に実行される限りにおいて、重複した時間にであっても、又は同時にであっても、任意の順序で実行され得る。少なくとも幾つかの実施形態において、循環シフタは、ターゲットセグメントがS984及びS985においてシフトされる前に、フィルタによって、ターゲットセグメントをフィルタリングする。
【0070】
図10は、本発明の少なくとも1つの実施形態による、シフト量が2であるシフタ実装巡回置換行列演算を受けるデータセグメントの図である。ターゲットセグメント1043のセグメント長は5であり、従って、右側からA、B、C、D及びEとして示される5つの連続値を含み、これは、本実施形態における前方側の実装である。各連続値は、当該連続値の元の位置を表す入力に送られる。少なくとも幾つかの実施形態において、各連続値は、図4の入力セレクタ432などの入力セレクタによって、当該連続値の元の位置を表す、図4の循環シフタ434などの循環シフタの入力に送られる。本実施形態においては、演算の最大セグメント長を表す6つの入力が存在する。本実施形態において、「F」として示される値は、ターゲットセグメント1043の一部ではないが、ターゲットセグメント長ごとに異なるハードウェア構成又はソフトウェア命令の必要性を回避するため、シフトの各動作において6つの入力が利用される。
【0071】
図9のS984における動作のように、ターゲットセグメント1043を前方向にシフトした結果として、前方向にシフトされた部分ターゲットセグメント1054が生成される。動作中、「A」及び「B」として示される値は、それらがシフト量未満又はそれに等しい位置を占有するため破棄され、「C」、「D」、「E」及び「F」として示される値は、2つの位置だけ前方向にシフトされる。少なくとも幾つかの実施形態において、「C」、「D」、「E」及び「F」として示される連続値の各々は、図5の前方向シフタ553などの前方向シフタによって、当該連続値の元の位置から2つの位置分前方向にシフトされた位置を表す、図5の結合器557などの結合器の入力に送られる。「F」として示される値は、この値がターゲットセグメント1043の一部ではないという事実にかかわらず、シフトされる。
【0072】
図9のS985における動作のように、ターゲットセグメント1043を逆方向にシフトした結果として、逆方向にシフトされた部分ターゲットセグメント1052が生成される。動作中、セグメント長からシフト量を引いた値に等しい逆シフト値は、3であると判定される。動作中、「D」、「E」及び「F」として示される値は、それらが逆シフト値未満又はそれに等しい位置を占有するため破棄され、「A」、「B」及び「C」として示される値は、3つの位置だけ逆方向にシフトされる。少なくとも幾つかの実施形態において、「A」、「B」及び「C」として示される連続値の各々は、図5の逆方向シフタ551などの逆方向シフタによって、当該連続値の元の位置から3つの位置分逆方向にシフトされた位置を表す、図5の結合器557などの結合器の入力に送られる。
【0073】
任意選択的に、図9のS982における動作のようなマスク選択の結果として、マージマスク1056が取り出される。マージマスク1056は、「1」及び「0」で表される連続インジケータを含む。「1」で表される値は、前方向位置インジケータである。前方向位置インジケータは、シフトされたターゲットセグメント1045内の位置を正確に占有する、前方向にシフトされた部分ターゲットセグメント1054の連続値に対応する位置を占有する。「0」で表される値は、逆方向位置インジケータである。逆方向位置インジケータは、シフトされたターゲットセグメント1045内の位置を正確に占有する、逆方向にシフトされた部分ターゲットセグメント1052の連続値に対応する位置を占有する。マージマスク1056内の位置は、2進法インジケータによって示され、従って、占有されていない状態にしておくことが意図された位置も、これもまた逆方向位置インジケータでもあるにもかかわらず、「0」によって表される。少なくとも幾つかの実施形態において、循環シフタは、占有されていない状態にしておくことが意図された位置における値が、無視されるように、又は、シフタに到達する前に0にマスクされるように構成されている。
【0074】
任意選択的に、図9のS982における動作のようなマスク選択の結果として、フィルタマスク1090が取り出される。フィルタマスク1090は、「0」及び「1」で表される連続インジケータを含む。少なくとも幾つかの実施形態において、連続インジケータは、1ビットのフラグである。「0」で表される値は、マスクされた位置インジケータである。マスクされた位置インジケータは、シフトされたターゲットセグメント1045内の、占有されていない位置、又は、0にマスクされた位置、に対応する位置を占有する。「1」で表される値は、マスクされていない位置インジケータである。マスクされていない位置インジケータは、シフトされたターゲットセグメント1045内の、占有された位置に対応する位置を占有する。
【0075】
図9のS987における動作のように、シフト量2及びセグメント長5に従い、前方向にシフトされた部分ターゲットセグメント1054及び逆方向にシフトされた部分ターゲットセグメント1052を、任意選択的にマージマスク1056及びフィルタマスク1090の一方又は両方を用いて結合した結果として、シフトされたターゲットセグメント1045が生成される。「C」として示される値は、前方向にシフトされた部分ターゲットセグメント1054内の対応する位置を占有し、マージマスク1056内の対応する位置は、前方向位置インジケータ「F」によって占有されるため、シフトされたターゲットセグメント1045の右側、すなわち前方側の第1の位置は、「C」として示される値によって占有される。同様に、シフトされたターゲットセグメント1045の他の各位置は、前方向にシフトされた部分ターゲットセグメント1054又は逆方向にシフトされた部分ターゲットセグメント1052のいずれかにおける対応する位置の値によって占有される。少なくとも幾つかの実施形態において、連続値の各々は、図5の結合器557などの結合器によって、循環シフト量2及びセグメント長5に従い、当該連続値の元の位置から2つの位置分前方向にシフトされた位置を表す、図4のアキュムレータ436などのアキュムレータの入力に送られる。シフトされたターゲットセグメント1045の右側、すなわち前方側の第6の位置は、「C」として示される値に対応するが、この値はシフトされたターゲットセグメント1045の一部ではない。
【0076】
少なくとも幾つかの実施形態において、装置は、本明細書の動作を実行するために論理的な機能を処理することができる別のデバイスである。少なくとも幾つかの実施形態において、コントローラ及びストレージユニットは、完全に別個のデバイスである必要はなく、幾つかの実施形態において、回路又は1つ又は複数のコンピュータ可読媒体を共有する。少なくとも幾つかの実施形態において、ストレージユニットは、コントローラによってアクセスされるコンピュータ実行可能命令及びデータの両方を記憶するハードドライブを含み、コントローラは、中央処理装置(CPU)及びRAMの組み合わせを含み、その中に、コンピュータ実行可能命令が本明細書の動作の実行の最中にCPUによる実行のために全体が又は一部がコピーされることが可能である。
【0077】
少なくとも幾つかの実施形態は、そのブロックが(1)動作が実行される処理のステップ、又は(2)動作を実行することを担うコントローラのセクション、を表すフローチャート及びブロック図を参照して説明されている。少なくとも幾つかの実施形態において、特定のステップ及びセクションは、専用回路、コンピュータ可読媒体上に記憶されたコンピュータ可読命令を供給されているプログラマブル回路、及び/又はコンピュータ可読媒体上に記憶されたコンピュータ可読命令を供給されているプロセッサによって実装される。少なくとも幾つかの実施形態において、専用回路は、デジタル及び/又はアナログハードウェア回路を含み、集積回路(IC)及び/又はディスクリート回路を含む。少なくとも幾つかの実施形態において、プログラマブル回路は、論理AND、OR、XOR、NAND、NOR及び他の論理動作、フリップフロップ、レジスタ、メモリ要素等を含む再構成可能ハードウェア回路、例えば、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等を含む。
【0078】
少なくとも幾つかの実施形態において、コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を維持及び記憶できる有形デバイスを含む。幾つかの実施形態において、コンピュータ可読記憶媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは以下:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM:read-only memory)、消去可能プログラマブルリードオンリメモリ(EPROM:erasable programmable read-only memory又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM:compact disc read-only memory)、デジタルバーサタイルディスク(DVD:digital versatile disk)、メモリスティック、フロッピディスク、命令が記録されているパンチカード又は溝内の隆起構造などの機械的に符号化されるデバイス、及び前述のものの任意の好適な組み合わせ、を含む。本明細書で使用される場合、コンピュータ可読記憶媒体は、電波又は自由伝搬する他の電磁波、導波路又は他の送信媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は、ワイヤを通って送信される電気信号などの一時的な信号それ自体であるとして解釈されるべきではない。
【0079】
少なくとも幾つかの実施形態において、本明細書で説明されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへ、又は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージデバイスへ、ダウンロード可能である。少なくとも幾つかの実施形態において、ネットワークは、銅送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含む。少なくとも幾つかの実施形態において、各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために当該コンピュータ可読プログラム命令を転送する。
【0080】
少なくとも幾つかの実施形態において、上記で説明された動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、オブジェクト指向プログラミング言語、例えば、Smalltalk(登録商標)、又はC++等、及び従来の手続き型プログラミング言語、例えば、"C"プログラミング言語又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかである。少なくとも幾つかの実施形態において、コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体が実行されるか、スタンドアロンのソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で且つ部分的にリモートコンピュータ上で実行されるか、又は、リモートコンピュータ又はサーバ上で全体が実行される。少なくとも幾つかの実施形態において、後者のシナリオにおいては、リモートコンピュータはユーザのコンピュータへ、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されるか、又は接続が(例えば、インターネットサービスプロバイダを用いるインターネットを通じて)外部コンピュータに対して行われる。少なくとも幾つかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行する。
【0081】
本発明の実施形態が説明されたが、特許請求の範囲に記載のいかなる主題の技術的範囲も、上記で説明された実施形態に限定されない。当業者であれば、上記で説明された実施形態に対する様々な改変及び改良が可能であることを理解するであろう。当業者であれば、特許請求の範囲の範囲から、そのような改変又は改良が加えられた実施形態が、本発明の技術的範囲に含まれることをも理解するであろう。
【0082】
特許請求の範囲、実施形態、又は図において示される装置、システム、プログラム、及び方法によって実行される各プロセスの動作、手順、ステップ、及びステージは、その順序が「に先立ち」又は「より前に」等によって示されていない限り、及び、前のプロセスからの出力が後のプロセスにおいて使用されない限り、任意の順序で実行されることが可能である。特許請求の範囲、実施形態、又は図において、プロセスフローが「最初に」又は「次に」などの語句を用いて説明される場合でも、そのような説明は、説明された順序でプロセスが実行されなければならないことを必ずしも意味するものではない。
【0083】
少なくとも幾つかの実施形態において、シフタ実装巡回置換行列演算は、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメントを生成するように構成された前方向シフタ、ターゲットセグメントの各連続値を、セグメント長からシフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成するように構成された逆方向シフタ、シフト量及びセグメント長に従い、前方向にシフトされた部分ターゲットセグメントと逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成するように構成された結合器、及び、シフト量及びセグメント長に対応するマージマスク及びセグメント長に対応するフィルタマスクのうちの少なくとも一方を選択するように構成されたマスクセレクタ、を備える集積回路によって実現される。
【0084】
前述の事柄は、当業者が本開示の態様をより良く理解するように、複数の実施形態の特徴を概説したものである。当業者であれば、本開示が、本明細書で導入された実施形態と同じ目的を実行する、及び/又は同じ利点を実現するための他のプロセス及び構造を設計又は修正するための基礎として容易に使用可能であることを理解すべきである。当業者はまた、そのような均等な構成が本開示の趣旨及び範囲から逸脱しないこと、及び、本明細書の様々な変更、置換、及び改変が本開示の趣旨及び範囲から逸脱することなく可能であることを認識すべきである。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図6E
図7
図8
図9
図10
【手続補正書】
【提出日】2024-11-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメントを生成するように構成された前方向シフタ;
前記ターゲットセグメントの各連続値を、セグメント長から前記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成するように構成された逆方向シフタ;
前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成するように構成された結合器;及び
マスクセレクタであって、
前記前方向にシフトされた部分ターゲットセグメントの連続値に対応する位置を示す前方向位置インジゲータと前記逆方向にシフトされた部分ターゲットセグメントの連続値に対応する位置を示す逆方向位置インジゲータとを含む、前記シフト量及び前記セグメント長に対応するマージマスク、及び
前記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、前記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択するように構成されたマスクセレクタ
を備える集積回路。
【請求項2】
前記前方向シフタは、
前方側からの前記シフト量未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する;及び
前記ターゲットセグメントの各残りの連続値を、前記結合器の、前記残りの連続値の前記元の位置から前記シフト量だけ前方向にシフトされた位置入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項3】
前記逆方向シフタは、
逆側からの前記逆シフト値未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する;及び
前記ターゲットセグメントの各残りの連続値を、前記結合器の、前記残りの連続値の前記元の位置から前記逆シフト値だけ逆方向にシフトされた位置入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項4】
前記結合器は、
前記前方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る;
前記逆方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る
ように更に構成されている、請求項1に記載の集積回路。
【請求項5】
前記結合器は、前記マージマスクに従い、前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合するように更に構成されている、請求項1に記載の集積回路。
【請求項6】
前記マージマスクは、
前方側からの前記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの前記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、請求項1に記載の集積回路。
【請求項7】
前記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、前記フィルタマスクに従い、前記ターゲットセグメントをフィルタリングするように構成されたフィルタ
を更に備える、請求項1に記載の集積回路。
【請求項8】
前記結合器は、
前記フィルタマスクに従い、前記シフトされたターゲットセグメントをフィルタリングする
ように更に構成されている、請求項1に記載の集積回路。
【請求項9】
集積回路の前方向シフタが、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分ターゲットセグメントを生成する段階;
前記集積回路の逆方向シフタが、前記ターゲットセグメントの各連続値を、セグメント長から前記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成する段階;
前記集積回路の結合器が、前記前方向にシフトされた部分ターゲットセグメントと前記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する段階;及び
前記集積回路のマスクセレクタが、
前記前方向にシフトされた部分ターゲットセグメントの連続値に対応する位置を示す前方向位置インジゲータと前記逆方向にシフトされた部分ターゲットセグメントの連続値に対応する位置を示す逆方向位置インジゲータとを含む、前記シフト量及び前記セグメント長に対応するマージマスク、及び
前記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、前記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択する段階
を備える方法。
【請求項10】
前記前方向にシフトする段階は、
前方側からの前記シフト量未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する段階;及び
前記ターゲットセグメントの各残りの連続値を、前記結合器の、前記残りの連続値の前記元の位置から前記シフト量だけ前方向にシフトされた位置入力に送る段階
を有する、請求項に記載の方法。
【請求項11】
前記逆方向にシフトする段階は、
逆側からの前記逆シフト値未満である、又はそれに等しい元の位置を有する前記ターゲットセグメントの各連続値を破棄する段階;及び
前記ターゲットセグメントの各残りの連続値を、前記結合器の、前記残りの連続値の前記元の位置から前記逆シフト値だけ逆方向にシフトされた位置入力に送る段階
を有する、請求項に記載の方法。
【請求項12】
前記結合する段階は、
前記前方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る段階;
前記逆方向にシフトされた部分ターゲットセグメントの各連続値を、前記シフト量及び前記セグメント長に対応する入力に送る段階
を有する、請求項に記載の方法。
【請求項13】
前記前方向にシフトされた部分ターゲットセグメントは、前記マージマスクに従い、前記逆方向にシフトされた部分ターゲットセグメントと結合される、請求項に記載の方法。
【請求項14】
前記マージマスクは、
前方側からの前記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの前記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、請求項に記載の方法。
【請求項15】
前記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、前記集積回路のフィルタが、前記フィルタマスクに従い、前記ターゲットセグメントをフィルタリングする段階
を更に備える、請求項に記載の方法。
【請求項16】
前記マスクセレクタが、フィルタマスクを選択する段階;及び
前記結合器が、前記フィルタマスクに従い、前記シフトされたターゲットセグメントをフィルタリングする段階
を更に備える、請求項に記載の方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0084
【補正方法】変更
【補正の内容】
【0084】
前述の事柄は、当業者が本開示の態様をより良く理解するように、複数の実施形態の特徴を概説したものである。当業者であれば、本開示が、本明細書で導入された実施形態と同じ目的を実行する、及び/又は同じ利点を実現するための他のプロセス及び構造を設計又は修正するための基礎として容易に使用可能であることを理解すべきである。当業者はまた、そのような均等な構成が本開示の趣旨及び範囲から逸脱しないこと、及び、本明細書の様々な変更、置換、及び改変が本開示の趣旨及び範囲から逸脱することなく可能であることを認識すべきである。
本明細書によれば、以下の各項目もまた開示される。
[項目1]
ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分セグメントを生成するように構成された前方向シフタ;
上記ターゲットセグメントの各連続値を、セグメント長から上記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成するように構成された逆方向シフタ;
上記前方向にシフトされた部分ターゲットセグメントと上記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成するように構成された結合器;及び
マスクセレクタであって、
上記シフト量及び上記セグメント長に対応するマージマスク、及び
上記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択するように構成されたマスクセレクタ
を備える集積回路。
[項目2]
上記前方向シフタは、
前方側からの上記シフト量未満である、又はそれに等しい元の位置を有する上記ターゲットセグメントの各連続値を破棄する;及び
上記ターゲットセグメントの各残りの連続値を、上記残りの連続値の上記元の位置から上記シフト量だけ前方向にシフトされた位置を表す、上記結合器の入力に送る
ように更に構成されている、項目1に記載の集積回路。
[項目3]
上記逆方向シフタは、
逆側からの上記逆シフト値未満である、又はそれに等しい元の位置を有する上記ターゲットセグメントの各連続値を破棄する;及び
上記ターゲットセグメントの各残りの連続値を、上記残りの連続値の上記元の位置から上記逆シフト値だけ逆方向にシフトされた位置を表す、上記結合器の入力に送る
ように更に構成されている、項目1に記載の集積回路。
[項目4]
上記結合器は、
上記前方向にシフトされた部分ターゲットセグメントの各連続値を、上記シフト量及び上記セグメント長に対応する入力に送る;
上記逆方向にシフトされた部分ターゲットセグメントの各連続値を、上記シフト量及び上記セグメント長に対応する入力に送る
ように更に構成されている、項目1に記載の集積回路。
[項目5]
上記結合器は、上記マージマスクに従い、上記前方向にシフトされた部分ターゲットセグメントと上記逆方向にシフトされた部分ターゲットセグメントを結合するように更に構成されている、項目1に記載の集積回路。
[項目6]
上記マージマスクは、
前方側からの上記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの上記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、項目1に記載の集積回路。
[項目7]
上記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、上記フィルタマスクに従い、上記ターゲットセグメントをフィルタリングするように構成されたフィルタ
を更に備える、項目1に記載の集積回路。
[項目8]
上記結合器は、
上記フィルタマスクに従い、上記シフトされたターゲットセグメントをフィルタリングする
ように更に構成されている、項目1に記載の集積回路。
[項目9]
上記フィルタマスクは、上記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、項目1に記載の集積回路。
[項目10]
集積回路の前方向シフタが、ターゲットセグメントの各連続値をシフト量だけ前方向にシフトして、前方向にシフトされた部分ターゲットセグメントを生成する段階;
上記集積回路の逆方向シフタが、上記ターゲットセグメントの各連続値を、セグメント長から上記シフト量を引いた値に等しい逆シフト値だけ逆方向にシフトして、逆方向にシフトされた部分ターゲットセグメントを生成する段階;
上記集積回路の結合器が、上記前方向にシフトされた部分ターゲットセグメントと上記逆方向にシフトされた部分ターゲットセグメントを結合して、シフトされたターゲットセグメントを生成する段階;及び
上記集積回路のマスクセレクタが、
上記シフト量及び上記セグメント長に対応するマージマスク、及び
上記セグメント長に対応するフィルタマスク
のうちの少なくとも一方を選択する段階
を備える方法。
[項目11]
上記前方向にシフトする段階は、
前方側からの上記シフト量未満である、又はそれに等しい元の位置を有する上記ターゲットセグメントの各連続値を破棄する段階;及び
上記ターゲットセグメントの各残りの連続値を、上記残りの連続値の上記元の位置から上記シフト量だけ前方向にシフトされた位置を表す、上記結合器の入力に送る段階
を有する、項目10に記載の方法。
[項目12]
上記逆方向にシフトする段階は、
逆側からの上記逆シフト値未満である、又はそれに等しい元の位置を有する上記ターゲットセグメントの各連続値を破棄する段階;及び
上記ターゲットセグメントの各残りの連続値を、上記残りの連続値の上記元の位置から上記逆シフト値だけ逆方向にシフトされた位置を表す、上記結合器の入力に送る段階
を有する、項目10に記載の方法。
[項目13]
上記結合する段階は、
上記前方向にシフトされた部分ターゲットセグメントの各連続値を、上記シフト量及び上記セグメント長に対応する入力に送る段階;
上記逆方向にシフトされた部分ターゲットセグメントの各連続値を、上記シフト量及び上記セグメント長に対応する入力に送る段階
を有する、項目10に記載の方法。
[項目14]
上記前方向にシフトされた部分ターゲットセグメントは、上記マージマスクに従い、上記逆方向にシフトされた部分ターゲットセグメントと結合される、項目10に記載の方法。
[項目15]
上記マージマスクは、
前方側からの上記逆シフト値に等しい連続位置における前方向位置インジケータ、及び
逆側に最も近接する前方向位置インジケータからの上記シフト量に等しい連続位置における逆方向位置インジケータ
を含む、項目10に記載の方法。
[項目16]
上記ターゲットセグメントが前方向にシフトされ、かつ逆方向にシフトされる前に、上記集積回路のフィルタが、上記フィルタマスクに従い、上記ターゲットセグメントをフィルタリングする段階
を更に備える、項目10に記載の方法。
[項目17]
上記マスクセレクタが、フィルタマスクを選択する段階;及び
上記結合器が、上記フィルタマスクに従い、上記シフトされたターゲットセグメントをフィルタリングする段階
を更に備える、項目10に記載の方法。
[項目18]
上記フィルタマスクは、上記セグメント長に等しい前方側からの連続位置におけるマスクされていない位置インジケータを含む、項目10に記載の方法。
【外国語明細書】