JP2006500850A - データを再帰的に計算するための回路 - Google Patents
データを再帰的に計算するための回路 Download PDFInfo
- Publication number
- JP2006500850A JP2006500850A JP2004539290A JP2004539290A JP2006500850A JP 2006500850 A JP2006500850 A JP 2006500850A JP 2004539290 A JP2004539290 A JP 2004539290A JP 2004539290 A JP2004539290 A JP 2004539290A JP 2006500850 A JP2006500850 A JP 2006500850A
- Authority
- JP
- Japan
- Prior art keywords
- data
- computing device
- circuit
- vector
- sent
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2703—Coding, 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/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
- H03M13/2714—Turbo interleaver for 3rd generation partnership project [3GPP] universal mobile telecommunications systems [UMTS], e.g. as defined in technical specification TS 25.212
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Abstract
本発明は、予め決められた数のクロック・サイクルのうちにデータを計算する能力を有する少なくとも1つの計算装置(31)によって計算された第1のデータ・セットに基づいて第2のデータ・セットを計算するための回路に関する。この計算装置は入力(311)および出力(312)を有する。この回路は、第1のデータ・セットのデータ数およびデータの計算に必要な予め決められたサイクル数に応じたクロック・サイクル数において、第1のデータ・セットのデータを計算装置の出力から入力へルーティングするための移送手段(32)を含む。データは、前記移送手段の中を1クロック・サイクルごとに前進する。
Description
本発明は、予め決められた数のクロック・サイクルのうちにデータを計算する能力を有し、入力および出力を有する少なくとも1つの計算装置によって計算された第1のデータ・セットに基づいて第2のデータ・セットを計算するための回路に関する。
本発明はさらに、インタリーバの列内置換要素を計算するためのシステム、このようなシステムを含む復号回路、このような復号回路を含む電子装置および通信ネットワークに関する。
本発明は、例えば衛星通信システム、第3世代携帯電話などのUMTS規格(UMTS=Universal Mobile Telecommunication System)を実装したシステムに応用することができる。
ある種のデータ処理システムは、別のデータ・セットに基づいてデータ・セットを計算する必要があるデータの再帰計算を実行する。例えばデータbj[i]の計算を実行することができる。ただしiおよびjは添字、iは0からnまで、jは0からmまでの間を変化し、mおよびnはゼロでない整数である。これは特にベキ行列(power matrix)の計算の場合に当てはまる。
図1に、このような処理システムによって計算されるデータの一例を示す。この例では整数mの値が9、整数nの値が4である。5つのデータ・セットb0[0]からb9[0]、b0[1]からb9[1]、b0[2]からb9[2]、b0[3]からb9[3]、およびb0[4]からb9[4]が計算される。処理システムはデータb0[0]からb9[0]をそれぞれ計算し、次いでb0[1]からb9[1]を計算し、以下同様に順次計算する。データ・セットは1つ前のデータ・セットに左右される。例えばb0[1]は関数fによるb0[0]の関数である。
b0[1]=f(b0[0])
同様にb1[1]=f(b1[0])、b2[1]=f(b2[0])、...である。一般化すると以下のようになる。
同様にb1[1]=f(b1[0])、b2[1]=f(b2[0])、...である。一般化すると以下のようになる。
bj[i+1]=f(bj[i])
図2に、このような計算を実行することができる回路を示す。このような回路はメモリ21、制御装置22および計算装置23を含む。以下の例では、第1のデータ・セットb0[1]〜b9[1]に基づく第2のデータ・セットb0[2]〜b9[2]の計算を説明する。この例では、計算装置23によって1つのデータを計算するのに1クロック・サイクルを要する。第1のデータ・セットb0[1]〜b9[1]のデータはメモリ21に記憶されている。1クロック・サイクルの間にデータb0[1]が計算装置23に送られ、次いで計算装置23がデータb0[2]を計算する。このデータは次いでメモリ21に記憶される。次のクロック・サイクルではデータb1[1]が計算装置23に送られ、次いで計算装置23がデータb1[2]を計算する。このデータは次いでメモリ21に記憶される。同様にしてこの回路はデータb2[2]〜b9[2]の計算を続ける。
図2に、このような計算を実行することができる回路を示す。このような回路はメモリ21、制御装置22および計算装置23を含む。以下の例では、第1のデータ・セットb0[1]〜b9[1]に基づく第2のデータ・セットb0[2]〜b9[2]の計算を説明する。この例では、計算装置23によって1つのデータを計算するのに1クロック・サイクルを要する。第1のデータ・セットb0[1]〜b9[1]のデータはメモリ21に記憶されている。1クロック・サイクルの間にデータb0[1]が計算装置23に送られ、次いで計算装置23がデータb0[2]を計算する。このデータは次いでメモリ21に記憶される。次のクロック・サイクルではデータb1[1]が計算装置23に送られ、次いで計算装置23がデータb1[2]を計算する。このデータは次いでメモリ21に記憶される。同様にしてこの回路はデータb2[2]〜b9[2]の計算を続ける。
制御装置22は、第2のデータ・セットのデータを計算するための計算装置23への第1のデータ・セットのデータの送信を制御する。これを実行するため、制御装置22は、第1のデータ・セットの前記データが記憶されているメモリ21のアドレスを生成する。メモリ21はRAMメモリ(RAM=Random Access Memory)である。制御装置22からアドレスを受け取るとメモリ21は、そのアドレスに記憶されているデータを計算装置23に送る。
したがってこのような回路はランダム・アクセス・メモリおよび制御装置を必要とする。このようなメモリおよび制御装置はかなりの面積のシリコン表面を覆い、かなりの量の電流を消費する。このことは特に携帯電話などの携帯型電子装置の場合に障害になる。実際、携帯型電子装置において使用可能なシリコン表面は限られている。さらに、このような装置はバッテリから給電されるので、前記バッテリの頻繁な再充電を回避するために、電流消費が少ないことは重要である。
本発明の目的は、第1のデータ・セットに基づいて第2のデータ・セットを計算するための回路であって、小さなシリコン表面を占有し、電流消費の少ない回路を提案することにある。
冒頭の段落で定義した本発明に基づく回路は、第1のデータ・セットのデータ数およびデータの計算に必要な予め決められたサイクル数に応じたクロック・サイクルの数にて、第1のデータ・セットのデータを計算装置の出力から入力へルーティングするための移送手段を含み、前記移送手段の中をデータが1クロック・サイクルごとに前進することを特徴とする。
計算装置によって第1のデータ・セットのデータが計算され、数クロック・サイクル後に、第2のデータ・セットのデータを計算するためにこのデータがこの計算装置によって使用されるとき、第1のデータ・セットのデータは、前記クロックだけによって制御される移送手段によって計算装置の入力にルーティングされる。移送手段は、第1のデータ・セットのデータが計算装置によって使用される瞬間にこのデータが前記計算装置の入力に到着するような手段である。したがってこの回路は、ランダム・アクセス・メモリも、制御装置も持つ必要がなく、これによってこのような回路の電流消費およびこのような回路によって覆われるシリコン表面を小さくすることができる。
有利には、この移送手段は、前記計算装置の出力から入力へデータをルーティングするために必要なサイクル数を調整するための調整手段を含む。このような回路は大きな柔軟性を有する。実際、この回路によって処理されるデータ・セットは変更可能なデータ数を有することができる。計算装置の出力から入力へデータをルーティングするために必要なサイクル数はとりわけデータ・セットのデータ数によって決まる。この調整手段のおかげで、計算装置の出力から入力へデータをルーティングするために必要なサイクル数を、処理するデータ・セットのデータ数の関数として調整することができる。したがって、このような回路を使用して、さまざまな数のデータを有するデータ・セットを処理することができる。
好ましい一実施形態では、この移送手段は少なくとも一つのクロックで活性化されるレジスタを有し、このレジスタは、1クロック・サイクルごとに新しいデータを記憶する能力を有する活性化。この実施形態によれば移送手段は1つのデータを記憶する能力を有するレジスタだけを含む。このようなレジスタはシリコン表面をほとんど覆わず、小さい電流消費を有する。このような回路はさらに設計が簡単であり、このようなレジスタの数は、計算装置の出力から入力へデータをルーティングするために必要なサイクル数に一致する。
本発明のこれらの態様および他の態様は、以下に記載する非限定的な例としての実施形態から明らかであり、これらの実施形態を参照すれば解明されるであろう。
図3に本発明に基づく回路の一例を示す。このような回路は、入力311、出力312および移送手段(transport means)32を有する計算装置31を含む。この例では移送手段が9つのレジスタ321から329を含む。計算装置31はさらに、係数などの追加データ34を受け取ることができる。
以下に説明する例では、図3の回路によって第2のデータ・セットを第1のデータ・セットに基づいて計算する方法を示す。この例は、図1の第2のデータ・セットb0[2]〜b9[2]および第1のデータ・セットb0[1]〜b9[1]に適用される。
第1のデータ・セットのデータは予め、図1のデータ・セットb0[0]〜b9[0]に対応する初期データに基づいて計算されている。これらのデータは追加データ34の形態で計算装置31に送られる。第1のクロック・サイクルの間にデータb0[0]が計算装置31に送られる。次いで計算装置31によってデータb0[1]が計算され、レジスタ321に記憶される。データb0[1]は、図1には示されていない記憶装置に並列に記憶することができることに留意されたい。第2のクロック・サイクルの間にデータb1[0]が計算装置31に送られる。次いでデータb1[1]は計算装置31によって計算され、レジスタ322に送られたデータb0[1]の代わりにレジスタ321に記憶される。実際、レジスタ321〜329はクロックによって活性化活性化される。すなわち1クロック・サイクルごとにレジスタの中に存在するデータはそのレジスタを出ていく。
同様の操作がデータb2[1]〜b9[1]に対して実施される。10番目のクロック・サイクルの間に、レジスタ329に記憶されていたデータb1[0]が計算装置31の入力311に送られ、計算装置31によってデータb9[1]が計算され、レジスタ321に送られる。
11番目のクロック・サイクルの間に、第2のデータ・セットのデータb0[2]が、計算装置31によってデータb0[1]に基づいて計算される。このデータb0[2]は次いでレジスタ321に記憶される。この11番目のクロック・サイクルの間に、レジスタ329に記憶されていたデータb1[1]が計算装置31の入力311に送られる。12番目のクロック・サイクルの間に、計算装置31によってデータb1[2]が計算され、レジスタ321に記憶される。同様の操作がデータb2[2]からb9[2]に対して実施される。
この例では、計算装置31によってデータを計算するのに1クロック・サイクルを要すると仮定している。このような計算はさまざまなクロック・サイクルを要することができる。例えば、このような計算が3クロック・サイクルを要とすると仮定する。
第1のクロック・サイクルの間にデータb0[0]が計算装置31に送られる。第2のクロック・サイクルの間にデータb1[0]が計算装置31に送られる。第3のクロック・サイクルの間にデータb2[0]が計算装置31に送られる。このデータ計算は3クロック・サイクルを要するので、この第3のクロック・サイクルの間にデータb0[1]が計算される。このデータは次いでレジスタ321に記憶される。10番目のクロック・サイクルの間にデータb9[0]が計算装置31に送られる。このときデータb0[1]はレジスタ327に位置し、第2のデータ・セットのデータb0[2]の計算を開始するために計算装置31に送られる。したがって、移送手段32は7つのレジスタ321から327だけを必要とする。
結果的に、計算装置31の出力から入力にデータをルーティングするために必要なクロック・サイクル数は、データ・セットのデータ数と1つのデータの計算に必要なクロック・サイクル数の両方によって決まる。一般に、データ・セットがk個のデータを含み、1つのデータの計算に必要なクロック・サイクル数が1の場合、計算装置31の出力から入力に1つのデータをルーティングするために必要なクロック・サイクル数は(k−1)になる。図3の例においてこのことは、クロックによって活性化される(k−l)個のレジスタが移送手段には必要であることを意味している。
前の例ではとりわけ、計算がパイプライン処理される、すなわち1クロック・サイクルごとに1つのデータが計算装置31に送られると仮定した。本発明に基づく回路がさまざまな計算装置を含むときには特に、1クロック・サイクルごとに1つのデータを計算装置31に送らないことも可能である。このような場合も、計算装置の出力から入力に1つのデータをルーティングするために必要なクロック・サイクル数は、図5に関してさらに詳細に論じるように、データ・セットのデータ数、および1つのデータの計算に必要なクロック・サイクル数によって決まる。
図4に、本発明の有利な実施形態に基づく回路を示す。このような回路は、図3に関して述べた要素に加えて、計算装置31の出力から入力にデータをルーティングするために必要なサイクル数を調整するためのマルチプレクサ35の形態の調整手段を含む。マルチプレクサ35は、図4には示されていない制御回路によって制御され、レジスタ323またはレジスタ327、あるいはレジスタ329に記憶されているデータを計算装置31の入力311に送ることができる。したがって、計算装置31の出力から入力にデータを運ぶために必要なサイクル数を調整することができる。実際、レジスタ323に記憶されているデータを計算装置31の入力に送ることを選択した場合、計算装置31の出力から入力にデータをルーティングするために必要なサイクル数は3になる。レジスタ327に記憶されているデータを計算装置31の入力に送ることを選択した場合には、計算装置31の出力から入力にデータをルーティングするために必要なサイクル数は7になる。
したがって、このような回路を使用して、さまざまな数のデータを有するデータ・セットを処理することができる。計算がパイプライン処理され、計算装置31によって1つのデータを計算するのに1クロック・サイクルを要すると仮定すると、例えば4つのデータを含むデータ・セットを処理するためには、レジスタ323に記憶されているデータを計算装置31の入力311に送ることを選択する。8つのデータを含むデータ・セットを処理するためには、レジスタ327に記憶されているデータを選択する。10個のデータを含むデータ・セットを処理するためには、レジスタ329に記憶されているデータを選択する。
それぞれのレジスタ321〜329からデータを選択できるように調整手段を設計できることは明白である。したがって、計算装置31によってデータを計算するのに1クロック・サイクルを要する場合、2個から10個の間のデータを含むデータ・セットを処理することができる。
図5に、乗算−累算計算用の本発明に基づく回路を示す。このような回路は4つの計算装置41〜44を含む。これらの計算装置は加算器である。各計算装置41〜44にはそれぞれ乗算器410〜440が結合されている。さらに各計算装置にはそれぞれ3つのレジスタ411〜413、421〜423、431〜433および441〜443が結合されている。
図5の回路は、乗算−累算の4つの結果MAC1〜MAC4を、16個のデータd1〜d16および16個の係数c1〜c16に基づいて計算するためのものである。
MAC1=c1×d1+c5×d5+c9×d9+c13×d13
MAC2=c2×d2+c6×d6+c10×d10+c14×d14
MAC3=c3×d3+c7×d7+c11×d11+c15×d15
MAC4=c4×d4+c8×d8+c12×d12+c16×d16
このような回路は例えば、MP3フォーマットで送信されたデータの復号フィルタで使用される。このデータは、それぞれのバンドがいくつかのサブ・バンドに分割されたデータ・バンドの形態で送信される。図5の回路はクロックによって制御される。1クロック・サイクルごとに1つのデータが回路に到着し、乗算器410〜440の1つに送られる。データd1は乗算器410に送られ、データd2は乗算器420に、データd3は乗算器430に、データd4は乗算器440に、データd5は乗算器410に送られ、その後のデータも順次、1つの乗算器に送られる。
MAC2=c2×d2+c6×d6+c10×d10+c14×d14
MAC3=c3×d3+c7×d7+c11×d11+c15×d15
MAC4=c4×d4+c8×d8+c12×d12+c16×d16
このような回路は例えば、MP3フォーマットで送信されたデータの復号フィルタで使用される。このデータは、それぞれのバンドがいくつかのサブ・バンドに分割されたデータ・バンドの形態で送信される。図5の回路はクロックによって制御される。1クロック・サイクルごとに1つのデータが回路に到着し、乗算器410〜440の1つに送られる。データd1は乗算器410に送られ、データd2は乗算器420に、データd3は乗算器430に、データd4は乗算器440に、データd5は乗算器410に送られ、その後のデータも順次、1つの乗算器に送られる。
第1のクロック・サイクルの間に、係数c1が乗算器410に送られ、データc1×d1が計算され、次いでこれに計算装置41によってゼロが加算される。データc1×d1は次いでレジスタ411に送られる。第2のクロック・サイクルの間に、係数c2が乗算器420に送られ、データc2×d2が計算され、次いでこれに計算装置42によってゼロが加算される。データc2×d2は次いでレジスタ421に送られる。同様の操作が実施されて値c3×d3およびc4×d4が計算され、これらはそれぞれレジスタ431および441に送られる。データc1×d1、c2×d2、c3×d3およびc4×d4が第1のデータ・セットを構成する。
第5のクロック・サイクルの間に、係数c5が乗算器410に送られ、データc5×d5が計算され、次いでこれに計算装置41によってデータc1×d1が加算される。実際、第2、第3および第4のクロック・サイクルの間にレジスタ411、412、413と進んだデータc1×d1は、第4のクロック・サイクルの間に計算装置41に送られる。計算装置41によって計算されたデータc1×d1+c5×d5は次いでレジスタ411に送られる。同様の操作が第6、第7および第8のクロック・サイクルの間に実施されて、データc2×d2+c6×d6、c3×d3+c7×d7およびc4×d4+c8×d8が計算される。データc1×d1+c5×d5、データc2×d2+c6×d6、c3×d3+c7×d7およびc4×d4+c8×d8が、第1のデータ・セットに基づいて計算された第2のデータ・セットを構成する。
図6に、本発明に基づく回路を含む通信ネットワークを示す。このようなネットワークは、符号化装置ENC、伝送路CHANおよび復号回路DECを含む。符号化装置ENCのレベルで、送信されるデータ・ベクトルS1は、第1のシステマティック再帰コーダ(systematic recursive coder)61によって符号化されて第1のパリティ・ベクトルP1を生み出す。これと並行して、データ・ベクトルS1のデータは第1のインタリーバ(interleaver)62によってインタリーブされ、その結果得られたベクトルが、第2のシステマティック再帰コーダ63によって符号化されて第2のパリティ・ベクトルP2を生み出す。
ベクトルのデータのインタリービングは、別のベクトルを得るためにそのベクトルの成分を予め決められた順序に置換することからなる。以下では、説明を単純にするため、ベクトルのデータのインタリービングまたはベクトルのインタリービングを特に区別せずに用いる。
続いて、データ・ベクトルS1、第1のパリティ・ベクトルP1および第2のパリティ・ベクトルP2が、伝送路CHANを介して受信機(図6には示されていない)に送られる。これは送信機(図6には示されていない)によって実行される。データ・ベクトルS1、第1のパリティ・ベクトルP1および第2のパリティ・ベクトルP2は次いで、復号回路DECに送られる。
復号回路DECは、第1の符号器64、第2の符号器66、第2のインタリーバ65、第3のインタリーバ67およびデインタリーバ(de-interleaver)68を含む。図1の例では符号器64および66がソフト・インプット・ソフト・アウトプット符号器(SISO)である。
この復号回路DECは反復的に動作する。一反復の間に、第1の符号器64は、受け取ったデータ・ベクトルS1、受け取った第1のパリティ・ベクトルP1、および第2の符号器66から来るエキストリンシック・データ・ベクトルに基づいて第1のエキストリンシック出力データ・ベクトルを計算する。第2の符号器66から来るエキストリンシック・データ・ベクトルがまだない場合には、このベクトルは予め決められたベクトル、例えば単位ベクトルに置き換えられる。これは復号の最初の反復の間に起こり得る。
第1のエキストリンシック出力データ・ベクトルは第2のインタリーバ65によってインタリーブされ、その結果得られたベクトルが第2の符号器66に送られる。第2の符号器66は次いで、第2のパリティ・ベクトルP2、データ・ベクトルS1を入力に持つ第3のインタリーバ67から来るベクトルS2、および第2のインタリーバ65から来るベクトルに基づいて、第2のエキストリンシック出力データ・ベクトルを計算する。第2のエキストリンシック出力データ・ベクトルは次いでデインタリーバ68によってデインタリーブされ、その結果得られたベクトルは第1の符号器64に送られる。次いで新しい反復を実行することができる。
このような復号回路は、第3世代携帯電話などの電子装置で使用することができる。
データのインタリービングには、図7に関して説明する列内置換要素(intracolumn permutation element)の計算が必要である。このような列内置換要素の計算は、図8に関して説明するように、本発明に基づく回路を含むシステムによって実行される。
図7に、図6の通信ネットワークのインタリーバによって実施されるインタリービング行列の計算およびインタリーブされたブロックを示す。以下に説明する例は、「3GGP TS 25.212 V3.9.0(2002-03)」規格に基づくインタリーバに適用される。
このようなインタリーバの目的は、K個のビットを含むデータ・ベクトルに含まれるデータの位置を置換することである。Kは40から5114までの整数である。インタリーバは、R個の行およびC個の列を含むインタリービング行列によって定義されるインタリービング方式によって、データ・ベクトルを、インタリーブされたデータ・ベクトルに変換する。
図7の例は、インタリービング行列を定義する方法、およびデータ・ベクトルのビットをインタリーブする方法を示している。この例では、25個のビットを含むデータ・ベクトルBをインタリーブし、インタリーブされたデータ・ベクトルB’を得る。この例の目的は、インタリーブされたデータ・ベクトルB’を得る方法を単純に示すことにあることに留意されたい。より具体的には、この例は、データ・ベクトルの長さKが40および5114である「3GGP TS 25.212 V3.9.0(2002-03)」規格とは一致しない。
この例では、データ・ベクトルBのそれぞれビットは0から24までの識別子によって識別される。これらの識別子は第1の行列M1に横方向に書き込まれている。次いで、列内置換方式に従って行列M1の列内置換を実施し、行列M2を得る。次いで、列間置換(intercolumn permutation)方式に従って行列M2の列間置換を実施し、行列M3を得る。この行列M3がインタリービング行列である。
次いで、インタリービング行列の識別子の縦読みによって、インタリーブされたデータ・ベクトルB’のビットの識別子を得る。この例では、データ・ベクトルBでは最初の位置にある識別子<<0>>によって識別されるビットが、インタリーブされたデータ・ベクトルB’では24番目の位置にある。データ・ベクトルBの識別子<<5>>によって識別されるビットは、インタリーブされたデータ・ベクトルB’では2番目の位置にある(以下同様)。
インタリービング方式はKの値ごとに定義される。そのために、列内置換方式および列間置換方式が定義される。前述の規格は表1に定義された4つの列間置換方式を指定している。例えば、番号1によって識別される列間置換方式は、<<0>>で示される行列M2の最初の行を、<<19>>で示される行列M2の20番目の行に置き換え、第2の行を10番目の行に置き換える(以下同様)。
表1:列間置換方式
インタリービング行列の行数および列間置換方式は、表2に記載されたデータ・ベクトルの長さKによって決まる。この表はメモリに記憶されており、長さKが分かれば、インタリーバは、インタリービング行列の行数Rおよび使用する列間置換方式を決定する。したがって所与の長さKを有するデータ・ベクトルのインタリーブでは、インタリーバは、インタリービング行列の行数も列間置換方式も計算する必要がない。これらのパラメータは予め定まっているからである。
反対に、可能なそれぞれの列数Cごとに列内置換方式を記憶しておくことはできない。実際、列数Cは、2から256までの整数値をとることができる。したがって、可能なそれぞれの列数Cごとに列内置換方式を記憶することにすると非常に大きなメモリ容量が必要となる。したがって列内置換方式は、新しい長さKを有するデータ・ベクトルをインタリーブするたびに計算される。
表2:Kに対する列間置換方式およびR
所与の長さKに対する列内置換方式を計算するためには以下に説明するパラメータを決定する。
まず第一に素数pを決定する。この数pは、(p−1)−K/R≧0となる最も小さい素数である。
次いで列数Cを決定する。この数Cは、K≦R×Cとなる、整数の集合{(p−1),p,(p+1)}のうちの最も小さい整数である。
続いて、最小素数の数列qを計算する。この数列はR個の値からなり、以下のように構築される。
−q[0]=1
−j>0に対して、q[j]は、
・q[j]と(p−1)の最大公約数が1
・q[j]>6
・q[j]>q[j−1]
となる最も小さい素数
次いで、最小素数の置換された数列rを、列間置換方式Tを利用することによって計算する:r[T[j]]=q[j]。
−j>0に対して、q[j]は、
・q[j]と(p−1)の最大公約数が1
・q[j]>6
・q[j]>q[j−1]
となる最も小さい素数
次いで、最小素数の置換された数列rを、列間置換方式Tを利用することによって計算する:r[T[j]]=q[j]。
次いで基本数列sを計算する。この数列はp−1個の値からなり、以下のように構築される。
−s[0]=1
−s[i]=(v×s[i−1])mod p。ただし「mod p」は、モジュロp(modulo−p)乗算を実施することを指示している。
−s[i]=(v×s[i−1])mod p。ただし「mod p」は、モジュロp(modulo−p)乗算を実施することを指示している。
最後に、それぞれの列jについて列内置換方式を計算する。所与の列jに対して、C=pに対して与えられる以下に説明する計算モードに従ってC個の列内置換要素Ujを計算する。
−Uj[i]=s[(i×r[j])mod(p−1)],i=0,1,...,p−2
−Uj[p−1]=0
式Uj[i]=s[(i×r[j])mod(p−1)]が、
Uj[i+1]=(v’[j]×Uj[i])mod p
に等しいことは証明することができる。ただしv’[j]はvに等しい新しい原始根である。実際、
−式s[i]=(v×s[i−1])mod pは式
s[i]=(vi×s[0])mod p=vimod p
に等しい。
−Uj[p−1]=0
式Uj[i]=s[(i×r[j])mod(p−1)]が、
Uj[i+1]=(v’[j]×Uj[i])mod p
に等しいことは証明することができる。ただしv’[j]はvに等しい新しい原始根である。実際、
−式s[i]=(v×s[i−1])mod pは式
s[i]=(vi×s[0])mod p=vimod p
に等しい。
−したがって、式Uj[i]=s[(i×r[j])mod(p−1)]は式Uj[i]=v(i×r[j])mod(p−1)mod pに等しい。
−a=vおよびi×r[j]=bとした場合、
−abmod p=[an(p−1)][abmod(p−1)]mod p。ただしnはb=n(p−1)+bmod(p−1)となるような値である。
−abmod p=[an(p−1)][abmod(p−1)]mod p。ただしnはb=n(p−1)+bmod(p−1)となるような値である。
−したがってabmod p=[an(p−1)mod p][abmod(p−1)]mod p
=[(a(p−1))nmod p][abmod(p−1)]mod p
=[a(p−1)mod p]n[abmod(p−1)]mod p
−pが素数、aとpの最大公約数が1の場合、a(p−1)mod p=1。この例ではa=vであり、vは決してpにならない。このことは、aとpの最大公約数が1であることを意味する。したがって、
[a(p−1)mod p]n=1。したがってabmod p=abmod(p−1)mod p
−この式でaをvに置き換え、bをi×r[j]に置き換えた場合、下式が得られる。
=[(a(p−1))nmod p][abmod(p−1)]mod p
=[a(p−1)mod p]n[abmod(p−1)]mod p
−pが素数、aとpの最大公約数が1の場合、a(p−1)mod p=1。この例ではa=vであり、vは決してpにならない。このことは、aとpの最大公約数が1であることを意味する。したがって、
[a(p−1)mod p]n=1。したがってabmod p=abmod(p−1)mod p
−この式でaをvに置き換え、bをi×r[j]に置き換えた場合、下式が得られる。
vi×r[j]mod p=v(i×r[j])mod(p−1)mod p=Uj[i]
−この式は式Uj[i]=(v’[j])imod pに等しい。ただしv’[i]=vr[j]である。
−この式は式Uj[i]=(v’[j])imod pに等しい。ただしv’[i]=vr[j]である。
−この式を再帰的に適用することによって、下式が得られる。
Uj[i+1]=(v’[j]×Uj[i])mod p
図8に、上述の列内置換要素を計算するための本発明に基づく回路を含むシステムを示す。
図8に、上述の列内置換要素を計算するための本発明に基づく回路を含むシステムを示す。
このようなシステムは、計算装置800および移送手段801を含む。この計算装置は、15個のレジスタR1〜R15、7つのモジュロpシフト要素SMP1〜SMP7、8つのマルチプレクサMUX1〜MUX8、および7つのモジュロp加算器AMP2〜AMP8を含む。移送手段801は12個のレジスタR16〜R27を含む。このシステムはさらにマルチプレクサMUX9の形態の調整手段を含む。
計算装置800は、pよりも小さい2つのデータxとyの間のモジュロp乗算を実行することができる。xおよびyが、最下位ビットから最上位ビットまで8ビットの2進言語で書かれていると仮定する。
x=x(0)x(1)x(2)x(3)x(4)x(5)x(6)x(7)
y=y(0)y(1)y(2)y(3)y(4)y(5)y(6)y(7)
ステージ81の間に、データxはモジュロpシフト要素SMP1に送られる。ビットy(0)の値が1の場合、値xはマルチプレクサMUX1によってレジスタR8にコピーされる。ビットy(0)の値が0の場合、レジスタR8には値0がコピーされる。
y=y(0)y(1)y(2)y(3)y(4)y(5)y(6)y(7)
ステージ81の間に、データxはモジュロpシフト要素SMP1に送られる。ビットy(0)の値が1の場合、値xはマルチプレクサMUX1によってレジスタR8にコピーされる。ビットy(0)の値が0の場合、レジスタR8には値0がコピーされる。
モジュロpシフト要素はデータxを左にシフトし、得られたデータをpと比較する。得られたこのデータは以下のように書かれる。
x(1)x(2)x(3)x(4)x(5)x(6)x(7)0
得られたこのデータがpよりも大きい場合、この得られたデータを用いたモジュロp演算が実施され、この演算の結果がレジスタR1に書き込まれる。得られたデータがpよりも小さい場合、レジスタR1にはこのデータがコピーされる。
得られたこのデータがpよりも大きい場合、この得られたデータを用いたモジュロp演算が実施され、この演算の結果がレジスタR1に書き込まれる。得られたデータがpよりも小さい場合、レジスタR1にはこのデータがコピーされる。
ステージ82の間に、レジスタR1に記憶されているデータが、モジュロpシフト要素SMP2およびマルチプレクサMUX2に送られる。それぞれのステップは、レジスタを活性化するために1クロック・サイクルを要する。第2のビットy(1)の値が1の場合、レジスタR1に記憶されているデータはモジュロp加算器AMP2に送られる。第2のビットy(1)の値が0の場合、モジュロp加算器AMP2には値0が送られる。モジュロp加算器AMP2にはレジスタR8に記憶されていたデータも送られる。モジュロp加算器AMP2は、その2つの入力値のモジュロp加算を実行し、結果をレジスタR9に送る。
ステージ83から88の間に同様の演算が実施され、モジュロp加算器AMP8の出力にxとyのモジュロp乗算の結果が得られる。
図8の回路による列内置換要素の計算を以下で説明する。
新しい原始根v’[j]および列内置換要素は、インタリービング行列の行数Rが10または20の場合には8ビット、Rが5の場合には5ビットで書かれる。
新しい原始根v’[j]および列内置換要素が8ビットで書かれていると仮定する。この場合、新しい原始根と列内置換要素の間のモジュロp乗算には8クロック・サイクルを要する。
列内置換要素U0[1]を計算するために、列内置換要素U0[0]が、ステージ81の間に、モジュロpシフト要素SMP1およびマルチプレクサMUX1に送られる。第1のクロック・サイクルの後、第2のクロック・サイクルの間にステージ82が実施される。v’[0]とU0「0」の間のモジュロp乗算の第2のステージが実施されている間にv’[1]とU1[0]の間の第1のモジュロp乗算ステージを実施するため、この第2のクロック・サイクルの間に、列内置換要素U1[0]がモジュロpシフト要素SMP1およびマルチプレクサMUX1に送られる。
図8に、8番目のクロック・サイクルの間に実施される計算を示す。v’[0]とU0[0]の間のモジュロp乗算の第8のステージが実施され、その中で、新しい原始根v’[0]の8番目のビットv’[0](7)の値が1であるかどうかをマルチプレクサMUX8が確認する。v’[1]とU1[0]の間のモジュロp乗算の第7のステージは実施され、その中で、新しい原始根v’[1]の7番目のビットv’[1](6)の値が1であるかどうかをマルチプレクサMUX7が確認し、以下同様の操作を順次実施する。v’[7]とU7[0]の間のモジュロp乗算の最初のステージは実施され、その中で、新しい原始根v’[7]の最初のビットv’[7](0)の値が1であるかどうかをマルチプレクサMUX1が確認する。
8番目のクロック・サイクルの終わりに、列内置換要素U0[1]が計算され、レジスタR15に記憶される。インタリービング行列の行数が20であると仮定する。列ごとに20個の列内置換要素が計算される。したがって列内置換要素U0[1]〜U19[1]が計算され、次いでU0[1]に基づいて要素U0[2]が計算され、U1[1]に基づいて要素U1[2]が計算され、以下同様に順次計算される。したがって計算装置800によって計算されたそれぞれの列内置換要素は、計算されてから12クロック後にこの計算装置800によって再び使用される。12個のレジスタR16〜R27を含む移送手段801は、12クロック・サイクルのうちに1つのデータを計算装置800の出力から入力へ移動させることができる。
インタリービング行列の行数が10であると仮定する。それぞれの列jに対して10個の列内置換要素が計算される。したがって計算装置800によって計算されたそれぞれの列内置換要素は、計算されてから2クロック後にこの計算装置800によって再び使用される。マルチプレクサMUX9のおかげで、レジスタR17の出力のデータを選択して、2クロック・サイクルのうちにこのデータを計算装置800の出力から入力へ移送することができる。
動詞「含む」およびその活用形は幅広く解釈しなければならない。すなわちこれらの表現は、前記動詞の後に挙げた要素以外の要素が存在することを排除するものでも、また複数と明示せずに前記動詞の後にすでに挙げた要素が複数存在することを排除するものでもないと解釈しなければならない。
Claims (7)
- 予め決められた数のクロック・サイクルのうちにデータを計算する能力を有し、入力および出力を有する少なくとも1つの計算装置によって計算された第1のデータ・セットに基づいて第2のデータ・セットを計算するための回路であって、前記第1のデータ・セットのデータ数およびデータの計算に必要な前記予め決められたサイクル数に応じたクロック・サイクル数にて、前記第1のデータ・セットのデータを前記計算装置の前記出力から前記入力へルーティングするための移送手段を含み、前記移送手段を介してデータが1クロック・サイクルごとに前進することを特徴とする回路。
- 前記移送手段が、前記計算装置の前記出力から前記入力へデータを移送するために必要なサイクル数を調整するための調整手段を含むことを特徴とする、請求項1に記載の回路。
- 前記移送手段が、1クロック・サイクルごとに新しいデータを記憶する能力を有する、クロックによって活性化する少なくとも1つのレジスタを含むことを特徴とする、請求項1または2に記載の回路。
- インタリーバの列内置換要素を計算するためのシステムであって、請求項1に記載の回路を含むシステム。
- 請求項4に記載のシステムを含む復号回路。
- 請求項5に記載の復号回路を含む電子装置。
- 信号を送信する能力を有する少なくとも1つの送信機と、伝送路と、前記信号を受信する能力を有する受信機と、請求項5に記載の復号回路とを含む通信ネットワーク。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0211839 | 2002-09-25 | ||
PCT/IB2003/003943 WO2004030225A1 (en) | 2002-09-25 | 2003-09-10 | Circuit for recursively calculating data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006500850A true JP2006500850A (ja) | 2006-01-05 |
Family
ID=32039551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004539290A Pending JP2006500850A (ja) | 2002-09-25 | 2003-09-10 | データを再帰的に計算するための回路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060090111A1 (ja) |
EP (1) | EP1547253A1 (ja) |
JP (1) | JP2006500850A (ja) |
CN (1) | CN1685620A (ja) |
AU (1) | AU2003259480A1 (ja) |
WO (1) | WO2004030225A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012049683A (ja) * | 2010-08-25 | 2012-03-08 | Mitsubishi Electric Corp | インタリーブ装置、ターボ符号の符号化器、ターボ符号の復号器、通信装置、並びに、インタリーブ方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140133483A1 (en) * | 2012-11-14 | 2014-05-15 | Broadcom Corporation | Distributed Switch Architecture Using Permutation Switching |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4894626A (en) * | 1988-09-30 | 1990-01-16 | Advanced Micro Devices, Inc. | Variable length shift register |
US4931974A (en) * | 1989-01-30 | 1990-06-05 | Integrated Device Technology, Inc. | Sixteen-bit programmable pipelined arithmetic logic unit |
JPH05197741A (ja) * | 1991-06-06 | 1993-08-06 | Lsi Logic Corp | インターリーブド乗算器累算器 |
US5784306A (en) * | 1996-06-28 | 1998-07-21 | Cirrus Logic, Inc. | Parallel multiply accumulate array circuit |
US6112218A (en) * | 1998-03-30 | 2000-08-29 | Texas Instruments Incorporated | Digital filter with efficient quantization circuitry |
WO2000070771A1 (en) * | 1999-05-19 | 2000-11-23 | Samsung Electronics Co., Ltd. | Turbo interleaving apparatus and method |
US6392572B1 (en) * | 2001-05-11 | 2002-05-21 | Qualcomm Incorporated | Buffer architecture for a turbo decoder |
-
2003
- 2003-09-10 CN CNA038227371A patent/CN1685620A/zh active Pending
- 2003-09-10 US US10/528,622 patent/US20060090111A1/en not_active Abandoned
- 2003-09-10 EP EP03798270A patent/EP1547253A1/en not_active Withdrawn
- 2003-09-10 AU AU2003259480A patent/AU2003259480A1/en not_active Abandoned
- 2003-09-10 JP JP2004539290A patent/JP2006500850A/ja active Pending
- 2003-09-10 WO PCT/IB2003/003943 patent/WO2004030225A1/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012049683A (ja) * | 2010-08-25 | 2012-03-08 | Mitsubishi Electric Corp | インタリーブ装置、ターボ符号の符号化器、ターボ符号の復号器、通信装置、並びに、インタリーブ方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1547253A1 (en) | 2005-06-29 |
CN1685620A (zh) | 2005-10-19 |
US20060090111A1 (en) | 2006-04-27 |
AU2003259480A1 (en) | 2004-04-19 |
WO2004030225A1 (en) | 2004-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7058874B2 (en) | Interleaver address generator and method of generating an interleaver address | |
AU2004302428A1 (en) | Apparatus and method for coding/decoding block low density parity check code in a mobile communication system | |
KR20010080679A (ko) | 선형 혼합 시퀀스를 이용한 터보 코드 인터리버 | |
WO2003044965A1 (fr) | Generateur d'ordre d'entrelacement, entrelaceur, turbo codeur et turbo decodeur | |
US6014761A (en) | Convolutional interleaving/de-interleaving method using pointer incrementing across predetermined distances and apparatus for data transmission | |
US20130198592A1 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
CN110741557A (zh) | 通过合并极化码图的级的低延迟极化编码和解码 | |
US7734989B2 (en) | Multi-standard turbo interleaver using tables | |
CN110999095A (zh) | 用于极化码的按块并行冻结位生成 | |
US8719678B2 (en) | Configurable encoder for cyclic error correction codes | |
JP4767266B2 (ja) | 演算ユニット、エラー訂正復号回路及び誤り位置多項式の演算方法 | |
EP1576735A1 (en) | Addresses generation for interleavers in turbo encoders and decoders | |
JP3655872B2 (ja) | 巡回符号を用いた誤り制御装置および方法 | |
US20110087949A1 (en) | Reconfigurable turbo interleavers for multiple standards | |
JP2004129240A (ja) | インタリーブド・アドレスを生成するための方法および装置 | |
JP2006500850A (ja) | データを再帰的に計算するための回路 | |
JP4265345B2 (ja) | 携帯電話機、インターリーブパラメータ演算装置、方法及びプログラム | |
Drescher et al. | VLSI architecture for non-sequential inversion over GF (2m) using the euclidean algorithm | |
KR100416569B1 (ko) | 터보 치환기 및 이를 이용한 터보 복호기 | |
JP2725598B2 (ja) | 誤り訂正符号化器 | |
US8200733B1 (en) | Device having interleaving capabilities and a method for applying an interleaving function | |
WO2004051864A2 (en) | Dynamic real time generation of 3gpp turbo decoder interleaver sequence | |
CN102790655B (zh) | 一种实现Turbo编码的装置和方法 | |
KR100907547B1 (ko) | 리드-솔로몬 복호기의 에스-디씨엠이 알고리즘 연산방법 및그 연산회로 | |
CN101142747A (zh) | 使用包含z系统的两个子系统的两个表的信道编码 |