JP2003534680A - 強化型ターボプロダクト符号復号器システム - Google Patents

強化型ターボプロダクト符号復号器システム

Info

Publication number
JP2003534680A
JP2003534680A JP2001573642A JP2001573642A JP2003534680A JP 2003534680 A JP2003534680 A JP 2003534680A JP 2001573642 A JP2001573642 A JP 2001573642A JP 2001573642 A JP2001573642 A JP 2001573642A JP 2003534680 A JP2003534680 A JP 2003534680A
Authority
JP
Japan
Prior art keywords
likelihood ratio
data
value
module
soft
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001573642A
Other languages
English (en)
Inventor
ジョン ヒューイット,エリック
ロバート ダニエルソン,アラン
ショーン ラドウ,ピーター
リーロイ ハンセン,トム
アラン オウズリー,パトリック
Original Assignee
コムテック テレコミュニケーションズ コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コムテック テレコミュニケーションズ コーポレイション filed Critical コムテック テレコミュニケーションズ コーポレイション
Publication of JP2003534680A publication Critical patent/JP2003534680A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/2717Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions the interleaver involves 3 or more directions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/258Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with turbo codes, e.g. Turbo Trellis Coded Modulation [TTCM]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/2721Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2966Turbo codes concatenated with another code, e.g. an outer block code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • H03M13/2981Particular arrangement of the component decoders using as many component decoders as component codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • H04L1/0051Stopping criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/06Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection
    • H04L25/067Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection providing soft decisions, i.e. decisions together with an estimate of reliability
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 本発明は、情報ビットのストリングが符号化された線形ブロックを復号化する方法及び装置に関し、ストリングを複数の符号語に変える工程、各符号語について硬判定及び軟判定を実行して硬判定及び軟判定ベクトルを生成する工程、シンドロームを演算し、ガロア体演算によって2つの最小値のロケーションを見つける工程、これらの値をLOW1及びLOW2に指定し、Nc1との排他的論理和を採り、Nc2を生成する工程、Nc1とNc2とを交換し、最も低い軟判定値Min1及び次に低い値Min2を決定する工程を具える。Min1を生成する2つのビットロケーションは、MinA及びMinBとして指定される。MinAは、Min2から値MinAを引いた値に置換され、MinBは、Min2から値MinBを引いた値に置換される。方法は、全ての他のビットロケーション値からMin1を差し引くことにより出力符号語を生成し、そのビットロケーションに0を有する全ての軟判定値の2の補数演算をする工程を含む。方法は、新たな軟判定ベクトルを生成する工程を含む。

Description

【発明の詳細な説明】
【0001】 この特許出願は、2000年4月4日に出願され、発明の名称が”強化型ター
ボプロダクト符号復号器システム”である米国の仮特許出願第60/194,570号に基
づく、優先権を主張する。2000年4月4日に出願され、発明の名称が”強化
型ターボプロダクト符号復号器システム”である米国の仮特許出願第60/194,570
号は、引用を持って本願への記載加入とする。
【0002】発明の背景 本発明は、データを復号(デコード)する装置及びその方法に関し、一般的に及
び特に効率的なターボプロダクト符号復号器システムにて強化型ターボプロダク
ト符号を復号する方法及び装置に関する。
【0003】 ノンバイナリィで、より低く及びより高いオーダーの変調を用いてデータを伝
送するときに、グレイコードマッピング及び対数尤度比(log-likelihood ratio
、LLR)演算とともに、バイナリィターボプロダクト符号器(エンコーダー)及
び復号器(デコーダー)が用いられる。このスキームは、しばしば実際的な符号化
と呼ばれる、なぜなら所定の通信路要求に整合するフォーワード誤り訂正符号を
構築する複雑な仕事が避けられるからである。ウンガーベック(Ungerboeck)トレ
リス符号化変調(TCM)のような従来のいくつかの符号化技術は、所望の信号点
配置に基づいて構築される畳込み符号の構築を要求する。 例えば、そのような符号が8−PSK変調、即ち位相変調方式に整合するよう
に構築される。しかし変調が8−PSKから16−PSK又は直交振幅変調とし
て知られている16−QAMに変えられたならば、符号は、再構築されなければ
ならない。このことにより、そのような符号スキームを実際に用いることは困難
になる。ブロック符号化変調のようなブロック符号に対する他のスキームが開発
され続けてきたが、なおまた同じ符号の再構築の問題に悩んでいる。
【0004】 より高いオーダーの変調システムにマッピングされる標準的なバイナリィ畳込
み符号を用いることにより、これらの複雑な構築の問題を軽減する実用的なTC
Mへのアプローチが、見いだされている。このアプローチは、ブロック符号及び
ターボプロダクト符号(TPCs)に適用されている。単純なグレイ符号マッピン
グが用いられて、バイナリィビット出力をTPC符号器から信号点配置にマッピ
ングする。例えば、16−QAMが変調タイプとして選択されたならば、次に符
号器から出力されるビットは、各4ビットを有する語に集約される。
【0005】 TPC復号器から最適な性能を得るためには、軟判定情報が通信路から生成さ
れる。これは対数尤度比(LLR)を演算することにより達成され、対数尤度比は
各4ビット語の各ビットに信頼値(軟判定)を与える。最適なLLRは、対数演算
、ユークリッド距離、指数関数の演算を要求するから、演算するのが非常に複雑
である。従来の復号器に用いられる一般的な方法は、夫々受信される可能性のあ
る通信路の値について、LLRの値を予め演算することである。結果として生じ
るデータは、次にROM又は記録媒体に格納され、LLRは記録媒体からルック
アップテーブルを用いて計算される。この演算方法に関する問題は、サポートさ
れる各変調フォーマットについて異なるルックアップテーブルが必要であること
である。加えて、ルックアップテーブルのサイズは、非常に高いオーダーの変調
について非常に大きくなり、従って大きな記録媒体を必要とする。
【0006】 必要なことは、自然対数及び指数関数を有する式を要し、一組の一次方程式に
まで減らすLLR近似方法及び装置である。加えて、必要なことはLLR近似方
法がハードウエア内で実施されるのに十分簡単であり、ルックアップテーブルを
用いずに、軟入力値を決定することができることである。
【0007】 入力されるデータ内の同期化パターンを見つける従来の方法は、データ流れが
ポイントを通過すると、データ流れを読みとり、同期化マークが見つけられると
カウンタを開始し、次のマークが期待されることを示す。この問題に関する問題
は、誤り同期化マークが見つけられるときは何時でも、その同期化マークが実際
に誤りであることを決定するまで、他の同期化マークの全てが無視されることで
ある。マークが誤りか否かは、他のマークを期待されたロケーションで見つける
まで決定されない。
【0008】 この問題は、更に大きな同期化マークを用いることにより、解決される(addre
ss)。しかし、より大きなマークは同期化モジュールに対して、より高いオーバ
ーヘッド(overhead)を引き起こす。加えて、同期化マークのサイズを増大させる
これらの解法は、ノイズ環境に悩まされる。他の可能性は2又は2を越えるロケ
ーションにてデータ流れを読み取り、2又は2を越える同期化マークが同時に期
待されることである。これは観察されるマークの数に、同期化マークの長さを乗
じることと同じである。これは望ましくない、なぜなら観察されるポイント間の
全てのデータは、RAMに蓄えられ、RAM内のスペースを占める。同期化マー
クの長さが増加するにつれ、同期化マーク内の1又は1を越えるビットが正しく
ない可能性が増加する。
【0009】 このようにして、必要なことは同期化マークに対するデータ流れを読み取り、
ただ1つの観察ポイントを用いる方法及び装置である。また必要なことは、周期
的な同期化マークを検索することにより、入力ビット流れを読みとる方法及び装
置であり、同期化されたとき、出力データ流れはビットとブロックが一列に並べ
られることである。
【0010】 従来の反復復号器は、1つのマイクロプロセッサを用いて、システム内に入力
されるデータを復号するのに要求される工程を実施する。これらの復号器は、比
較的遅い、なぜならデータはシステムのメモリに格納されるからである。ターボ
復号器のハードウエアを実行するには、一般にSISO復号器の直列連結を用い
、各SISO復号器が1つの反復を実行し、SISO復号器の後に続くデータを
通って以後の反復を実施する状態で、より速い復号スピードを達成する。そのよ
うな復号器は、システムの待ち時間を増加させ、また実施するのに更なるロジッ
クを必要とする。
【0011】 従来の幾つかの復号器は、並行処理を利用して、より高いデータ処理能力レー
トを達成している。これらのタイプの復号器は、RAMロケーション当たり4つ
の符号語ビットでデータを格納している。データは次にアクセスされ、直接4つ
の並列なSISO復号器に送られ、各復号器はクロックサイクル当たり唯1つの
符号語を入力できる。これらの復号器は、唯1つのSISOを用いる復号器より
も4倍のデータ処理能力がある。このようにして、処理能力は、並列なSISO
を用いて線形になる。例えば、復号器が4つではなく8つのSISOを用いるな
らば、速度が2倍で乱暴に処理するであろう。復号器が100メガビット/秒、
即ち丁度1ギガビット/秒で作動することが要求されるならば、この復号方法は
構築するのにはあまりにも複雑になる。更に、従来の復号器は強化型ターボプロ
ダクト符号(ETPC)をサポートできず、強化型ターボプロダクト符号は、ハイ
パー対角パリティとともに、拡張ハミング符号及び/又は パリティ符号のよう
な構成符号を含む。また、従来のSISO復号器は、一般にクロックサイクル当
たり1つの符号語を含む。故に、SISO復号器は、データが受信され、全ての
符号語がSISO内に入力されると、復号化工程を実施する。次にSISO復号
器は、クロックサイクル当たり結果である1つの符号語を出力する。
【0012】 代わりに、必要なのは、クロックサイクル当たり多数の符号語ビットを処理で
きるSISO復号器である。従って、必要なことはデータを並行処理でき、より
高い復号処理能力レートに高める(scale)ことができる復号化方法及び装置であ
る。また必要なことは、ETPCsを復号できるのと同様に復号を高めることが
できる方法及び装置のサポートである。必要なことはまた、複雑さが少なく、高
いデータ処理能力でRAMにアクセスする結果となる装置のRAMコンフィギュ
レーション方法である。
【0013】 従来の復号器はセンター符号語に最も近い符号語を見つける。従来の復号器は
、直ぐ近くの符号語を見つけるのに、既に用いられたビットロケーションレジス
タ、シンドローム演算、及び誤りルックアップテーブルを要求する探索アルゴリ
ズムを利用する。これらのアルゴリズム及びレジスタを用いると、復号器は著し
い量のハードウエアを要求する。このハードウエアは、著しい量のシンドローム
演算の為に処理が遅い大規模なシンドローム生成回路を有する。加えて、既に用
いられたビットロケーションレジスタ及びルックアップテーブルは、ハードウエ
アの量に加えるのに要求される。必要なことは減らされた探索アルゴリズムのセ
ット内で、最寄りの符号語を演算する方法及び装置である。また必要なことは、
最寄りの符号語の探索を簡単にし、従来よりも遙かに少ないロジックを用いて符
号語を減らす方法及び装置である。
【0014】 データブロックを訂正するのに要求される反復数は、ブロックからブロックへ
変わる。この現象は、通信路条件が白色ガウスノイズを有するときでさえ起こる
。通信路により作られる誤りのロケーション及び数により、復号器が集中する箇
所にてレートが変わる。図1は、反復の密度関数の確率を示している。図1のx
軸は、範囲が1から30の反復の回数を示している。y軸は反復数を要求する特
定のブロックの確率を示している。判るように、20回の反復を越えて延びる長
いテールがある。実際、このブロックのセットについては、要求される反復の最
大数は26である。
【0015】 反復型復号器が、最大の反復回数で動くことが要求されるとき、集中しない全
てのデータブロックが誤りとともに復号器から出力される。これによりビットエ
ラーレート性能が貧弱な結果になる、なぜなら復号器はもはやデータブロックに
ついて反復処理して、これらの誤りを訂正することができないからである。従来
の復号器は、一旦データブロックについて集中すると、反復を止める能力を有し
ている。しかし、復号器は連続した流れとして入るデータブロックについて集中
するとの問題を有する。換言すれば、復号器が反復を多数要求して集中するとき
は、データの伝送を止めるのは非常に困難である。
【0016】 必要なことは、符号語についていつ集中するかを決定できる復号器である。更
に必要なことは、より難しいブロックをより多く反復し、難しくないブロックを
より少なく反復する復号器である。必要なのは、連続流れで復号器に入力される
データブロックについて集中できる復号器である。復号器が反復の変数を作動さ
せることができるような構成を用いることが、また要望されている。
【0017】発明の要約 符号化された情報ビットのストリングの線形ブロックを復号化する方法及び装
置は、ストリングを複数の符号語に変換する工程、各符号語について硬判定及び
軟判定を実施し、硬判定及び軟判定ベクトルを生成する工程、シンドロームを演
算し、ガロア体演算によって2つの最小値のロケーションを見いだす工程、これ
らの値をLOW1及びLOW2と指定し、Nc1との排他的論理和をとってNc
2を生成する工程、Nc1とNc2を交換(swap)し、最も低い軟判定値であるM
in1及び次に低い値であるMin2を決定する工程を具えている。Min1を
生成する2つのビットロケーションは、MinA及びMinBとして指定される
。MinAは、Min2から値MinAを引いた値に置換され、MinBは、M
in2から値MinBを引いた値に置換される。方法は、全ての他のビットロケ
ーション値からMin1を差し引くことにより出力符号語を生成し、そのビット
ロケーションに0を有する全ての軟判定値の2の補数演算をする工程を含む。方
法は、新たな軟判定ベクトルを生成する工程を含む。 本発明の他の特徴及び有利さは、以下の好ましい実施例の詳細な記載を参照し
た後に明らかになるだろう。
【0018】望ましい実施例の詳細な説明 本発明は、強化型ターボプロダクト符号(ETPC)のフォーワード誤り訂正(
FEC)符号器/復号器システム又は装置に関する。本発明に基づいたシステム
は、拡張ハミング及びパリティのみの構成符号の両方を有する単一又は多次元符
号をサポートする。この装置は螺旋状インターリービング、同期化マーク挿入及
び検索、CRC(巡回冗長検査)演算、スクランブリング、及びより高いオーダー
の変調シンボルのマッピングについて、モジュールと同様にETPC符号器及び
復号器の両方を一体にしている。
【0019】 図2は、本発明に基づいたシステムのブロック図である。装置の符号器パス(1
01)は、符号化されないデータインターフェイス(103)、符号器モジュール(105)
、符号化されたデータインターフェイス(107)を含む。装置(100)の復号器パス(1
02)は、通信路インターフェイス(104)、復号器モジュール(106)及び復号化され
たデータインターフェイス(108)を含む。本システム(100)の復号器パス(102)内
の各モジュールは、復号器パス(101)内の各モジュールに対して、対応する役目
を果たすのが好ましい。符号器(101)と復号器(102)は、全2重動作ができるのが
好ましい隔離されたパスであり、符号器及び復号器は異なるフレーム構造、符号
タイプ、データレートにて動作する。
【0020】 システム(100)の符号器パス(101)は、バイトワイドデータを受け入れ、演算し
、ETPC符号化の前に巡回冗長検査(CRC)を挿入し、データをスクランブル
する。誤り訂正符号(ECC)ビットが符号器パス(101)によって復号器パス(102)
内に挿入された後に、データは螺旋状にインターリーブされ、ブロック同期化マ
ークが挿入されて、復号器(106)を補佐する。最終的には、データは信号点配置(
コンステレーション、constellation)に従ってマッピングされ、装置(100)から
出力される。
【0021】 螺旋状インターリービングは、データを螺旋状に送信する。通信路がバースト
誤りを招来するときは、復号器パス(102)の螺旋状デインターリーバは、これら
の誤りを符号の全ての軸を横切って分散させるだろう。螺旋状インターリービン
グは、符号のバースト誤り訂正能力を著しく増加させる。螺旋状インターリービ
ングは、符号化されたブロックを通って対角パスに沿って適用される。データは
対角線に沿って上部左側から下部右隅に出力される(2Dモードについて)。例え
ば、第1の出力対角出力は、ビット1行、1列で開始し、続いてビット1行、2
列で開始する。3D符号については、2D配列を通って対角に読む代わりに、イ
ンターリービングは、データの立方体を通って対角的に読む。3Dインターリー
ビング/デインターリービングは、x、y及びz次元を通って対角的にセルを読
み/書きすることにより成される。
【0022】 一般に、復号器パス(102)は、復調された位相及び直交(quadrature)要素を経
由して入力シンボルを受け入れる。内部ブロック同期装置(図示せず)は、同期化
マークを探し、必要ならば入力シンボルの位相を回転させる。同期化がなされた
後に、データは螺旋状にデインターリーブされ、ETPC復号器(102)によって
復号化される。復号器(102)の出力は、符号化データインターフェイス(108)によ
ってデスクランブルされ、CRCが計算されてデータが完全であることを証明す
る。
【0023】 本システムの復号器(102)がデータブロックを同期化するためには、プログラ
ム可能な同期化又は”sync”マークが、通信路に伝送される前にデータ流れに挿
入される。同期化マークは反転された同期化マークが各ETPCブロックの始め
に置かれた状態で、各ETPCブロックの始めに置かれ、ブロックの全体に亘っ
て置かれるのが好ましい。これにより、復号器が大きなETPCブロックサイズ
を用い、又は復号器がノイズ率環境に対し信号ロー状態であるときに、同期化工
程が加速される。同期化マークは、より詳細に後記する。
【0024】 図3は、本発明に基づいた通信路インターフェイスモジュールのブロック図を
示している。通信路インターフェイスは、4つのモジュールに分かれ、該4つの
モジュールは、通信路入力のフォーマット(202)、入力シンボルの回転(204)、ソ
フトメトリック演算(206)、及び同期化(208)の機能を果たす。本発明に於ける通
信路インターフェイス(104)は、復号器に対し通信路データをフォーマットする
。 復号器の性能を最大にするには、通信路からの軟(信頼値)情報が含まれてい
るのが好ましい。BPSK/QPSKを使用するとき、この情報は受信されたシ
ンボルの同相(I)又は直交(Q)要素から直接来る。しかし、より高いオーダーの
変調をもちいるとき、信号点配置の各ビットに対するソフトメトリック(soft me
tric)が演算される。これは後記する対数尤度比を用いることにより達成される
。ソフトメトリック生成に加えて、ETPC復号器(106)は一般にETPCブロ
ックの最初のビットのロケーションを知っている。これは予め定義された同期化
マークを入力ビット流れを通って探索することにより、通信路インターフェイス
(104)内にて達成される。通信路インターフェイス(104)は、内部にてソフトメト
リックを演算する為に、復調器の同相及び直交(I&Q)出力に直接接続するよう
に設計されている。これらの入力はデジタル復調器の使用とともに、又は外部の
アナログーデジタル(A/D)変換器によっての何れかにてデジタル化される。代
わりに、メトリック演算が外面的に成され、この場合、内部演算は迂回される。
【0025】 入力モジュール(202)に送られた符号化されたデータは、バースト状態(fashio
n)で受信される。このようにして、本発明の装置(100)は、符号化及び復号化の
両方に対して連続したデータの入力及び出力ができる内部バッファリングを含む
のが好ましい。復号器(106)から出力される伝送の数に対する復号器(106)に入力
される伝送の数との関係は、他の要因と同様に、ユーザーのパケットサイズ、E
TPCコードレート、同期マークのサイズ、ユーザーのパケットサイズ、CRC
、パッドビット、シンボルサイズに依存する。本発明の装置(100)がどのデータ
が入力され及び/又は出力されるかのレートを決定するには、全ての入力レート
対出力伝送レートの比が、装置(100)内にプログラムされている。この比は、デ
ータのシンボルサイズと同様に、データ流れに挿入され及び/又はデータ流れか
ら除去される全てのデータを考慮に入れる。
【0026】 本発明の位相回転モジュール(202)は、入力シンボルの位相を回転させること
により、位相不確定(phase ambiguity)の問題を解決する。入力シンボルは回転
されて、復号化される前に位相を訂正される。システム(100)は以下のアルゴリ
ズムを用いて、位相回転を決定する。1)0度回転させる同期化の試み、2)同期
化がこの位相回転を用いて探索されたなら、直ぐに復号化を開始する、3)同期
化装置(208)が同期を達成する間は待機し、同期化が探索されなかったら、位相
を1ステップずつ回転させる、4)同期化が完了するまで、ステップ2と3を繰
り返す。同期化が起こったら、入力流れの現在の位相回転を読むことができる。
位相回転は外部ロジックにより成される。加えて、同期化装置(208)は入力デー
タを、反転されたビット流れに自動的に同期するように構成される。
【0027】対数尤度比近似 対数尤度比(LLR)近似モジュール(206)は、実際の8−PSKのLLR、1
6−直交振幅変調(QAM)、64−QAM、256−QAM、及び他のより高い
オーダーの変調を線形近似する。信号対ノイズ比が増加するにつれ、LLRによ
る近似は、LLRの現実値に近くなる。現実のLLR表現は、線形に現れない、
しかし、LLRのプロットは、高い直線性の領域を示している。各LLRの一般
的な形状又は傾斜は、y=a(x−b)の形式である直線式を用いることにより近
似され、ここでa及びbは定数であり、xは独立変数である。a及びbの正確な
値は、現実のLLRの式から決定される。これらの値は、現実のLLRの微分(d
erivative)を取り、LLR形状の線形領域内の関係する特定のポイントを評価す
ることにより決定される。
【0028】 ETPC符号化パス(101)から出力されるデータは、”m”ビットにグループ
化され、ここで”m”はシンボル当たりのビット数である。符号化データインタ
ーフェイス(107)に入力されるこのビットのグループは、シンボルとしてマッピ
ングされ、通信路全体に伝送される。ビットがマッピングされる前に、グループ
化されると、ブロックの最初のビットは、信号点配置されたシンボルの最下位の
ビット、即ちLSBであることが好ましく、それに対して、グループのm番目の
ビットは、信号点配置されたシンボルのMSB(最上位のビット)であることが好
ましい。信号点配置が反回転した後に、装置(100)は入力シンボルI&Qをソフ
トメトリック値のセットに変換する。
【0029】 LLR近似化は、軟判定復号についてのソフト入力値を生成するのに用いられ
る。これらの値を決定する為に、LLRは所定の信号点配置に対して演算される
。データブロックのLLRを演算するとき、各信号点配置のポイントの位置は、
位相回転と同様に入力量子化範囲について入力される。本発明のLLRモジュー
ルは、所定の信号点配置について、I−Q平面内にて(I,Q)シンボルポイント
を取り、シンボルポイントの各ビットに対して、LLRを計算する。データは(
I,Q)ペアで受け入れられ、出力は(bn-1、…b0)n組で演算され、nは選択
された信号点配置により決定される。LLR出力は、シンボルの各ビットについ
て解のSOFT_BITS値を含む。
【0030】 本発明のLLR近似化方法は、SOFT_BITS値に基づいた線形式から引
き出される定数を利用する。線形式は、現実のLLRの個々の傾斜を検査するこ
とにより決定される。各傾斜は傾きの方向に関する偏微分を取ることにより、I
及びQ方向にて、決定される。ある領域に於いては、一方向にて傾きは0である
が、然るに他の領域に於いては、傾きは2つの方向に2つの傾きを有する。領域
内にて傾きの偏微分を取り、領域内にて関係するポイントにて微分を評価する(e
valuate)ことにより、傾きは決定される。
【0031】 図4a-図4cは、8−PSK信号点配置の各ビットに対するプロット(小区画)
を示している。図4aは、ビット0のLLRプロット、図4bは、ビット1のLL
Rプロット、図4cは、ビット2のLLRプロットを示す。図4aに於いて、全て
の信号点配置のポイントについて、傾きは同じである。 ビット1に対するLLRグラフは、ビット0のグラフと同じであり、両グラフ
はラインI=Qについてのイメージである。このようにして、1セットの式を用
い、I値とQ値を交換(swap)することにより、両LLRが決定される。また、L
LRのポイントされた領域は、同じ形状を有する。故に、ビット0とビット1に
対して、LLRを評価するのに2つの定数のみが用いられる。
【0032】 第1の定数は平面(プレーン、plane)で、グラフの下向きに傾いた領域内にて
、微分を取ることにより決定され、Iの絶対値はQの絶対値よりも小さい。この
領域にて、Q方向の傾きは0である。このようにして、Iに関する部分値(偏微
分値)が評価される必要がある。このようにして、LLRが原点から十分離れた
I=Qラインに沿った任意の点で傾きを取って、LLRが評価されるならば、定
数は決定される。第2の定数は、ポイントされた領域内で微分を取ることにより
決定される。各方向に於ける微分値は、符号のみが異なる。それ故に、何れの傾
きも定数を作る、なぜなら演算結果の符号は無視できるからである。
【0033】 しかし、定数は通信路の信号対ノイズ比(SNR)に依存する。本発明は、LL
Rの結果を量子化し、LLRの結果を独立値に飽和させる(saturate)。量子化に
関し、所定数のビット解、即ち広範な数を表すのに有用であるSOFT_BIT
Sがある。結果を量子化するために、第1段階はSNRに依存しない式を用いて
、LLRの結果を増加させることである。特に、式は下に示される。
【0034】
【数1】
【0035】 SOFT_BITSは、ビット解の数又は値であり、qLIMITは変調のタ
イプにより定義される定数である飽和限界である。上記式は、まだSNRに依存
しており、なぜならビット解は通信路上のノイズの総量に影響されるからである
。しかし、qLIMITが適切に選択されて、SNRに尚依存すれば、各変数の
SNRへの依存性は取り消され、他の各変数の依存性は離れる。このようにして
、上記式は高いSNR値でSNRから独立するようになるだろう。
【0036】 qLIMIT値は、最小のLLR値のピーク値となるように選択されるべきで
あり、qLIMIT値はSNRに依存するだろう。SNRが増加するにつれ、L
LRの量子化は8−10dBのあたりで一定となり、10dBを越えて一定にな
り続ける。更に、現実の通信路のSNRが十分高く留まっているならば、LLR
は正確に保たれるであろう。
【0037】 図5は、本発明に従ったLLRモジュール(206)のブロック図を示している。
LLRモジュール(206)は、入力パイプ(302)、ゲインモジュール(304)、PSK
モジュール(306)、2つのQAMモジュール(308)(310)、マルチプレクサ(312)、
浮動型(floating)から符号無し型(unsigned)(FTU)へのコンバータ(314)、及
び出力パイプ(316)を含む。入力パイプ(302)は、データを(I、Q)シンボルとし
て受信し、ゲインモジュール(304)はシンボルに倍数要素を掛ける(scale)。PS
Kモジュール(306)及びQAMモジュール(308)(310)は、データのLLRを演算
する際の変調スキームを決定する変調信号を受信する。PSKモジュール(306)
はLLR近似化についてLLR式を実行することにより、I−QペアのLLRを
算出する。 図5に示すように、LLRモジュールは、2つのQAMモジュール
(308)(310)を有し、各QAMモジュールは全てのビットについて並列に(in para
llel)LLRを算出する。QAMモジュール(308)(310)が、ビットの半分のLL
Rを演算し、LLRの結果としてLLRの値をマルチプレクサ(312)に供給する
のが好ましい。FTUコンバータ(314)は、マルチプレクサ(312)からLLRの結
果を取り、それを符号なしの数に変換する。FTUコンバータ(314)は、LLR
の結果を符号無しの値に変換するのが好ましく、それらはSOFT_BITSの
値から決定される。
【0038】 加えて、上記の量子化は、如何なる値も掛ける必要がないが、唯飽和し、値を
切り上げる(round)量子化回路にて成されるのが好ましい。加えて、量子化方法
の使用は有益である、なぜならハードウエア内にて定数は既に定義されており、
プログラムされる必要がないからである。
【0039】 mQAM及びmPSKのような、より高いオーダーの変調を用いるとき、シン
ボル毎のビット数はb=log2(m)である。螺旋状にインターリーブされてい
ない符号のx軸長さがbの倍数であるなら、信号点配置のシンボルの最下位のビ
ット(LSB)は、ETPCブロックの同じ列として、マッピングされるだろう。
同様に、2−Dに対してy軸がインターリーブされ、又は3−Dに対してz軸が
インターリーブされ、y軸又はz軸長さがbの倍数であると、信号点配置のシン
ボルのLSBは、ETPCブロックの同じ列として、マッピングされるだろう。
これらの状態に於ける符号の性能を改善するために、各シンボルを形成するビッ
トは、モジュロの式 x mod bによって回転され、xはシンボルを含む行で
ある。2−Dインターリーブ符号を用いるときは、各シンボルを形成するビット
は、y mod bによって回転され、3−Dインターリーブ符号を用いるときは
、z mod bによって回転される。例えば、非インターリーブ符号の第1行は
、回転を含まない。第2行は、1ビットだけ回転され、第3行は2ビットだけ回
転される等。b番目の行は、回転されない。
【0040】 回転機能は、変調シンボルからのビットをシャッフルするのに用いられ、シン
ボル内の信頼性の低い全てのビットは、同じETPCブロックの列又は平面内に
達しないことを確実にする。本発明に於いて、ニブル(4ビット)の広範な回転に
基づく簡易化したバージョンは、後継の行にて実施され、列を横切ってこれらの
信頼性の低いビットを広げる。データビットが回転中のモジュールに入るとき、
復号器(106)に入力される第1行は、回転しないのが好ましい。第2行は、1だ
け左に回転された全てのニブルを有するのが好ましい。第3行は、2だけ左に回
転された全てのニブルを有するのが好ましい等。3−D符号に於いては、第2平
面の第1行は、1だけ左に回転されるのが好ましい。次の行は、2ずつ左に回転
されるのが好ましい等。行は4ビットの倍数となることが保証されないから、行
の最後のニブルは、次の行からのデータを含むだろう。この最後のニブルは、第
1行内に残ったものと同じであり、続くニブルは次の行の回転に従って回転され
る。この回転は、すべてのETPCブロックの最初にてリセットされる。
【0041】同期化 本発明の装置(100)は、一度に多数の同期化の可能性を探る(track)ビット及び
ブロックレベルの同期化を利用する。装置(100)は、またファーストイン−ファ
ーストアウト(FIFO)RAM、又は任意の観察ポイントを利用する同期化マー
クのデータ流れをスキャンするキュー(待ち行列)を用いる。装置(100)は、同期
化スレッドと呼ばれる各同期化の可能性についての情報を格納するのが好ましく
、同期化マーク間のデータを格納しない。同期化マークの位置が見つけられたと
き(locate)、同期化スレッドが作成され、キュー内に格納される。同期化スレッ
ドは、nビットの符号無しの番号であるスレッド時間を含み、該スレッド時間は
ビットカウンタ上の時間、及びスレッド上で見つけられる同期化マークの数を示
すスレッドカウント値を指す。同期化モジュール(208)は、周期的な同期化マー
クを探すことにより、入力データを同期化する。同期化されたとき、出力データ
流れは、入力データに位置合わせされる(align with)。ロックしきい値が達せら
れたとき、ロックしきい値はプログラムされて、同期装置(208)に信号を送って
ロックする。 加えて、良好な同期化しきい値は、プログラムされて、同期化マ
ークが良好な同期化マークになるにはいくつのビットが必要かを同期装置(208)
に知らせる。しきい値よりも大きなスレッドカウントを具えた第1のスレッドは
、同期化に用いられる。良好な同期化しきい値が達せられたとき、同期化モジュ
ール(208)は各同期化されたデータブロックの最初の伝送に信号を送る。同期装
置(208)は、データが同期化モジュールに入力され、スレッドカウント値がキュ
ーの先端でスレッド時間に等しくなるまで見つけられた各マークに新たなスレッ
ドを加えると、同期化マークを探し続ける。 スレッドは、スレッドカウント値がスレッド時間に等しいときに、キューから
ポップオフ(pop off、取り出すこと)される。スレッド時間にて同期化マークが
見つけられると、スレッドカウントは増加されて、スレッドはキューに押し返さ
れる。
【0042】 全ての同期化は、シンボルからソフトメトリックにマッピングした後に、ビッ
トレベルで同期装置(208)内で成されるのが好ましい。反転された同期化マーク
は、ETPCブロックの先頭に置かれ、非反転マークはデータブロックの全体に
亘って分配され、同期化時間を減らす。同期装置(208)は、データ流れ内で多数
のポイントを見るのが好ましく、データ流れは同期化マーク間の期間によって分
離されている。同期装置(208)は、フレーム同期化マークを用いて、どこに同期
化マークが期待されるかを決定するのが好ましい。同期化モジュール(208)は、
同期化マーク内のいくつのビットが正しくないかを決定するが、尚、該同期化マ
ークを有効とする。同期装置(208)は、またデータ流れを反転されたビット流れ
内に同期化しようと試みる。同期化が反転されたデータ流れ上で得られるならば
、同期装置は全てのデータビットを反転する。
【0043】 同期化されたとき、装置(100)は同期化の損失を2つの方法で検出するのが好
ましい。1つの方法は、アップ/ダウンカウンタによって通信路に来る同期化マ
ークを監視し、カウンタは各無効なマークについて増加し、各有効なマークにつ
いて減少する。同期化の損失が想定されると、再同期化が実施される。
【0044】 加えて、同期装置が連続的な欠損ブロックのカウントを維持することにより、
同期化の損失を検出する。このカウントが同期化損失しきい値に等しいならば、
同期化の損失が想定され、再同期化が実施される。 再同期化が起こったならば、復号パス(102)上の全てのデータが廃棄され、内
部フレーム同期装置は無効となる(disabled)のが好ましい。更に、ETPCブロ
ックの終端及び次のフレームの先頭を越えて挿入されたどのビットも、装置(100
)によって廃棄される。各フレームの先頭はデータビットの伝送に合わせられる
のが好ましい。フレームを伝送に合わせる為には、フレームがシンボル毎にビッ
トの倍数でなければ、パッディングが加えられる。加えて、更なるデータが装置
(100)に入力されないならば、8つの追加ビットが装置に入力され、前のブロッ
クが復号化されて出力されることを許すのが好ましい。これらのビットは装置(1
00)によって自動的に廃棄される。
【0045】 同期装置(208)は、システムビット時間、即ち全ての予想される事象の時間を
計測するのに用いられるビット時間を維持する。ビット時間は、同期装置(208)
への各ビットの入力に対して、1つ増加する単なるカウンタであり、プログラム
可能な同期期間に達すると、リセットされる。同期期間は連続した同期マークの
先頭間のビットの数である。入力流れ内の各ビット位置は、その位置に於けるビ
ット数を表すスコア、及び誤りであったそれに続くビットの数を受信する。 同期装置(208)は、誤りが見つからなければ、或るスコアを与え、反転された
マークが見つかれば異なるスコアを与える。スコアがビットロックしきい値より
も小さい又は等しければ、同期化スレッドが作成される。同期装置は、ビット時
間を、現在のビット時間に有効又は良好な同期マーク間の予想される距離を加え
た時間に設定する。新たなビット時間は、スレッド内の次の同期化マークがいつ
予想されるかを表している。マークがノーマルならば、ノーマルカウントが1に
設定され、0に反転され、対応するスレッドは、FIFO構造に入れられる。
【0046】 次に、FIFOの先端のスレッドのビット時間は、システムビット時間と比較
される。これら2つの値が等しければ、スレッドはFIFOからポップオフされ
る。マークがこのビット時間にて見つけられたなら、ノーマル又は反転されたカ
ウントが、見つけられたマークにより、増加する。マークが見つけられなければ
、より大きなノーマル又は反転されたカウントが減少する。これらのカウントの
どちらもが、0より大きければ、スレッドがFIFOに押し返され、そうでなけ
ればドロップされる。スレッドの反転は、同期化ロックしきい値が満たされた後
にチェックされることも好ましい。
【0047】 同期化キューは、クロック毎に1プル及び1プッシュに限定され、クロック毎
に1以上のデータ入力を許す。同期化ブロック(208)がクロック毎にNビットを
受信すると、同期装置(208)は、Nビット離れて最良の可能性のある同期化マー
クをキューに入れるのが好ましい。そうでなければ、連続したクロック上にてキ
ューに入れられる2つのスレッドについて、同じクロック上で処理を要求するこ
とが可能である。
【0048】 バイパスモードに於いて、同期化モジュール(208)を通過する全ての入力デー
タは変わらない。各ブロックの先頭にマークするのに信号が使用され、それによ
って信号はブロックを通るデータとともに登録される。同期化が達成されるとき
、同期化信号はアサートされる(有効になる)のが好ましく、データは同期装置(2
08)から出力される。
【0049】 スレッド検索アルゴリズムを記載する。同期化マークが見つけられたとき、ス
レッドが作成され、該スレッドは次のマークが予想される時間を探索し、見つけ
られた各マークのタイプ及び数、スレッドが反転されたビット流れかを探索する
。 反転されたビットは、スレッドキュー内に格納された新たなスレッドに対し
て、0に設定される。マークが見つけられたならば、反転又は非反転のどちらに
しても、適切なマークカウンタが増加する。スレッド時間は再びセットされ、ス
レッドは格納される。マークが見つけられなければ、非反転マークカウンタは0
より大きければ、減少する。
【0050】 スレッドが格納されるとき、反転の為に調べられるのが好ましい。スレッドは
、反転カウントが非反転カウントより大きく、2つのカウントの和が2より大き
ければ、反転されたと考えられる。反転された入力がハイであれば、ノーマル/
反転されたカウントは交換され、反転されたビットが設定される。反転された入
力がローであれば、スレッドは除去される。ノーマルマークカウントに反転マー
クカウントを加えたものが、スレッドが受け入れられる前にスレッドカウンタ内
で蓄積した同期マークの数よりも大きい又は等しいければ、スレッドは同期化さ
れた流れと考えられる。
【0051】 システム(100)全体のデータの処理能力(throughput)が一定に達する為には、
FIFOに基づくレジスタ、及びFIFOに基づくRAMが用いられる。システ
ム(100)は、(データ)プッシュがRAM又はFIFOレジスタに入るかを決定す
るのが好ましい。リセット後、プッシュはレジスタブロックを一杯にし、次にR
AMを満たすことを開始する。全てのポップはレジスタFIFOから生じるのが
好ましく、レジスタFIFOが空ならば、空の出力はハイになるだろう。 システム(100)は、レジスタFIFOの状態を監視し、RAMが空でない限り
、レジスタFIFO内のいくつかのデータを保つために、RAMにリード(読込
み)を発するのが好ましい。RAMリードに於ける遅延故に、このシステム(100)
は、最初のデータが利用できる前に、多くのRAMリードを発することができる
。このようにして、システム(100)はキューポップを監視し、どれだけのRAM
リードがレジスタFIFO内に安全に適合するかを知るのが好ましい。
【0052】RAMコンフィギュレーション方法 システム(100)にて用いられるRAMコンフィギュレーション方法は、多数の
軸上のデータにアクセスする能力を有して、RAM内に格納されたETPCブロ
ックへの高帯域アクセスを提供するように設計される。ETPCは、拡張ハミン
グ符号及び/又はその他の符号にて構成され、データのオーダーは維持されるべ
きである。本装置の各ソフトイン/ソフトアウト(SISO)復号器(410)は、ク
ロック毎に1ビット以上のデータを要求する。ETPC復号器システム(100)は
、1以上のSISOを並列に有し、それによって各SISO(410)は、各クロッ
ク上の多数のデータポイントを受信することができる。 SISOに送られるデータポイントは、プロダクト符号ブロックを通って、符
号ベクトルを辿り、符号ベクトルはETPCブロックを通って多数の軸を横切っ
て繰り返される。RAMコンフィギュレーション方法は、クロックリード毎の伝
送をサポートし、"s"符号語セグメントについて書き込むのが好ましく、各符号
語セグメントは、多数の軸に沿った長さ内のdデータビットである。
【0053】 復号器(106)は、クロックサイクル毎にs×d符号語ビットの総和を処理する
。各SISO(410)は、符号語のdビットを受信し、連続的に出力するのが好ま
しく、s個の並列なSISO(410)の総和がある。sの値を増やすことは、並列
処理を単に用いることによりデータレートを増加させる。 例えば、sを2倍にすれば、並列なSISO(410)の数も2倍になる。また、
dの値が増えれば、各SISO(410)がデータを処理するレートも増加する。例
えば、dビットの数を2倍にすれば、各SISO(410)がクロック毎に処理でき
るビットの数も2倍になる。両s及びdの値は変数であり、所望の復号化レート
に達するために結果として柔軟になる。加えて、両s及びdを増やすことは、復
号化データレートを2乗する結果となり、復号器(106)は非常に高いデータ復号
化レートに達することができる。
【0054】 ETPCブロックは、多数の物理的なRAM間に分配されるのが好ましい。各
RAMに対して固有のアドレスが生成され、RAMワードは全てのRAMから読
み出され、復号器(106)によって要求される本願の論理的ワードにアセンブルさ
れる。各RAMは1度だけアクセスされ、読出し又は書込みサイクルを完結する
。要求される物理的RAMの数は、サポートされるべき軸の数と同様に、s及び
dの値に依存して変わり、各RAMのサイズは変わる。軸のサポート同様に、s
及びdの各結合は固有の解を有する。
【0055】 例えば、4×4×2を有し、s=2、d=2である3D符号は、以下に示され
る。
【0056】
【数2】
【0057】 本発明に従った物理的RAMは、ワード毎に2つの符号語を保持するのが好ま
しい。上記の平面0は、故にRAMに以下のように送信される。
【0058】
【数3】
【0059】 ここで、A又はBは、RAMの名前を表し、数は物理的なRAMのアドレスで
ある。この実施例の本発明は、こうして下記の符号語ビットを含むA0を有する
【0060】
【数4】
【0061】 両データポイントは、A0内に保たれる。
【0062】 上記例の全ての軸について、システム(100)は2つの物理的RAMを要求する
のが好ましく、各々は1つのデータポイントを保持している。平面0及び平面1
からのデータは、下記の如くRAM内にマッピングされる。
【0063】
【数5】
【0064】 このRAMコンフィギュレーション方法は、データ全てに等しくアクセスする
ことができる。この方法により、システム(100)は同じSISO復号器(410)を利
用して、如何なる符号の軸も復号することができ、復号される軸から独立して、
全てのSISO(410)をビジーに保つことにより、復号器の効率を最大にするこ
とを可能にする。これを示すべく、3つの各符号軸の復号化は以下に記載される
【0065】 本例に於ける復号器は、s=2 SISOを用い、各SISOはクロックサイ
クル毎にd=2符号語ビットを受け入れる。従って、RAMコンフィギュレーシ
ョン方法は、所定のクロックサイクル上で各RAMは1度だけ読み出されること
ができ、該クロックサイクルでSISO(410)により要求される全てのデータを
読み出すのが好ましい。3−D符号について上記されたRAMコンフィギュレー
ションは、この結果を達成するだろう。
【0066】 x軸を復号化するためには、平面0内の符号語の最初の2行は、クロック毎に
2つの符号語ビットを各SISO(410)に入力することにより、連続的に2つの
SISO(410)に入力される。一旦これら2つの行が完結すると、平面0の最後
の2行が入力される。次に、平面1の最初の2行、やがて平面1の最後の2行が
、SISOに入力される。これを達成するために、表1に示すように、次のRA
Mアクセスが起こる。
【0067】
【表1】
【0068】 上記表中のRAMアクセスは、2つの行でコードブロックから全てのデータを
一度に読み出し、クロックサイクル当たり全4つの符号語ビットを読み出す。R
AMが読み出されている際、データは、その後、2つのSISO(106)に入力さ
れる。RAMロケーションA0が読み出される場合、RAMロケーションからの2
つの符号語ビットは、単一のSISO(410)に入力される。同様に、ロケーショ
ンB0が読み出される場合、B0ロケーションからの2つの符号語ビットは、他方の
SISO(410)に入力される。
【0069】 y軸を復号化するために、クロック当たり2つの符号語ビットを各SISO(4
10)に入力することによって、平面0内の符号語の最初の2列は、2つのSIS
O(410)に連続して入力される。これら2列の入力が完了すると、平面0の最後
の2列が入力される。そして、平面1の最初の2列と、やがて平面1の最後の2
列がSISO(410)に入力される。これを達成するために、表2に示すような、
以下のRAMアクセスが起こる。
【0070】
【表2】
【0071】 RAMアクセスは、2つの列でコードブロックから全てのデータを一度に読み
出し、クロックサイクル当たり全4つの符号語ビットを読み出す。RAMアクセ
スは、その後、データを2つのSISO(106)に入力する。このケースは、表1
のケースと異なっている、なぜなら最初のクロックで第1のSISO(410)に送
られたデータは、ロケーションA0から読み出された1つの符号語ビットと、ロ
ケーションB0から読み出された1つの符号語ビットとで構成されているからで
ある。 同様に、最初のクロックで第2のSISO(410)に送られたデータは、ロケー
ションA0から読み出された他方の符号語ビットと、ロケーションB0から読み
出された他方の符号語ビットである。この方法を用いると、SISO(410)は、
行の代わりにコードブロックの列を符号化している。
【0072】 最後に、3−Dブロック内の平面又はz軸を復号化(デコード)するために、ア
レイ(行列)の最初の2つのz列の符号語は、最初のクロックサイクルで2つのS
ISO(410)に連続的に入力される。アレイは2つの平面のみを含んでいるので
、各z列がSISOに入力されるのに、1クロックサイクルのみが要求される。
この過程はアレイ全てのz列について継続される。これを達成するために、表3
のRAMアクセスが起こる。
【0073】
【表3】
【0074】 RAMアクセスは、2つのz列でコードブロックから全てのデータを一度に読
み出し、クロックサイクル当たり全4つの符号語ビットを読み出す。RAMアク
セスは、その後、データを2つのSISO(106)に入力する。このケースは、上
記で述べた行及び列と異なっている、なぜなら最初のクロックで第1のSISO
に送られたデータは、ロケーションA0から読み出された1つの符号語ビットと
、ロケーションB4から読み出された符号語ビットであるからである。同様に、
最初のクロックで第2のSISOに送られたデータは、ロケーションA0から読
み出された他方の符号語ビットと、ロケーションB4から読み出された他方の符
号語ビットである。この方法を用いて、SISO(410)は、x軸又はy軸の代わ
りにコードブロックのz軸を復号化している。このRAMコンフィギュレーショ
ン方法により、各軸は、他の任意の軸と同じクロック数で復号化される。そして
、この方法は、SISO(410)の入力容量について非常に効果的である。
【0075】 図6は、本発明に係るRAMインターフェースモジュール(408)を含むブロッ
ク図である。RAMインターフェースモジュール(408)は、オリジナルアレイ(O
A)RAM(402)、硬判定アレイ(HDA)RAM(404)、及びディファレンスアレ
イ(DA)RAM(404)とインターフェイスする。 RAMインターフェースモジュール(408)は、また入力モジュール(412)、出力
モジュール(414)、及びSISO復号制御モジュール(410)ともインターフェイス
する。RAMインターフェースモジュール(408)は、x、y、及びz軸を物理的
なRAMアドレスに変換することにより、RAMアドレスの論理的物理的マッピ
ングを行う。RAMモジュール(408)は、また、RAMバンクから来るデータを
ベクトルブロックフォーマットにマップする。全てのアドレス変化及び種々の軸
へのデータマッピング変換は、出力モジュール(414)に向けて、ユーザが気付く
ことなく完了されるのが好ましい。OA及びHDAは、夫々、OA RAM(402)
及びHDA RAM(406)を用いて、バックフォース手法(back forth fashion)に
よりセットアップされる。これにより、復号器(106)は、次のコードブロックが
入力されて直前のコードブロックが出力される間、1つのRAMバンクを処理で
きる。全てのOA、HDA、及びDA RAMバンクは、1個又は2個以上のR
AMから論理的に構成されており、各論理的RAMバンクは、RAMワードサイ
ズのデータバスを有している。RAMインターフェースは、ライブラリセットを
用いて、アドレス生成とデータマッピングをと制御する。
【0076】 RAMインターフェースモジュール(408)は、可能などのクロックにおいても
、OA RAMブロック(402)からの書き込み要求を受け入れる。x、y、及びz
方向のベクトル信号は、書き込まれるOA RAMブロック(402)内の値の位置を
示す。これらの位置は、RAMアクセスに要求される物理的RAMアドレスに変
換される。RAMインターフェースモジュール(408)は、値のベクトル位置を読
み出し、入力データでベクトルブロックを修正し、その後、修正されたベクトル
ブロックバンクをRAMバンクに書き込む。
【0077】 この方法は、潜在的な「書込前の読出」エラー事象を生じさせる。読出アドレ
スが発行される場合、「書込前の読出」事象は、デバイス(100)により検出され
る。RAM読出しは、その後キャンセルされて、送られる事象がキューに配置さ
れる。このキューは、交換するデータを書き込む用意ができるまで、事象をホー
ルドする。その後、書込データは、キャンセルされた読出データを交換するまで
待ち行列(キュー)に入れられる。この動作は、発行されるRAMアドレスに作用
する。
【0078】 出力コントローラ(420)は、出力モジュール(414)からの読出し要求を得て、H
DA RAMバンク(406)からデータを読み出す。出力コントローラ(420)は、ま
たRAMインターフェース内で、全てのアドレス解とデータバスマッピングを処
理する。その構成と動作は、入力制御インターフェース(408)内と同様であるの
が好ましい。しかしながら、出力コントローラは、HDA RAMセレクトマル
チプレクサ(424)にアクセスし、完全なベクトルブロックではなく、1ベクトル
ワードを出力ブロックに出力する。全ベクトルブロックがRAMバンクから読み
出され、オフセット値が、出力へ送られるベクトルを選択するために使用される
のが好ましい。
【0079】 図7に示す復号器コントローラインターフェース(416)は、復号コントローラ
インターフェースについて、全てのアドレス解とデータバスマッピングを処理す
る。復号器インターフェース(416)は、読出ポート及び書込ポート要素を使用し
、要求される2つの読出ポートと、書込ポートとを構成する。復号器インターフ
ェース(416)の読出ポートは、復号器インターフェース(416)の2つの読出ポート
について、アドレス生成とデータ変換を処理する。アドレス生成は、RAMアド
レス生成器(図示せず)により行われる。 RAMアドレス生成器は、対応する読出データがRAMから戻るまで、RAM
ブロックオフセット値、x_sub、y_sub、及びz_subを返す。オフセット値は、
RAMデータをベクトルブロック形式にマップするために用いられる。これは、
ベクトルブロックの全ての位置を通じてファンクションコールを実行することに
よって行われる。オフセット値は、オフセット遅延パイプ要素(図示せず)を用い
て遅延され、該遅延パイプ要素は、読出パイプ遅延クロックへの入力値を遅延さ
せる。書込ポートは、復号器コントローラ(416)からの書込みを処理する。書込
ポートは、読出ポートと同じアドレス生成方法を使用することが好ましい。
【0080】 [拡大縮小可能な軟入力/軟出力復号器] 本発明に係るシステム(100)は、少なくとも1つの可変データレートSISO(
410)を含んでいる。図8は、本発明に従ったSISO(410)の概要を示す。SI
SO(410)は、クロック当たり多数の軟入力ビットを処理し、コアに要求される
速度に依存して変化するように設計されている。SISO(410)は、可変コード
タイプと同様に、ハードウェアで実現される可変符号領域をサポートし、コンフ
ィグレーション可能な(configurable)入力で入力をフィードバックする。符号範
囲は、与えられたコアによってサポートされる最大ベクトルによって定められる
。SISO(410)は、拡大縮小可能か、最大ベクトルサイズまでのサイズの符号
タイプを復号化するように構成される。さらに、SISO(410)は、1/32から
31/32までの比を有するフィードバック定数を出力に掛けるように構成でき
る。レート乗数は、データビットのd数で示され、各パスがベクトルの一部に働
く並列パスとして、SISO(410)の大部分で実施される。しかしながら、ロー
ダモジュール(502)では、データベクトル内の最小な2つの値を見つける比較が
行われる。
【0081】 SISO内の記憶手段及び最近傍生成モジュール(504)は、ベクトル内の2つ
のアドレスが与えられる交換回路を使用しており、データベクトルが出力される
前にこれらのアドレスで軟値(soft value)を交換する。さらに、2つの軟値を足
し合わせて、ベクトルについて最小和が決定される。より高いdata_rate復号器
は、多数の交換を用いて並列に生じさせるので、本発明のデバイスにおいて、パ
イプライン化されたフリップ/フロップ手法が実施される。フロップの第1段階
は、data_rateステップずつ入力データバスからロードされる。date_rateは、
クロック当たりのベクトル値の数を示す自然値である。この値は、SISO(410
)により平行に処理されたビット値の数である。データバスが一杯になった後、
第1段階は、フロップの第2段階へクロックされる。ここで、交換はまだ生じな
いことが好ましい。データは、第2段階へクロックされ、第1段階は、現在のベ
クトルからのデータを修正することなく、次のベクトルのローディングを直ちに
開始できる。
【0082】 第2パイプ段階の出力は、実際のスワッピング過程を実行する、記憶手段及び
生成器(504)内のマルチプレキシング構造に接続されることが好ましい。マルチ
プレキシング構造は、計算されたロケーションで第2パイプ段階からdata_rate
値を引き出し、ロケーション0から始まってdata_rateステップに移行する第3
フロップ段階にデータをロードする。例えば、date_rateが2である場合、最近
傍計算エンジン(以下で説明されている)は、どのロケーションがロケーション0
とロケーション1で交換されるかを決定する。これら2つのロケーションは、第
2フロップ段階から読み出され、第3フロップ段階のロケーション0及び1へ書
き込まれる。次に、計算エンジンは、どのロケーションが2と3でスワップされ
るかを決定する。これらロケーションは第2パイプ段階から読み出され、第3パ
イプ段階のロケーション2及び3にロードされる。これは、データベクトル全体
について継続する。第3パイプ段階は、ロケーション0から開始すると共に、多
数のdata_rateに移行して、アンロードされる。ロケーションがアンロードされ
た直後に、ロケーションは、先述のスワッピング回路によって、次のベクトルか
らのデータで満たされる。
【0083】 最近傍計算 システム(100)は、最近傍計算を利用し、最近傍を見つけることにより決定さ
れた符号語のセットのサーチを減らす。さらに、最近傍関数内で、ガロア体内に
留まってシンドローム(syndrome)を計算し、その後、物理的ロケーションに戻っ
てそのシンドロームをマップする。これは、従来技術のように、一般的な周期的
シンドローム生成回路を用い、H行列の列のロケーションに戻ってその結果をマ
ップすることにより、ハードウェア内での大幅な減少を許す。さらに、本発明の
最近傍方法は、従来技術よりも何倍もサイズが小さく、それゆえに電力も消費し
ないシンドローム生成回路を使用する。さらに、計算がXORゲートの約2レベ
ルまで減少するから、本発明のシンドローム生成回路は、従来技術の同様な回路
よりもかなり速い。また、本発明の方法は、平行して最近傍を見つけているとき
に必要であった「使用済みの」ビットを除去する。
【0084】 本発明のSISO(410)は、ガロア体計算で構築されている最近傍生成器を使
用して、拡張ハミング復号ロジックをかなり減少している。最近傍計算ロジック
は、ガロア体表現でLOWi1及びLOWi2が入力される。生成器は、Nc1
ロケーションでLOWi1及びLOW2の値に排他的論理和演算を施し(XORing)
、ゼロから開始して、ベクトルを通して増加する。この排他的論理和演算の結果
はNc2であり、Nc1でスワップするロケーションである。Nc2はガロア体
表現であるから、本発明のLLR方法について先に説明した様に、Nc2は、ガ
ロア体演算の対数を取ることによって整数表示に変換されることが好ましい。
【0085】 最近傍生成器(504)は、2つの最小のコンフィデンスビットロケーションの最
初で、ハミング重みが4である符号語のセットを計算する。本発明では、符号語
は、ガロア体GF(2x)に合わせられ、ここで、2x−1は、ハミング符号長であ
る。2つの最小コンフィデンスビットロケーション、LOWi1及びLOWi2
が計算され、GF(2x)ロケーション内の最近傍関数に与えられる。Nc1とN
c2は、LOWi1及びLOWi2とともに最近傍ベクトルを定義する。最近傍
関数は、GF(2x)計算を用いてLOWi1及びLOWi2ロケーションに第3
GF(2x)ロケーションを加算し、Nc2のガロア体ロケーションを見つける。
ロケーションNc1及びNc2にて、シンボルが交換されて、ロケーションのガ
ロア体表現は、ガロア体対数を取ることにより物理的アドレスロケーションに変
換される。ガロア体は、H行列の列の和を用いるよりもコードシンドロームを見
つけるために使用される。これは、ガロア体要素とH行列要素が等しいからであ
る。
【0086】 本発明のSISO(410)が、本システム(100)で動作する好ましい方法を説明す
る。SISO(410)は、最初に入力データベクトルを受信し、ベクトルを硬判定
値と軟信頼値(soft confidence value)に変換する。 一旦これが行われると、以後アルファと称す符号語のシンドロームは、符号語
の各ビットについてガロア体計算を用いることにより生成される。符号語の各ビ
ットに対して1ビットのパリティが同時に生成される。次に、SISO(410)は
、誤りを有している際にシンドロームが示す全てのロケーションを修正する。さ
らに、SISO(410)は、これらロケーションの各々について、パリティビット
を修正する。符号語内の全ての値が、アルファとしてアドレス指定されるから、
マッピングの必要はない。次に、SISO(410)は、2つの最小値、LOWi1
及びLOWi2を見つける。これらは、各々のアルファ値で指定される。 次に、アルファの累乗の全てについてNc1を進ませることにより、SISO
は最近傍を生成し、Nc2を決定する。たった一度しか生成されないパリティビ
ットを含むパリティを除いて、SISOは、通常全てのNc1とNc2の対を2
度生成する。全てのアルファの累乗についてNc2が生成された後、複製された
ロケーションを除いて、SISOは、全てのロケーションを交換する。LOWi
1及びLOWi2の値は交換(swap)され、それらの値は、2の補数化される(2's
complemented)。
【0087】 全てのロケーションが交換された後、負の値を除いて、スワップされた値の全
てが足し合わされる。一旦交換された値が足し合わされると、最小和(min1)
及び第2最小和(min2)が、min1を生成した2つのロケーション、min
A及びminBとともに決定される。min1の2つのロケーション、minA
及びminBが、その後アルファ内にアドレス指定される。min1及びmin
2値は、その後、線形の2の補数表示に変換され、minA及びminBのロケ
ーションは置き換えられる。minAは(min2−minA)に置き換えられ、
minBは(min2−minB)に置き換えられることが好ましい。ゆえに、L
OWi1の値はminAに等しくなり、出力はセンター符号語となる。結果とし
て、反転される必要のある硬判定ビットはない。続いて、LOWi1の値には、
上述のフィードバック定数が掛けられて、2の補数符号付き出力値に変換される
。その値は、変換された後、記憶レジスタとマルチプレクサロジックモジュール
に送られる。これらは、アンローダブロックに硬判定及び軟判定ベクトルを送る
【0088】 生成器モジュール(504)は、最近傍符号語を見つけ出し、LOWi1及びLO
Wi2を修正し、全ての近傍Nc1/Nc2対間の信頼値を交換し、min1、
min2、minA、及びminBロケーションを生成するロジックを含む。ロ
ーダからのデータは、アルファとして生成器モジュール(504)に転送されるから
、データはアルファ順に記憶される。各グループはdate_rate記憶ロケーション
を含み、各ロケーションは、ビットワイドの或る数である。
【0089】 図9は、本発明のSISO(410)内の生成器モジュール(504)のブロック図であ
る。硬データベクトルは、data_reg入力レジスタ(602)に入り、軟値は、最近傍
生成器(606)に入る。ローダブロック(502)(図8)からのload_complete信号は、
ベクトルの最後のデータの転送を示す。 入力データの最後のグループが、ロードされると、ベクトル全体が転送レジス
タ(604)に転送されて、次ベクトルがdata_regレジスタ(602)にロードされてい
る間、生成器モジュール(504)が和、修正値、及び最小値を計算する。
【0090】 拡張ハミングコードでは、生成器モジュール(504)は、ローダ(502)からのLO
Wi1及びLOWi2を受信し、load_complete信号が受信された後に、最近傍
符号語ロケーションの生成を開始する。生成器モジュール(504)は、LOWi1
、LOWi2、及びアルファカウンタ入力に排他的論理和演算を施すことにより
、ガロア体計算を用いて各Nc2近傍を生成する。各Nc1/Nc2セットは2
度生成される、なぜなら全てのアドレスロケーションを経由してアルファカウン
タがカウントし、Nc1はNc2を生成するセットについては、Nc2ロケーシ
ョンはNc1を生成するからである。同様に、Nc1がLOWi1に等しい場合
、Nc2はLOWi2に等しくなるべきである。
【0091】 そして、Nc2値は、ダイレクトマッピング機能を用いて、アルファセットか
ら物理的アドレスにマップされる。マルチプレクサ(608)が、転送レジスタ(604)
から交換レジスタ(610)をロードするために選択する際に、マップされたNc2
値は、使用のために登録される。転送レジスタ(604)内のデータはアルファ順に
記憶される。これは、ロードアドレスモジュールと同じアルファ順であることが
好ましい。 また、ロードアドレスモジュールは、Nc2を生成するためにNc1として用
いられる。Nc1は、ダブルNc1/Nc2対を生成する全ての記憶ロケーショ
ンについて受信される。各Nc1についてNc2が存在するので、この情報の全
ては、交換レジスタ(610)をロードするために使用される。マップされたNc2
アドレスは、転送レジスタ(604)からデータを選択する。転送ファレジスタ(604)
は、ロードアドレスモジュールと対にされ、ロードアドレスモジュールでグルー
プとしてデータを記憶する。アルファロケーションでNc2値を記憶する行為は
、Nc1とNc2の値を交換する。
【0092】 転送レジスタ(604)からの信頼データは、データレジスタ(602)から引き出され
、最小和min1及びmin2を見つけると同様に、ロケーションLOWi1及
びLOWi2でデータの修正を計算するために用いられる。信頼値は、それらが
ロードされた際と同じグループで転送レジスタ(604)から選択される。修正ロジ
ックは、加算ロジックを組み込んでおり、クリティカルパス(入力から出力まで
の遅延)タイミングを減少させる。 修正は、ロードアドレスレジスタがLOWi1又はLOWi2に等しい場合に
行われるのが好ましい。入力をローダ(502)へ登録することは、転送レジスタ(60
4)からのデータパス遅延故に成される。修正が2に等しい場合、2つの正の信頼
値が足し合わされる。信頼値は、(confidence/2)*.5を表すので、その和は信頼
値に付加的な1を加える。修正が1に等しい場合、1の正信頼値及び1の負信頼
値が足し合わされる。ここで、その和は、ちょうど、Nc1及びNc2の信頼値
の2の補数の和である。なぜなら各値の(confidence/2)*.5は他方とキャンセル
するからである。修正の数がゼロである場合、2つの負の信頼値は加えられて、
和は(和−1)になる。和はロードアドレスレジスタに登録される。
【0093】 登録された信頼値は足し合わされて、data_rateの和は、min1及びmin
2の和と比較される。data_rateの和とmin1及びmin2の和との最小の和
は、minA及びminBとして記憶されたmin1を生成するロケーションに
対して、min1として記憶される。2番目に小さい和は、min2として記憶
される。min2を生成するロケーションは、minA2及びminB2として
記憶される。 minA2及びminB2は記憶され、得られた和が比較に使われる2回目の
機会が無効となる。ダブルNc1/Nc2対ゆえに、各和は2度生成される。2
つの値の大きい方の値が1になると、最小和の比較がなされる。これにより、和
の1つが0に等しい信頼スコアで処理を終了し、他の和は、1に等しい信頼スコ
アで終了する。信頼スコアが0である和はmin1値であり、信頼スコアが1で
ある和はmin2値である。minA及びminBレジスタは、データレジスタ
アドレス、min1及びmin2の和を選択したNc1アドレス及びNc2アド
レスをホールドする。
【0094】 アンロードモジュール(506)において、Nc1アドレスは、データレジスタ(60
2)からの出力データをdata_rateセットを選択するために用いられる。記憶され
た信頼データは、(confidence/2)*.5値を示し、交換レジスタ内の全てのconfide
nceは正であるから、選択されたデータは2を掛けられ、1だけ増分されて、修
正の前に実際の信頼値を回復することが好ましい。出力修正機能は、先述の和デ
ータパス修正と同様である。1のベクトルからのデータがアンロードされる一方
で、他方のベクトルがロードされるので、修正LOWi1及びLOWi2値は、
出力修正のために登録される。例えば、修正入力が「01」である場合、アドレ
スLOWi1のデータロケーションは修正される。しかしながら、修正入力が「
10」である場合、アドレスがLOWi1及びLOWi2であるデータロケーシ
ョンが修正される。データ修正は硬判定ビットを反転させること、及び信頼値の
2の補数化を含む。従って、信頼値は、このブロックで負になることができる。
【0095】 パリティコードの場合、load_complete信号が受信された後、生成器モジュー
ル(504)は、ローダ(502)からLOWi1及びLOWi2を受信する。近傍は生成
されず、和は計算されない。min1はロケーションLOWi1の信頼値であり
、min2はロケーションLOWi2の信頼値である。minA2及びminB
2は、パリティコードに使用されない。パリティコードについて和及び最小値を
計算する必要がないとしても、出力信号のタイミングは、拡張ハミングコードと
同じとなり、ブロック内でロジックを無効にする。修正入力は、パリティコード
に対して有効である。パリティコードが選択される場合、生成器モジュール(504
)からの出力の間、min1及びmin2値は修正される。
【0096】 [ストップ反復及び反復バッファ] ストップ反復(イタレーション、iteration)は、全ての軸が一致する答えに軸
反復が集束した場合に、復号器(106)に復号化を停止させるために用いられる。
ストップ反復の値は、ETPC復号器(106)の平均処理能力を増加させ、さもな
ければ、復号器(106)の性能を増加させる。反復バッファで用いられるストップ
反復は、データレートを反復の平均数に基づくようにセットする。ストップ反復
は、高い信号対ノイズ比を具えるブロックが、低い信号対ノイズ比を具えるブロ
ックを早く終え、平均で最大反復に設定した場合に比して、全体としてより良い
復号器性能を求めて、長く反復する。
【0097】 復号器(106)が集束を検出する1つの方法は、各軸について、それになされる
修正なしで復号することである。各軸が修正ありで復号された場合、ある付加的
な軸は、最後のパスとして復号され、HDAのデータの符号を決定する。復号器
(106)が集束を検出するもう一つの方法は、最初の軸が修正ありで復号される場
合に、前のDAデータの符号を確認することである。前の軸反復が修正されたが
、それらの修正が現在の反復結果と全て一致する場合、前の軸反復が使用される
。このケースでは、最初の反復が修正なしで完了した後、ストップ反復機能が集
中に対して2つの良好な軸反復をカウントする。符号の残りの軸は、その後修正
なく復号されて、復号器(106)は早く停止する。よって、本発明の復号器(106)は
、ストップ反復機能を用いる従来の復号器を超えた2軸の改善を有する。
【0098】 SISO出力の符号は、ストップ反復機能が使用される場合、全ての軸反復に
ついてHDA RAMをロードするために使用される。各軸が修正なしで復号さ
れた場合、復号器(106)は、1つの付加的な軸復号をしてHDAを満たすよりも
、最終的に復号された出力としてHDA内のデータを使用することができる。さ
もなければ、どのSISO出力も0の場合、復号器(106)は、付加的な軸反復を
行うように強制されてHDAを満たす。 SISOの0値出力は、その特定ビットの信頼値に変化がないことを示す。S
ISOの負値出力は、信頼値に0硬判定ビットを付加し、正値出力は、1の硬判
定ビットを信頼値に加える。0値は、入力データの符号について情報を与えず、
データに修正がないことは、復号器(106)はビットを変化させなかったことを示
す。SISO出力データの何れも0でない場合、復号器(106)は、付加的な軸反
復を行うことなく、復号化が完了する。
【0099】 収束の検出開始時に1の軸反復を保存し、復号化の最後で1の軸反復を保存す
ることは、従来技術の復号器(106)のストップ反復を超えた、実行可能な2軸反
復保存を与える。ハイパーコードの付加は、幾つかの特定の条件を、良好な軸反
復として前のDAの確認に付加する。ハイパーコードを具える2次元データブロ
ックにおいて、軸を復号する好ましい順序は列、行、そして行が符号化されない
対角である。ブロックが、列よりももう1つの行を有するようにハイパー軸はブ
ロックと結び付いているから、列、即ちy軸は、ハイパー軸の動きを確認できな
い。言い換えると、y軸は、ハイパー軸内のデータの最後の行を復号できないの
で、前のDAは、収束に向けてカウントされない。
【0100】 3次元コードブロックでは、軸が復号される好ましい順序は最初に列であり、
次に行であり、平面が続く。次に、ハイパー軸が復号される。x軸及び/又はy
軸は、できる限り復号化されるであろう。ハイパー軸を具える3次元コードにお
いて、z軸は、他の全ての軸よりも1平面短い。よって、z軸の前の軸は、z軸
によって確認されない。
【0101】 図10aは、システム(100)の状態機械におけるストップ反復機能方法のフロ
ーチャートである。図10bに示すように、符号化されたデータは、ストップ反
復有限状態機械のノー_クリーン状態(700)に入る。任意の修正が軸反復の間に
SISOによってなされた場合、siso_corrフラグはアサートされる。siso_co
rrフラグがある場合、符号化されたデータは、復号器(106)に入ると、強制的に
ノー_クリーン状態(700)になる。データがノー_クリーン状態(700)を経た後、
制御信号signs_matchがフラグとして付加されて、SISOへの入力の符号が、
前のDAデータの符号と一致するか否かをアサートする。符号が一致する場合、
前の軸反復は、ブロックが収束していることを示す1及び0を、信頼値に付加す
る。このフラグにより、ストップ反復機能は、修正無く終了するために各軸を待
つ必要がある場合よりも、1軸早くストップする。さらに、datao_zero信号は
、SISOの出力が0である場合、符号化されたデータへアサートされる。SI
SOからの0出力は、入力が1又は0であるかを示さないので、HDA入力は決
定できない。data_zero信号がある場合はいつでも、復号器(106)は、もう一つ
の軸反復をするように強制される。従って、データが状態機械に入る際にdatao
_zero信号がある場合、データはノー_クリーン状態(700)を経る。
【0102】 図10cは、ノー_クリーン状態(700)におけるストップ反復機能のフローチ
ャートである。データがノー_クリーン状態(700)を経た後、データは、signs_
match信号がアサートされるか否かに依って、ワン_クリーン状態(701)又はツー
_クリーン状態(702)の何れか一方になる。sign_match信号がアサートされる場
合、データは、ツー_クリーン状態(702)に進む。しかしながら、アサートされ
るsign_match信号がない場合、システム(100)は、datao_zero信号があるか否
かを決定する。 データがノー_クリーン状態(700)を経た後、datao_zero信号
がアサートされた場合、データはワン_クリーン状態(701)になる。そして、復
号されている現在の軸及びハイパー軸に応じて、ストップ反復機能が完了する(7
05)か、又はデータがツー_クリーン状態になる。hyp_vaild信号が有効なハイ
パー軸を示すのに対して、dec1_axis信号は、復号されている現在の軸を示す。
復号器(106)は、ハイパー軸が有効でないこと、及び復号されている現在の軸が
「01」又は「10」の何れでもないことを見れば、ストップ反復機能が完了す
る(705)。さもなければ、データはツー_クリーン状態(702)へ送られる。
【0103】 符号化されたデータは、ワン_クリーン状態(701)に送られた後、もう一つの
反復を受ける。図10dに示すように、アサートされるdatao_zero信号がない
場合、復号器(106)は、データがワン_クリーン状態(701)に入った後、反復を停
止する(705)。しかし、ワン_クリーン状態(701)を通じてデータが反復を受けた
後にdatao_zero信号がある場合、符号化された軸の数に応じて、データは、ツ
ー_クリーン状態(702)又はラスト_パス状態(704)の何れか一方になる。符号化
された軸の数が2よりも多い場合、符号化されたデータは、ツー_クリーン状態
(702)に送られる。一方、符号化された軸の数が2に等しい場合、データはラス
ト_パス状態(704)になる。
【0104】 符号化されたデータは、ツー_クリーン状態に送られた後、もう一つの反復を
受ける。図10eに示すように、アサートされたdatao_zeroがない場合、デー
タがツー_クリーン状態(702)に入った後、復号器(106)は、反復を停止する。し
かし、ツー_クリーン状態(702)を通ってデータが反復を受けた後にdatao_zero
信号がある場合、符号化された軸の数に応じて、データは、スリー_クリーン状
態(703)又はラスト_パス状態(704)の何れか一方になる。符号化された軸の数が
3である場合、データはラスト_パス状態(704)に送られる。反対に、符号化さ
れた軸の数が4に等しい場合、データはスリー_クリーン状態(703)になる。
【0105】 符号化されたデータが、スリー_クリーン状態(703)に送られると、もう一つ
の反復を受ける。図10eに示すように、アサートされたdatao_zeroがない場
合、データがスリー_クリーン状態(703)に入った後、復号器(106)は反復を停止
する。さもなければ、datao_zero信号がアサートされた場合、データは、再度
反復されてラスト_パス状態(704)に送られる。
【0106】 本発明の復号器(106)は、反復数を変えて実行するように構成できる。デバイ
ス(100)は、内部バッファリングモジュールを含み、デバイス(100)を通る一定の
データフローでブロック当たりの反復数を可変にすることが好ましい。 復号器(106)が、或るブロックで更なる反復を必要とすると、バッファは、復
号器(106)がブロックの処理を完了するまで入ってくるデータビットを記憶する
。第2論理バッファが復号器(106)の出力に配置されて、一定の待ち時間を復号
器(106)に与えることが好ましい。このバッファの論理サイズは、バッファレジ
スタによって設定される。バッファサイスを大きい値に設定することにより、復
号器(106)は、困難なブロックをより長い時間で反復する。このサイズを小さい
値に設定すると、デバイス(100)を通過する遅れは減少する。バッファは、入力
バッファが一杯になると復号器(106)が反復を停止するように設定される。よっ
て、入力バッファが一杯近くになると、デバイスは自動的に現在のブロックの反
復を停止し、ブロックを出力バッファに送る。ブロックが出力バッファに送られ
ると、デバイス(100)は次のブロックのロードを開始する。
【0107】 反復バッファにより、本発明の復号器(106)は、要求される信号対ノイズレベ
ル性能及びデータレートにより、平均反復レベルセットを動作させる。復号器(1
06)の性能は、復号器(106)がコードブロックを処理する反復数の機能である。反
復バッファは、上述の復号器(106)のストップ反復機能は、困難なブロックを長
く反復する一方で、容易に復号されるブロックを平均反復数の前に終了させると
いう利点を有する。ダンプブロック入力を制御することで、バッファは、アンダ
ーフローを防ぎ、オーバーフローを規制する。ダンプブロックに信号がアサート
されると、復号器(106)は、現在の軸の反復を中止し、最後の軸を反復する。こ
れが起こると、復号器(106)は反復を強制的に終了されるので、出力データが復
号化エラーを含むことがある。また、反復バッファは、従来の復号器(106)に比
較して、所定の反復数にてより良い信号対ノイズレベルにて実行する柔軟性を与
え、復号器は所定の信号対ノイズに達するまで動作しなければならない一定の反
復数を有する。さらに、反復バッファにより、サイズの改善のための内部解のビ
ットはより少なくなり、又はより速いデータレートに対する平均反復レベルはよ
り低くなる。
【0108】 好ましい実施例では、反復バッファは、バイパスモード、ストリーミングモー
ド、又はFIFOモードについて構成される。バイパスモードでは、反復バッフ
ァに送り込まれるデータは、復号器(106)に直接通されて、復号器(106)のデータ
出力は、反復バッファに直接通される。 ストリーミングモードでは、反復バッファによって、復号器(106)が平均反復
レベルで動作する。復号器(106)の性能は、復号器(106)が動作するために設定さ
れた反復数の機能である。反復バッファにより、復号器(106)はストップ反復機
能を使用でき、容易に復号されるブロックは、平均反復機能より前に終了し、困
難なブロックは長く反復する。反復バッファはダンプブロックを制御し、一定の
出力データフローを維持するのに必要な平均反復レベルを強制する。FIFOモ
ードでは、反復バッファは、2つの独立のFIFOとして動作する。一方のFI
FOは、入力データをバッファし、データを復号器(106)へ出力するために使用
される。他方のFIFOは、復号器(106)からの出力データをバッファする。
【0109】 反復バッファは、各クロックについて反復バッファに登録される幾つかのコン
フィグレーション入力信号を有する。buffer_enable信号は、入力データが反復
バッファを通って復号器(106)へ送られるか、直接復号器(106)へ送られるかをア
サートする。buffer_mode信号は、反復バッファに、バッファ内で動作するか、
FIFOモードで動作するかを教える。buffer_modeがクリアされると、反復バ
ッファのRAMは、FIFOモードに設定されて2つのセクションに分けられる
。buffer_modeが設定されると、バッファRAMがバッファモードに設定される
。buffer_modeがクリアされると、buffer_size信号は、128シンボルのステ
ップにおける入力及び出力FIFO両方のサイズを決定する。buffer_mode信号
が設定されると、この信号は、開始時に反復バッファの準備をするために使用さ
れる。所定数のビットが反復バッファに書き込まれるまで、反復バッファはデー
タを出力しない。言い換えると、ポインタ間の差がbuffer_sizeに等しくなるま
で、バッファはデータを出力しない。 buffer_sizeは、物理的RAMのシンボル数よりも(n−k)+64ビット小さ
く設定されることが好ましい。ここで、nは入力フレームビットの全数であり、
kはフレーム当たりの出力ビットの最小数である。(n−k)個の付加ビットによ
り、反復バッファの出力は入力の書き込みよりも遅く読み出される。付加された
64ビットは、入力/出力クロック比を変化されるために使用される。さらに、b
uffer_sizeは、8データパケットを保持するために必要な空間よりも小さいこ
とが好ましい。
【0110】 上述のように、反復バッファは、128ビットステップで、入力FIFOに記
憶されたシンボル数とbuffer_sizeの最小差を決定する。これは、入力がFIF
Oモードにおける反復バッファを一杯にしないことを保証する。buffer_modeが
設定されると、ロックしきい値信号は、128ビットステップにおける、復号器
(106)から反復バッファに書き込まれたビット数と反復バッファから出力された
ビット数の最小差を決定する。これは、出力に利用されるデータがいつも存在す
ることを保証する。ロックしきい値信号は、反復バッファ入力がオーバーフロー
する前に、2軸反復時間に出力を通る遅れ時間が足されるように設定される。
【0111】 反復バッファは、復号器(106)モジュールに接続され、これら2つの間でいく
つかの信号が送受される。これらの信号のうちで、gal_rsyncは、復号器(106)
により受信された入力同期信号であり、入力データ値が新しいブロックの最初の
値であることを示す。また、これは、受信されているgal_rsyncと新しいブロッ
クの先頭との間で、復号器(106)への各移送について動的に維持される。gal_os
ync信号は、復号器(106)内の受信データの出力同期状態を示す。ブロックの最後
のニブルの移送が受信された後、この信号はアサートされる。これにより、信号
は1クロックの間維持される。gal_ordy信号は、buffer_modeが動的である場
合にバッファがロックしきい値まで満たされたことを示す。また、gal_ordy信
号は、buffer_modeが動的でない場合に、データが出力FIFOに使用可能であ
ることを示す。この信号は、バッファが空になるまでアサートされる。
【0112】 FIFOモードでは、反復バッファは、2つの独立なFIFOのように働くこ
とが好ましい。各FIFOのサイズは、buffer_sizeコンフィグレーションバス
により設定される。バッファがFIFOに設定される場合に要求されるオフセッ
トは存在しない。入力FIFOは、入力データを記憶し、復号器(106)にデータ
を出力する。データのこれらのセットは、両方ともnビットのブロックである。
出力FIFOは、kビットのブロックの状態で復号器(106)から書き込まれたデ
ータを記憶する。これら両方のFIFOは、互いに独立していることが好ましい
。出力FIFOは、使用可能な空間がある場合はデータを受け入れ、出力する有
効なデータを有する場合はデータを出力する用意をする。
【0113】 FIFOモードでは、ロックしきい値は、128シンボルにおける反復バッフ
ァに書き込まれたシンボル数と出力ビット数との最小差として定義される。これ
は、FIFOモードで入力が一杯にならないことを保証する。充満しきい値は、
入力がオーバーフローする前に、復号器(106)に復号化を終了し、復号されたデ
ータをアンロードする時間を与えるよう設定される。出力FIFOは、入力FI
FOと関係しておらず、dump_blockが発せられているかを知らない。
【0114】 バッファモードでは、反復バッファは、4つのアドレスポインタと1つのしき
い値レベルを具える単一の2ポートRAMを用いて実施されることが好ましい。
データのETPCブロックは、反復バッファRAMを通ることなく復号器(106)
に入力される。データブロックを復号する時間は、ブロックをロードしアンロー
ドする時間と等しいことが好ましい。反復バッファにより、復号器(106)は、平
均よりも長い幾つかのブロックを復号できるのと同様に、ローディングとアンロ
ーディングとを変えることができる。バッファは、如何なるデータがバッファか
ら出力される前でも、上記の充満しきい値に満たされる。
【0115】 復号器(106)の書込ポインタgal_wrは、最後に復号されたETPCのニブルが
復号器(106)に書き込まれた後、次のブロックの先頭にジャンプする。復号器(10
6)は、最後に出力されるニブルを信号で送るので、最後に復号されたETPCの
ニブルは知られている。ETPCブロックの最初のデータがpluto_wrによって
示されるアドレスに書き込まれると、ジャンプロケーションはFIFOに記憶さ
れる。ETPCブロックの最初のデータは、フレーム同期モジュールにより信号
として送られる。復号器(106)から出力される最初のブロックは、最初のブロッ
クインと同じロケーションに記憶されるので、FIFOの先頭のアドレスは、ga
l_wrポインタがブロック端にジャンプするアドレスとなる。
【0116】 8つのETPCの開始アドレスを記憶するために、3つのFIFOがあること
が好ましい。FIFOの1つは、上述のようにgal_wrポインタオフセットとし
て用いられる。2番目のポインタは、pluto_rdポインタオフセットを記憶する
ために用いられ、3番目は上述のように復号器(106)再同期化機能を制御するた
めに用いられる。FIFOは、互いに独立して動作することが好ましい。
【0117】 図11は、ストップ反復過程のフローチャートを示す。最初に、反復バッファ
は、アサートされるblock_start及びbuffer_enable信号を待っている。バッフ
ァがバッファモードにあり、これら2つの信号を受信すれば、バッファはone_b
s状態(801)に入る。しかし、バッファがバッファモードでない場合は、バッファ
は、run_ib状態(803)に直接入る。バッファがバッファモードにあってone_bs
状態(801)に入る場合、バッファがload_buffer信号を受信する場合は、バッフ
ァは、two_bs状態(802)に入って引き続きrun_ib状態(803)になる。
【0118】 反復バッファは、ブロックがロードされた後、データのアンロードを開始する
。データはアンロードされるよりも速くロードされるので、ポインタは、アップ
ロードが終了するまで分岐(diverge)を継続する。これにより、buffer_sizeは
、物理的RAMサイズよりも小さい、16ロケーションが付加された(n-k)ビ
ットになる。付加された16ロケーションは、プルート(pluto)入力/出力クロッ
ク量を変化させるために使用される。アンロードされたブロック端では、pluto
_rdポイントは、buffer_sizeに戻るポインタ差を設定する、次のブロックの先
頭のロケーションにジャンプする。
【0119】 gal_rdポインタは、gal_wrポインタの前にあることが好ましい。さもないと
、復号器(106)への入力データが破壊される。pluto_rdポインタは、pluto_wr
ポインタの前にあるべきである。さもないと、出力データが破壊される。gal_w
rポインタは、pluto_rdポインタの前にあるべきである。さもないと、出力デー
タは、復号器(106)に書き込まれないので使用できない。また、pluto_wrポイン
タは、gal_rdポインタの前にあるべきである。さもないと、復号器(106)出力デ
ータは、バッファ出力に書き込まれていないので使用できない。
【0120】 本発明の構造原理及び作用の理解を助けるために、本発明は、詳細を含む特定
の実施例について説明された。実施例及び細部を示す、本明細書におけるこのよ
うな説明は、添付された請求の範囲を限定することを意図したものではない。当
該技術分野の通常の知識を有する者には、本発明の精神及び目的から逸脱するこ
となく、説明上選択された本発明の実施例を修正できることは明らかであろう。
【図面の簡単な説明】
【図1】 復号器が反復回数に基いて、所定の反復回数を必要とする確率をプロットした図
である。
【図2】 本発明に基づいた符号器/復号器システムのブロック図である。
【図3】 本発明に基づいた通信路インターフェイスモジュールのブロック図である。
【図4】 図4a、図4b、図4cは、対数尤度比をプロットした3次元グラフである。
【図5】 本発明に基づいた対数尤度比モジュールのブロック図である。
【図6】 本発明に基づいたRAMインターフェイスモジュールのブロック図である。
【図7】 本発明に基づいたRAMインターフェイスモジュールの詳細なブロック図である
【図8】 本発明に基づいたソフトイン/ソフトアウト復号器のブロック図である。
【図9】 本発明に基づいた最寄りのジェネレータモジュールのブロック図である。
【図10】 図10a-図10eは、本発明に基づいた反復停止機能のフローチャートである。
【図11】 本発明に基づいた反復停止方法のフローチャートである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成14年5月24日(2002.5.24)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0017
【補正方法】変更
【補正の内容】
【0017】発明の要約 本発明の1つのアスペクトは、軟判定復号の方法である。方法は、通信路にて
入力信号を受信し、入力信号の対数尤度比の結果を概算する工程を具える。対数
尤度比の結果は、通信路にて計算できる信号対ノイズ比の値から独立している。
概算化する工程は、更に入力信号に含まれるシンボル毎の複数のmビットの各々
について、現在の対数尤度値を演算する工程を具える。概算化する工程は、更に
現在の対数尤度値を1又は1を超えるn個の領域に分離する工程を具え、nは整
数である。概算化する工程は更に、偏微分を計算することにより、定数anを決
定する工程を具える。偏微分は1又は1を超えるn個の領域内の現在の対数尤度
値に対して、演算される。概算化する工程は、更にシンボル毎の複数のmビット
の各々について、現在の対数尤度値に対する傾斜を決定する工程を具えている。
傾斜は線形式を用いて決定されるのが好ましく、線形式は定数anを利用する。
概算化する工程は、更にシンボル毎の各mビットについて、傾斜を量子化する工
程を具えている。傾斜の量子化は以下の量子化式を用いて実行されるのが好まし
い。
【数1】 ここで、SOFT_BITS値、及びqLIMIT値は、信号対ノイズ比に依存
している。 本発明の他のアスペクトは、通信路上にて軟判定復号する方法である。方法は
、通信路上にて入力信号を受信する工程を具え、入力信号はシンボル毎に複数の
mビットを有する。方法は、またシンボル毎の複数のmビットの各々について、
現在の対数尤度比の値を演算する工程を具える。方法は、更に各mビットの現在
の対数尤度比の値について、傾斜を決定する工程を具えている。方法は、またシ
ンボル毎の各mビットについて傾斜を量子化する工程を具えている。方法は、ま
た対数尤度比の結果を生成する工程を具えており、対数尤度比の値は通信路上の
ノイズから独立している。軟判定復号する方法は、更に現在の対数尤度比の値を
1又は1を超えるn個の領域に分離する工程を具え、nは整数である。方法は、
更に定数anを決定する工程を具えており、定数は1又は1を超えるn個の領域
内の現在の対数尤度値の偏微分を演算して決定される。本発明では、傾斜は線形
式を用いて決定され、線形式は定数anを利用する。量子化する工程は、以下の
量子化式を用いて実行されるのが好ましい。
【数1】 ここで、SOFT_BITS値、及びqLIMIT値は、信号対ノイズ比に依存
している。 本発明の他のアスペクトは、変調された通信路上にて軟判定復号する方法であ
り、信号対ノイズ比は通信路上にて演算される。方法は通信路上にて入力信号を
受信する工程を具え、入力信号はシンボル毎に複数のmビットを有する。方法は
、またシンボル毎の複数のmビットの各々について、現在の対数尤度値を演算す
る工程を含む。現在の対数尤度値は、シンボル毎の複数のmビットの各々につい
て、SOFT_BITS値を含む。方法は、現在の対数尤度値を1又は1を超え
るn個の領域に分離する工程を具え、nは整数である。方法は、1又は1を超え
るn個の領域内の現在の対数尤度値に対して偏微分を演算することにより、定数
nを決定する工程を具えている。方法は、線形式を用いて傾斜を演算する工程
を含み、線形式は定数anを利用する。方法は、以下の量子化式を用いて定数an を量子化する工程を含む。
【数1】 ここで、SOFT_BITS値、及びqLIMIT値は、信号対ノイズ比に依存
している。量子化式は、通信路上で信号対ノイズ比から十分に独立している量子
化された対数演算尤度比結果を生成する。 更に、本発明の他のアスペクトは、変調された通信路上にて軟判定復号する対
数演算尤度比モジュールを含む。対数演算尤度比モジュールは、複数の(I、Q)
データシンボルを受信する入力モジュールを具えている。対数演算尤度比モジュ
ールは、また複数の(I、Q)データシンボルについて、対数演算尤度比結果を演
算する変調スキームを決定する変調ユニットを含む。対数演算尤度比結果は、変
調された信号対ノイズ比から十分に独立している。対数演算尤度比モジュールは
、複数の(I、Q)データシンボルの対数演算尤度比結果を符号無しの値に変換す
る変換器モジュールを含む。対数演算尤度比モジュールは、倍数因子によって複
数のデータシンボルを増幅するゲインモジュールを含む。 対数演算尤度比モジュールは、更に位相シフトキー変調スキームにて複数の(
I、Q)データシンボルの傾斜を決定することにより、対数演算尤度比結果を演
算するPSKモジュールを具える。対数演算尤度比モジュールは、更に直交振幅
変調スキームにて複数の(I、Q)データシンボルの傾斜を決定することにより、
対数演算尤度比結果を演算するQAMモジュールを具える。対数演算尤度比モジ
ュールは、更に前記QAMモジュールに並列であり、前記mビットの一部につい
て前記対数演算尤度比結果を計算する第2QAMモジュールを具えている。対数
演算尤度比モジュールは、更に前記変調ユニットに連結されたマルチプレクサを
具え、該マルチプレクサは、前記変換器モジュールに前記対数演算尤度比結果を
与える。 本発明の他の特徴及び有利さは、以下の望ましい実施例の詳細な記載を一読後
に、明らかになるであろう。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 ダニエルソン,アラン ロバート アメリカ合衆国 83843 アイダホ,モス コウ,ステファニー レーン 997 (72)発明者 ラドウ,ピーター ショーン アメリカ合衆国 99163 ワシントン,プ ルマン,バリー ロード エヌイー 1805 (72)発明者 ハンセン,トム リーロイ アメリカ合衆国 99163 ワシントン,プ ルマン,マーマン ドライブ エヌイー 1580 #385 (72)発明者 オウズリー,パトリック アラン アメリカ合衆国 83843 アイダホ,モス コウ,ボーダー レーン 1003 Fターム(参考) 5B001 AA10 AB05 AC05 AD06 5J065 AA01 AB01 AC02 AD01 AE06 AF02 AG01 AG02 AH20 AH21

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】a.通信路にて入力信号を受信する工程と、 b.入力信号の対数尤度比結果を概算する工程と、 を具え、前記対数尤度比結果は、前記通信路に亘って計算できる信号ノイズ比の
    値に依存しない、軟判定復号をする方法。
  2. 【請求項2】前記概算する工程は、さらに、入力信号に含まれるシンボル当
    たりの複数のmビットの各々について、現在の対数尤度比結果を計算する工程を
    具える請求項1に記載の軟判定復号をする方法。
  3. 【請求項3】前記概算する工程は、さらに、現在の対数尤度比値を1又は整
    数n以上の領域に分離する工程を具えている請求項2に記載の軟判定復号をする
    方法。
  4. 【請求項4】前記概算する工程は、さらに、1又はn以上の領域内の現在の
    対数尤度比値について偏微分を計算することにより、定数anを決定する工程を
    具えている請求項3に記載の軟判定復号をする方法。
  5. 【請求項5】前記概算する工程は、さらに、シンボル当たりの複数のmビッ
    トの各々について、現在の対数尤度比値の傾斜を決定する工程を具えている請求
    項4に記載の軟判定復号をする方法。
  6. 【請求項6】前記傾斜は、前記定数anを用いる線形方程式を使用して決定
    される請求項5に記載の軟判定復号をする方法。
  7. 【請求項7】前記概算する工程は、シンボル当たりのmビットの各々につい
    て、前記傾斜を量子化する工程を具える請求項5に記載の軟判定復号をする方法
  8. 【請求項8】前記量子化する工程は、以下の量子化方程式を用いて行われ、 【数1】 ここで、SOFT_BITS値及びqLIMIT値は、前記信号対ノイズ比に依
    存する請求項7に記載の軟判定復号をする方法。
  9. 【請求項9】a.通信路にて、シンボル当たりmビットを複数有する入力信
    号を受信する工程と、 b.シンボル当たりの複数のmビットの各々について、現在の対数尤度比値を計
    算する工程と、 c.各mビットについて前記現在の対数尤度比値の傾斜を決定する工程と、 d.シンボル当たりのmビットの各々について前記傾斜を量子化して、対数尤度
    比結果を生成する工程と、 を具えており、前記対数尤度比は前記通信路に亘ってノイズに依存しない、通信
    路に亘って軟判定復号する方法。
  10. 【請求項10】さらに、現在の対数尤度比値を1又は整数n以上の領域に分
    離する工程を具えている請求項9に記載の軟判定復号する方法。
  11. 【請求項11】さらに、1又はn以上の領域内の現在の対数尤度比値につい
    て偏微分を計算することにより、定数anを決定する工程を具えている請求項1
    0に記載の軟判定復号をする方法。
  12. 【請求項12】前記傾斜は、前記定数anを用いる線形方程式を使用して決
    定される請求項11に記載の軟判定復号をする方法。
  13. 【請求項13】前記量子化する工程は、以下の量子化方程式を用いて行われ
    、 【数1】 ここで、SOFT_BITS値及びqLIMIT値は、信号対ノイズ比に依存す
    る請求項9に記載の軟判定復号をする方法。
  14. 【請求項14】信号対ノイズ比は通信路に亘って計算される、変調された通
    信路に亘って軟判定復号する方法であって、 a.シンボル当たりmビットを複数有する入力信号を通信路にて受信する工程と
    、 b.シンボル当たりの複数のmビットの各々に関するSOFT_BITS値を含
    む現在の対数尤度比値を、シンボル当たりの複数のmビットの各々について計算
    する工程と、 c.1又は整数n以上の領域に、前記現在の対数尤度比値を分離する工程と、 d.1又は整数n以上の領域内の前記現在の対数尤度比値について偏微分を計算
    することにより、定数anを決定する工程と、 e.前記定数anを用いる線形方程式を用いて傾斜を計算する工程と、 f.以下の量子化方程式を用いて前記定数anを量子化する工程とを具え、 【数1】 ここで、SOFT_BITS値及びqLIMIT値は信号対ノイズ比に依存して
    おり、前記量子化方程式は、量子化された対数演算尤度比結果を生成し、通信路
    に亘って前記信号対ノイズ比に十分独立している軟判定復号する方法。
  15. 【請求項15】変調された通信路に亘って軟判定復号をする対数演算尤度比
    モジュールであって、 a.複数の(I,Q)データシンボルを受信する入力モジュールと、 b.前記複数の(I,Q)データシンボルについて対数演算尤度比結果を計算する
    変調スキームを決定する変調ユニットと、 c.前記複数の(I,Q)データシンボルの前記対数尤度比結果を符号なしの値に
    変換する変換器モジュールと、 を具え、前記対数尤度比結果は、変調された信号に亘って信号ノイズ比に十分独
    立している対数演算尤度比モジュール。
  16. 【請求項16】さらに、倍数因子で前記複数のデータシンボルを増幅するゲ
    インモジュールを具える請求項15に記載の対数演算尤度比モジュール。
  17. 【請求項17】さらに、位相シフトキー変調スキームで前記複数の(I,Q)
    データシンボルの傾斜を決定することにより、前記対数演算尤度比結果を計算す
    るPSKモジュールを具える請求項15に記載の対数演算尤度比モジュール。
  18. 【請求項18】さらに、直交振幅変調スキームにて前記複数の(I,Q)デー
    タシンボルの傾斜を決定することにより、前記対数演算尤度比結果を計算するQ
    AMモジュールを具える請求項15に記載の対数演算尤度比モジュール。
  19. 【請求項19】前記QAMモジュールに並列であり、前記mビットの一部に
    ついて前記対数演算尤度比結果を計算する第2QAMモジュールを具える請求項
    18に記載の対数演算尤度比モジュール。
  20. 【請求項20】さらに、前記変調ユニットに連結されたマルチプレクサを具
    え、前記マルチプレクサは、前記変換器モジュールに前記対数演算尤度比結果を
    与える請求項15に記載の対数演算尤度比モジュール。
JP2001573642A 2000-04-04 2001-04-04 強化型ターボプロダクト符号復号器システム Withdrawn JP2003534680A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US19457000P 2000-04-04 2000-04-04
US60/194,570 2000-04-04
PCT/US2001/010980 WO2001076079A2 (en) 2000-04-04 2001-04-04 Enhanced turbo product code decoder system

Publications (1)

Publication Number Publication Date
JP2003534680A true JP2003534680A (ja) 2003-11-18

Family

ID=22718092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001573642A Withdrawn JP2003534680A (ja) 2000-04-04 2001-04-04 強化型ターボプロダクト符号復号器システム

Country Status (6)

Country Link
US (4) US20020026615A1 (ja)
EP (1) EP1281241A2 (ja)
JP (1) JP2003534680A (ja)
AU (1) AU2001289296A1 (ja)
CA (1) CA2404984A1 (ja)
WO (1) WO2001076079A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008072604A1 (ja) * 2006-12-15 2008-06-19 Sumitomo Electric Industries, Ltd. 繰り返し復号法による誤り訂正復号を行なう復号器
JP2008193460A (ja) * 2007-02-06 2008-08-21 Fujitsu Ltd 誤り訂正符号復号装置
KR101110586B1 (ko) 2004-11-04 2012-02-17 에이저 시스템즈 인크 연결된 반복 및 대수 코딩

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2817091B1 (fr) 2000-11-22 2003-03-21 St Microelectronics Sa Codeur a turbocodes a synchronisation facilitee
US7076000B2 (en) * 2001-01-18 2006-07-11 Motorola, Inc. Soft-decision metric generation for higher order modulation
KR100450948B1 (ko) * 2001-07-12 2004-10-02 삼성전자주식회사 통신시스템에서 변조방식 결정장치 및 방법
US7793191B2 (en) 2002-04-05 2010-09-07 Sony Corporation Interleave device, interleaving method, deinterleave device, and deinterleave method
KR100878521B1 (ko) * 2002-05-09 2009-01-13 삼성전자주식회사 소프트 출력 발생장치 및 그 방법
FR2850810B1 (fr) * 2003-02-03 2005-05-13 Nortel Networks Ltd Procede de controle du nombre d'iterations d'un processus de decodage iteratif et dispositif pour la mise en oeuvre du procede
US7469049B1 (en) * 2003-03-04 2008-12-23 Marvell International Ltd. Data dependent scrambler with reduced overhead
JP4077355B2 (ja) * 2003-04-16 2008-04-16 三菱電機株式会社 通信装置および通信方法
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices
US7383484B2 (en) * 2004-03-12 2008-06-03 Seagate Technology Llc Cyclic redundancy check based message passing in turbo product code decoding
US7441175B2 (en) * 2004-03-12 2008-10-21 Seagate Technology Llc Turbo product code implementation and decoding termination method and apparatus
JP3891186B2 (ja) * 2004-03-22 2007-03-14 住友電気工業株式会社 復号装置および前処理装置
US7949074B2 (en) * 2004-04-24 2011-05-24 Thomson Licensing Apparatus and method for decoding in a hierarchical, modulation system
US7415651B2 (en) * 2004-06-02 2008-08-19 Seagate Technology Data communication system with multi-dimensional error-correction product codes
US7260762B2 (en) * 2004-07-26 2007-08-21 Motorola, Inc. Decoder performance for block product codes
US7310767B2 (en) * 2004-07-26 2007-12-18 Motorola, Inc. Decoding block codes
DE102004063950B4 (de) * 2004-08-07 2009-02-19 Tropf, Hermann Kanalcodiervorrichtung
US7835264B2 (en) * 2004-12-29 2010-11-16 Mitsubishi Denki Kabushiki Kaisha Interleaver, deinterleaver, communication device, and method for interleaving and deinterleaving
US7644347B2 (en) * 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
KR100758306B1 (ko) * 2005-12-08 2007-09-12 한국전자통신연구원 소프트 비트 매트릭 발생 장치 및 그 방법과 그를 이용한다치 레벨 qam 수신시스템
US7676733B2 (en) 2006-01-04 2010-03-09 Intel Corporation Techniques to perform forward error correction for an electrical backplane
KR101402592B1 (ko) * 2006-03-06 2014-06-17 에스케이바이오팜 주식회사 피록시캄-무기물 복합체를 포함하는 경피투여 조성물 및이를 이용한 패치시스템
US8271848B2 (en) * 2006-04-06 2012-09-18 Alcatel Lucent Method of decoding code blocks and system for concatenating code blocks
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
US8060806B2 (en) * 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7818653B2 (en) 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7979775B2 (en) * 2006-10-30 2011-07-12 Motorola Mobility, Inc. Turbo interference suppression in communication systems
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8166379B1 (en) * 2006-11-03 2012-04-24 Marvell International Ltd. Calculating soft information from a multi-level modulation signal
US7924648B2 (en) * 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
EP1956744A1 (en) * 2007-02-12 2008-08-13 CoreOptics, Inc., c/o The Corporation Trust Center Tail extrapolator and method
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US7965782B1 (en) 2007-05-11 2011-06-21 Redpine Signals, Inc. Reduced complexity maximum likelihood decoder for MIMO communications
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8761316B2 (en) * 2008-03-28 2014-06-24 Qualcomm Incorporated Systems and methods for approximating log likelihood ratios in a communication system
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8910009B1 (en) * 2008-09-08 2014-12-09 Marvell International Ltd. Method and apparatus for enhancing error detection in data transmission
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
KR101758192B1 (ko) * 2008-09-30 2017-07-14 엘에스아이 코포레이션 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8473798B1 (en) * 2009-03-20 2013-06-25 Comtect EF Data Corp. Encoding and decoding systems and related methods
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8335949B2 (en) * 2009-11-06 2012-12-18 Trellisware Technologies, Inc. Tunable early-stopping for decoders
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
EP2410687A3 (en) * 2010-07-19 2013-07-10 Qualcomm Incorporated Method for soft modulation in a wireless telecommunication network
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
JP5485069B2 (ja) * 2010-08-06 2014-05-07 パナソニック株式会社 誤り訂正復号装置及び誤り訂正復号方法
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
EP2645657B1 (en) * 2010-11-26 2016-03-09 Mitsubishi Electric Corporation Soft decision value generation circuit
US9300491B2 (en) 2011-02-11 2016-03-29 Qualcomm Incorporated Frame delivery path selection in hybrid communication networks
US9507661B2 (en) * 2011-03-01 2016-11-29 As-International Association E.V. Bus system having a master and a group of slaves and communication method for interchanging data in said bus system
US8897169B2 (en) * 2011-03-02 2014-11-25 Qualcomm Incorporated Discovery of conventional devices and bridges in hybrid communication networks
US8806306B2 (en) * 2011-03-07 2014-08-12 Acacia Communications Inc. Generation of soft bit metrics for differentially encoded quadrature phase shift keying (QPSK)
US9397786B2 (en) * 2012-02-20 2016-07-19 Tyco Electronics Subsea Communications Llc System and method including modified bit-interleaved coded modulation
US9300329B2 (en) * 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
WO2014106820A1 (en) * 2013-01-04 2014-07-10 Marvell World Trade Ltd. Enhanced buffering of soft decoding metrics
US9391641B2 (en) * 2013-04-26 2016-07-12 SK Hynix Inc. Syndrome tables for decoding turbo-product codes
US9407398B2 (en) 2013-09-08 2016-08-02 Tyco Electronics Subsea Communications Llc System and method using cascaded single partity check coding
US9337935B2 (en) 2013-09-08 2016-05-10 Tyco Electronics Subsea Communications Llc Coded modulation for small step-size variable spectral efficiency
US9231623B1 (en) * 2013-09-11 2016-01-05 SK Hynix Inc. Chase decoding for turbo-product codes (TPC) using error intersections
US20150169406A1 (en) * 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
US9553608B2 (en) 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
GB2525877B (en) * 2014-05-07 2016-08-10 Cisco Tech Inc Forward error correction with turbo/non-turbo switching
US20160291887A1 (en) * 2015-03-30 2016-10-06 Kabushiki Kaisha Toshiba Solid-state drive with non-volatile random access memory
US9935659B2 (en) * 2015-05-18 2018-04-03 SK Hynix Inc. Performance optimization in soft decoding for turbo product codes
US10090862B2 (en) 2016-03-23 2018-10-02 SK Hynix Inc. Hybrid soft decoding algorithm for multiple-dimension TPC codes
US10084485B2 (en) 2016-03-23 2018-09-25 SK Hynix Inc. Soft decoder parameter optimization for product codes
US10090865B2 (en) * 2016-03-23 2018-10-02 SK Hynix Inc. Performance optimization in soft decoding of error correcting codes
KR101811281B1 (ko) * 2017-04-17 2017-12-22 고려대학교 산학협력단 층 교차 기반 3차원 터보 곱 코드의 복호 방법 및 그 장치
KR101858123B1 (ko) * 2017-04-25 2018-05-17 고려대학교 산학협력단 혼합형 반복 복호 방법 및 장치
US10871910B1 (en) * 2019-09-27 2020-12-22 Western Digital Technologies, Inc. Non-volatile memory with selective interleaved coding based on block reliability
JP2022124682A (ja) 2021-02-16 2022-08-26 キオクシア株式会社 メモリシステム
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114421976B (zh) * 2022-01-25 2023-09-08 电子科技大学 基于概率计算的tpc迭代译码方法及译码器

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US4564945A (en) * 1983-06-20 1986-01-14 Reference Technology, Inc. Error-correction code for digital data on video disc
US4559625A (en) * 1983-07-28 1985-12-17 Cyclotomics, Inc. Interleavers for digital communications
US4763331A (en) * 1985-12-11 1988-08-09 Nippon Telegraph And Telephone Corporation Method for decoding error correcting block codes
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
US4821290A (en) * 1988-02-09 1989-04-11 General Electric Company Decoder for digital signal codes
US5157671A (en) * 1990-05-29 1992-10-20 Space Systems/Loral, Inc. Semi-systolic architecture for decoding error-correcting codes
FR2675968B1 (fr) * 1991-04-23 1994-02-04 France Telecom Procede de decodage d'un code convolutif a maximum de vraisemblance et ponderation des decisions, et decodeur correspondant.
FR2675971B1 (fr) * 1991-04-23 1993-08-06 France Telecom Procede de codage correcteur d'erreurs a au moins deux codages convolutifs systematiques en parallele, procede de decodage iteratif, module de decodage et decodeur correspondants.
US5574834A (en) * 1992-01-09 1996-11-12 Matsushita Graphic Communications Systems, Inc. Image communication system for following a communication procedure to simultaneously transmit image code data
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
JPH05315977A (ja) * 1992-05-12 1993-11-26 Hitachi Ltd 軟判定最尤復号方法および復号器
AU5550694A (en) * 1992-11-06 1994-06-08 Pericle Communications Company Adaptive data rate modem
US5457704A (en) 1993-05-21 1995-10-10 At&T Ipm Corp. Post processing method and apparatus for symbol reliability generation
US5369652A (en) * 1993-06-14 1994-11-29 International Business Machines Corporation Error detection and correction having one data format recordable on record media using a diverse number of concurrently recorded tracks
FR2712760B1 (fr) * 1993-11-19 1996-01-26 France Telecom Procédé pour transmettre des bits d'information en appliquant des codes en blocs concaténés.
JP3321976B2 (ja) * 1994-04-01 2002-09-09 富士通株式会社 信号処理装置および信号処理方法
US5559506A (en) * 1994-05-04 1996-09-24 Motorola, Inc. Method and apparatus for encoding and decoding a digital radio signal
CA2131242C (en) * 1994-08-31 1999-02-16 Masao Ikekawa Apparatus for error-correct decoding in a digital data communications system
KR0139161B1 (ko) * 1994-11-26 1998-05-15 김광호 가변장부호테이블의 심볼-부호어 재배정을 이용한 가변장 부호화/복호화 장치
US5657354A (en) * 1995-05-15 1997-08-12 Thesling, Iii; William H. Planar approximating method for computing the log-likelihood ratio optimal signal metric of each component code decoder in 8-PSK block coded modulation systems
ES2198452T3 (es) * 1995-06-12 2004-02-01 Siemens Aktiengesellschaft Procedimiento e instalacion de codificacion para la transmision segura de datos por medio de codificacion de componentes multiples.
DE19526416A1 (de) * 1995-07-19 1997-01-23 Siemens Ag Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Infomation
US5719884A (en) * 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US5703911A (en) * 1995-08-17 1997-12-30 Chung-Chin Chen Decoding method for trellis codes with large free distances
JP3171772B2 (ja) * 1995-08-23 2001-06-04 沖電気工業株式会社 ビタビ復号方法及びビタビ復号装置
US5684811A (en) * 1995-09-01 1997-11-04 Motorola, Inc. Method and apparatus for decoding convolutionally encoded information
US5841818A (en) * 1996-01-17 1998-11-24 Chung-Chin Chen Decoding method for trellis codes employing a convolutional processor
US5802116A (en) * 1996-04-04 1998-09-01 Lucent Technologies Inc. Soft decision Viterbi decoding with large constraint lengths
US5721746A (en) * 1996-04-19 1998-02-24 General Electric Company Optimal soft-output decoder for tail-biting trellis codes
US5721745A (en) * 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
GB2316585A (en) * 1996-08-23 1998-02-25 Daewoo Electronics Co Ltd Synchronization method and apparatus in Viterbi decoder
US5898698A (en) * 1996-09-24 1999-04-27 Orckit Communications Ltd. Multiple codeword interleaver method and apparatus
US5901182A (en) * 1997-03-26 1999-05-04 Sharp Laboratories Of America, Inc. Metric sifting in breadth-first decoding of convolutional coded data
US6188797B1 (en) * 1997-05-27 2001-02-13 Apple Computer, Inc. Decoder for programmable variable length data
US5930272A (en) * 1997-06-10 1999-07-27 Efficient Channel Coding, Inc. Block decoding with soft output information
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
EP0897224A3 (en) * 1997-08-14 2002-12-11 Her Majesty The Queen In Right Of Canada as represented by the Minister of Industry Method of enhanced max-log-a posteriori probability processing
FR2778289B1 (fr) * 1998-05-04 2000-06-09 Alsthom Cge Alcatel Decodage iteratif de codes produits
WO2000019616A2 (en) * 1998-09-28 2000-04-06 Advanced Hardware Architectures, Inc. Turbo product code decoder
US6367047B1 (en) * 1998-10-20 2002-04-02 Ecrix Multi-level error detection and correction technique for data storage recording device
US6484283B2 (en) * 1998-12-30 2002-11-19 International Business Machines Corporation Method and apparatus for encoding and decoding a turbo code in an integrated modem system
US6499128B1 (en) * 1999-02-18 2002-12-24 Cisco Technology, Inc. Iterated soft-decision decoding of block codes
US6795507B1 (en) * 1999-09-30 2004-09-21 Skyworks Solutions, Inc. Method and apparatus for turbo decoding of trellis coded modulated signal transmissions
US6594318B1 (en) * 1999-12-02 2003-07-15 Qualcomm Incorporated Method and apparatus for computing soft decision input metrics to a turbo decoder
US6421804B1 (en) * 1999-12-20 2002-07-16 Agere Systems Guardian Corp. Generating reliability values for iterative decoding of block codes
US6526531B1 (en) * 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
JP2001358765A (ja) * 2000-06-13 2001-12-26 Sanyo Electric Co Ltd プロバイダ転送サーバおよびプロバイダ転送サービス方法
AU2001277130A1 (en) * 2000-07-21 2002-02-05 Catena Networks, Inc. Method and system for turbo encoding in adsl
US20020150167A1 (en) * 2001-02-17 2002-10-17 Victor Demjanenko Methods and apparatus for configurable or assymetric forward error correction

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101110586B1 (ko) 2004-11-04 2012-02-17 에이저 시스템즈 인크 연결된 반복 및 대수 코딩
WO2008072604A1 (ja) * 2006-12-15 2008-06-19 Sumitomo Electric Industries, Ltd. 繰り返し復号法による誤り訂正復号を行なう復号器
JP2008193460A (ja) * 2007-02-06 2008-08-21 Fujitsu Ltd 誤り訂正符号復号装置

Also Published As

Publication number Publication date
US7085987B2 (en) 2006-08-01
US20040010747A1 (en) 2004-01-15
WO2001076079A3 (en) 2002-05-23
US7421638B2 (en) 2008-09-02
US20040261000A1 (en) 2004-12-23
WO2001076079A2 (en) 2001-10-11
AU2001289296A1 (en) 2001-10-15
US20060212781A1 (en) 2006-09-21
EP1281241A2 (en) 2003-02-05
CA2404984A1 (en) 2001-10-11
US20020026615A1 (en) 2002-02-28
US7039846B2 (en) 2006-05-02

Similar Documents

Publication Publication Date Title
JP2003534680A (ja) 強化型ターボプロダクト符号復号器システム
US7499503B2 (en) Parallel concatenated code with soft-in soft-out interactive turbo decoder
TWI313107B (en) Unified viterbi/turbo decoder for mobile communication systems
US7584389B2 (en) Turbo decoding apparatus and method
US20040032347A1 (en) Soft-output decoder with computation decision unit
US20020162074A1 (en) Method and apparatus for path metric processing in telecommunications systems
CN111030780A (zh) 一种可配置并行比特分组交织器及交织方法
CN103684694A (zh) 一种适用于ofdm基带系统的软比特解码系统
JPH10107865A (ja) 階層伝送方式とその送受信装置
WO2011046529A1 (en) Map decoder architecture for a digital television trellis code

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080701