特表2015-505655(P2015-505655A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社イノワイアレスの特許一覧

特表2015-505655インターリーバーインデックス生成装置及び方法
<>
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000024
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000025
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000026
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000027
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000028
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000029
  • 特表2015505655-インターリーバーインデックス生成装置及び方法 図000030
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2015-505655(P2015-505655A)
(43)【公表日】2015年2月23日
(54)【発明の名称】インターリーバーインデックス生成装置及び方法
(51)【国際特許分類】
   H03M 13/27 20060101AFI20150127BHJP
【FI】
   H03M13/27
【審査請求】有
【予備審査請求】未請求
【全頁数】22
(21)【出願番号】特願2014-555464(P2014-555464)
(86)(22)【出願日】2012年2月24日
(85)【翻訳文提出日】2014年9月18日
(86)【国際出願番号】KR2012001441
(87)【国際公開番号】WO2013115429
(87)【国際公開日】20130808
(31)【優先権主張番号】10-2012-0010658
(32)【優先日】2012年2月2日
(33)【優先権主張国】KR
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,MD,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KM,KN,KP,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC,VN,ZA
(71)【出願人】
【識別番号】507136165
【氏名又は名称】株式会社イノワイアレス
【氏名又は名称原語表記】Innowireless Co.,Ltd
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】チョン,ジンソプ
(72)【発明者】
【氏名】イ,ジュヒョン
(72)【発明者】
【氏名】イム,ジョンホ
(72)【発明者】
【氏名】キム,ジェファン
【テーマコード(参考)】
5J065
【Fターム(参考)】
5J065AG06
5J065AH02
(57)【要約】
本発明は、インターリーバーインデックス生成装置及び方法に関するものであって、より詳細にはターボエンコーダの内部インターリーバーインデックスの並列式生成装置及び方法に関し、複数のビットに対するインデックスを並列に生成することで、全体インデックスの生成にかかる時間を減らすことができ、一定ビットに対して計算されたインデックスを用いて以後のビットに対するインデックスを計算することで、ハードウェア具現時の資源の効率性及び性能の向上を図る効果がある。
【選択図】図2
【特許請求の範囲】
【請求項1】
入力データに対するインターリーバーインデックス生成装置において、
前記データの一定ビットに対するインデックスを計算する上位プロセッサと、
前記上位プロセッサから計算されたインデックスを受けて前記一定ビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出するインデックス演算部と、
を含むことを特徴とするインターリーバーインデックス生成装置。
【請求項2】
前記上位プロセッサ又は前記インデックス演算部は、インデックスを計算するにあたって、 インデックス値の差を用いて計算することを特徴とする請求項1に記載のインターリーバーインデックス生成装置。
【請求項3】
前記一定ビットに対するインデックスは、以下の数式により計算される値を用いて計算されることを特徴とする請求項1に記載のインターリーバーインデックス生成装置。
【数1】
【請求項4】
前記モジュラ(mod)演算は、加算とマルチプレクサを用いて行われるようにすることを特徴とする請求項3に記載のインターリーバーインデックス生成装置。
【請求項5】
前記加算は、前記モジュラ演算の被除数と符号反転された除数の加算であり、
前記マルチプレクサは、前記加算の結果及び前記被除数の入力を受けて、前記加算の結果が負数であれば前記被除数が出力され、正数であれば前記加算の結果が出力されるようにすることを特徴とする請求項4に記載のインターリーバーインデックス生成装置。
【請求項6】
前記上位プロセッサは、前記データのi番目からi+15番目までのビット(ここで、iは0以上の整数)に対するインデックスを計算し、
前記インデックス演算部は、(i+j)番目と(i+j)+8番目ビットに対するインデックス値の差を用いて(i+j)+16番目ビット(ここで、jは0≦j≦7)に対するインデックスを計算することを特徴とする請求項1に記載のインターリーバーインデックス生成装置。
【請求項7】
前記上位プロセッサは、(128*f)mod Kを計算して前記インデックス演算部に送り、
前記インデックス演算部は、下記の数式を用いてインデックスを計算することを特徴とする請求項6に記載のインターリーバーインデックス生成装置。
【数2】
(ここで、jは0≦j≦7)
【請求項8】
前記モジュラ(mod)演算は、第1入力、第2入力及び除数Kの入力を受けて第1加算、第2加算及びマルチプレクサを用いて行われるようにすることを特徴とする請求項6に記載のインターリーバーインデックス生成装置。
【請求項9】
前記第1加算は前記第1入力の値と符号反転された前記第2入力の値の加算であり、
前記第2加算は前記第1加算の結果と前記除数Kの加算であり、
前記マルチプレクサは、前記第1加算の結果と前記第2加算の結果の入力を受けて、前記第1加算の結果が負数であれば前記第2加算の結果を出力し、正数であれば前記第1加算の結果を出力することを特徴とする請求項7に記載のインターリーバーインデックス生成装置。
【請求項10】
入力データに対するインターリーバーインデックスを生成する方法において、
前記データの一定ビットに対するインデックスを計算する第1ステップと、
前記計算されたインデックスを用いて前記一定ビット以後のビットに対するインデックスを並列に計算する第2ステップと、を含むことを特徴とするインターリーバーインデックス生成方法。
【請求項11】
前記第1ステップは以下の数式によりビットに対するインデックス値の差を計算し、前記計算されたインデックス値を用いて前記ビット以後のビットに対するインデックスを計算することを特徴とする請求項10に記載のインターリーバーインデックス生成方法。
【数3】
【請求項12】
前記モジュラ(mod)演算は、加算とマルチプレクサを用いて行われるが、
前記加算は、前記モジュラ演算の被除数と符号反転された除数の加算であり、
前記マルチプレクサは、前記加算の結果及び前記被除数の入力を受けて、前記加算の結果が負数であれば前記被除数が出力され、正数であれば前記加算の結果が出力されるようにすることを特徴とする請求項11に記載のインターリーバーインデックス生成方法。
【請求項13】
前記第1ステップは前記データのi番目から(i+15)番目までのビット(ここで、iは0以上の整数)に対するインデックス及び(128*f)mod Kを計算し、
前記第2ステップは以下の数式を用いてi+16番目ビット以後のビットに対するインデックスを計算することを特徴とする請求項10に記載のインターリーバーインデックス生成方法。
【数4】
(ここで、jは0≦j≦7)
【請求項14】
前記モジュラ(mod)演算は、第1入力、第2入力及び除数Kの入力を受けて第1加算、第2加算及びマルチプレクサを用いて行われるようにするが、
前記第1加算は、前記第1入力の値と符号反転された前記第2入力の値の加算であり、
前記第2加算は、前記第1加算の結果と前記除数Kの加算であり、
前記マルチプレクサは、前記第1加算の結果と前記第2加算の結果の入力を受けて、前記第1加算の結果が負数であれば前記第2加算の結果を出力し、正数であれば前記1加算の結果を出力することを特徴とする請求項13に記載のインターリーバーインデックス生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インターリーバーインデックス生成装置及び方法に関し、より詳細にはターボエンコーダの内部インターリーバーインデックスの並列式生成装置及び方法に関する。
【0002】
ターボエンコーダの内部インターリーバーの入出力関係は、入力がC0,C2..., CK-1で、出力がC’0,C’2..., C’K-1であるとき、次の数式に従う。
【0003】
【数1】
【0004】
また、入力列のインデックスと出力列のインデックスは次の数式に従う。
【0005】
【数2】
【0006】
図1は、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置100を示す構成図である。
図1を参照すると、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置100は、第1乗算器110、加算器120、第2乗算器130、除算器140を含むように構成される。
【0007】
従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置100は、入力データの大きさであるK、上記Kから計算されたfとf及びビットの順によるiの値の入力を受けて下記式を満足するΠ(i)を出力する。
【0008】
【数3】
【0009】
第1乗算器110はfとiの入力を受けてf*iの値を出力する。
加算器120は、上記第1乗算器110を通じて出力されたf*iとiの入力を受けてf*i+f値を出力する。
第2乗算器130は、上記加算器120を通じて出力されたf*i+fとiの入力を受けて(f*i+f)*iの値を出力する。
除算器140は(f*i+f)*iとKの入力を受けて{(f*i+f)*i}/Kを行って、余りに該当する{(f*i+f)*i}mod Kを出力する。
【0010】
このような従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置100はインデックスをビット単位で出力しているため、入力データの大きさが大きくなるにつれてインデックス生成時間が比例して増加して、性能低下が発生するという問題点がある。
【0011】
また、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置100は、インデックスを生成するためにハードウェア具現の観点で高い重要度を持つ乗算器と除算器を必要とする問題点がある。
【発明の概要】
【課題を解決するための手段】
【0012】
本発明の目的は、複数のビットに対するインターリーバーインデックスを並列に生成できるようにしながら、入力データの一定ビットに対して導出したインデックス値を用いて、以後のビットに対するインデックスを計算するようにするインターリーバーインデックス生成装置及び方法を提供することである。
【0013】
上記の目的を達成するための入力データに対するインターリーバーインデックス生成装置において、上記データの一定ビットに対するインデックスを計算する上位プロセッサ;及び上記上位プロセッサから計算されたインデックスを受けて上記一定ビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出するインデックス演算部;を含むことを特徴とするインターリーバーインデックス生成装置が提供される。
【0014】
好ましくは、上記上位プロセッサ又は上記インデックス演算部は、インデックスを計算するにあたってインデックス値の差を用いて計算することを特徴とする。
【0015】
好ましくは、上記一定ビットに対するインデックスは、以下の数式により計算される値を用いて計算されることを特徴とする。
【0016】
【数4】
【0017】
好ましくは、上記モジュラ(mod)演算は加算とマルチプレクサを用いて行われるようにすることを特徴とする。
【0018】
好ましくは、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにすることを特徴とする。
【0019】
好ましくは、上記上位プロセッサは上記データのi番目からi+15番目までのビット(ここで、iは0以上の整数)に対するインデックスを計算し、上記インデックス演算部はi+j番目と(i+j)+8番目ビットに対するインデックス値の差を用いて(i+j)+16番目ビット(ここで、jは0≦j≦7)に対するインデックスを計算することを特徴とする。
【0020】
好ましくは、上記上位プロセッサは(128*f)mod Kを計算して上記インデックス演算部に送り、上記インデックス演算部は下記の数式を用いてインデックスを計算することを特徴とする。
【0021】
【数5】

(ここで、jは0≦j≦7)
【0022】
好ましくは、上記モジュラ演算は第1入力、第2入力及び除数Kの入力を受けて第1加算、第2加算及びマルチプレクサを用いて行われるようにすることを特徴とする。
【0023】
好ましくは、上記第1加算は上記第1入力の値と符号反転された上記第2入力の値の加算であり、上記第2加算は、上記第1加算の結果と上記除数Kの加算であり、上記マルチプレクサは上記第1加算の結果と上記第2加算の結果の入力を受けて、上記第1加算の結果が負数であれば上記第2加算の結果を出力し、正数であれば上記第1加算の結果を出力することを特徴とする。
【0024】
また、入力データに対するインターリーバーインデックスを生成する方法において、上記データの一定ビットに対するインデックスを計算する第1ステップ;及び上記計算されたインデックスを用いて上記一定ビット以後のビットに対するインデックスを並列に計算する第2ステップ;を含むことを特徴とするインターリーバーインデックス生成方法が提供される。
【0025】
好ましくは、上記第1ステップは以下の数式によりビットに対するインデックス値の差を計算し、上記計算されたインデックス値を用いて上記ビット以後のビットに対するインデックスを計算することを特徴とする。
【0026】
【数6】
【0027】
好ましくは、上記モジュラ演算は加算とマルチプレクサを用いて行われるが、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにすることを特徴とする。
【0028】
好ましくは、上記第1ステップは上記データのi番目からi+15番目までのビット(ここで、iは0以上の整数)に対するインデックス及び(128*f)mod Kを計算し、上記第2ステップは以下の数式を用いてi+16番目ビット以後のビットに対するインデックスを計算することを特徴とする。
【0029】
【数7】

(ここで、jは0≦j≦7)
【0030】
好ましくは、上記モジュラ演算は第1入力、第2入力及び除数Kの入力を受けて第1加算、第2加算及びマルチプレクサを用いて行われるようにするが、上記第1加算は上記第1入力の値と符号反転された上記第2入力の値の加算であり、上記第2加算は上記第1加算の結果と上記除数Kの加算であり、上記マルチプレクサは上記第1加算の結果と上記第2加算の結果の入力を受けて、上記第1加算の結果が負数であれば上記第2加算の結果を出力し、正数であれば上記第1加算の結果を出力することを特徴とする。
【0031】
その他実施例の具体的な事項は詳細な説明及び図面に含まれている。
【発明の効果】
【0032】
本発明は、複数のビットに対するインデックスを並列に生成することで、全体インデックスの生成にかかる時間を減らす効果がある。
また、本発明は、一定ビットに対して計算されたインデックスを用いて、乗算器と除算器を使用せずに以後のビットに対するインデックスを計算することで、ハードウェア具現時の資源の効率性及び性能の向上を図る効果がある。
【図面の簡単な説明】
【0033】
図1】従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置を示す構成図。
図2】本発明の一実施例に係るインターリーバーインデックス生成装置の構成図。
図3】本発明の一実施例に係るモジュラ回路の構成図。
図4】本発明の他の実施例に係るモジュラ回路の構成図。
図5】本発明の他の実施例に係るインターリーバーインデックス生成装置の構成図。
図6】本発明の一実施例に係る次のインデックス生成器の構成図。
図7】本発明の一実施例に係るインターリーバーインデックス生成方法の流れ図。
【発明を実施するための形態】
【0034】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付図面とともに詳細に後述されている実施例を参照すると明確になるだろう。しかし、本発明は、以下で開示される実施例に限定されるものではなく、互いに異なる多様な形態で具現されることができ、単に本実施例は本発明の開示を完全にさせるものであり、本発明の属する技術分野における通常の知識を有する者に発明の範囲を完全に知らせるために提供されるものであり、本発明は請求項の範疇によって定義されるだけである。一方、本明細書で使用された用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。
【0035】
図2は本発明の一実施例に係るインターリーバーインデックス生成装置200の構成図である。図2を参照すると、本発明の一実施例に係るインターリーバーインデックス生成装置200は上位プロセッサ210と8個のインデックス演算部220を含むように構成される。各インデックス演算部220は第1保存装置221、第2保存装置222、次のインデックス生成器223を含むように構成される。
【0036】
本発明の一実施例に係るインターリーバーインデックス生成装置200は、入力データに対するインターリーバーインデックスを生成する。
インターリーバーインデックスは、入力データから導出されるf、f及びビットの順によるi値を用いて下記式を満足するΠ(i)である。
【0037】
【数8】
【0038】
例えば、上記数式で使用されたパラメータは、下表のとおりである。
【0039】
【表1】
【0040】
【表2】
【0041】
即ち、上記表の最初の例であるK=40、f=3、f=10から生成されるインデックスは、順次に0、13、6、19、12、25、18、31、24、37、30、3、36、9、2、15、8、21、14、27、20、33、26、39、32、5、38、11、4、17、10、23、16、29、22、35、28、1、34、7になる。
【0042】
上位プロセッサ210は、入力データの一定ビットに対するインデックスを計算する。
本発明の好ましい一実施例によれば、上位プロセッサ210は、インデックス値の差を用いて入力データの一定ビットに対するインデックスを計算する。
【0043】
図3は本発明の一実施例に係るモジュラ回路300の構成図である。図3を参照すると、本発明の一実施例に係るモジュラ回路300は加算器310とマルチプレクサ320で構成される。
【0044】
モジュラ演算は、被除数を除数で割った余りを出力する演算である。加算器310は、被除数と除数の入力を受けて被除数と符号反転された除数の加算を行う。即ち、被除数から除数を差し引いた値を導出する。
【0045】
マルチプレクサ320は上記加算の結果と被除数の入力を受けて、上記加算の結果が負数であれば被除数が出力され、上記加算の結果が正数であれば上記加算の結果を出力するようにする。
【0046】
本発明の好ましい他の実施例によれば、上記一定ビットに対するインデックスは、上記本発明の一実施例に係るモジュラ回路300を用いてモジュラ演算を行って値を演算する。
【0047】
即ち、上位プロセッサ210が一定ビットに対するインデックス値をインデックス演算部220に提供しなくても、上記本発明の一実施例に係るモジュラ回路300を通じて一定ビットに対するインデックスを演算してインデックス演算部220に提供するように具現することができる。
【0048】
このような本発明の一実施例に係るモジュラ回路300は、モジュラ演算することにおいて、乗算器と除算器をハードウェア具現の観点でより低い重要資源であるマルチプレクサと加算器に取り替える効果がある。
【0049】
このようなモジュラ演算は除算器を加算器とマルチプレクサに取り替えて、ハードウェア具現の観点でより低い重要度を持つ回路要素で構成できるようにして効率的なハードウェア資源を運用できるようにする効果がある。
【0050】
図5は、本発明の他の実施例に係るインターリーバーインデックス生成装置500の構成図である。図5を参照すると、本発明の他の実施例に係るインターリーバーインデックス生成装置500は3個の加算器511、512、513、2個のマルチプレクサ521、522、2個のD−フリップフロップ531、532及び3個の上記モジュラ演算器541、542、543を含むように構成される。
【0051】
本発明の他の実施例に係るインターリーバーインデックス生成装置500は(f+f)mod K、(2*f)mod K及びKの入力を受けてΠ(i)を順次に生成する。
本発明の他の実施例に係るインターリーバーインデックス生成装置500は下記式を用いてΠ(i)を導出する。
【0052】
【数9】
【0053】
これをわかりやすく展開して説明すると、次のとおりである。
Π(i+1)−Π(i)={f*(i+1)+f*(i+1)−(f*i+f*i)} mod K
={f*i+f+f*i+2*f*i+f−(f*i+f*i)}mod K
=(f+f+2*f*i)mod K
【0054】
即ち、現在インデックス値と次のインデックス値の差はf+fにfの2倍をiだけ累積して加えればよいため、本発明の他の実施例に係るインターリーバーインデックス生成装置500により導出されるΠ(i)は下記式を満たす。
【0055】
【数10】
【0056】
第1加算器511は、(2*f)mod Kの入力を受けて第1モジュラ演算器541の出力値と加算を行った結果値を出力する。最初演算のときは第1モジュラ演算器541の出力値を受けることができないため、出力値はアンノウン(unknown)状態である。
【0057】
第1マルチプレクサ521は、第1加算器511の出力値と0の入力を受けて制御信号(control)により最初インデックス生成のときに0を出力するようにし、以後は第1加算器511の出力値を出力する。これはインターリーバーの最初インデックスが0でなければならないからであり、また第1加算器511の最初出力値がアンノウン状態の値であるからである。
【0058】
第1D−フリップフロップ531は、第1マルチプレクサ521の出力値の入力を受けてこれを臨時的に保存する。これは第1モジュラ演算器541の出力値が第1加算器511に活用されるループバック(loop-back)が行われるからである。
【0059】
また、第1D−フリップフロップ531は、第1加算器511に活用されるループバック(loop-back)を用いてΠ(i+1)−Π(i)=(f+f+2*f*i)mod Kにおけるiの増加による2*f値の累積が行われるようにする。
【0060】
第1モジュラ演算器541は、第1D−フリップフロップ531の出力値とKの入力を受けて図3を通じて説明したモジュラ演算を行う。
【0061】
第2加算器512は、第1モジュラ演算器541の出力値と(f+f)mod Kの加算結果を出力する。第2モジュラ演算器542は、第2加算器512の出力値とKの入力を受けて図3を通じて説明したモジュラ演算を行う。
【0062】
第3加算器513は、第2モジュラ演算器542の出力値の入力を受けて第2D−フリップフロップ532の出力値と加算を行った結果値を出力する。最初遂行のときは第2D−フリップフロップ532の出力値を受けことができないため、出力値はアンノウン(unknown)状態である。
【0063】
第3モジュラ演算器543は、第3加算器513の出力値とKの入力を受けて図3を通じて説明したモジュラ演算を行う。
【0064】
第2マルチプレクサ522は、第3モジュラ演算器543の出力値と0の入力を受けて制御信号(control)により最初インデックス生成のときに0を出力するようにし、以後は第3モジュラ演算器543の出力値を出力する。これはインターリーバーの最初インデックスが0でなければならないからであり、また第3加算器513の最初出力値がアンノウン状態の値であるからである。
【0065】
第2D−フリップフロップ532は第2マルチプレクサ522の出力値の入力を受けてこれを臨時的に保存する。これは第2マルチプレクサ522の出力値が第3加算器513に活用されるループバック(loop-back)が行われるからである。
【0066】
また図2を参照すると、好ましくは、上記インターリーバーインデックス生成装置500は、上位プロセッサ210からインデックス演算部220に提供する一定ビットに対するインデックス値の導出に利用されることができる。即ち、上位プロセッサ210が一定ビットに対するインデックス値をインデックス演算部220に提供しない場合、上記インターリーバーインデックス生成装置500を用いて上記一定ビットに対するインデックスを演算してインデックス演算部220に提供するように構成することができる。
【0067】
本発明の好ましいまた他の実施例によれば、上位プロセッサ210は、入力データのi番目からi+15番目までのビット(ここで、iは0以上の整数)に対するインデックス及び(128*f)mod Kを計算してインデックス演算部220に送る。上位プロセッサ210は、8個のインデックス演算部220それぞれに入力データのi+j番目と(i+j)+8番目ビットに対するインデックス値(ここで、jは0≦j≦7)、(128*f)mod K及びKを送る。
【0068】
インデックス演算部220は、上位プロセッサ210から送られてきた値を用いて上位プロセッサ210が計算したビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出する。
【0069】
本発明の好ましい他の実施例によれば、インデックス演算部220は上位プロセッサ210から入力データのi+j番目と(i+j)+8番目ビットに対するインデックス値(ここで、jは0≦j≦7)を受け取って、インデックス値の差を用いて(i+j)+16番目ビットに対するインデックスを計算する。
【0070】
図2では、入力データのi+j番目に対するインデックス値はΠ(i)であって、(i+j)+8番目ビットに対するインデックス値はΠ(i)で表わされ、以後、iは8ずつ増加することになるiで表わされた。即ち、im+1はi+8と同じであり、im+2はi+16と同じである。
【0071】
本発明の好ましいまた他の実施例によれば、インデックス演算部220は上位プロセッサ210から入力データのi+j番目と(i+j)+8番目ビットに対するインデックス値(ここで、jは0≦j≦7)及び(128*f)mod Kを受け取って下記式を用いて(i+j)+16番目ビットに対するインデックスを計算する。
【0072】
【数11】
【0073】
インターリーバーインデックスは以下のような特性を有する。
1.Kは全て8の倍数である。
2.最初インデックスは常に0である。
3.生成されたインデックスを8で割った余りは8個ずつ繰り返される形で表れる。
4.最初8個のインデックスと2番目の8個のインデックスが生成されると、これを用いて3番目以後の全てのインデックスを8個単位で生成することができる。
【0074】
したがって、インターリーバーインデックスは次の数式を満たす。
【0075】
【数12】
【0076】
これをわかりやすく展開して説明すると、以下のとおりである。
Π(i+8)={f*(i+8)+f*(i+8)}mod K
={f*i+8*f+f*i+16*f*i+64*f}mod K
【0077】
上記の数式にΠ(i)を加えて、差し引いた後、まとめると以下のとおりである。
Π(i+8)={f*i+8*f+f*i+16*f*i+64*f+(f*i+f*i)−(f*i+f*i)}mod K
={f*i+f*i+f*i+f*i+8*f+16*f*i+64*f−(f*i+f*i)}mod K
={2*(f*i+f*i)−(f*i-8*f)−(f*i−16*f*i−64*f}mod K
【0078】
上記数式に128*fを加えて、差し引いた後、まとめると以下のとおりである。
Π(i+8)={2*(f*i+f*i)+128*f−128*f−(f*i−8*f)−(f*i−16*f*i−64*f}mod K
={2*(f*i+f*i)−(f*i−8*f)−(f*i−16*f*i+64*f)+128*f}mod K
={2*(f*i+f*i)−f*(i−8)−f*(i−8)+128*f}mod K
={2*Π(i)−Π(i−8)+128*f}mod K
【0079】
好ましくは、インデックス生成部220は、第1保存装置221、第2保存装置222及び次のインデックス生成器223を含むように構成され、上位プロセッサ210からΠ(i)、Π(i)、(128*f)mod K及びKを受け取ってΠ(i)以後のインデックスを計算し、出力はΠ(i)から順次に出力されるようにする。
【0080】
第1保存装置221は、最初は上位プロセッサ210からΠ(i)値を受け取って保存し、以後には第2保存装置222に保存されたΠ(im+1)を順次に受け取って保存する。また、第1保存装置221は保存された値を次のインデックス生成器223に送る。そして、第1保存装置221は保存された値を順次にインデックス演算部220の出力値として出力する。
【0081】
例えば、第1保存装置221は、最初Π(i)を保存し且つ出力し、その次には第2保存装置222が最初保存したΠ(i)を受け取って保存し且つ出力し、その次には第2保存装置222が次に保存する次のインデックス生成器223がΠ(i)とΠ(i)を通じて出力したΠ(i)を受け取って保存し且つ出力する。即ち、第1保存装置221はΠ(i)から順次にΠ(i)値を保存し、次のインデックス生成器223に送り、インデックス演算部220の出力値として出力する。
【0082】
第2保存装置222は、最初は上位プロセッサ210からΠ(i)値を受け取って保存し、以後には次のインデックス生成器223の出力値であるΠ(im+2)を受け取って保存する。また、第2保存装置222は保存された値を次のインデックス生成器223及び第1保存装置221に送る。即ち、第2保存装置222はΠ(i)から順次にΠ(im+1)値を保存し、次のインデックス生成器223と第1保存装置211に送る。
【0083】
次のインデックス生成器223は、第1保存装置221及び第2保存装置223から受け取ったΠ(i)値とΠ(im+1)値、上位プロセッサ210から受け取った(128*f)mod K値とKを用いてΠ(im+2)を計算する。好ましくは、次のインデックス生成器223は下記式を用いてΠ(im+2)を計算する。また、次のインデックス生成器223は計算されたΠ(im+2)を第2保存装置222に送る。
【0084】
【数13】
【0085】
好ましくは、インデックス演算部220は8個が存在し、各インデックス演算部はそれぞれ(Π(0)、Π(8))、(Π(1)、Π(9))、(Π(2)、Π(10))、(Π(3)、Π(11))、(Π(4)、Π(12))、(Π(5)、Π(13))、(Π(6)、Π(14))、(Π(7)、Π(15))の入力を受けてΠ(n*8)、Π(n*8+1)、Π(n*8+2)、Π(n*8+3)、Π(n*8+4)、Π(n*8+5)、Π(n*8+6)、Π(n*8+7)を出力する。(nは2以上であって、(K/8−1)以下の定数)
【0086】
図4は、本発明の他の実施例に係るモジュラ回路400の構成図である。図4を参照すると、本発明の他の実施例に係るモジュラ回路400は第1加算器410、第2加算器420及びマルチプレクサ430で構成され、第1入力、第2入力及び除数Kの入力を受ける。
【0087】
第1加算器410は、入力を受けた第1入力の値と符号反転された第2入力の値の加算を行って出力する。即ち、第1加算器410は第1入力の値から第2入力の値を差し引く計算を行う。
【0088】
第2加算器420は、第1加算器410の出力値と入力を受けた除数K値の加算を行って出力する。マルチプレクサ430は、第1加算器410の出力値と第2加算器420の出力値の入力を受けて、第1加算器410の出力値が正数であれば第1加算器410の出力値を出力し、第1加算器410の出力値が負数であれば第2加算器420の出力値を出力する。
【0089】
図6は本発明の一実施例に係る次のインデックス生成器の構成図である。図6を参照すると、本発明の一実施例に係る次のインデックス生成器600は、図3で説明した2個のモジュラ演算器610、620、図4で説明した1個のモジュラ演算器630及び1個の加算器640を含むように構成され、(128*f)mod K、2*Π(i)、K及びΠ(im+1)の入力を受けてΠ(im+2)を出力する。
【0090】
好ましくは、本発明の一実施例に係る次のインデックス生成器600が入力を受ける2*Π(i)は、Π(i)の入力を受けてビットシフトを適用して乗算器を使用せずに演算することができる。第1モジュラ演算器610は、2*Π(i)とKの入力を受けて図3で説明したモジュラ演算を行う。第2モジュラ演算器630は、第1モジュラ演算器610の出力値、Π(im+1)及びKの入力を受けて図4で説明したモジュラ演算を行う。加算器640は、第2モジュラ演算器620の出力値と(128*f)mod K値の加算を遂行して出力する。第3モジュラ演算器620は、加算器640の出力値とKの入力を受けて図3で説明したモジュラ演算を行う。第3モジュラ演算器620の出力値が次のインデックス生成器600の出力値であって、Π(im+2)になる。好ましくは、上記説明したマルチプレクサは、入力値の負数又は正数を判断するにあたって、最上位ビット値を用いて判断することができる。
【0091】
図7は本発明の一実施例に係るインターリーバーインデックス生成方法の流れ図である。図7を参照すると、本発明の一実施例に係るインターリーバーインデックス生成方法は、入力データからK、f、fを計算するステップS710、S710ステップで計算したK、f、fを用いて入力データの一定ビットのi番目からi+15番目までのビットに対するインデックスであるΠ(i)からΠ(i+15)までの値を計算するステップS720、及びS720ステップで計算したΠ(i)からΠ(i+15)までの値とインデックス値の差を用いてΠ(i+16)以後の値を並列に計算するステップS730を含む。
【0092】
S710ステップでは、インデックス生成装置は入力データからK、f、fを計算する。
S720ステップでは、インデックス生成装置はS710ステップで計算したK、f、fを用いて入力データの一定ビットに対するインデックスを計算する。
【0093】
本発明の好ましい一実施例によれば、S720ステップでは、インデックス生成装置は下記式によりビットに対するインデックス値の差を計算し、これを用いてi+1回目以後のビットに対するインデックスを計算する。
【0094】
【数14】
【0095】
本発明の好ましい一実施例によれば、上記モジュラ演算は加算とマルチプレクサを用いて行われるが、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにする。
【0096】
本発明の好ましい他の実施例によれば、S720ステップでは、インデックス生成装置は入力データのi番目からi+15番目までのビット(ここで、iは0以上の整数)に対するインデックス及び(128*f)mod Kを計算する。
【0097】
S730ステップでは、インデックス生成装置はS720ステップで計算したインデックス値を用いて計算したビット以後のビットに対するインデックスを並列に計算する。
本発明の好ましい一実施例によれば、S730では、インデックス生成装置は下記式(ここで、jは0≦j≦7)数式を用いてi+16番目ビット以後のビットに対するインデックスを計算する。
【0098】
【数15】
【0099】
本発明の好ましい他の実施例によれば、S730では、インデックス生成装置は第1入力、第2入力及び除数Kの入力を受けて、第1加算、第2加算及びマルチプレクサを用いて行われるモジュラ演算を利用する。上記モジュラ演算で活用される各演算は以下のとおりである。
【0100】
上記第1加算は上記第1入力の値と符号反転された上記第2入力の値の加算であり、上記第2加算は上記第1加算の結果と上記除数Kの加算であり、上記第2加算は上記第1加算の結果と上記除数の加算であり、上記マルチプレクサは上記第1加算の結果と上記第2加算の結果の入力を受けて上記第1加算の結果が負数であれば上記第2加算の結果を出力し、正数であれば上記第1加算の結果を出力する。
【0101】
以上、本発明の好ましい実施例及び応用例について図示して説明したが、本発明は上述した特定の実施例及び応用例に限定されるものではなく、請求範囲で請求する本発明の要旨を逸脱せずに当該発明の属する技術分野における通常の知識を有する者によって多様な変形実施が可能であることが勿論のことであり、かかる変形実施は本発明の技術的思想や展望から個別的に理解されてはいけない。
【符号の説明】
【0102】
200:インターリーバーインデックス生成装置
210:上位プロセッサ
220:インデックス演算部
221:第1保存装置
222:第2保存装置
223:次のインデックス生成器
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】