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

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

▶ EDGECORTIX株式会社の特許一覧

特開2024-166128ページドバッファリングを用いた集積回路データストリーム処理
<>
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図1
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図2
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図3
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図4
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図5
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図6
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図7
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図8
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図9
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図10
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図11
  • 特開-ページドバッファリングを用いた集積回路データストリーム処理 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024166128
(43)【公開日】2024-11-28
(54)【発明の名称】ページドバッファリングを用いた集積回路データストリーム処理
(51)【国際特許分類】
   G06F 15/167 20060101AFI20241121BHJP
   G06F 12/00 20060101ALI20241121BHJP
【FI】
G06F15/167 610A
G06F12/00 560A
G06F12/00 570A
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024078441
(22)【出願日】2024-05-14
(11)【特許番号】
(45)【特許公報発行日】2024-10-16
(31)【優先権主張番号】63/502,417
(32)【優先日】2023-05-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/589,430
(32)【優先日】2024-02-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520043615
【氏名又は名称】EDGECORTIX株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】家富邦彦
(72)【発明者】
【氏名】ネズ ニコライ
(72)【発明者】
【氏名】ハビン オレグ
(72)【発明者】
【氏名】ダスグプタ サキャシンガ
【テーマコード(参考)】
5B045
5B160
【Fターム(参考)】
5B045BB32
5B160KA02
5B160KA04
(57)【要約】      (修正有)
【課題】無線通信を信頼性が高く効率的なものにする集積回路及び方法を提供する。
【解決手段】上流ランダムアクセスメモリ、ローカル読み出しカウンタ、下流ランダムアクセスメモリ、ローカル書き込みカウンタ及びプロセッサを備える集積回路によって実行されるページドバッファリングを利用する集積回路データストリーム処理であって、ローカル読み出しカウンタは、任意のアクセス可能なデータブロックが上流メモリに記憶されているかどうかを示す値と、下流メモリの任意の下流ページが記録のために利用可能であるかどうかを示す値と、を記憶する。プロセッサは、ページ解放を示すためにローカル読み出しカウンタを調整し、ページ占有を示すためにローカル書き込みカウンタを調整し、上流メモリに記録された第1のデータブロックを読み出し、第1のデータブロックを処理して第2のデータブロックを生成し、第2のデータブロックを下流メモリに記録する。
【選択図】図5
【特許請求の範囲】
【請求項1】
少なくとも3つの上流ページを有する上流ランダムアクセスメモリ、前記上流ランダムアクセスメモリは、前記少なくとも3つの上流ページのうちの各上流ページにデータブロックを記憶するように構成されている;
任意のアクセス可能なデータブロックが前記上流ランダムアクセスメモリに記録されているかどうかを示す値を記憶するように構成されたローカル読み出しカウンタ;
少なくとも3つの下流ページを有する下流ランダムアクセスメモリ、前記下流ランダムアクセスメモリは、前記少なくとも3つの下流ページのうちの各下流ページにデータブロックを記憶するように構成されている;
前記下流ランダムアクセスメモリの任意の下流ページが記録のために利用可能であるかどうかを示す値を記憶するように構成されたローカル書き込みカウンタ;
前記ローカル読み出しカウンタが、少なくとも1つのアクセス可能なデータブロックが前記上流ランダムアクセスメモリに記憶されていることを示す値を含み、かつ、前記ローカル書き込みカウンタが、前記下流ランダムアクセスメモリの少なくとも1つの下流ページが記録のために利用可能であることを示す値を含むと判定したことに応答して、動作を実行するように構成されたプロセッサであって、前記動作は:
ページ解放を示すために前記ローカル読み出しカウンタを調整する手順、
ページ占有を示すために前記ローカル書き込みカウンタを調整する手順、
前記上流ランダムアクセスメモリに記録された第1のデータブロックを読み出す手順、
前記第1のデータブロックを処理して第2のデータブロックを生成する手順、及び
前記第2のデータブロックを前記下流ランダムアクセスメモリに記憶する手順
を有するプロセッサ
を備える集積回路。
【請求項2】
前記プロセッサは、前記第1のデータブロックの前記読み出しが完了したことに応答して、ページ解放を示すためにリモート書き込みカウンタを調整するように更に構成されており;
前記プロセッサは、前記第2のデータブロックの前記記録が完了したことに応答して、ページ占有を示すためにリモート読み出しカウンタを調整するように更に構成されている
請求項1に記載の集積回路。
【請求項3】
前記プロセッサは、前記第1のデータブロックの前記読み出しが完了したことに応答して、前記上流ランダムアクセスメモリの読み出しページアドレスを更新するように更に構成されており;
前記プロセッサは、前記第2のデータブロックの前記記録が完了したことに応答して、前記下流ランダムアクセスメモリの書き込みページアドレスを更新するように更に構成されている
請求項1に記載の集積回路。
【請求項4】
少なくとも3つのパラメータページを有するパラメータランダムアクセスメモリ、前記パラメータランダムアクセスメモリは、前記少なくとも3つのパラメータページのうちの各パラメータページにパラメータ値ブロックを記憶するように構成されている;
任意のアクセス可能なパラメータ値ブロックが前記パラメータランダムアクセスメモリに記憶されているかどうかを示す値を記憶するように構成されたローカルパラメータ読み出しカウンタ;
を更に備え、
ここで、前記プロセッサは、前記ローカルパラメータ読み出しカウンタが、少なくとも1つのアクセス可能なパラメータ値ブロックが前記パラメータランダムアクセスメモリに記憶されていることを示す値を含むと判定することに更に応答して前記動作を実行するように更に構成されており;
ここで、前記動作は、前記パラメータランダムアクセスメモリに記録された前記パラメータ値ブロックを読み出す手順を更に有し;
ここで、前記プロセッサは、前記パラメータ値ブロックに従い、前記第1のデータブロックを処理するように更に構成されている
請求項1に記載の集積回路。
【請求項5】
前記プロセッサは、前記第1のデータブロックの元のデータブロックを、前記パラメータ値ブロックによって定義された1つ又は複数の予め定められた長さの前記第2のデータブロックの中の複数のデータセグメントに分割するように構成されたセグメンテーションプロセッサである
請求項4に記載の集積回路。
【請求項6】
前記プロセッサは、前記第1のデータブロックの中の複数のデータセグメントに前記パラメータ値ブロックの中のパリティ検査行列を適用して、前記第2のデータブロックの中にパリティセグメントを生成するように構成された符号化プロセッサである
請求項4に記載の集積回路。
【請求項7】
前記プロセッサは、前記第1のデータブロックの中の複数のデータセグメントを複数のパリティセグメントと連結して、前記第2のデータブロックの符号化されたデータブロックを生成するように構成された連結プロセッサである
請求項4に記載の集積回路。
【請求項8】
前記プロセッサは、前記第1のデータブロックの符号化されたデータ確率値ブロックを、前記第2のデータブロックの中の複数のデータ確率値セグメント、及び、前記パラメータ値ブロックによって定義された1つ又は複数の予め定められた長さの前記第2のデータブロックの中の複数のパリティ確率値セグメントに分割するように構成されたセグメンテーションプロセッサである
請求項4に記載の集積回路。
【請求項9】
前記プロセッサは、前記パラメータ値ブロックの中のパリティ検査行列に基づき、前記第1のデータブロックの符号化されたデータブロックの確率値を調整して、前記第2のデータブロックの中に尤もらしい2進値を生成するように構成された復号プロセッサである
請求項4に記載の集積回路。
【請求項10】
前記プロセッサは、前記第1のデータブロックの中の複数の復号された2進値セグメントを連結して、前記第2のデータブロックの復号されたデータブロックを生成するように構成された連結プロセッサである
請求項4に記載の集積回路。
【請求項11】
少なくとも3つのページを有するランダムアクセスメモリ、前記ランダムアクセスメモリは、前記少なくとも3つのページのうちの各ページにデータブロックを記憶するように構成されている;
任意のアクセス可能なデータブロックが前記ランダムアクセスメモリに記憶されているかどうかを示す値を記憶する読み出しカウンタ;
前記ランダムアクセスメモリの任意のページが記録のために利用可能であるかどうかを示す値を記憶する書き込みカウンタ;
前記書き込みカウンタが、前記ランダムアクセスメモリの少なくとも1つのページが記録のために利用可能であることを示す値を含むと判定したことに応答して、上流動作を実行するように構成された上流プロセッサであって、前記上流動作は:
ページ占有を示すために前記書き込みカウンタを調整する手順、
前記ランダムアクセスメモリの前記少なくとも3つのページのうちの第1のページに、第1のデータブロックを記録する手順、及び
前記第1のデータブロックの前記記録が完了したことに更に応答して、ページ占有を示すために前記読み出しカウンタを調整する手順
を有する上流プロセッサ;
前記読み出しカウンタが、少なくとも1つのアクセス可能なデータブロックが前記ランダムアクセスメモリに記憶されていることを示す値を含むと判定したことに応答して、下流動作を実行するように構成された下流プロセッサであって、前記下流動作は:
ページ解放を示すために前記読み出しカウンタを調整する手順、
前記ランダムアクセスメモリの前記第1のページに記録された前記第1のデータブロックを読み出す手順、
前記第1のデータブロックを処理する手順、及び
前記第1のデータブロックの前記読み出しが完了したことに更に応答して、ページ解放を示すために前記書き込みカウンタを調整する手順
を有する下流プロセッサ
を備える集積回路。
【請求項12】
前記上流プロセッサは、前記下流プロセッサが前記ランダムアクセスメモリの前記第1のページに記録された前記第1のデータブロックを読み出す間に、前記ランダムアクセスメモリの前記少なくとも3つのページのうちの第2のページに第2のデータブロックを記録するように更に構成されている
請求項11に記載の集積回路。
【請求項13】
前記上流プロセッサは前記書き込みカウンタと直接通信しており;
前記下流プロセッサは前記読み出しカウンタと直接通信している
請求項11に記載の集積回路。
【請求項14】
前記上流プロセッサは、前記第1のデータブロックの前記記録が完了したことに応答して、前記ランダムアクセスメモリの書き込みページアドレスを更新するように更に構成されており;
前記下流プロセッサは、前記第1のデータブロックの前記読み出しを完了したことに応答して、前記ランダムアクセスメモリの読み出しページアドレスを更新するように更に構成されている
請求項11に記載の集積回路。
【請求項15】
前記上流プロセッサは、元のデータブロックを第2のデータブロックの中の複数のデータセグメントに分割するように構成されたセグメンテーションプロセッサであり、
前記下流プロセッサは、前記第1のデータブロックの中の複数のデータセグメントにパリティ検査行列を適用してパリティセグメントを生成するように構成された符号化プロセッサである
請求項14に記載の集積回路。
【請求項16】
前記上流プロセッサは、複数のデータセグメントにパリティ検査行列を適用して、第2のデータブロックの中にパリティセグメントを生成するように構成された符号化プロセッサであり、
前記下流プロセッサは、前記第1のデータブロックの中の複数のデータセグメントを前記第1のデータブロックの中の複数のパリティセグメントと連結して、符号化されたデータブロックを生成するように構成された連結プロセッサである
請求項14に記載の集積回路。
【請求項17】
集積回路のプロセッサが、前記集積回路のローカル読み出しカウンタが、少なくとも1つのアクセス可能なデータブロックが前記集積回路の上流メモリに記憶されていることを示す値を含み、前記集積回路のローカル書き込みカウンタが、前記集積回路の下流メモリの少なくとも1つの下流ページが記録のために利用可能であることを示す値を含むと判定したことに応答して、動作を実行する段階
を備え、前記動作は:
ページ解放を示すために前記ローカル読み出しカウンタを調整する手順、
ページ占有を示すために前記ローカル書き込みカウンタを調整する手順、
前記上流メモリに記録された第1のデータブロックを読み出す手順、
前記第1のデータブロックを処理して第2のデータブロックを生成する手順、及び
前記第2のデータブロックを前記集積回路の下流メモリに記録する手順
を有する、方法。
【請求項18】
前記第1のデータブロックの前記読み出しが完了したことに応答して、ページ解放を示すためにリモート書き込みカウンタを調整する段階;及び
前記第2のデータブロックの前記記録が完了したことに応答して、ページ占有を示すためにリモート読み出しカウンタを調整する段階
を更に備える、請求項17に記載の方法。
【請求項19】
前記第1のデータブロックの前記読み出しが完了したことに応答して、前記上流メモリの読み出しページアドレスを更新する段階;及び
前記第2のデータブロックの前記記録が完了したことに応答して、前記下流メモリの書き込みページアドレスを更新する段階
を更に備える、請求項17に記載の方法。
【請求項20】
前記動作は、前記集積回路のパラメータランダムアクセスメモリに記録されたパラメータ値ブロックを読み出す手順を更に有し;
前記動作を前記実行する手順は、ローカルパラメータ読み出しカウンタが、少なくとも1つのアクセス可能なパラメータ値ブロックが前記パラメータランダムアクセスメモリに記憶されていることを示す値を含むと判定することに更に応答しており;
前記第1のデータブロックを前記処理する手順は、前記パラメータ値ブロックに従っている
請求項17に記載の方法。
【発明の詳細な説明】
【背景技術】
【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】本発明の少なくとも幾つかの実施形態による、データストリーム処理のためにページドバッファリング(paged buffering)を利用する集積回路の概略図である。
【0007】
図5】本発明の少なくとも幾つかの実施形態による、データストリーム処理のためにページドバッファリングを利用する別の集積回路の概略図である。
【0008】
図6】本発明の少なくとも1つの実施形態による、LDPCデータ符号化のためにバッファを利用する集積回路符号化器601の概略図である。
【0009】
図7】本発明の少なくとも1つの実施形態による、ページドバッファリングを利用するLDPCデータ符号化のための集積回路符号化器の符号化セクションの概略図である。
【0010】
図8】本発明の少なくとも幾つかの実施形態による、ページドバッファリングを利用するLDPCデータ復号のための動作フローである。
【0011】
図9】本発明の少なくとも1つの実施形態による、ページドバッファリングを利用するデータ確率値セグメント復号のための動作フローである。
【0012】
図10】本発明の少なくとも1つの実施形態による、バッファ検査のための動作フローである。
【0013】
図11】本発明の少なくとも1つの実施形態による、データブロック処理のための動作フローである。
【0014】
図12】本発明の少なくとも1つの実施形態による、完了確認のための動作フローである。
【発明を実施するための形態】
【0015】
以下の開示は、提供される主題の異なる特徴を実装するための、多くの異なる実施形態又は例を提供する。構成要素、値、動作、材料又は配置等の具体例が、本開示を簡略化するために以下で説明される。当然ながら、これらは単なる例であって、限定を意図するものではない。他の構成要素、値、動作、材料又は配置等が企図される。加えて、本開示は、様々な例において参照番号及び/又は文字を繰り返し得る。この繰り返しは、簡潔さ及び明確さを目的としており、それ自体が、論述される様々な実施形態及び/又は構成間の関係を規定するものではない。
【0016】
FEC符号で符号化されたデータの効率的な復号は、モノのインターネット(Internet of Things:IoT)デバイスなど、その多くが限定された電力及び処理能力を有する膨大かつ多種多様なコネクテッドデバイスへの無線通信の普及において重要な役割を果たす。
【0017】
図1は、本発明の少なくとも1つの実施形態による、低密度パリティ検査(LDPC)データ送信のためのシステムの概略図である。本システムは、符号化器101、送信器103、受信器106、及び復号器108を備える。少なくとも幾つかの実施形態において、符号化器101及び送信器103は、無線アクセスネットワークの送信タワーなどの単一のデバイスの一部である。少なくとも幾つかの実施形態において、受信器106及び復号器108は、無線アクセスネットワークと通信する、スマートフォンなどの単一のデバイスの一部である。少なくとも幾つかの実施形態において、そのような単一のデバイスは、符号化器、送信器、受信器、及び復号器を有し、双方向通信を可能にする。図1において、送信器103は受信器106と直接通信しているため、符号化器101及び送信器103は、受信器106及び復号器108と同じデバイスの一部にはならない。
【0018】
符号化器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は、プロセッサ、及び当該プロセッサによる実行のための命令を記憶するメモリ、を有するコンピュータである。
【0019】
送信器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を復号するための他の情報を送信するように構成されている。
【0020】
受信器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の絶対値は、確率の信頼度を示す。
【0021】
少なくとも幾つかの実施形態において、受信器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を復号するための他の情報を受信するように構成されている。
【0022】
復号器108は、符号化された確率値107を受信器106から受信し、復号されたデータ109を出力するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107を復号されたデータ109に復号するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107にFEC復号を適用して、復号されたデータ109を生成するように構成されている。少なくとも幾つかの実施形態において、復号器108は、符号化された確率値107にLDPC復号を適用して、復号されたデータ109を生成するように構成されている。少なくとも幾つかの実施形態において、復号器108は、FPGA、ASIC等のような集積回路である。少なくとも幾つかの実施形態において、復号器108は、プロセッサ、及び当該プロセッサによる実行のための命令を記憶するメモリ、を有するコンピュータである。
【0023】
図2は、本発明の少なくとも1つの実施形態による、LDPCデータ符号化のための集積回路符号化器201の概略図である。集積回路符号化器201は、セグメンテーションプロセッサ210、符号化プロセッサ213、連結プロセッサ216、及びパラメータプロセッサ219を含む。
【0024】
セグメンテーションプロセッサ210は、元のデータブロック200を受信し、データセグメント211を符号化プロセッサ213及び連結プロセッサ216に送信するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロックを複数のデータセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロック200を1つ又は複数の予め定められた長さのセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロック200を、元のデータブロック200の長さに従った長さを有するセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ210は、元のデータブロックを、LDPCベースグラフの列に従った複数のデータセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、元のデータブロック200は、5G規格における「情報ブロック」に対応し、当該情報ブロックは、セグメンテーションプロセッサ210によって実行されない、トランスポートブロックの、前のセグメンテーションの結果である。
【0025】
符号化プロセッサ213は、データセグメント211を受信し、パリティセグメント214を連結プロセッサ216に送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、データセグメント211にパリティ検査行列を適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、データセグメント211にLDPCパリティ検査行列を適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、パリティ検査行列に従って各データセグメント211に1つ又は複数の循環シフトを適用して、パリティセグメント214を生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、パリティ検査行列に従ったパリティセグメント214のうちの「コア」パリティセグメントなどの幾つかのパリティセグメントに1つ又は複数の循環シフトを適用して、パリティセグメント214の中に他のパリティセグメントを生成するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ213は、各パリティセグメントの各ビットに、当該ビットに対応する1つ又は複数のデータセグメント及び他のパリティセグメントの値のサブセット内のビット値及び2進値の総和が偶数になるような値を入力するように構成されている。
【0026】
連結プロセッサ216は、データセグメント211及びパリティセグメント214を受信し、符号化されたデータブロック202を出力するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ216は、データセグメント211をパリティセグメント214と連結して、符号化されたデータブロック202を生成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ216は、データセグメント211をパリティセグメント214と連結して、データセグメント211及びパリティセグメント214の値のサブセット間の対応を明確にするフォーマットにするように構成されている。
【0027】
パラメータプロセッサ219は、パラメータストリーム218を受信して、セグメンテーションプロセッサ210、符号化プロセッサ213、及び連結プロセッサ216に情報を送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、制御チャネルを通じてパラメータストリーム218を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、パラメータストリーム218内の元のデータブロック200に対応するパリティ検査行列を表す情報を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、セグメンテーションプロセッサ210、符号化プロセッサ213、及び連結プロセッサ216の各々に、関連するパラメータを送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、セグメントサイズを表す情報をセグメンテーションプロセッサ210に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、元のデータブロック200に対応するパリティ検査行列を表す情報を符号化プロセッサ213に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ219は、元のデータブロック200に対応するパリティ検査行列を表す情報を連結プロセッサ216に送信するように構成されている。
【0028】
図3は、本発明の少なくとも1つの実施形態による、LDPCデータ復号のための集積回路復号器308の概略図である。集積回路復号器308は、セグメンテーションプロセッサ320、1つ又は複数の復号プロセッサ323、連結プロセッサ326、及びパラメータプロセッサ329を含む。
【0029】
セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を受信して、確率値セグメント321を復号プロセッサ323に送信するように構成されている。少なくとも幾つかの実施形態において、確率値セグメント321は、データ確率値セグメント及びパリティ確率値セグメントを含む。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロックを複数のデータ確率値セグメント及び複数のパリティ確率値セグメントに分割するように構成され、符号化されたデータブロックの各確率値は2進値間の尤度を表す。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を、1つ又は複数の予め定められた長さのセグメントに分割するように構成されている。少なくとも幾つかの実施形態において、セグメンテーションプロセッサ320は、符号化された確率値のデータブロック307を、符号化された確率値のデータブロック307の長さに従った長さを有するセグメントに分割するように構成されている。
【0030】
復号プロセッサ323は、それぞれ、確率値セグメント321を受信し、復号された2進値セグメント324を連結プロセッサ326に送信するように構成されている。少なくとも幾つかの実施形態において、各復号プロセッサ323は、反復変数正確度パラメータに従い、パリティ検査行列に基づき、符号化されたデータブロックの確率値を調整するように構成されており、パリティ検査行列は、データ確率値セグメント及びパリティ確率値セグメントの間の対応を定義し、ここで、反復変数正確度パラメータは、正確度及び計算効率の間のトレードオフを表す。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、確率値セグメント321にパリティ検査行列を適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323は、それぞれ、確率値セグメント321にLDPCパリティ検査行列を適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、パリティ検査行列に従って確率値セグメント321のうちの各データ確率値セグメント及び各パリティ確率値セグメントに1つ又は複数の循環シフトを適用して、復号された2進値セグメント324を生成するように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323はそれぞれ、対応するデータ確率値セグメント及びパリティ確率値セグメントの値のサブセット内の2進値を比較して、当該値の総和が偶数になることを確実にするように構成されている。少なくとも幾つかの実施形態において、復号プロセッサ323の各々は、確率値をセグメントにソートして最小値を求めるためのソータ、最小値から更新値を計算するための計算器、最小値に基づき調整量を判定するための正確な関数を選択するための関数セレクタ、及び、反復変数正確度パラメータを選択するための正確度パラメータセレクタ、を含む。
【0031】
連結プロセッサ326は、復号された2進値セグメント324を受信し、復号されたデータブロック309を出力するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、各データ確率値セグメントの確率値に関連付けられたパリティ検査行列を満たす尤もらしい2進値を連結して、復号されたデータブロックを形成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、復号された2進値セグメント324を連結して、復号されたデータブロック309を生成するように構成されている。少なくとも幾つかの実施形態において、連結プロセッサ326は、復号された2進値セグメント324を連結して、元のデータブロックと同一のフォーマットにするように構成されている。
【0032】
パラメータプロセッサ329は、パラメータストリーム328を受信し、セグメンテーションプロセッサ320、復号プロセッサ323、及び連結プロセッサ326に情報を送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメンテーションプロセッサ、復号プロセッサ、及び連結プロセッサの各々に複数のパラメータを送信するように構成され、ここで、当該複数のパラメータは、符号化されたデータブロックに対応する。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、制御チャネルを通じてパラメータストリーム328を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、パラメータストリーム328内の符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を受信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメンテーションプロセッサ320、復号プロセッサ323、及び連結プロセッサ326の各々に、関連するパラメータを送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、セグメントサイズを表す情報をセグメンテーションプロセッサ320に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を復号プロセッサ323に送信するように構成されている。少なくとも幾つかの実施形態において、パラメータプロセッサ329は、符号化された確率値のデータブロック307に対応するパリティ検査行列を表す情報を連結プロセッサ326に送信するように構成されている。
【0033】
概して、タスクを並行して実行することにより、復号効率が向上する。データを復号するように構成された少なくとも幾つかの集積回路は、それぞれがデータブロックを処理するために異なるタスクを実行する複数のプロセッサを含み、そのデータは各プロセッサによって順番に処理される。プロセッサがタスクを完了したことに応答して、当該プロセッサは、上流プロセッサからの次のデータブロックを検査する。
【0034】
少なくとも幾つかの集積回路において、先入れ先出し(First-In-First-Out:FIFO)ユニットなどのバッファは、インスタントプロセッサの準備が整うまでの間、上流プロセッサによって処理されたデータブロックを保持するために使用される。しかしながら、FIFOユニットによって保持されるデータの準備が整っていることを確実にするために、インスタントプロセッサはFIFOのフラグを検査する。FIFOユニットによって保持されるデータを処理する前に、インスタントプロセッサはまた、下流FIFOが出力されたデータを記憶するための準備が整っていることを確認するために、下流FIFOの別のフラグを検査する。そのような確認プロセスのうちの少なくとも幾つかは、フラグ更新の遅延を理由に、複数のクロック周期にわたり続く。殆どのFIFOユニットは、記憶されたデータのランダムアクセス用に設計されておらず、このため、1つのブロックについての全ての動作が連続するシーケンスとして実行されることが要求される。従って、ランダムアクセスを要求する非順次動作を実行するアプリケーションにおいて、下流プロセッサは、FIFOからデータブロックを読み出した後にランダムアクセスメモリに当該データブロックを記憶するため、FIFOからランダムアクセスメモリへの転送においてより多くの周期を消費し、かつランダムアクセスメモリは追加のチップリソースを消費する。
【0035】
本主題の開示の少なくとも幾つかの実施形態において、集積回路は、上流プロセッサ及び下流プロセッサの間で共有されるランダムアクセスメモリ、当該メモリに記憶されたアクセス可能なデータブロック数を表す値を記憶する読み出しカウンタ、及び、記録のために利用可能なメモリのページ数を表す値を記憶する書き込みカウンタ、を備える。少なくとも幾つかの実施形態において、読み出しカウンタは下流プロセッサと直接通信しており、そのため、読み出しカウンタは、次のデータブロックが処理のための準備が整っているかどうかを判定するために待機する際にいかなる追加のクロック周期をも消費することなく、下流プロセッサによって読み出し可能である。少なくとも幾つかの実施形態において、書き込みカウンタは上流プロセッサと直接通信しており、そのため、書き込みカウンタは、メモリが次のデータブロックを記憶するための利用可能なページを有しているかどうかを判定するために待機する際にいかなる追加のクロック周期をも消費することなく、上流プロセッサによって読み出し可能である。
【0036】
図4は、本発明の少なくとも幾つかの実施形態による、ページドバッファリングを利用する集積回路430の概略図である。集積回路430は、上流処理セクション431A及び下流処理セクション431Bを備える。上流処理セクション431Aは、上流プロセッサ433A及び書き込みカウンタ435を有する。下流処理セクション431Bは、下流プロセッサ433B、読み出しカウンタ436、及びランダムアクセスメモリ(random access memory:RAM)437を有する。
【0037】
上流プロセッサ433Aは、書き込みカウンタ435、読み出しカウンタ436、及びRAM437と通信するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、書き込みカウンタ435からカウンタ値440を取り出すように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、カウンタ値440が0より大きい値であることに応答して、データブロック441を出力し、データブロック441をRAM437に記録するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、書き込みカウンタ435が、メモリの少なくとも1つのページが記録のために利用可能であることを示す値を含むと判定したことに応答して、上流動作を実行するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、メモリ437の少なくとも3つのページのうちのアクティブ書き込みページ438にデータブロック441を記録する手順を含む上流動作を実行するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、下流プロセッサ433Bがメモリ437のアクティブ読み出しページ439に記録されたデータブロック446を読み出す間に、メモリ437の少なくとも3つのページのうちのアクティブ書き込みページ438にデータブロック441を記録するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、値減少命令442を書き込みカウンタ435に送信し、値増加命令443を読み出しカウンタ436に送信するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、データブロック441の記録を開始したことに応答して、ページ占有を示すために書き込みカウンタ435の調整を含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、データブロック441の記録が完了したことに更に応答して、ページ占有を示すために読み出しカウンタ436の調整を含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、これらの値増加/減少命令は、それぞれのカウンタを調整させ、例えば内部に記憶された値をそれに応じて変更させる。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、データブロック441をRAM437に記録したことに応答して、書き込みページ更新命令444をRAM437に送信するように構成されている。少なくとも幾つかの実施形態において、上流プロセッサ433Aは、データブロック441の記録が完了したことに応答して、メモリ437の書き込みページアドレスを更新するように構成されている。少なくとも幾つかの実施形態において、書き込みページ更新命令444は、RAM437に、データブロック441が記憶されているページ438の後続のページが後続の記録動作のためにアクティブになることを示させる。
【0038】
下流プロセッサ433Bは、書き込みカウンタ435、読み出しカウンタ436、及びRAM437と通信するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、読み出しカウンタ436からカウンタ値445を取り出すように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、カウンタ値445が0より大きい値であることに応答して、RAM437からデータブロック446を読み出すように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、読み出しカウンタ436が、少なくとも1つのアクセス可能なデータブロックがメモリに記憶されていることを示す値を含むと判定したことに応答して、下流動作を実行するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、メモリ437のアクティブ読み出しページ439に記録されたデータブロック446を読み出すことを含む下流動作を実行するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、RAM437からデータブロック446を読み出したことに応答して、値減少命令447を読み出しカウンタ436に送信し、値増加命令448を書き込みカウンタ435に送信するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、データブロック446の読み出しを開始したことに応答して、ページ解放を示すために読み出しカウンタ436の調整を含む下流動作を実行するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、データブロック446を処理するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、データブロック446の読み出しが完了したことに更に応答して、ページ解放を示すために書き込みカウンタ435の調整を含む下流動作を実行するように構成されている。少なくとも幾つかの実施形態において、これらの値増加/減少命令は、それぞれのカウンタを調整させ、例えば内部に記憶された値をそれに応じて変更させる。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、RAM437からデータブロック446を読み出したことに応答して、読み出しページ更新命令449をRAM437に送信するように構成されている。少なくとも幾つかの実施形態において、下流プロセッサ433Bは、データブロック446の読み出しが完了したことに応答して、メモリ437の読み出しページアドレスを更新するように構成されている。少なくとも幾つかの実施形態において、読み出しページ更新命令449は、RAM437に、データブロック446が読み出されたページ439の後続のページが後続の読み出し動作のためにアクティブになることを示させる。
【0039】
書き込みカウンタ435は、上流処理セクション431A内にあり、上流プロセッサ433A及び下流プロセッサ433Bと通信するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ435は、カウンタ値440などの単一の値を記憶するように構成されたカウンタである。少なくとも幾つかの実施形態において、書き込みカウンタ435は、メモリ437の任意のページが記録のために利用可能であるかどうかを示すカウンタ値440を記憶する書き込みカウンタである。少なくとも幾つかの実施形態において、書き込みカウンタ435は、値減少命令442及び値増加命令448などの命令に応答して、記憶された値をそれに応じて変更するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ435は、記憶された値を送信することにより、記憶された値を読み出す旨の要求に応答するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ435は上流プロセッサ433Aと直接通信しており、RAM437がデータブロック441を記憶するために利用可能なページを有するかどうかを判定するために待機する際にいかなる追加のクロック周期をも消費することなく、上流プロセッサ433Aによって読み出し可能である。少なくとも幾つかの実施形態において、書き込みカウンタ435は上流プロセッサ433Aによって迅速に読み出し可能であるため、書き込みカウンタ435は上流プロセッサ433Aに対してローカルであるとみなされ、下流プロセッサ433Bからリモートであるとみなされる。
【0040】
読み出しカウンタ436は、下流処理セクション431B内にあり、上流プロセッサ433A及び下流プロセッサ433Bと通信するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ436は、カウンタ値445などの単一の値を記憶するように構成されたカウンタである。少なくとも幾つかの実施形態において、読み出しカウンタ436は、任意のアクセス可能なデータブロックがメモリ437に記憶されているかどうかを示すカウンタ値445を記憶する読み出しカウンタである。少なくとも幾つかの実施形態において、読み出しカウンタ436は、値減少命令447及び値増加命令443などの命令に応答して、記憶された値をそれに応じて変更するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ436は、記憶された値を送信することにより、記憶された値を読み出す旨の要求に応答するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ436は下流プロセッサ433Bと直接通信しており、RAM437が読み出しのための準備が整っているデータブロック446を記憶するページを有するかどうかを判定するために待機する際にいかなる追加のクロック周期をも消費することなく、下流プロセッサ433Bによって読み出し可能である。少なくとも幾つかの実施形態において、読み出しカウンタ436は下流プロセッサ433Bによって迅速に読み出し可能であるため、読み出しカウンタ436は下流プロセッサ433Bに対してローカルであるとみなされ、上流プロセッサ433Aからリモートであるとみなされる。
【0041】
RAM437は、上流プロセッサ433A及び下流プロセッサ433Bと通信している。少なくとも幾つかの実施形態において、RAM437は、任意の順序におけるデータの読み出し及び書き込みを可能にし、データが出力されるときに上流プロセッサ433Aがデータブロック441のデータを記録することを可能にし、かつデータが処理アルゴリズムによって要求されるときに下流プロセッサ433Bがデータブロック446のデータを読み出すことを可能にするように構成されている。少なくとも幾つかの実施形態において、RAM437は少なくとも3つのページを含む。換言すれば、少なくとも幾つかの実施形態において、RAM437は、データブロック441及びデータブロック446など、少なくとも3つのデータブロックを記憶するために十分な容量を含む。少なくとも幾つかの実施形態において、或るページの容量は、集積回路430によって実行される処理アルゴリズムに従ってデータブロックの最大サイズを記憶するのに十分な大きさである。少なくとも幾つかの実施形態において、RAM437は、少なくとも3つのページを有するランダムアクセスメモリであり、当該メモリは、少なくとも3つのページのうちの各ページにデータブロックを記憶するように構成されている。少なくとも幾つかの実施形態において、RAM437は、1つのページを読み出しのためにアクティブであるものとして示し、1つの異なるページを書き込みのためにアクティブであるものとして示すように構成されている。少なくとも幾つかの実施形態において、RAM437は、命令に応答して、アクティブ読み出しページ表示又はアクティブ書き込みページ表示を変更するように構成されている。
【0042】
本主題の開示の少なくとも幾つかの実施形態において、集積回路は、上流ランダムアクセスメモリからの未処理のデータを読み出し、かつ、下流ランダムアクセスメモリに処理済みデータを記録する間に、データを処理するように構成されたプロセッサを備える。そのような実施形態は、上流メモリに記憶されたアクセス可能なデータブロック数を表す値を記憶する読み出しカウンタ、及び、記録のために利用可能な下流メモリのページ数を表す値を記憶する書き込みカウンタ、を備える。少なくとも幾つかの実施形態において、読み出しカウンタ及び書き込みカウンタはプロセッサと直接通信しており、そのため、読み出しカウンタ及び書き込みカウンタは、上流メモリが読み出しのための準備が整っているかどうか、及び、下流メモリが記録のための準備が整っているかどうかの両方を判定するために、1つのクロック周期内でプロセッサによって読み出し可能である。
【0043】
図5は、本発明の少なくとも幾つかの実施形態による、ページドバッファリングを利用する別の集積回路の概略図である。集積回路550は、上流処理セクション531A及び下流処理セクション531Bを備える。上流処理セクション531Aは、プロセッサ533、書き込みカウンタ535、読み出しカウンタ536、及び上流RAM537Aを有する。下流処理セクション531Bは、下流RAM537Bを有する。
【0044】
プロセッサ533は、書き込みカウンタ535、読み出しカウンタ536、上流RAM537A、及び下流RAM537Bと通信する。少なくとも幾つかの実施形態において、プロセッサ533は、読み出しカウンタ536からカウンタ値550を取り出し、書き込みカウンタ535からカウンタ値551を取り出すように構成された、プロセッサ、マイクロプロセッサ、プログラマブルロジック回路等である。少なくとも幾つかの実施形態において、プロセッサ533は、カウンタ値550が0より大きい値であること、及び、カウンタ値551も0より大きい値であることに全て応答して、上流RAM537Aから第1のデータブロック552を読み出し、第1のデータブロック552を処理して第2のデータブロック554を生成するための動作を実行し、かつ、第2のデータブロック554を下流RAM537Bに記録するように構成されている。少なくとも幾つかの実施形態において、カウンタ値550が0より大きい値である状態は、上流RAM537Aが読み出される準備が整った少なくとも1つのデータブロックを有することをプロセッサ533に示す。少なくとも幾つかの実施形態において、プロセッサ533は、読み出しカウンタ536が、少なくとも1つのアクセス可能なデータブロックが上流メモリに記憶されていることを示す値を含み、かつ、書き込みカウンタ535が、下流メモリの少なくとも1つの下流ページが記録のために利用可能であることを示す値を含むと判定したことに応答して、動作を実行するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、上流メモリ537Aに記録された第1のデータブロック552を読み出すことを含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、カウンタ値551が0より大きい値である状態は、下流RAM537Bが記録のために利用可能な少なくとも1つのデータブロックを有することをプロセッサ533に示す。少なくとも幾つかの実施形態において、プロセッサ533は、値減少命令553を読み出しカウンタ536に送信し、値増加命令556Aを上流書き込みカウンタに送信するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、ページ解放を示すために読み出しカウンタ536を調整する手順を含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第1のデータブロック552の読み出しが完了したことに応答して、ページ解放を示すためにリモート書き込みカウンタを調整するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第1のデータブロック522を処理して第2のデータブロック554を生成する手順を含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第2のデータブロック554を下流メモリ537Bに記録する手順を含む動作を実行するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、値減少命令555を書き込みカウンタ535に送信し、値増加命令558Aを下流読み出しカウンタに送信するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、書き込みカウンタ535を減少させるように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第2のデータブロック554の記録が完了したことに応答して、ページ占有を示すためにリモート読み出しカウンタを調整するように構成されている。少なくとも幾つかの実施形態において、これらの値増加/減少命令は、それぞれのカウンタを調整させ、例えば内部に記憶された値をそれに応じて変更させる。少なくとも幾つかの実施形態において、プロセッサ533は、上流RAM537Aから第1のデータブロック552を読み出したことに応答して、読み出しページ更新命令557を上流RAM537Aに送信するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第1のデータブロック552の読み出しが完了したことに応答して、上流メモリ537Aの読み出しページアドレスを更新するように構成されている。少なくとも幾つかの実施形態において、読み出しページ更新命令557は、上流RAM537Aに、第1のデータブロック552が読み出されたページ539の後続のページが後続の読み出し動作のためにアクティブになることを示させる。少なくとも幾つかの実施形態において、プロセッサ533は、第2のデータブロック554を下流RAM537Bに記録したことに応答して、書き込みページ更新命令559を下流RAM537Bに送信するように構成されている。少なくとも幾つかの実施形態において、プロセッサ533は、第2のデータブロック554の記録が完了したことに応答して、下流メモリ537Bの書き込みページアドレスを更新するように構成されている。少なくとも幾つかの実施形態において、書き込みページ更新命令559は、下流RAM537Bに、第2のデータブロック554が記憶されているページ538の後続のページが後続の記録動作のためにアクティブになることを示させる。
【0045】
書き込みカウンタ535は上流処理セクション531A内にあり、プロセッサ533と通信するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ535は、カウンタ値551などの単一の値を記憶するように構成されたカウンタである。少なくとも幾つかの実施形態において、書き込みカウンタ535は、値減少命令555及び値増加命令558Bなどの命令に応答して、記憶された値をそれに応じて変更するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ535は、記憶された値を送信することにより、記憶された値を読み出す旨の要求に応答するように構成されている。少なくとも幾つかの実施形態において、書き込みカウンタ535はプロセッサ533と直接通信しており、下流RAM537Bが第2のデータブロック554を記憶するために利用可能なページを有するかどうかを判定するために、1つのクロック周期内にプロセッサ533によって読み出し可能である。少なくとも幾つかの実施形態において、書き込みカウンタ535はプロセッサ533によって迅速に読み出し可能であるため、書き込みカウンタ535はプロセッサ533に対してローカルであるとみなされ、下流セクション531Bなどの他のセクションのプロセッサからリモートであるとみなされる。少なくとも幾つかの実施形態において、書き込みカウンタ535は、下流メモリ537Bの任意の下流ページが記録のために利用可能であるかどうかを示す値を記憶するように構成されたローカル書き込みカウンタである。
【0046】
読み出しカウンタ536は、上流処理セクション531A内にあり、プロセッサ533と通信するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ536は、カウンタ値550などの単一の値を記憶するように構成されたカウンタである。少なくとも幾つかの実施形態において、読み出しカウンタ536は、値減少命令553及び値増加命令556Bなどの命令に応答して、記憶された値をそれに応じて変更するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ536は、記憶された値を送信することにより、記憶された値を読み出す旨の要求に応答するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ536はプロセッサ533と直接通信しており、上流RAM537Aが読み出しのための準備が整っている第1のデータブロック552を記憶するページを有するかどうかを判定するために、1つのクロック周期内にプロセッサ533によって読み出し可能である。少なくとも幾つかの実施形態において、読み出しカウンタ536はプロセッサ533によって迅速に読み出し可能であるため、読み出しカウンタ536はプロセッサ533に対してローカルであるとみなされ、下流セクション531Bなどの他のセクションのプロセッサからリモートであるとみなされる。少なくとも幾つかの実施形態において、読み出しカウンタ536は、任意のアクセス可能なデータブロックが上流メモリ537Aに記憶されているかどうかを示す値を記憶するように構成されたローカル読み出しカウンタである。
【0047】
上流RAM537Aは、プロセッサ533と通信している。少なくとも幾つかの実施形態において、上流RAM537Aは、任意の順序におけるデータの読み出し及び書き込みを可能にし、かつ処理アルゴリズムによってデータが要求されるときにプロセッサ533がデータブロック552のデータを読み出すことを可能にするように構成されている。少なくとも幾つかの実施形態において、上流RAM537Aは少なくとも3つのページを含む。換言すれば、少なくとも幾つかの実施形態において、上流RAM537Aは、第1のデータブロック552など、少なくとも3つのデータブロックを記憶するために十分な容量を含む。少なくとも幾つかの実施形態において、上流ランダムアクセスメモリ537Aは、少なくとも3つの上流ページを有し、上流メモリ537Aは、少なくとも3つの上流ページのうちの各上流ページにデータブロックを記憶するように構成されている。少なくとも幾つかの実施形態において、或るページの容量は、集積回路550によって実行される処理アルゴリズムに従ってデータブロックの最大サイズを記憶するのに十分な大きさである。少なくとも幾つかの実施形態において、上流RAM537Aは、1つのページを読み出しのためにアクティブであるものとして示し、1つの異なるページを書き込みのためにアクティブであるものとして示すように構成されている。少なくとも幾つかの実施形態において、上流RAM537Aは、プロセッサ533からの書き込みページ更新557などの命令に応答して、アクティブ読み出しページ表示又はアクティブ書き込みページ表示を変更するように構成されている。
【0048】
下流RAM537Bは、プロセッサ533と通信している。少なくとも幾つかの実施形態において、下流RAM537Bは、任意の順序におけるデータの読み出し及び書き込みを可能にし、かつデータが出力されるときにプロセッサ533が第2のデータブロック554のデータを記録することを可能にするように構成されている。少なくとも幾つかの実施形態において、下流RAM537Bは少なくとも3つのページを含む。換言すれば、少なくとも幾つかの実施形態において、下流RAM537Bは、第2のデータブロック554など、少なくとも3つのデータブロックを記憶するために十分な容量を含む。少なくとも幾つかの実施形態において、下流ランダムアクセスメモリ537Bは、少なくとも3つの下流ページを有し、下流メモリ537Bは、少なくとも3つの下流ページのうちの各下流ページにデータブロックを記憶するように構成されている。少なくとも幾つかの実施形態において、或るページの容量は、集積回路550によって実行される処理アルゴリズムに従ってデータブロックの最大サイズを記憶するのに十分な大きさである。少なくとも幾つかの実施形態において、下流RAM537Bは、1つのページを読み出しのためにアクティブであるものとして示し、1つの異なるページを書き込みのためにアクティブであるものとして示すように構成されている。少なくとも幾つかの実施形態において、下流RAM537Bは、プロセッサ533からの読み出しページ更新559などの命令に応答して、アクティブ読み出しページ表示又はアクティブ書き込みページ表示を変更するように構成されている。
【0049】
図6は、本発明の少なくとも1つの実施形態による、LDPCデータ符号化のためにバッファを利用する集積回路符号化器601の概略図である。集積回路符号化器601は、セグメンテーションセクション631A、符号化セクション631B、連結セクション631C、及びパラメータセクション631Dを含む。セグメンテーションセクション631A、符号化セクション631B、連結セクション631C、及びパラメータセクション631Dの各々は、プロセッサ及び1つ又は複数のバッファを含む。
【0050】
セグメンテーションセクション631Aは、バッファ632A、バッファ632B、及びセグメンテーションプロセッサ610を含む。少なくとも幾つかの実施形態において、バッファ632Aは、セグメンテーションプロセッサ610が元のデータブロックを完全に読み出すまでの間、元のデータブロックを記憶する。少なくとも幾つかの実施形態において、バッファ632Bは、元のデータブロックのセグメンテーションに関連付けられたパラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Bは、セグメンテーションプロセッサ610が所与の元のデータブロックに関連付けられたパラメータ値を完全に読み出すまでの間、パラメータプロセッサ619から受信されたパラメータ値を記憶する。
【0051】
符号化セクション631Bは、バッファ632C、バッファ632D、及び符号化プロセッサ613を含む。少なくとも幾つかの実施形態において、バッファ632Cは、符号化プロセッサ613がデータセグメントを完全に読み出すまでの間、セグメンテーションプロセッサ610から受信された、元のデータブロックに対応するデータセグメントを記憶する。少なくとも幾つかの実施形態において、バッファ632Dは、データセグメントの符号化に関連付けられたパラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Dは、符号化プロセッサ613が所与の元のデータブロックに対応するデータセグメントに関連付けられたパラメータ値を完全に読み出すまでの間、パラメータプロセッサ619から受信されたパラメータ値を記憶する。
【0052】
連結セクション631Cは、バッファ632E、バッファ632F、バッファ632G、及び連結プロセッサ616を含む。少なくとも幾つかの実施形態において、バッファ632Eは、連結プロセッサ616がパリティセグメントを完全に読み出すまでの間、符号化プロセッサ613から受信された、元のデータブロックに対応するパリティセグメントを記憶する。少なくとも幾つかの実施形態において、バッファ632Fは、連結プロセッサ616がデータセグメントを完全に読み出すまでの間、セグメンテーションプロセッサ610から受信された、元のデータブロックに対応するデータセグメントを記憶する。少なくとも幾つかの実施形態において、バッファ632Gは、データセグメント及びパリティセグメントを連結することに関連付けられたパラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Gは、連結プロセッサ616が所与の元のデータブロックに対応するデータセグメント及びパリティセグメントに関連付けられたパラメータ値を完全に読み出すまでの間、パラメータプロセッサ619から受信されたパラメータ値を記憶する。
【0053】
パラメータセクション631Dは、バッファ632H及びパラメータプロセッサ619を含む。少なくとも幾つかの実施形態において、バッファ632Hは、元のデータブロックを符号化されたデータブロックに符号化することに関連付けられたパラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Hは、パラメータプロセッサ619が所与の元のデータブロックを符号化されたデータブロック符号化することに関連付けられたパラメータ値を完全に読み出すまでの間、パラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Hは、パラメータプロセッサ619がセグメンテーションプロセッサ610、符号化プロセッサ613、及び連結プロセッサ616のうちの単一のプロセッサについてのパラメータ値を完全に読み出して所与の元のデータブロックに関連付けられたそれぞれの動作を実行するまでの間、パラメータ値を記憶する。少なくとも幾つかの実施形態において、バッファ632Hは、パラメータプロセッサ619がセグメンテーションプロセッサ610、符号化プロセッサ613、及び連結プロセッサ616の全てについて、パラメータ値の1つのセットを完全に読み出して変換し、所与の元のデータブロックに関連付けられたそれぞれの動作を実行するまでの間、パラメータ値を記憶する。
【0054】
セグメンテーションプロセッサ610、符号化プロセッサ613、連結プロセッサ616、及びパラメータプロセッサ619の各々は、構造及び機能において、それぞれ図2のセグメンテーションプロセッサ210、符号化プロセッサ213、連結プロセッサ216、及びパラメータプロセッサ219と実質的に同様である。
【0055】
少なくとも幾つかの実施形態において、一部のセクションのバッファはFIFOユニットであり、他のセクションのバッファはRAMである。少なくとも幾つかの実施形態において、RAMバッファを含むセクションは、図4の下流処理セクション431B及び図5の上流処理セクション531Aと同様の構造を含み、同様の機能を実行する。少なくとも幾つかの実施形態において、RAMバッファを含む隣接セクションは、それぞれ図4の上流処理セクション431A及び下流処理セクション431B、及び、それぞれ図5の上流処理セクション531A及び下流処理セクション531Bと同様の構造を含み、同様の機能を実行する。例えば、バッファ632CがRAMバッファである少なくとも幾つかの実施形態において、セグメンテーションセクション631Aは、図4の上流処理セクション431A及び図5の上流処理セクション531Aと同様の構造を含み、同様の機能を実行し、一方、符号化セクション631Bは、図4の下流処理セクション431B及び図5の下流処理セクション531Bと同様の構造を含み、同様の機能を実行する。
【0056】
図7は、本発明の少なくとも1つの実施形態による、ページドバッファリングを利用するLDPCデータ符号化のための集積回路符号化器の符号化セクション731の概略図である。符号化セクション731は、符号化プロセッサ713、書き込みカウンタ735、読み出しカウンタ736A、読み出しカウンタ736B、RAM737A、及びRAM737Bを含む。
【0057】
少なくとも幾つかの実施形態において、読み出しカウンタ736A及びRAM737Aは、セグメンテーションセクションのセグメンテーションプロセッサと通信している。少なくとも幾つかの実施形態において、読み出しカウンタ736B及びRAM737Bは、パラメータセクションのパラメータプロセッサと通信している。少なくとも幾つかの実施形態において、RAM737Bは、少なくとも3つのパラメータページを有するパラメータランダムアクセスメモリであり、パラメータメモリ737Bは、少なくとも3つのパラメータページのうちの各パラメータページ内のパラメータ値ブロックを記憶するように構成されている。少なくとも幾つかの実施形態において、読み出しカウンタ736Bは、任意のアクセス可能なデータブロックがパラメータメモリ737Bに記憶されているかどうかを示す値を記憶するように構成されたローカルパラメータ読み出しカウンタである。
【0058】
符号化セクション731は、図6のバッファ632C及びバッファ632DがそれぞれRAM737A及びRAM737BのRAMバッファである詳細例を示す。以下で説明される場合を除き、符号化プロセッサ713、書き込みカウンタ735、読み出しカウンタ736A、及びRAM737Aの間の機能的相互作用は、図5のプロセッサ533、書き込みカウンタ535、読み出しカウンタ536、及び上流RAM537Aの間の機能的相互作用と実質的に同様である。少なくとも幾つかの実施形態において、符号化プロセッサ713は、読み出しカウンタ736Aから読み出されたカウンタ値が0より大きい値であることに応答して、RAM737Aからデータセグメント711を読み出すように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、セグメンテーションプロセッサが後続のデータブロックのデータセグメントをRAM737Aのアクティブ書き込みページ738Aに記録する間に、RAM737Aのアクティブ読み出しページ739Aからデータセグメント711を読み出すように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、書き込みカウンタ735から読み出されたカウンタ値が0より大きい値であることに全て応答して、データセグメント711を処理してパリティ検査セグメント714を生成し、パリティ検査セグメント714を出力するための動作を実行するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、読み出しカウンタ736Bから読み出されたカウンタ値が0より大きい値であることに応答して、RAM737Bからパラメータデータ715を読み出すように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、パラメータ値ブロックに従い、データセグメント711を処理するように更に構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、パラメータプロセッサが後続のデータブロックのパラメータデータをRAM737Bのアクティブ書き込みページ738Bに記録する間に、RAM737Bのアクティブ読み出しページ739Bからパラメータデータ715を読み出すように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、読み出しカウンタ736Aが、少なくとも1つのアクセス可能なデータブロックがRAM737Aに記憶されていることを示す値を含み、書き込みカウンタ735が、下流RAMの少なくとも1つのページが記録のために利用可能であることを示す値を含み、読み出しカウンタ736Bが、少なくとも1つのアクセス可能なパラメータ値ブロックがRAM737Bに記憶されていることを示す値を含むと判定したことに応答して、動作を実行するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、パラメータメモリ737Bに記録されたパラメータ値715のブロックを読み出すように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、値減少命令を読み出しカウンタ736Aに送信し、値増加命令を上流書き込みカウンタに送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、RAM737Aからデータセグメント711を読み出したことに応答して、書き込みページ更新命令をRAM737Aに送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、値減少命令を書き込みカウンタ735に送信し、値増加命令を下流読み出しカウンタに送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、パリティ検査セグメント714を下流RAMに記録したことに応答して、読み出しページ更新命令を下流RAMに送信するように構成されている。少なくとも幾つかの実施形態において、符号化プロセッサ713は、下流読み出しカウンタによって値増加命令として受信され、下流RAMによって読み出しページ更新命令として受信された単一の命令を送信するように構成されている。
【0059】
図8は、本発明の少なくとも幾つかの実施形態による、ページドバッファリングを利用するLDPCデータ復号のための動作フローである。本動作フローは、ページドバッファリングを利用するLDPCデータ復号の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される集積回路復号器308などの集積回路によって実行される。
【0060】
S860で、セグメンテーションプロセッサはLDPC符号化されたデータブロックをセグメント化する。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを複数のデータ確率値セグメント及び複数のパリティ確率値セグメントに分割することにより、低密度パリティ検査(LDPC)符号化された確率値のデータブロックをセグメント化し、符号化されたデータブロックの各確率値は2進値間の尤度を表す。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを、1つ又は複数の予め定められた長さのセグメントに分割する。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、符号化されたデータブロックを、符号化されたデータブロックの長さに従った長さを有するセグメントに分割する。少なくとも幾つかの実施形態において、セグメンテーションプロセッサは、逆インターリーブ及びレートマッチングを実行する。
【0061】
S863で、復号プロセッサは、データ確率値セグメントを復号する。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにLDPCパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、パリティ検査行列に従って、データ確率値セグメント及びパリティ確率値セグメントに1つ又は複数の循環シフトを適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、対応するデータ確率値セグメント及びパリティ確率値セグメントの値のサブセット内の2進値を比較して、当該値の総和が偶数になることを確実にする。少なくとも幾つかの実施形態において、復号プロセッサは、反復変数正確度パラメータに従い、パリティ検査行列に基づき、符号化されたデータブロックの確率値を調整することによって符号化されたデータブロックを復号し、パリティ検査行列は、データ確率値セグメント及びパリティ確率値セグメントの間の対応を定義し、ここで、反復変数正確度パラメータは、正確度及び計算効率の間のトレードオフを表す。少なくとも幾つかの実施形態において、復号プロセッサは、図9において示される動作フローを実行し、これについては以下で説明される。
【0062】
S869で、連結プロセッサは、尤もらしい2進値を連結する。少なくとも幾つかの実施形態において、連結プロセッサは、各データ確率値セグメントの確率値に関連付けられたパリティ検査行列を満たす尤もらしい2進値を連結して、復号されたデータブロックを形成する。少なくとも幾つかの実施形態において、連結プロセッサは、尤もらしい2進値セグメントを連結して、復号されたデータブロックを生成する。少なくとも幾つかの実施形態において、連結プロセッサは、尤もらしい2進値セグメントを連結して、元のデータブロックと同一のフォーマットにする。
【0063】
図9は、本発明の少なくとも1つの実施形態による、ページドバッファリングを利用するデータ確率値セグメント復号のための動作フローである。本動作フローは、ページドバッファリングを利用するデータ確率値セグメント復号の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される復号プロセッサ323のうちの1つなどの復号プロセッサによって実行される。
【0064】
S970で、復号プロセッサはバッファを検査する。少なくとも幾つかの実施形態において、復号プロセッサは、上流バッファが、完全に記録され、復号プロセッサによって読み出される準備が整っている、符号化されたデータブロックのデータ確率セグメントを有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、下流バッファが、復号プロセッサによる尤もらしい2進値の記録のための準備が整っているページを有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、パラメータバッファが、完全に記録され、復号プロセッサによって読み出される準備が整っている、符号化されたデータブロックを復号するためのパラメータ値を有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、図10において示される動作フローを実行し、これについては以下で説明される。
【0065】
S980で、復号セクションは、データブロックを処理する。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックを処理して第2のデータブロックを生成する。少なくとも幾つかの実施形態において、第1のデータブロックの処理は、パラメータ値ブロックに従っている。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントにLDPCパリティ検査行列を適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、パリティ検査行列に従って、データ確率値セグメント及びパリティ確率値セグメントに1つ又は複数の循環シフトを適用して、復号された2進値セグメントを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、対応するデータ確率値セグメント及びパリティ確率値セグメントの値のサブセット内の2進値を比較して、当該値の総和が偶数になることを確実にする。少なくとも幾つかの実施形態において、復号プロセッサは、反復変数正確度パラメータに従い、パリティ検査行列に基づき、符号化されたデータブロックの確率値を調整することによって符号化されたデータブロックを復号し、パリティ検査行列は、データ確率値セグメント及びパリティ確率値セグメントの間の対応を定義し、ここで、反復変数正確度パラメータは、正確度及び計算効率の間のトレードオフを表す。少なくとも幾つかの実施形態において、復号プロセッサは、図11において示される動作フローを実行し、これについては以下で説明される。
【0066】
S990で、復号セクションは、完了を確認する。少なくとも幾つかの実施形態において、復号プロセッサは、上流書き込みカウンタに値増加命令を発行して、データ確率セグメントが読み出された上流バッファが、記録のための準備が整っている少なくとも1つのページを有することを示す。少なくとも幾つかの実施形態において、復号プロセッサは、上流バッファにページ読み出し命令を発行して、データ確率セグメントが読み出されたページの後続のページが後続の読み出し動作のためにアクティブになることを示す。少なくとも幾つかの実施形態において、復号プロセッサは、下流読み出しカウンタに値増加命令を発行して、尤もらしい2進値が記録された下流バッファが、現在、読み出される準備が整っていることを示す。少なくとも幾つかの実施形態において、復号プロセッサは、下流バッファにページ書き込み命令を発行して、尤もらしい2進値が記録されたページの後続のページが、後続の記録動作のためにアクティブになることを示す。少なくとも幾つかの実施形態において、復号プロセッサは、図12において示される動作フローを実行し、これについては以下で説明される。
【0067】
図10は、本発明の少なくとも1つの実施形態による、バッファ検査のための動作フローである。本動作フローは、バッファ検査の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される復号プロセッサ323のうちの1つなどの復号プロセッサによって実行される。
【0068】
S1073で、復号プロセッサは、パラメータ読み出しカウンタが非ゼロ値を有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、パラメータ読み出しカウンタからカウンタ値を取り出す。パラメータ読み出しカウンタが非ゼロ値を有しないとの判定に応答して、本動作フローは、S1073でのパラメータ読み出しカウンタ判定に戻る。パラメータ読み出しカウンタが非ゼロ値を有するとの判定に応答して、本動作フローは、S1076でのデータブロック読み出しカウンタ判定に進む。
【0069】
S1076で、復号プロセッサは、データブロック読み出しカウンタが非ゼロ値を有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、データブロック読み出しカウンタからカウンタ値を取り出す。データブロック読み出しカウンタが非ゼロ値を有しないとの判定に応答して、本動作フローは、S1076でのデータブロック読み出しカウンタ判定に戻る。データブロック読み出しカウンタが非ゼロ値を有するとの判定に応答して、本動作フローは、S1079でのデータブロック書き込みカウンタ判定に進む。
【0070】
S1079で、復号プロセッサは、書き込みカウンタが非ゼロ値を有するかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、データブロック書き込みカウンタからカウンタ値を取り出す。データブロック書き込みカウンタが非ゼロ値を有しないとの判定に応答して、本動作フローは、S1079でのデータブロック書き込みカウンタ判定に戻る。データブロック書き込みカウンタが非ゼロ値を有するとの判定に応答して、本動作フローは終了する。
【0071】
本実施形態において、動作S1073、S1076及びS1079は順番に実行されるが、これらの動作は、他の実施形態においては任意の順序で実行される。少なくとも幾つかの実施形態において、これらの動作は同時に実行される。
【0072】
図11は、本発明の少なくとも1つの実施形態による、データブロック処理のための動作フローである。本動作フローは、データブロック処理の方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される復号プロセッサ323のうちの1つなどの復号プロセッサによって実行される。少なくとも幾つかの実施形態において、復号プロセッサは、集積回路のローカル読み出しカウンタが、少なくとも1つのアクセス可能なデータブロックが集積回路の上流メモリに記憶されていることを示す値を含み、集積回路のローカル書き込みカウンタが、集積回路の下流メモリの少なくとも1つの下流ページが記録のために利用可能であることを示す値を含むと判定したことに応答して、本方法を実行する。少なくとも幾つかの実施形態において、復号プロセッサは、集積回路のローカルパラメータ読み出しカウンタが、少なくとも1つのアクセス可能なパラメータ値ブロックが集積回路のパラメータメモリに記憶されていることを示す値を含むと判定することに更に応答して、本方法を実行する。
【0073】
S1182で、復号プロセッサは、1つ又は複数のローカル読み出しカウンタを減少させる。少なくとも幾つかの実施形態において、復号プロセッサは、ローカル読み出しカウンタを調整する。少なくとも幾つかの実施形態において、復号プロセッサは、ローカルデータ読み出しカウンタに値減少命令を発行して、読み出されている上流バッファが1つ少ない未読み込みデータブロックを有することを示す。少なくとも幾つかの実施形態において、復号プロセッサは、ローカルパラメータ読み出しカウンタに値減少命令を発行して、読み出されているパラメータバッファが1つ少ない未読み込みパラメータ値ブロックを有することを示す。
【0074】
S1183で、復号プロセッサは、ローカル書き込みカウンタを減少させる。少なくとも幾つかの実施形態において、復号プロセッサは、ページ占有を示すためにローカル書き込みカウンタを調整する。少なくとも幾つかの実施形態において、復号プロセッサは、ローカルデータ書き込みカウンタに値減少命令を発行して、出力が記録されている下流バッファが記録のために利用可能な1つ少ないページを有することを示す。
【0075】
S1184で、復号プロセッサは読み出しを開始する。少なくとも幾つかの実施形態において、復号プロセッサは、上流メモリに記録された第1のデータブロックを読み出す。少なくとも幾つかの実施形態において、復号プロセッサは、上流バッファからの第1のデータブロックの読み出し及びパラメータバッファからのパラメータ値の読み出しを開始する。少なくとも幾つかの実施形態において、復号プロセッサは、パラメータランダムアクセスメモリに記録されたパラメータ値ブロックを読み出す。少なくとも幾つかの実施形態において、復号プロセッサは、データ確率値セグメント及びパリティ確率値セグメントの第1のデータブロックの読み出しを開始する。
【0076】
S1185で、復号プロセッサは処理を開始する。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックの処理を開始して第2のデータブロックを生成する。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックの部分を読み出す一方で、第1のデータブロックの他の部分を処理する。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロック及びパラメータ値の部分を再読み出しする。少なくとも幾つかの実施形態において、復号プロセッサは、最初に全てのパラメータ値を読み出し、次に、第1のデータブロックの読み出し及び処理を開始する。
【0077】
S1186で、復号プロセッサは出力の記録を開始する。少なくとも幾つかの実施形態において、復号プロセッサは、プロセッサによって、集積回路の下流メモリに第2のデータブロックを記録する。少なくとも幾つかの実施形態において、復号プロセッサは、下流バッファへの第2のデータブロックの記録を開始する。少なくとも幾つかの実施形態において、復号プロセッサは、尤もらしい2進値の第2のデータブロックの記録を開始する。少なくとも幾つかの実施形態において、復号プロセッサは、上流バッファから読み出された第1のデータブロックの処理を開始したことに応答して、下流バッファへの第2のデータブロックの記録を開始する。少なくとも幾つかの実施形態において、復号プロセッサは、更新されたデータを処理したことに応答して既に記録されている第2のデータブロックの部分を上書きする。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックの部分を処理する間に、第2のデータブロックの部分を記録する。
【0078】
S1188で、復号プロセッサは、処理が完了したかどうかを判定する。少なくとも幾つかの実施形態において、復号プロセッサは、処理が完了するまでの間、出力の読み出し及び記録を継続する。少なくとも幾つかの実施形態において、復号プロセッサは、タスクのセットの各々を実行したことに応答して、処理が完了したと判定する。少なくとも幾つかの実施形態において、復号プロセッサは、確率値に関連付けられた尤もらしい2進値がパリティ検査行列を満たすことに応答して、処理が完了したと判定する。少なくとも幾つかの実施形態において、復号プロセッサは、閾値数の復号反復を実行したことに応答して、処理が完了したと判定する。処理が完了していないと判定したことに応答して、本動作フローは、S1188における処理完了判定に戻る。処理が完了したと判定したことに応答して、本動作フローは終了する。
【0079】
図12は、本発明の少なくとも1つの実施形態による、完了確認のための動作フローである。本動作フローは、完了を確認する方法を提供する。少なくとも幾つかの実施形態において、本方法は、図3において示される復号プロセッサ323のうちの1つなどの復号プロセッサによって実行される。
【0080】
S1292で、復号プロセッサは読み出しを完了する。少なくとも幾つかの実施形態において、復号プロセッサは、データブロックを復号することが、上流バッファからのデータの更なる読み出しを必要としないと判定する。少なくとも幾つかの実施形態において、復号プロセッサは、パラメータ値の更なる読み出しが必要とされないと判定する。
【0081】
S1293で、復号プロセッサは、1つ又は複数のリモート書き込みカウンタを増加させる。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックの読み出しが完了したことに応答して、ページ解放を示すためにリモート書き込みカウンタを調整する。少なくとも幾つかの実施形態において、復号プロセッサは、上流書き込みカウンタに値増加命令を発行して、データ確率セグメントが読み出された上流バッファが、記録のための準備が整っている1つ多いページを有することを示す。
【0082】
S1294で、復号プロセッサは、読み出しページアドレスを更新する。少なくとも幾つかの実施形態において、復号プロセッサは、第1のデータブロックの読み出しが完了したことに応答して、上流メモリの読み出しページアドレスを更新する。少なくとも幾つかの実施形態において、復号プロセッサは、上流バッファに読み出しページ更新命令を発行して、第1のデータブロックが読み出されたページの後続のページが後続の読み出し動作のためにアクティブになることを示す。
【0083】
S1296で、復号プロセッサは記録を完了する。少なくとも幾つかの実施形態において、復号プロセッサは、全ての尤もらしい2進値が下流バッファに記録されたと判定する。
【0084】
S1297で、復号プロセッサは、リモート読み出しカウンタを増加させる。少なくとも幾つかの実施形態において、復号プロセッサは、第2のデータブロックの記録が完了したことに応答して、ページ占有を示すためにリモート読み出しカウンタを調整する。少なくとも幾つかの実施形態において、復号プロセッサは、下流読み出しカウンタに値増加命令を発行して、尤もらしい2進値が記録された下流バッファが、読み出される準備が整っている1つ多いページを有することを示す。
【0085】
S1298で、復号プロセッサは、書き込みページアドレスを更新する。少なくとも幾つかの実施形態において、復号プロセッサは、第2のデータブロックの記録が完了したことに応答して、下流メモリの書き込みページアドレスを更新する。少なくとも幾つかの実施形態において、復号プロセッサは、下流バッファに書き込みページ更新命令を発行して、第2のデータブロックが記憶されたページの後続のページが、後続の記録動作のためにアクティブになることを示す。
【0086】
少なくとも幾つかの実施形態において、装置は、本明細書の動作を実行するために論理的な機能を処理することができる別のデバイスである。少なくとも幾つかの実施形態において、コントローラ及びストレージユニットは、完全に別個のデバイスである必要はなく、幾つかの実施形態において、回路又は1つ又は複数のコンピュータ可読媒体を共有する。少なくとも幾つかの実施形態において、ストレージユニットは、コントローラによってアクセスされるコンピュータ実行可能命令及びデータの両方を記憶するハードドライブを含み、コントローラは、中央処理装置(CPU)及びRAMの組み合わせを含み、その中に、コンピュータ実行可能命令が本明細書の動作の実行の最中にCPUによる実行のために全体が又は一部がコピーされることが可能である。
【0087】
少なくとも幾つかの実施形態は、そのブロックが(1)動作が実行される処理のステップ、又は(2)動作を実行することを担うコントローラのセクション、を表すフローチャート及びブロック図を参照して説明されている。少なくとも幾つかの実施形態において、特定のステップ及びセクションは、専用回路、コンピュータ可読媒体上に記憶されたコンピュータ可読命令を供給されているプログラマブル回路、及び/又はコンピュータ可読媒体上に記憶されたコンピュータ可読命令を供給されているプロセッサによって実装される。少なくとも幾つかの実施形態において、専用回路は、デジタル及び/又はアナログハードウェア回路を含み、集積回路(IC)及び/又はディスクリート回路を含む。少なくとも幾つかの実施形態において、プログラマブル回路は、論理AND、OR、XOR、NAND、NOR及び他の論理動作、フリップフロップ、レジスタ、メモリ要素等を含む再構成可能ハードウェア回路、例えば、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等を含む。
【0088】
少なくとも幾つかの実施形態において、コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を維持及び記憶できる有形デバイスを含む。幾つかの実施形態において、コンピュータ可読記憶媒体は、例えば、限定されないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は前述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは以下:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(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)、メモリスティック、フロッピディスク、命令が記録されているパンチカード又は溝内の隆起構造などの機械的に符号化されるデバイス、及び前述のものの任意の好適な組み合わせ、を含む。本明細書で使用される場合、コンピュータ可読記憶媒体は、電波又は自由伝搬する他の電磁波、導波路又は他の送信媒体を通って伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は、ワイヤを通って送信される電気信号などの一時的な信号それ自体であるとして解釈されるべきではない。
【0089】
少なくとも幾つかの実施形態において、本明細書で説明されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへ、又は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージデバイスへ、ダウンロード可能である。少なくとも幾つかの実施形態において、ネットワークは、銅送信ケーブル、光送信ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含む。少なくとも幾つかの実施形態において、各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために当該コンピュータ可読プログラム命令を転送する。
【0090】
少なくとも幾つかの実施形態において、上記で説明された動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、オブジェクト指向プログラミング言語、例えば、Smalltalk(登録商標)、又はC++等、及び従来の手続き型プログラミング言語、例えば、"C"プログラミング言語又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかである。少なくとも幾つかの実施形態において、コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体が実行されるか、スタンドアロンのソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で且つ部分的にリモートコンピュータ上で実行されるか、又は、リモートコンピュータ又はサーバ上で全体が実行される。少なくとも幾つかの実施形態において、後者のシナリオにおいては、リモートコンピュータはユーザのコンピュータへ、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されるか、又は接続が(例えば、インターネットサービスプロバイダを用いるインターネットを通じて)外部コンピュータに対して行われる。少なくとも幾つかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別化することにより、コンピュータ可読プログラム命令を実行する。
【0091】
本発明の実施形態が説明されたが、特許請求の範囲に記載のいかなる主題の技術的範囲も、上記で説明された実施形態に限定されない。当業者であれば、上記で説明された実施形態に対する様々な改変及び改良が可能であることを理解するであろう。当業者であれば、特許請求の範囲の範囲から、そのような改変又は改良が加えられた実施形態が、本発明の技術的範囲に含まれることをも理解するであろう。
【0092】
特許請求の範囲、実施形態、又は図において示される装置、システム、プログラム、及び方法によって実行される各プロセスの動作、手順、ステップ、及びステージは、その順序が「に先立ち」又は「より前に」等によって示されていない限り、及び、前のプロセスからの出力が後のプロセスにおいて使用されない限り、任意の順序で実行されることが可能である。特許請求の範囲、実施形態、又は図において、プロセスフローが「最初に」又は「次に」などの語句を用いて説明される場合でも、そのような説明は、説明された順序でプロセスが実行されなければならないことを必ずしも意味するものではない。
【0093】
少なくとも幾つかの実施形態において、ページドバッファリングを利用する集積回路データストリーム処理が、上流ランダムアクセスメモリ、ローカル読み出しカウンタ、下流ランダムアクセスメモリ、ローカル書き込みカウンタ、及びプロセッサを備える集積回路によって実行される。ローカル読み出しカウンタは、任意のアクセス可能なデータブロックが上流メモリに記憶されているかどうかを示す値を記憶するように構成されている。ローカル書き込みカウンタは、下流メモリの任意の下流ページが記録のために利用可能であるかどうかを示す値を記憶するように構成されている。プロセッサは、ページ解放を示すためにローカル読み出しカウンタを調整し、ページ占有を示すためにローカル書き込みカウンタを調整し、上流メモリに記録された第1のデータブロックを読み出し、第1のデータブロックを処理して第2のデータブロックを生成し、第2のデータブロックを下流メモリに記録するように構成されている。
【0094】
前述の事柄は、当業者が本開示の態様をより良く理解するように、複数の実施形態の特徴を概説したものである。当業者であれば、本開示が、本明細書で導入された実施形態と同じ目的を実行する、及び/又は同じ利点を実現するための他のプロセス及び構造を設計又は修正するための基礎として容易に使用可能であることを理解すべきである。当業者はまた、そのような均等な構成が本開示の趣旨及び範囲から逸脱しないこと、及び、本明細書の様々な変更、置換、及び改変が本開示の趣旨及び範囲から逸脱することなく可能であることを認識すべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】