JP6949268B2 - 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム - Google Patents

演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム Download PDF

Info

Publication number
JP6949268B2
JP6949268B2 JP2021503267A JP2021503267A JP6949268B2 JP 6949268 B2 JP6949268 B2 JP 6949268B2 JP 2021503267 A JP2021503267 A JP 2021503267A JP 2021503267 A JP2021503267 A JP 2021503267A JP 6949268 B2 JP6949268 B2 JP 6949268B2
Authority
JP
Japan
Prior art keywords
data
data string
strings
weighted addition
value
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.)
Active
Application number
JP2021503267A
Other languages
English (en)
Other versions
JPWO2020178917A1 (ja
Inventor
重紀 谷
重紀 谷
道也 早馬
道也 早馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2020178917A1 publication Critical patent/JPWO2020178917A1/ja
Application granted granted Critical
Publication of JP6949268B2 publication Critical patent/JP6949268B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/70Methods 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 stochastic pulse trains, i.e. randomly occurring pulses the average pulse rates of which represent numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • G06F7/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Transmitters (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、確率的演算によって積和演算を行う演算回路、デジタルフィルタ、送信器、中継器、人工衛星、および演算方法に関する。
データ通信量の需要の増大に伴い、セルラシステム、衛星通信システムなどの通信インフラ設備は、高速でデータを伝送できることが要求されている。また、従来の人工衛星に搭載される中継器は、人工衛星が受信した信号をアナログ回路によって周波数変換して地上へ送信していることから、人工衛星を打ち上げた後の各地域における通信需要の変化に対応できないという問題があった。ここで、中継器にASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などのデバイスを搭載し、中継する信号の周波数、および中継する信号の送信先をデジタル信号処理で選択することでフレキシビリティを向上させるデジタルペイロード型の人工衛星が注目されている。
中継器に備わるデジタル信号処理を行うデバイスは、宇宙空間の放射線によって内部回路のビットの値の反転などのソフトエラーが生じる。このことから、中継器に備わるデジタル信号処理を行うデバイスは、放射線耐性を強化した宇宙空間専用デバイスであることが多い。一方で、地上で広く利用されている民生のFPGAなどのデバイスは、宇宙空間向け専用デバイスと比較して放射線耐性は低いものの、高性能かつ低コストである。このため、民生のFPGAを中継器に備わるデジタル信号処理を行うデバイスに利用することで人工衛星の高性能化と低コスト化とが期待できる。
民生のFPGAを宇宙空間で利用するときに、ソフトエラー耐性を強化する技術として確率的演算がある。確率的演算では、0と1とからなる擬似乱数列によって数値を表現する。確率的演算は、擬似乱数列中の一部が放射線によってビット反転したとしてもわずかな演算誤差しか発生しないという特徴がある。また、確率的演算は、加算、乗算などの回路構成を簡素化できるという特徴がある。非特許文献1は、確率的演算を用いた演算回路を開示する。
H. Ichihara, T. Sugino, S. Ishii, T. Iwagaki and T. Inoue, "Compact and Accurate Digital Filters Based on Stochastic Computing," in IEEE Transactions on Emerging Topics in Computing. DOI: 10.1109/TETC.2016.2608825
しかしながら、非特許文献1に記載される確率的演算は、従来の演算に用いる二進数演算と比較して演算結果が確率的であることから、演算の誤差が大きくなりやすい。具体的には、数値を擬似乱数列に変換するときの変換誤差と、擬似乱数列同士の演算における演算誤差とが生じる。特に、非特許文献1に記載されているような重み付き加算部を複数段並べた演算回路では、複数の演算過程での演算誤差が蓄積するといった問題があった。
本発明は、上記に鑑みてなされたものであって、確率的演算における演算誤差を低減することができる演算回路を得ることを目的とする。
上述した課題を解決し、目的を達成するために、演算回路は、データを疑似乱数列であり、疑似乱数列に含まれるビットのうち値が1のビットの割合がデータの値を示す第1のデータ列に変換するデータ変換部と、複数の第1のデータ列のそれぞれに重み付けされる値である重み係数を保持する係数保持部と、重み係数を疑似乱数列であり、疑似乱数列に含まれるビットのうち値が1のビットの割合が重み係数を示す重み係数列に変換する係数変換部と、複数の第1のデータ列と複数の重み係数列とを用いて、複数の第1のデータ列に重みを付けて加算した第2のデータ列を生成する複数の第1の重み付き加算部と、複数の第2のデータ列と重み係数列とを用いて複数の第2のデータ列に重みを付けて加算した第3のデータ列を生成する1つ以上の第2の重み付き加算部と、複数の第1の重み付き加算部に入力される第1のデータ列を、複数の第1の重み付き加算部および第2の重み付き加算部の演算誤差があらかじめ定められた値よりも小さくなるように選択する制御部と、を備えることを特徴とする。
本発明にかかる演算回路は、確率的演算における演算誤差を低減することができるという効果を奏する。
実施の形態1にかかる送信器の構成例を示す図 実施の形態1にかかるデジタルフィルタの構成例を示す図 実施の形態1にかかる積和演算部の構成を示す図 実施の形態1にかかる制御回路を示す図 実施の形態1にかかる重み付き加算部が入出力するデータを示す第1の図 実施の形態1にかかる重み付き加算部が入出力するデータ列を示す第1の図 実施の形態1にかかる重み付き加算部が入出力するデータを示す第2の図 実施の形態1にかかる重み付き加算部が入出力するデータ列を示す第2の図 実施の形態1にかかる重み付き加算部が入出力するデータを示す第3の図 実施の形態1にかかる重み付き加算部が入出力するデータ列を示す第3の図 実施の形態1にかかる重み付き加算部へ出力するデータ列を決定する流れを示すフローチャート 実施の形態2にかかるデジタルフィルタの構成を示す図 実施の形態2にかかる積和演算部の構成を示す図 実施の形態2にかかる重み付き加算部へ出力するデータ列を決定する流れを示すフローチャート
以下に、本発明の実施の形態にかかる演算回路、デジタルフィルタ、送信器、中継器、人工衛星、および演算方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかる送信器の構成例を示す図である。送信器1は図示しない受信器と無線で通信する。送信器1は、データ生成部2と、デジタルフィルタ100と、送信部3と、アンテナ4とを備える。データ生成部2は、送信器1が送信するデータを生成し、デジタルフィルタ100に出力する。デジタルフィルタ100はデータを用いて、積和演算を行い、送信データを生成し送信部3に出力する。送信部3は、送信データに変調、D/A変換などを行い、送信データを無線周波数信号に変換する。アンテナ4は、無線周波数信号を送信する。送信器1は、中継器、人工衛星などに備えられる。無線で通信する場合、限られた周波数帯域幅の中で電波を送信する必要がある。このため、送信器1は2進数で表現されたパルス上の信号をデジタルフィルタ100で波形整形する。中継器も同様に受信した信号を、デジタルフィルタ100を用いて波形整形した後に中継先に中継する。
図2は、実施の形態1にかかるデジタルフィルタの構成例を示す図である。デジタルフィルタ100は、データ変換部101と、シフトレジスタ102と、積和演算部103と、係数保持部104と、係数変換部105と、制御部106と、を備える。
データ変換部101は、データを、確率的演算で用いるデータ列に変換する。データは量子化されている。また、データ変換部101は、データ列をシフトレジスタ102に出力する。データ列は疑似乱数列である。データ変換部101によって変換されたデータ列は、第1のデータ列とも呼ばれる。データ変換部101が行うデータ列への変換の方法は、例えば、データの取り得る値の範囲が0から1の間である場合、データを1が発生する確率がデータの値と同じ値となるデータ列に変換する方法が挙げられる。具体的には、データの値が0.5、データ列の長さを512ビットとした場合、データを、512ビット中256ビット、つまりデータ列の50%が1であり、残りの50%が0であるデータ列に変換することが挙げられる。なお、擬似乱数列の生成方法はPN(Pseudo Noise)符号のような擬似雑音符号でもよいし、Sobol系列のように超一様分布列を用いて疑似乱数列を生成してもよい。また、データ列の長さは特に制約はなく、データ列を長くするほど、データを変換したときの誤差は低減する。しかし、データ列を長くするほど、並列処理するときの回路規模が増大するため、所望の通信性能と回路規模に応じて適切なデータ列の長さを選択すればよい。
シフトレジスタ102は、データ変換部101が出力するデータ列を複数保持する。シフトレジスタ102が保持するデータ列の合計の長さは、デジタルフィルタ100のタップ数と関連する。例えば、デジタルフィルタ100が、N=11タップのデジタルフィルタである場合、データ列は変換前のデータが11個収まるようにすればよい。すなわち、1つのデータあたりのデータ列の長さをSとすると、シフトレジスタ102はS×11の長さのデータ列を保持する。シフトレジスタ102は、タップの数だけデータ列を格納することができる。
係数保持部104は、積和演算部103が複数のデータ列を重みを付けて加算するために用いる重み係数を保持する。言い換えれば、重み係数は、複数のデータ列のそれぞれの重み付けされる値である。デジタルフィルタ100では、重み係数はタップ係数を用いて算出することができる。重み係数を算出する具体例は後述する。係数変換部105は、係数保持部104が保持する重み係数を、確率的演算で用いる疑似乱数列である重み係数列に変換する。重み係数列への変換方法は、データ変換部101がデータをデータ列に変換する処理と同じである。制御部106は、重み係数を算出する。また、制御部106は、積和演算部103に入力させるデータ列を選択する。制御部106の詳細な動作については後述する。
積和演算部103は、データ列と、重み係数列とを用いて積和演算する。図3は、実施の形態1にかかる積和演算部103の構成を示す図である。積和演算部103は、重み付き加算部200−1〜200−3を備える。重み付き加算部200−1〜200−3のそれぞれを区別せず示すときは、重み付き加算部200と称する。重み付き加算部200−1,200−2はそれぞれ第1の重み付き加算部とも呼ばれる。重み付き加算部200−3は第2の重み付き加算部とも呼ばれる。重み付き加算部200−1,200−2はシフトレジスタ102が保持する複数のデータ列と、複数の重み係数列とを用いて、複数のデータ列に重みを付けて加算したデータ列を生成し重み付き加算部200−3に出力する。重み付き加算部200−3は重み付き加算部200−1,200−2が出力した複数のデータ列と、複数の重み係数列とを用いて、重み付き加算部200−1,200−2が出力した複数のデータ列に重みを付けて加算したデータ列を生成する。
重み付き加算部200−1が、重み付き加算部200−3に出力するデータをデータ列b0と呼ぶ。重み付き加算部200−2が、重み付き加算部200−3に出力するデータをデータ列b1と呼ぶ。重み付き加算部200−1,200−2が重み付き加算部200−3に出力するデータ列は第2のデータ列とも呼ばれる。重み付き加算部200−3に図示しない機能部に出力するデータ列は第3のデータ列とも呼ばれる。重み付き加算部200−1〜200−3は、ツリー構造の形式で接続される。図3のシフトレジスタ102が備えるタップの数は5つであり、5つのタップD0〜D4それぞれにデータ列が保持される。
重み付き加算部200−1には、シフトレジスタ102からデータ列が2つ入力される。重み付き加算部200−2には、シフトレジスタ102からデータ列が3つ入力される。重み付き加算部200−3には、重み付き加算部200−1および重み付き加算部200−2からそれぞれデータ列が1つ入力される。重み付き加算部200−1がタップD2から入力されるデータ列をデータ列a0と呼ぶ。重み付き加算部200−1がタップD0から入力されるデータ列をデータ列a1と呼ぶ。重み付き加算部200−2がタップD1から入力されるデータ列をデータ列a2と呼ぶ。重み付き加算部200−2がタップD3から入力されるデータ列をデータ列a3と呼ぶ。重み付き加算部200−2がタップD4から入力されるデータ列をデータ列a4と呼ぶ。
タップD0〜D4のタップ係数は、それぞれタップ係数h0〜h4と呼ぶ。また、図3において、タップ係数h0とタップ係数h2とを用いて算出された重み係数列を重み係数列s0と呼ぶ。重み係数列s0は、係数変換部105によって重み係数から生成される。重み付き加算部200−1には、係数変換部105から重み係数列s0が入力される。つまり、重み付き加算部200−1には、タップD2,D0がそれぞれ出力するデータ列a0,a1と、タップD2,D0それぞれのタップ係数h2,h0を用いて算出された重み係数列s0と、が入力される。同様に、重み付き加算部200−2には、タップD1,D3,D4がそれぞれ出力するデータ列a2,a3,a4と、タップD1,D3,D4それぞれのタップ係数h1,h3,h4を用いて算出された重み係数列s1と、が入力される。重み付き加算部200−3には、データ列b0とデータ列b1と、タップ係数h0,h1,h2,h3,h4を用いて算出された重み係数列s2とが入力される。
なお、本実施の形態では、積和演算部103は、重み付き加算部200を3つ備えているが、3つに限られず4つ以上備えていてもよい。重み付き加算部200の数は、シフトレジスタ102が備えるタップの数に応じて変更することができ、ツリーの段数も重み付き加算部200の数に応じて変更可能である。なお、図3に示されるツリー構造以外にも、例えば、タップ数がN=8であって、1つの重み付き加算部200がシフトレジスタ102から入力されるデータ列の数をM=2とする場合、ツリー構造は、重み付き加算部200の数を4つ→2つ→1つとする3段構造のツリーにすることができる。
本実施の形態では、重み付き加算部200−1および200−3が入力されるデータ列の数は2つで、重み付き加算部200−2が入力されるデータ列の数は3つとしているが、重み付き加算部200がシフトレジスタ102から入力されるデータ列の数は、2つまたは3つに限定されない。言い換えれば、重み付き加算部200−1,200−2,200−3それぞれに入力されるデータ列の数は、それぞれ異なっていてもよい。また、図3では、重み付き加算部200−1にはタップD2からデータ列a0が入力されているが、重み付き加算部200−1が入力されるデータ列はデータ列a0に限らず、積和演算部103における演算誤差が最小になるようにデータ列a0以外のデータ列が入力されるようにしてもよい。または、積和演算部103における演算誤差があらかじめ定められた値よりも小さくなるようにデータ列a0以外のデータ列が入力されるようにしてもよい。
デジタルフィルタ100のハードウェア構成について説明する。データ変換部101、積和演算部103、係数保持部104、および係数変換部105は、各処理を行う電子回路である処理回路により実現される。
本処理回路は、専用のハードウェアであっても、メモリ及びメモリに格納されるプログラムを実行するCPU(Central Processing Unit、中央演算装置)を備える制御回路であってもよい。ここでメモリとは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの、不揮発性または揮発性の半導体メモリ、磁気ディスク、光ディスクなどが該当する。図4は、実施の形態1にかかる制御回路を示す図である。本処理回路がCPUを備える制御回路である場合、この制御回路は例えば、図4に示す構成の制御回路300となる。
図4に示すように、制御回路300は、CPUであるプロセッサ300aと、メモリ300bとを備える。図4に示す制御回路300により実現される場合、プロセッサ300aがメモリ300bに記憶された、各処理に対応するプログラムを読みだして実行することにより実現される。また、メモリ300bは、プロセッサ300aが実施する各処理における一時メモリとしても使用される。シフトレジスタ102は、デジタル回路により実現される。
図5は、実施の形態1にかかる重み付き加算部200−1が入出力するデータを示す第1の図である。データ列a0がデータ変換部101によって変換される前の入力データを0.2とする。データ列a1がデータ変換部101によって変換される前の入力データを0.7とする。重み係数列s0を算出するときに用いる重み係数を、a0の重み係数=0.8、a1の重み係数=0.2とする。a1の重み係数は、データ列a1がデータ列b0に含まれる割合を示す。重み付き加算部200−1が出力するデータ列b0の疑似乱数に変換前の値を0.3とする。
図6は、実施の形態1にかかる重み付き加算部200−1が入出力するデータ列を示す第1の図である。データ列a0がデータ変換部101によって変換される前の入力データは0.2であるため、データ列a0の列の長さを10ビットとした場合、データ列a0は、10ビット中2ビットを1とするデータ列となる。同様に、データ列a1がデータ変換部101によって変換される前の入力データは0.7であるため、データ列a1は10ビット中7ビットを1とするデータ列となる。
重み係数列s0は、a0の重み係数が0.8であり、a1の重み係数0.2であるため、10ビット中8ビットを1とするデータ列となる。データ列b0は、データ列a0とデータ列a1と重み係数列s0とを用いて算出される。重み係数列s0のn番目のビットが1である場合、データ列b0のn番目のビットは、データ列a0のn番目のビットと同じ値となる。また、重み係数列s0のn番目のビットが0である場合、データ列b0のn番目のビットは、データ列a1のn番目のビットと同じ値となる。図6に示されるデータ列を用いる場合、1<n<11であり、nは整数である。このように重み付き加算部200−1は、0.3(0.2×0.8+0.7×0.2)を確率的演算で用いるデータ列にしたデータ列b0を算出し、重み付き加算部200−3に出力する。
図7は、実施の形態1にかかる重み付き加算部200−2が入出力するデータを示す第2の図である。データ列a2がデータ変換部101によって変換される前の入力データを0.4とする。データ列a3がデータ変換部101によって変換される前の入力データを0.5とする。データ列a4がデータ変換部101によって変換される前の入力データを0.6とする。重み係数列s1を算出するときに用いる重み係数をそれぞれ、データ列a2の重み係数=0.2、データ列a3の重み係数=0.6、データ列a4の重み係数=0.2とする。重み付き加算部200−2が出力するデータ列b1の疑似乱数に変換前の値を0.5とする。
図8は、実施の形態1にかかる重み付き加算部200−2が入出力するデータ列を示す第2の図である。データ列a2がデータ変換部101によって変換される前の入力データは0.4であるため、データ列a2の列の長さを10ビットとした場合、データ列a2は、10ビット中4ビットを1とするデータ列となる。同様に、データ列a3がデータ変換部101によって変換される前の入力データは0.5であるため、データ列a3は10ビット中5ビットを1とするデータ列となる。データ列a4がデータ変換部101によって変換される前の入力データは0.6であるため、データ列a4は10ビット中6ビットを1とするデータ列となる。
重み付き加算部200−1が入力されるデータ列の数は2であることに対し、重み付き加算部200−2が入力されるデータ列の数は3である。このため、重み係数列s1は0,1,2の3種類の値で表現される。つまり、重み付き加算部200−2に入力されるデータ列の数に応じた値で、重み係数列s1は表現される。データ列a2の重み係数は、重み係数列s1に0が含まれる割合で表され、重み係数列s1の10ビット中2ビットが0である。また、データ列a3の重み係数は、重み係数列s1に1が含まれる割合で表され、重み係数列s1の10ビット中6ビットが1である。また、データ列a4の重み係数は、重み係数列s1に2が含まれる割合で表され、重み係数列s1の10ビット中2ビットが2である。
データ列b1は、データ列a2と、データ列a3と、データ列a4と、重み係数列s1とを用いて算出される。重み係数列s1のn番目のビットが0である場合、データ列b1のn番目のビットは、データ列a2のn番目のビットと同じ値となる。重み係数列s1のn番目のビットが1である場合、データ列b1のn番目のビットは、データ列a3のn番目のビットと同じ値となる。重み係数列s1のn番目のビットが2である場合、データ列b1のn番目のビットは、データ列a4のn番目のビットと同じ値となる。図8に示されるデータ列を用いる場合、1<n<11であり、nは整数である。このように重み付き加算部200−2は、0.5(0.4×0.2+0.5×0.6+0.6×0.2)を確率的演算で用いるデータ列にしたデータ列b1を算出し、重み付き加算部200−3に出力する。
図9は、実施の形態1にかかる重み付き加算部200−3が入出力するデータを示す第3の図である。重み付き加算部200−3が入力されるデータ列の数は、重み付き加算部200−1が入力されるデータ列の数と同じ2である。データ列b0の疑似乱数に変換前の値は0.3である。データ列b1の疑似乱数に変換前の値は0.5である。重み係数列s2を算出するときに用いる重み係数はそれぞれ、データ列b0の重み係数=0.5、データ列b1の重み係数=0.5である。
図10は、実施の形態1にかかる重み付き加算部200−3が入出力するデータ列を示す第3の図である。重み付き加算部200−3が出力するデータ列b3は、重み付き加算部200−1が出力するデータ列b0を算出する処理と同様であるため、詳細な処理は割愛する。重み付き加算部200−3は、0.4(0.3×0.5+0.5×0.5)を確率的演算で用いるデータ列にしたデータ列b3を算出し、図示しない他の機能部に出力する。このように、積和演算部103は、複数のデータ列が入力される複数の重み付き加算部200をツリー構造で構成することで積和演算を実現することができる。
図11は、実施の形態1にかかる重み付き加算部200へ出力するデータ列を決定する流れを示すフローチャートである。制御部106は、重み付き加算部200に入力されるデータ列の候補を選択する(ステップS1)。ここで、ツリー構造における初段の重み付き加算部200、つまり、重み付き加算部200−1および重み付き加算部200−2に入力されるデータ列の候補の数は、シフトレジスタ102に格納されるデータ列の数Nである。
例えば、図3に示される積和演算部103を例にして説明すると、制御部106は、重み付き加算部200−1に入力させるM=2個のデータ列の候補と、重み付き加算部200−2に入力させるM=3個のデータ列の候補とを選択する。なお、図3では、初段以外の重み付き加算部200である重み付き加算部200−3に入力させるデータ列は、初段の重み付き加算部200−1が出力するデータ列b0、および初段の重み付き加算部200−2が出力するデータ列b1となっているが、ツリーの段数が2より大きいツリー構造である場合、重み付き加算部200−3は、初段以外の重み付き加算部200より前段の重み付き加算部200が出力するデータ列から候補を選択してもよい。言い換えれば、ツリーの段数が3のツリー構造である場合、3段目の重み付き加算部は初段以外の重み付き加算部、つまり2段目の重み付き加算部が出力するデータ列から候補を選択しても良い。また、制御部106が重み付き加算部200に入力させるデータ列の候補を選択するときは、重み付き加算部200に入力させるデータ列の数も変更可能とし、重み付き加算部200に入力させるデータ列の候補と、重み付き加算部200に入力させるデータ列の数を最適化するようにしてもよい。
制御部106は、重み付き加算部200が用いる重み係数を計算する(ステップS2)。重み係数の算出方法は、デジタルフィルタ100の場合は、シフトレジスタ102の各タップに対応するタップ係数h0〜h4を用いて算出することができる。例えば重み付き加算部200−1の重み係数は、非特許文献1に記載の重み係数の算出方法を用いるとデータ列a1の重み係数は、h0/(h0+h2)として算出することができる。
制御部106は、積和演算部103の演算誤差を評価する(ステップS3)。演算誤差の評価方法は、例えば、ステップS2で算出した重み係数を用いることができる。確率的演算は2項分布なのでデータ列のうち1が発生する確率をpとした場合、pの分散はp(1−p)である。このため、p=0.5の場合に分散が最大となる。ここで、重み付き加算部200に入力される重み係数を定数、例えば、0以上1以下の値とすると、重み係数が0.5の場合に最も演算誤差が大きくなる。よって、重み係数をHとすると、制御部106は、H(1−H)が最も小さくなるように、重み付き加算部200に入力させるデータ列を選択する。積和演算部103が複数の重み付き加算部200から構成されている場合は、H(1−H)の最大値が最も小さくなるようなデータ列の候補を選択することで、積和演算全体の演算誤差を最小化することができる。また、制御部106は、重み係数と0、または重み係数と1との差が最も小さくなるように重み付き加算部200に入力されるデータ列を決定してもよい。
制御部106は、ステップS1〜ステップS3を繰り返し実行し、演算誤差が最も小さくなる、重み付き加算部200に入力されるデータ列の候補を決定する(ステップS4)。つまり、制御部106は、複数の第1の重み付き加算部に入力される第1のデータ列を、複数の第1の重み付き加算部および第2の重み付き加算部の演算誤差があらかじめ定められた値よりも小さくなるように選択する。ここで、繰り返し実行する回数は、データ列の組み合わせを全探索するまでの回数であってもよいし、任意の最適化アルゴリズムを用いて準最適解を導き出せるまでの回数としてもよい。
以上説明したように、本実施の形態にかかるデジタルフィルタ100は、確率的演算で積和演算する過程において、重み付き加算部200に入力させるデータ列を選択し、積和演算の演算誤差が最小となるように重み付き加算部200に入力させるデータ列を決定することとした。デジタルフィルタ100が行う演算の演算誤差を最小とし、演算精度を向上させることで、デジタルフィルタ100を搭載した人工衛星と通信する端末に誤ったデータを送信することを抑制でき、端末はデータの再送の要求を抑制できるため、人工衛星の通信性能を向上することができる。また、放射線耐性の低い民生FPGAを宇宙用途で利用することを可能にし、民生FPGAを備える送信器、民生FPGAを備える中継器、およびこれらを搭載した人工衛星の通信性能を向上することができる。なお、本実施の形態ではデジタルフィルタを例にして演算回路の説明をしたが、本実施の形態で説明した演算回路は一般的な積分演算や畳み込み演算の用途で用いることができる。例えば、これら演算を行う音声処理や画像処理、機械学習などに対して本実施の形態で示した演算回路を適用することにより、回路簡素化に伴う装置の低消費電力化やソフトエラー耐性の向上といった効果を得ることができる。
実施の形態2.
実施の形態1では、確率的演算でデジタルフィルタを構成する際に、積和演算を構成する重み付き加算部への入力を演算誤差が最小になるように選択することで、デジタルフィルタの演算精度を向上する手法を明らかにした。しかし、実施の形態1で示したデジタルフィルタは設計段階で重み付き加算部の入力を一意に決定するものであった。本実施の形態では、設計段階に限らず、FPGA等のデバイスに演算回路を実装した後でも実施の形態1と同等の機能を実現する手法を提供する。
図12は、実施の形態2にかかるデジタルフィルタの構成を示す図である。デジタルフィルタ100aは、データ変換部101と、シフトレジスタ102aと、積和演算部103aと、係数保持部104と、係数変換部105と、制御部106aを備える。なお、実施の形態1と同一の機能を有する構成要素は、実施の形態1と同一の符号を付して重複する説明を省略する。シフトレジスタ102aは、タップを6つ備える。
図13は、実施の形態2にかかる積和演算部103aの構成を示す図である。積和演算部103aは、重み付き加算部200−1〜200−5と、第1のスイッチ400と、第2のスイッチ401とを備える。なお、重み付き加算部200−1〜200−5は実施の形態1の重み付き加算部200と同じ機能を有する。積和演算部103と積和演算部103aとの相違点は、重み付き加算部200に入力されるデータ列を、第1のスイッチ400および第2のスイッチ401を用いることで切り替え可能としたことである。制御部106aは、制御部106の機能に加え、第1のスイッチ400および第2のスイッチ401の切り替えの制御を行う。
図14は、実施の形態2にかかる重み付き加算部200へ出力するデータ列を決定する流れを示すフローチャートである。図14において、ステップS1からステップS4までは、図11と同じである。制御部106aは、データ列が決定した重み付き加算部200へ入力されるように第1のスイッチ400および第2のスイッチ402の接続を切り替える(ステップS5)。
なお、制御部106aが行う演算誤差評価について、実施の形態1では、制御部106は、重み係数の値を用いて演算誤差を評価していたが、本実施の形態ではこれに限らず、制御部106aが、積和演算部103aに入力されるテストデータと、確率的演算を用いない積和演算である2進数演算の場合の期待値とを生成し、テストデータを積和演算部103aに入力させたときの出力outと、期待値との差を演算誤差として用いてもよい。テストデータは、データ変換部101に入力されるデータに含まれる。また、制御部106aは、出力outと、期待値との差を用いて、演算誤差が最小になるようにスイッチを制御してもよい。言い換えれば、スイッチの切り替えは、重み付き加算部200の出力の結果に応じて制御されてもよい。
以上説明したように、本実施の形態では、デジタルフィルタ100aは、積和演算を構成する重み付き加算部の入力に第1のスイッチ400および第2のスイッチ401を追加し、回路を実装した後でも演算誤差が最小になるような入力データ列を決定することとした。これにより、例えば、デジタルフィルタ100aのタップ係数を運用中に変更した場合においても演算誤差を再評価し、最小化することができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1 送信器、2 データ生成部、3 送信部、4 アンテナ、100,100a デジタルフィルタ、101 データ変換部、102,102a シフトレジスタ、103,103a 積和演算部、104 係数保持部、105 係数変換部、106,106a 制御部、200,200−1〜200−5 重み付き加算部、300 制御回路、300a プロセッサ、300b メモリ、400 第1のスイッチ、401 第2のスイッチ。

Claims (14)

  1. データを疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記データの値を示す第1のデータ列に変換するデータ変換部と、
    複数の前記第1のデータ列のそれぞれに重み付けされる値である重み係数を保持する係数保持部と、
    前記重み係数を疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記重み係数を示す重み係数列に変換する係数変換部と、
    複数の前記第1のデータ列と複数の前記重み係数列とを用いて、複数の前記第1のデータ列に重みを付けて加算した第2のデータ列を生成する複数の第1の重み付き加算部と、
    複数の前記第2のデータ列と前記重み係数列とを用いて複数の前記第2のデータ列に重みを付けて加算した第3のデータ列を生成する1つ以上の第2の重み付き加算部と、
    前記複数の第1の重み付き加算部に入力される前記第1のデータ列を、前記複数の第1の重み付き加算部および前記第2の重み付き加算部の演算誤差があらかじめ定められた値よりも小さくなるように選択する制御部と、
    を備えることを特徴とする演算回路。
  2. 前記複数の第1の重み付き加算部に入力される前記第1のデータ列の数は、
    前記複数の第1の重み付き加算部それぞれで異なることを特徴とする請求項1に記載の演算回路。
  3. 前記重み係数は、
    0以上1以下の値であり、
    前記制御部は、
    1から前記重み係数を減算した値と前記重み係数との積の最大値を最も小さくすることで前記演算誤差を小さくすることを特徴とする請求項1または2に記載の演算回路。
  4. 前記重み係数は、
    0以上1以下の値であり、
    前記制御部は、
    前記重み係数と0の差を最も小さくすることで前記演算誤差を小さくすることを特徴とする請求項1または2に記載の演算回路。
  5. 前記重み係数は、
    前記第1のデータ列が前記第2のデータ列に含まれる割合を示し、
    前記重み係数列は、
    前記第1の重み付き加算部に入力される前記第1のデータ列の数に応じた値で表現されることを特徴とする請求項1または2に記載の演算回路。
  6. テストデータは、
    前記データに含まれ、
    前記演算誤差は、
    確率的演算を用いて積和演算した前記テストデータの結果と確率的演算を用いずに積和演算した前記テストデータの結果との差であることを特徴とする請求項1から5のいずれか1つに記載の演算回路。
  7. 前記複数の第1の重み付き加算部に入力される前記第1のデータ列を切り替えるスイッチを備え、
    前記制御部は、前記スイッチの切り替えの制御を行うことを特徴とする請求項1から6のいずれか1つに記載の演算回路。
  8. 前記切り替えは、
    前記第1の重み付き加算部の出力の結果に応じて制御されることを特徴とする請求項7に記載の演算回路。
  9. 請求項1から8のいずれか1つに記載の演算回路を備え、
    タップ係数を用いて前記演算回路が用いる重み係数を算出することを特徴とするデジタルフィルタ。
  10. 請求項1から8のいずれか1つに記載の演算回路を備えることを特徴とする送信器。
  11. 請求項1から8のいずれか1つに記載の演算回路を備えることを特徴とする中継器。
  12. 請求項1から8のいずれか1つに記載の演算回路を備えることを特徴とする人工衛星。
  13. 演算回路が、入力されたデータに対して実行する演算方法であって、
    前記データを疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記データの値を示す第1のデータ列に変換する第1のステップと、
    複数の前記第1のデータ列のそれぞれに重み付けされる値である重み係数を保持する第2のステップと、
    前記重み係数を疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記重み係数を示す重み係数列に変換する第3のステップと、
    複数の前記第1のデータ列と複数の前記重み係数列とを用いて、複数の前記第1のデータ列に重みを付けて加算した第2のデータ列を生成する複数の第4のステップと、
    複数の前記第2のデータ列と前記重み係数列とを用いて複数の前記第2のデータ列に重みを付けて加算した第3のデータ列を生成する1つ以上の第5のステップと、
    前記複数の第4のステップで入力される前記第1のデータ列を、前記複数の第4のステップおよび前記第5のステップでの演算誤差があらかじめ定められた値よりも小さくなるように選択する第6のステップと、
    を含むことを特徴とする演算方法。
  14. 演算回路を制御するためのプログラムであって、
    データを疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記データの値を示す第1のデータ列に変換する第1のステップと、
    複数の前記第1のデータ列のそれぞれに重み付けされる値である重み係数を保持する第2のステップと、
    前記重み係数を疑似乱数列であり、該疑似乱数列に含まれるビットのうち値が1のビットの割合が前記重み係数を示す重み係数列に変換する第3のステップと、
    複数の前記第1のデータ列と複数の前記重み係数列とを用いて、複数の前記第1のデータ列に重みを付けて加算した第2のデータ列を生成する複数の第4のステップと、
    複数の前記第2のデータ列と前記重み係数列とを用いて複数の前記第2のデータ列に重みを付けて加算した第3のデータ列を生成する1つ以上の第5のステップと、
    前記複数の第4のステップで入力される前記第1のデータ列を、前記複数の第4のステップおよび前記第5のステップでの演算誤差があらかじめ定められた値よりも小さくなるように選択する第6のステップと、
    を前記演算回路に実行させることを特徴とするプログラム。
JP2021503267A 2019-03-01 2019-03-01 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム Active JP6949268B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/008194 WO2020178917A1 (ja) 2019-03-01 2019-03-01 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、および演算方法

Publications (2)

Publication Number Publication Date
JPWO2020178917A1 JPWO2020178917A1 (ja) 2021-09-13
JP6949268B2 true JP6949268B2 (ja) 2021-10-13

Family

ID=72337710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021503267A Active JP6949268B2 (ja) 2019-03-01 2019-03-01 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム

Country Status (5)

Country Link
US (1) US20210349688A1 (ja)
EP (1) EP3920053B1 (ja)
JP (1) JP6949268B2 (ja)
CA (1) CA3132692A1 (ja)
WO (1) WO2020178917A1 (ja)

Also Published As

Publication number Publication date
CA3132692A1 (en) 2020-09-10
EP3920053B1 (en) 2023-03-22
WO2020178917A1 (ja) 2020-09-10
EP3920053A4 (en) 2022-01-12
US20210349688A1 (en) 2021-11-11
JPWO2020178917A1 (ja) 2021-09-13
EP3920053A1 (en) 2021-12-08

Similar Documents

Publication Publication Date Title
JP5700041B2 (ja) 符号化装置、誤り訂正符号構成方法およびそのプログラム
Pang et al. An efficient hybrid engine to perform range analysis and allocate integer bit-widths for arithmetic circuits
US9866778B2 (en) Predictive sigma-delta ADC filter for power consumption
JP6949268B2 (ja) 演算回路、デジタルフィルタ、送信器、中継器、人工衛星、演算方法、およびプログラム
EP2827516B1 (en) Scrambling code generation method, apparatus and scrambling code processing apparatus
EP3843272A1 (en) Digital-to-analog converter, transmitter, base station and mobile device
JP2015135621A (ja) 演算装置、演算方法および無線通信装置
US7830949B2 (en) Cross correlation circuits and methods
KR100302847B1 (ko) 유한필드에서의긴다항식제산장치
CN100459438C (zh) 里德所罗门解码器的关键方程与错误值求解优化电路
JP6591780B2 (ja) データ加重平均化回路、インクリメンタルデルタシグマad変換器、及びデータ加重平均化方法
WO2020190340A1 (en) Successive approximation analog to digital converter
WO2022168161A1 (ja) 演算回路、通信装置、制御回路、記憶媒体および演算方法
Rangisetti et al. Area-efficient and power-efficient binary to BCD converters
CN111934712B (zh) 基于动态重构的m序列跳频码结构还原方法
James et al. Design of multiplier-less continuously variable bandwidth sharp FIR filters using modified gravitational search algorithm
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
CN117435855B (zh) 用于进行卷积运算的方法、电子设备和存储介质
RU107613U1 (ru) Устройство для приема дискретных сигналов
Suprun Single-level schematic realization of basic operations of modular arithmetic in unitary codes
Wang From Stochastic to Unary Computation–Filter Applications
US20070239811A1 (en) Multiplication by one from a set of constants using simple circuitry
EP3147795B1 (en) Information processing device, information processing method, and program
TW202347120A (zh) 位元串列運算裝置與測試方法
JPS63157525A (ja) 消失位置多項式生成回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210302

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210302

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210921

R150 Certificate of patent or registration of utility model

Ref document number: 6949268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150