JP2012022500A - Fft演算装置 - Google Patents

Fft演算装置 Download PDF

Info

Publication number
JP2012022500A
JP2012022500A JP2010159608A JP2010159608A JP2012022500A JP 2012022500 A JP2012022500 A JP 2012022500A JP 2010159608 A JP2010159608 A JP 2010159608A JP 2010159608 A JP2010159608 A JP 2010159608A JP 2012022500 A JP2012022500 A JP 2012022500A
Authority
JP
Japan
Prior art keywords
data
point
points
butterfly
input data
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.)
Granted
Application number
JP2010159608A
Other languages
English (en)
Other versions
JP5549442B2 (ja
Inventor
Osamu Toyama
治 遠山
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
Priority to JP2010159608A priority Critical patent/JP5549442B2/ja
Publication of JP2012022500A publication Critical patent/JP2012022500A/ja
Application granted granted Critical
Publication of JP5549442B2 publication Critical patent/JP5549442B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】 N点の連続する入力に対して少ないメモリ量でFFT演算する。
【解決手段】 この発明に係るFFT演算装置は、N点の入力データの前半のデータ、N点の中間データがN点の出力データとなるまで、N点の中間データに対して生成されるN点の中間データを繰り返し記憶するデータ記憶部と、N点の入力データの前半と後半のデータに対してN点FFT演算のバタフライ演算を実行してN点の中間データを生成する基数2のバタフライ演算器と、回転因子係数を記憶する回転因子記憶部と、回転因子係数に基づく基数Kのバタフライ演算を実行して、N点の中間データを生成する基数Kのバタフライ演算器と、N点FFT演算処理済みのN点の入力データに対するN点の出力データを出力する処理サイクルおよびN点FFT演算処理中のN点の入力データの前半と後半のデータに対するN点の中間データを生成する処理サイクルを同時に実行させる制御部を備えた。
【選択図】 図1

Description

この発明は、FFT演算を行うFFT演算装置に関するものである。
従来、フーリエ級数の解を求める一手法として、高速フーリエ変換(以下、FFTという。Fast Fourier Transform)が提案されている。この高速フーリエ変換を実行するFFT演算装置では、バタフライ演算器を核とし、メモリから読み出した2個のデータを入力データ対としてバタフライ演算を施し、2個の出力データを得、この2個の出力データを演算前に格納されていたメモリに戻し、戻された2個のデータをメモリから読み出してバタフライ演算を施すというパイプライン処理を繰り返す(例えば、特許文献1)。すなわち、メモリから2個のデータを入力データ対として読み出し、パイプライン構成によるバタフライ演算を施して、高速フーリエ変換を行う。
この特許文献1には、N=2個のデータにFFTを行う際、2m−1=(N/2)個分のデータをそれぞれ格納可能な1ポートメモリで構成された第1のメモリ,第2のメモリ、第1の入力バッファ、第2の入力バッファ、第1の出力バッファおよび第2の出力バッファを用意し、これら6個の1ポートメモリを1個のデータを読み出すと同時に1個のデータを書き込むように前半と後半とに分けて動作させ、かつ第1および第2のメモリの動作スピードをバタフライ演算器の2倍とし、第1および第2の入力バッファからデータを1個ずつ読み出してバタフライ演算器に入力し、このバタフライ演算器からの演算結果である2個のデータを1個ずつ第1および第2のメモリに書き込み、再度バタフライ演算を行うデータを第1および第2のメモリから1個ずつ読み出してバタフライ演算器に入力するという動作を繰り返し、最終的なバタフライ演算の結果として2個ずつ出力するデータを1個ずつ第1および第2の出力バッファに書き込むFFT演算装置が開示されている。
特開平9−305573
従来のFFT演算装置では、アドレス領域を(N/2)個持つメモリが合計6個、すなわちデータを記憶するためのメモリ領域として3N個分のアドレス領域が必要であり、Nが大きくなるとその3倍のオーダでメモリ規模が増大するという問題がある。
また、入力バッファを1ポートのメモリで構成するため、入力バッファが空にならないと次の入力が行えず、N点のFFTデータが連続、例えば4連続であれば4N点の連続して入力される場合に待ち時間が必要となるため、時間当たりの処理性能が半分となってしまう問題があった。
この発明は、上記のような課題を解決するためになされたもので、N点の連続する入力に対しても少ないメモリ量でFFT演算するFFT演算装置を得ることを目的とする。
この発明に係るFFT演算装置は、N点の入力データの前半のデータを記憶し、この記憶したN点の入力データの前半のデータと前記N点の入力データの後半のデータに対して生成されたN点の中間データを記憶し、この記憶したN点の中間データがN点の出力データではないとき、前記N点の出力データが生成されるまで、前記N点の中間データに対して生成されるN点の中間データを繰り返し記憶するNワードのデータ記憶部と、このデータ記憶部が記憶したN点の入力データの前半のデータと前記N点の入力データの後半のデータに対してN点FFT(Fast Fourier Transform)演算のバタフライ演算を実行して前記N点の中間データを生成する基数2のバタフライ演算器と、処理数Kのバタフライ演算に対する回転因子係数を記憶する回転因子記憶部と、この回転因子記憶部が記憶する回転因子係数に基づいて、前記データ記憶部が記憶したN点の中間データに対して前記N点FFT演算の処理数Kのバタフライ演算を実行して前記N点の中間データまたは前記N点の出力データを生成して前記データ記憶部に出力する処理数Kのバタフライ演算器と、前記データ記憶部の書き込みおよび読み出しを制御し、前記N点FFT演算処理済みのN点の入力データに対するN点の出力データを前記データ記憶部から読み出して出力する処理サイクルおよび前記N点FFT演算処理中のN点の入力データの前半のデータと後半のデータに対して前記基数2のバタフライ演算器により前記N点の中間データを生成して前記データ記憶部に書き込む処理サイクルを同時に実行させる制御部とを備えた。
この発明に係るFFT演算装置によれば、N点の連続する入力に対しても少ないメモリ量でFFT演算することができる。
この発明の実施の形態1に係るFFT演算装置の一例を示すブロック構成図である。 この発明の実施の形態1に係るFFT演算装置における8ワードRAMの一例を示す詳細ブロック構成図である。 この発明の実施の形態1に係るFFT演算装置における基数2のバタフライ演算の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置における8ワードRAMのアドレス設定の一例を示す詳細ブロック構成図である。 この発明の実施の形態1に係るFFT演算装置の第0から第3サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第0から第3サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第4から第7サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第4から第7サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第8から第11サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第8から第11サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第12から第15サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第12から第15サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第16から第19サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第16から第19サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第20から第23サイクルのデータの流れの一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の第20から第23サイクルの8ワードRAMの更新推移の一例を示す説明図である。 この発明の実施の形態1に係るFFT演算装置の8ワードRAMのデータ蓄積の入出力推移の一例を示す説明図である。 この発明の実施の形態1に係る基数Kのバタフライ演算を適用したFFT演算装置の一例を示すブロック構成図である。
この発明のFFT演算装置は、対象データ数NとするN点FFT演算においてバタフライ演算を適用して行うものである。FFT演算で実行するバタフライ演算は、N点入力データからN点の中間データを生成するまでを基数2のバタフライ演算、残るN点の中間データからNの出力データを生成するまでを処理数Kのバタフライ演算を適用する。ここで、処理数Kのバタフライ演算とは、任意基数のバタフライ演算器を任意個並列に並べ、一度に処理できるバタフライ演算処理点数をKとしたバタフライ演算である。例えば、処理数4のバタフライ演算は、基数2のバタフライ演算器の2並列で実行可能である。
以下の実施の形態では、説明および図を簡単化するために、FFT演算の対象データ数NをN=8とし、またデータ記憶部であるNワードRAMに書き込む入力ポート数、読み出す出力ポート数および処理数Kのバタフライ演算器のKはいずれもK=2として説明する。
実施の形態1.
図1は、この発明の実施の形態1に係るFFT演算装置の一例を示すブロック構成図(N=8、K=2)である。図において、データ記憶部1−1、1−2は、2のべき乗値で表される8点の入力データ(I0〜I7)の前半のデータ(I0〜I3)を記憶し、この記憶した8点の入力データの前半のデータと8点の入力データの後半のデータ(I4〜I7)に対して生成された8点の中間データ(T0〜T7)を記憶し、この記憶した8点の中間データ(T0〜T7)に対して生成される8点の中間データ(Ta〜Th)を記憶し、この記憶した8点の中間データ(Ta〜Th)に対して生成される8点の出力データ(F0〜F7)を記憶する8ワードRAMである。基数2のバタフライ演算器2は、データ記憶部1−1または1−2が記憶した8点の入力データの前半のデータ(I0〜I3)と8点の入力データの後半のデータ(I4〜I7)に対して8点FFT演算のバタフライ演算を実行して8点の中間データ(T0〜T7)を生成してデータ記憶部1−1または1−2に出力する。回転因子記憶部3は、処理数Kのバタフライ演算に対する回転因子係数(W0〜W3)を記憶するROMである。処理数Kのバタフライ演算器4は、回転因子記憶部3が記憶する回転因子係数に基づいて、8点FFT演算の処理数Kのバタフライ演算を実行して、データ記憶部1−1または1−2が記憶した8点の中間データ(T0〜T7)に対する8点の中間データ(Ta〜Th)、8点の中間データ(Ta〜Th)に対する8点の出力データ(F0〜F7)を生成してデータ記憶部1−1または1−2に出力する。制御部5は、データ記憶部1−1および1−2の書き込みおよび読み出しを制御し、N点FFT演算処理済みの8点の入力データに対する8点の出力データ(F0〜F7)をデータ記憶部1−1または1−2から読み出して出力する処理サイクル、および、N点FFT演算処理中の8点の入力データの前半の入力データ(I0〜I3)をデータ記憶部1−1または1−2に記憶させ、この記憶させたN点FFT演算処理中の8点の入力データの前半の入力データ(I0〜I3)とN点FFT演算処理中の8点の入力データの後半のデータ(I4〜I7)に対して基数2のバタフライ演算器2により8点の中間データ(T0〜T7)を生成してデータ記憶部1−1または1−2に書き込む処理サイクルを同時に実行させる。
また、セレクタ11は、8点の入力データの前半の入力データ(I0〜I3)と空データ“0”の対と、基数2のバタフライ演算器2が出力する2データの対のいずれか一方を選択し、セレクタ12およびセレクタ13へ出力する。セレクタ12およびセレクタ13は、セレクタ11の出力するデータの対と、処理数Kのバタフライ演算器4の出力するデータ対のいずれかを選択し、データ記憶部1−1または1−2に出力する。セレクタ14は、データ記憶部1−1または1−2の出力データのうちいずれか一方を選択して、基数2のバタフライ演算器2へ出力する。セレクタ15は、データ記憶部1−1または1−2が出力するデータ対のいずれか一方を選択して、処理数Kのバタフライ演算器4へ出力する。セレクタ16は、データ記憶部1−1または1−2の出力データのうちいずれか一方を選択して、FFT演算結果として出力する。制御部5がこれらのセレクタ11からセレクタ16を設定することによって、FFT演算の過程のデータをデータ記憶部1−1、1−2に書き込んで記憶させ、また読み出し、出力する経路を制御する。
また、制御部5は、これらのセレクタ11からセレクタ16を適宜制御して、入力されるN点の入力データごとに2つのデータ記憶部1−1、1−2を切り替えて、一方のデータ記憶部に、N点FFT演算処理済みのN点の入力データに対するN点の出力データを読み出して出力させると同時に、N点FFT演算処理中のN点の入力データの前半のデータと後半のデータに対して基数2のバタフライ演算器2によりN点の中間データを生成して書き込む処理サイクル中に、他方のデータ記憶部に、N点FFT演算処理中のN点の入力データとN点FFT演算処理済みのN点の入力データの間に入力されたN点の入力データに対するN点の中間データに対して処理数Kのバタフライ演算器によりN点の出力データを生成する処理サイクルを行わせる。
また、図2は、この発明の実施の形態1に係るFFT演算装置におけるデータ記憶部である8ワードRAM1の一例を示す詳細ブロック構成図である(N=8、K=2)。図において、ライトアドレスデコーダ21は、制御部のライト命令に基づいて、2個のライトデータの出力ポートを指定するセレクト信号と、この2個のライトデータを書き込むライトアドレスを生成する。ライトデータセレクタ22は、2個のライトデータをライトアドレスデコーダ21が生成したセレクト信号に基づいて指定される出力ポートに振り分けて出力する。リードアドレスデコーダ23は、制御部のリード命令に基づいて、2個のリードデータを読み出すリードアドレスと、このリードアドレスに基づいて読み出された2個のリードデータの出力ポートを指定するセレクト信号を生成する。4ワードRAM24a、24bは、各4ワード1リード/1ライトの2ポートRAMとして、リードアドレスデコーダ23が生成したリードアドレスからリードデータを読み出して出力するとともに、ライトデータセレクタ22が振り分けたライトデータをライトアドレスデコーダ21が生成したライトアドレスに書き込む。リードデータセレクタ25は、リードアドレスデコーダ23が生成したリードアドレスに基づいて4ワードRAM24a、24bから読み出された2個のリードデータを、リードアドレスデコーダ24が生成したセレクト信号に基づいて指定される出力ポートに振り分けて出力する。
ここでは、N=8、K=2として説明したが、一般的には、データ記憶部であるNワードRAM1(1−1、1−2)は、K個の(N/K)ワードの1リード/1ライトの2ポートRAM((N/K)ワードRAM)によってNワードのKリード/Kライトの2KポートRAMとして構成することができる。
図3は、この発明の実施の形態1に係るFFT演算装置における基数2バタフライ演算の一例を示す説明図である。図において、入力データI0〜I7から時間間引きアルゴリズムに従ったバタフライ演算により出力データF0〜F7が得られる。図3に示すようにバタフライ演算の結果を同じアドレスに書き戻す処理(in-place計算)を行うと、得られるFFT演算結果は、格納されるアドレスに対してビット逆順に並ぶ。従って、FFT演算結果を自然な並び順(ビット正順)で得たい場合、図3左、または右に示すように、出力データをビット逆順で読み出すか、入力データをビット逆順で書き込むことで、入力データまたは出力データの並べ替え処理を行うためのメモリ領域を不要とする。
ここで、入力データI0〜I3は、そのまま入力され、入力データI4〜I7は、入力と同時に入力データI0〜I3を1つずつ参照し、2つの入力データから演算した中間データT0〜T7(第1の中間データ)を得る。また、中間データT0〜T7を2つずつ参照して演算し、中間データTa〜Th(第2の中間データ)を得る。さらに、中間データTa〜Thを2つずつ参照して演算し、出力データF0〜F7が得られる。図中、W0〜W3は、回転因子係数である。
ここで、中間データT0〜T7を得る初段(第1段)のバタフライ演算は、基数2のバタフライ演算器2が実行する。また、中間データTa〜Thを得る第2段、出力データF0〜F7を得る第3段のバタフライ演算は、処理数Kのバタフライ演算器4が実行する。
このように、in-place計算によるデータの並び替わりを考慮して、制御部5は、入力される8点の入力データごとに、ビット正順のアドレスの記憶領域に8点の入力データを記憶して処理数Kのバタフライ演算器4が実行した処理数Kのバタフライ演算でビット逆順のアドレスの記憶領域に並び替わって記憶された8点の出力データを8点の入力データの入力順に並び替えて読み出す処理と、ビット逆順のアドレスの記憶領域に8点の入力データを並び替えて記憶して処理数Kのバタフライ演算器4が実行した処理数Kのバタフライ演算でビット正順のアドレスの記憶領域に並び替わって記憶された8点の出力データを8点の入力データの入力順に読み出す処理を交互に繰り返す事で、入力データまたは出力データの並べ替えのためのメモリ領域を設けなくても、in-place計算を実行することができる。
図4は、この発明の実施の形態1に係るFFT演算装置における8ワードRAM(NワードRAM)のアドレス設定の一例を示す詳細ブロック構成図である。図において、8ワードRAMから読み出されるリードデータの読み出しアドレスまたは8ワードRAMに書き込まれるライトデータの書き込みアドレスは、それぞれ0〜7(0〜(N−1))で与えられると、上段の4ワードRAM23aおよび下段の4ワードRAM23b((N/K)ワードRAM)に振り分けられ、RAMアドレスが指定される。例えば、この表では0〜7の8アドレスを示す3桁の2進アドレスでビット“1”が奇数個であれば下段とし、それ以外は上段とし、また3桁の2進アドレスの上位2桁をRAMアドレスとして解釈してもよい。このような8ワードRAMのアドレス設定によれば、図3で説明したようなバタフライ演算の過程でアドレスが衝突することなく同時参照できる。図2で説明したライト命令とリード命令には、それぞれの書き込むまたは読み込むデータ数に応じたデータのアドレスが含まれる。なお、上段の4ワードRAM23aおよび下段の4ワードRAM23bの上下段の解釈は、逆にしてもよいことはいうまでもない。
次に、この発明の実施の形態1に係るFFT演算装置において、N点FFT演算処理する場合の入力データ、中間データ、出力データの流れと、FFT演算データの更新過程について説明する。なお、実施の形態1はパイプライン処理を想定し、1サイクルに1つの入力データがビット正順で入力され、入力が完了してからNサイクル後にFFT演算結果がビット正順で1サイクル1データ出力される。またN点のFFT入力データは連続で入力され、処理数Kのバタフライ演算器は1サイクルで処理を完了できる場合を想定する。データ記憶部である2つのNワードRAMのデータ更新の過程については、一方のNワードRAMのデータ更新の過程をNサイクルずらした処理として説明でき、入力データN点ごとに2つのNワードRAMが交互にNサイクルで処理する。以下、図を示しながら、データの流れと、NワードRAM1−1のN点FFT演算データの推移について説明する(N=8、K=2)。
(1)第0から第3サイクルの演算データの推移
図5は、この発明の実施の形態1に係るFFT演算装置の第0から第3サイクルのデータの流れの一例を示す説明図である。この第0から第3サイクルという期間は、N点FFT演算の第0から第(N/2−1)サイクルの期間を指す。図において、入力データI0〜I3は、セレクタ11、セレクタ12を経由して、8ワードRAM1−1のアドレス0〜3に記憶される。
図6は、この発明の実施の形態1に係るFFT演算装置の第0から第3サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、8ワードRAM1−1のアドレス0〜3に記憶される入力データI0〜I3は、丸で囲んだサイクルで書き込まれる。
(2)第4から第7サイクルの演算データの推移
図7は、この発明の実施の形態1に係るFFT演算装置の第4から第7サイクルのデータの流れの一例を示す説明図である。この第4から第7サイクルという期間は、N点FFT演算の第(N/2)から第(N−1)サイクルの期間を指す。図において、入力データI4〜I7は、基数2のバタフライ演算器2に入力されるとバタフライ演算されて中間データT4〜T7として、セレクタ11、セレクタ12を経由して、8ワードRAM1−1のアドレス4〜7に記憶される。このとき、すでに8ワードRAM1−1のアドレス0〜3に記憶された入力データI0からI3が、セレクタ14を経由して、入力データI4〜I7とともに基数2のバタフライ演算器2に入力されるとバタフライ演算されて中間データT0〜T3として、中間データT4〜T7と対にされて、セレクタ11、セレクタ12を経由して、8ワードRAM1−1のアドレス0〜3に上書きされて、記憶される。
図8は、この発明の実施の形態1に係るFFT演算装置の第4から第7サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、8ワードRAM1−1のアドレス0〜7に記憶される中間データT0〜T7は、T0とT4、T1とT5、T2とT6、T3とT7が対にされ、丸で囲んだサイクルで書き込まれ、入力データI0〜I3は順次上書きされて、この(N/2)サイクル終了時に、中間データT0〜T7が出揃う。
(3)第8から第11サイクルの演算データの推移
図9は、この発明の実施の形態1に係るFFT演算装置の第8から第11サイクルのデータの流れの一例を示す説明図である。この第8から第11サイクルという期間は、N点FFT演算の第Nから第(3N/2−1)サイクルの期間を指す。図において、この間の(N/2)サイクルで、すでに8ワードRAM1−1のアドレス0〜7に記憶された中間データT0〜T7は、セレクタ15を経由して、処理数Kのバタフライ演算器4に入力されるとバタフライ演算されて中間データTa〜Thとして、セレクタ12を経由して、8ワードRAM1−1のアドレス0〜7に順次上書きされて、記憶される。
この(N/2)サイクル期間に、8ワードRAM1−1で処理中の8点の入力データの次の8点の入力データのうち、前半(N/2)点の入力データI0〜I3が、8ワードRAM1−2において、図5で説明した8ワードRAM1−1に対する処理と同様に処理される。
図10は、この発明の実施の形態1に係るFFT演算装置の第8から第11サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、この間の(N/2)サイクルで、8ワードRAM1−1のアドレス0〜7に記憶される中間データTa〜Thは、TaとTc、TbとTd、TeとTg、TfとThが対にされ、丸で囲んだサイクルで書き込まれ、中間データT0〜T7は順次上書きされて、この(N/2)サイクル終了時に、中間データTa〜Thが出揃う。なお、この(N/2)サイクル内のデータの演算処理順序は、直前の(N/2)サイクルで出揃ってから参照される中間データT0〜T7で対となる中間データの単位で入れ替えてもよい。
(4)第12から第15サイクルの演算データの推移
図11は、この発明の実施の形態1に係るFFT演算装置の第12から第15サイクルのデータの流れの一例を示す説明図である。この第12から第15サイクルという期間は、N点FFT演算の第(3N/2)から第(2N−1)サイクルの期間を指す。図において、この間の(N/2)サイクルで、すでに8ワードRAM1−1のアドレス0〜7に記憶された中間データTa〜Thは、セレクタ15を経由して、処理数Kのバタフライ演算器4に入力されるとバタフライ演算されて出力データF0〜F7として、セレクタ12を経由して、8ワードRAM1−1のアドレス0〜7に順次上書きされて、記憶される。
この(N/2)サイクル期間に、8ワードRAM1−1で処理中の8点の入力データの次の8点の入力データのうち、後半(N/2)点の入力データI4〜I7が、8ワードRAM1−2において、図7で説明した8ワードRAM1−1に対する処理と同様に処理される。
図12は、この発明の実施の形態1に係るFFT演算装置の第12から第15サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、この間の(N/2)サイクルで、8ワードRAM1−1のアドレス0〜7に記憶される中間データF0〜F7は、F0とF4、F2とF6、F1とF5、F3とF7が対にされ、丸で囲んだサイクルで書き込まれ、中間データTa〜Thは順次上書きされて、この(N/2)サイクル終了時に、出力データF0〜F7が出揃う。なお、この各(N/2)サイクル内のデータの演算処理順序は、直前の(N/2)サイクルで出揃ってから参照される中間データTa〜Thで対となる中間データの単位で入れ替えてもよい。
(5)第16から第19サイクルの演算データの推移
図13は、この発明の実施の形態1に係るFFT演算装置の第16から第19サイクルのデータの流れの一例を示す説明図である。この第16から第19サイクルという期間は、N点FFT演算の第2Nから第(5N/2−1)サイクルの期間を指す。図において、8ワードRAM1−1のアドレス0,4,2,6(ビット逆順)から読み出された出力データF0〜F3は、セレクタ16を経由して、出力される。次のNサイクルの処理対象として入力されるデータI0〜I3は、セレクタ11、セレクタ12を経由して、出力データF0〜F3の出力直後の8ワードRAM1−1のアドレス0,4,2,6(ビット逆順)に順次上書きされて、記憶される。
この(N/2)サイクル期間に、8ワードRAM1−1で処理中の8点の入力データの直後の8点の入力データに対する中間データT0〜T7が、8ワードRAM1−2において、図9で説明した8ワードRAM1−1に対する処理と同様に処理される。
図14は、この発明の実施の形態1に係るFFT演算装置の第16から第19サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、出力データF0〜F3は、8ワードRAM1−1のアドレス0,4,2,6(ビット逆順)から読み出されて、セレクタ16を経由して、順次出力される。この出力直後に、入力データI0〜I3は、セレクタ11、セレクタ12を経由して、8ワードRAM1−1のアドレス0,4,2,6に順次上書きされて、記憶される。
(6)第20から第23サイクルの演算データの推移
図15は、この発明の実施の形態1に係るFFT演算装置の第20から第23サイクルのデータの流れの一例を示す説明図である。この第20から第23サイクルという期間は、N点FFT演算の第(5N/2)から第(3N−1)サイクルの期間を指す。図において、8ワードRAM1−1のアドレス1,5,3,7(ビット逆順)から読み出された出力データF4〜F7は、出力データF0〜F3と同様にセレクタ16を経由して、出力される。次のNサイクルの処理対象として入力されるデータI4〜I7は、基数2のバタフライ演算器2に入力されるとバタフライ演算されて中間データT4〜T7として、セレクタ11、セレクタ12を経由して、出力データF4〜F7の出力直後の8ワードRAM1−1のアドレス1,5,3,7(ビット逆順)に順次上書きされて、記憶される。このとき、すでに8ワードRAM1−1のアドレス0,4,2,6(ビット逆順)に記憶された入力データI0からI3が、セレクタ14を経由して、入力データI4〜I7とともに基数2のバタフライ演算器2に入力されるとバタフライ演算されて中間データT0〜T3として、中間データT4〜T7と対にされて、セレクタ11、セレクタ12を経由して、8ワードRAM1−1のアドレス0,4,2,6(ビット逆順)に順次上書きされて、記憶される。
この(N/2)サイクル期間に、8ワードRAM1−1で処理中の8点の入力データの直後の8点の入力データに対する中間データTa〜Thが、8ワードRAM1−2において、図11で説明した8ワードRAM1−1に対する処理と同様に処理される。
図16は、この発明の実施の形態1に係るFFT演算装置の第20から第23サイクルの8ワードRAMの更新推移の一例を示す説明図である。図において、出力データF4〜F7は、8ワードRAM1−1のアドレス1,5,3,7(ビット逆順)から読み出されて、セレクタ16を経由して、順次出力される。この出力直後に、入力データI4〜I7は、8ワードRAM1−1のアドレス0〜7に記憶される中間データT0〜T7は、T0とT4、T1とT5、T2とT6、T3とT7が対にされ、丸で囲んだサイクルで書き込まれ、出力データF4〜F7のアドレス1,5,3,7には中間データT4〜T7が、入力データI0〜I3のアドレス0,4,2,6(ビット逆順)には中間データT0〜T3が順次上書きされて、この(N/2)サイクル終了時に、中間データT0〜T7が出揃う。
このように、この発明の実施の形態1に係るFFT演算装置の制御部は、データ記憶部である8ワードRAM1−1、1−2の書き込みおよび読み出しを制御し、処理中の8点の入力データに対する8点の出力データの前半のデータ(F0〜F3)を出力する処理サイクルと次に処理する8点の入力データの前半のデータ(I0〜I3)を記憶する処理サイクル、および処理中の8点の入力データに対する8点の出力データの後半のデータ(F4〜F7)を出力する処理サイクルと8ワードRAMに記憶させた次に処理する8点の入力データの前半の入力データと次に処理する8点の入力データの後半のデータ(I4〜I7)に対して基数2のバタフライ演算器が生成する8点の第1の中間データ(T0〜T7)を記憶する処理サイクルを同時に実行させるように制御する。
また、制御部は、入力される8点の入力データごとに2つのデータ記憶部を切り替えて、一方のデータ記憶部に、記憶された処理済みの8点の入力データに対する8点の出力データ(F0〜F7)を出力させると同時に、処理中の8点の入力データの前半のデータ(I0〜I3)を記憶させ、この処理中の8点の入力データに対して生成された8点の第1の中間データ(T0〜T7)を記憶させる処理サイクル中に、他方のデータ記憶部に、処理中の8点の入力データと処理済みの8点の入力データの間に入力された8点の入力データに対して生成された8点の第2の中間データ(Ta〜Th)を記憶させ、この記憶させた8点の第2の中間データに対して生成された8点の出力データ(F0〜F7)を記憶させるように制御する。
ここで、処理数Kのバタフライ演算器4による第2の中間データと出力データの生成するバタフライ演算は、基数2で説明したために各(N/2)サイクルとして説明していたが、処理数Kでは(N/K)サイクルで終了してしまう。しかし、8ワードRAM1−1、1−2が交互に切り替えられているため、一方の8ワードRAMが処理中のN点の入力データを入力して生成された第1の中間データを記憶するとともに処理済みのN点の入力データに対する出力データの出力を処理が連続して動作させることで、バタフライ演算で生成された第2の中間データと出力データを記憶する他方の8ワードRAMには(N/2−N/K)サイクルの待ち時間が発生しても問題はない。なお、このような待ち時間が発生する場合とは、一般に、全体のパイプラインサイクル数に対して処理数Kのバタフライ演算器4の処理数Kを大きくし過ぎたオーバースペックとなる設定によって、必要以上の処理性能を備えたときに発生する。よって、待ち時間となる処理サイクル数がより小さくなるように、より望ましくは無くなるように、必要最小限の処理性能を満たすことができる処理数Kの値を設定することで、処理数Kのバタフライ演算器4の回路規模を抑えることもできる。
図17は、この発明の実施の形態1に係るFFT演算装置の8ワードRAMのデータ蓄積の入出力推移の一例を示す説明図である。図において、8サイクルで繰り返し入力される入力データI0〜I7を交互に処理する8ワードRAM1−1および8ワードRAM1−2が、入力データI0〜I3、I4〜I7の4サイクルずつの入力期間に入出力するバタフライ演算の過程のデータの推移が示されており、待ち時間が発生することなく8点FFT演算が動作できることが分かる。
なお、この発明の実施の形態1に係るFFT演算装置では、連続データ数N=8として8点FFT演算を行う場合について説明したが、N=8に限らず、N=2個のデータに対して適用可能であることはいうまでもない。
また、この発明の実施の形態1に係るFFT演算装置では、バタフライ演算器の動作速度に対して8ワードRAM11、12がS倍速で読み書きできるRAMで構成できるとき、8ワードRAMの1出力ポートからシリアルアクセスする出力データを切り替えて出力してもよい。すなわち、図15で説明したセレクタ16への出力データF4〜F7の出力と、直前の(N/2)サイクルで記憶した入力データI0〜I3の出力を1サイクル中にRAMの速度に合わせて切り替えることで同一のポートから出力を行っても構わない。
また、この発明の実施の形態1に係るFFT演算装置では、K=2のときの処理数Kのバタフライ演算器4として説明したが、処理数2に限らず、任意のKを設定しても良い。
なお、N点FFT演算のN点の入力データ(I0〜I(N−1))数Nに基づいて、処理数Kのバタフライ演算器4がオーバースペックとならない処理数Kの設定値は、次のような関係を満たす。一般に、入力データ数N=2で表される場合は、初段(第1段)のバタフライ演算を基数2のバタフライ演算器2、また第2段以降第n段(=logN)までのバタフライ演算を処理数Kのバタフライ演算器4が実行してN点の出力データ(F0〜F(N−1))を生成することになる。このとき、2つのNワードRAMを備えたFFT演算装置で、入力データの入力に待ち時間を発生させないためには、一方のNワードRAMのデータに対して初段(第1段)の基数2のバタフライ演算を実行しているNサイクル中に、他方のNワードRAMのデータに対して第2段以降の(n−1)段の基数Kのバタフライ演算の合計処理点数(N×(n−1))を処理しきらなければならないので、N≧N/K×(n−1)となる整数K≧n−1であればよく、例えば2のべき乗で表される整数値Kを設定する。よって、極端なオーバースペックになり過ぎないようにするには、K≧n−1を満たす最小の2のべき乗で表される整数値Kを処理数Kのバタフライ演算器4の処理数として設定すればよい。よって、この発明の実施の形態1に係るFFT演算装置において、図3に示した入力データ数N=8(n=3)の場合、処理数K=2は、この条件を満たす設定であることは明らかである。
図18は、この発明の実施の形態1に係る処理数Kのバタフライ演算を適用したFFT演算装置の一例を示すブロック構成図である。図において、図1に示したブロック構成図からの変更部分を示しており、処理数Kは4のときの各構成ブロック間の結線数で表しているが、NワードRAM1−1、1−2をK個の(N/K)ワード1リード/1ライト(2ポート)RAMで構成して、見かけ上NワードKリード/Kライト(2Kポート)RAMとして動作させ、リードアドレスセレクタ25a、25b、セレクタ15、処理数Kのバタフライ演算器4、セレクタ12、セレクタ13、ライトアドレスセレクタ22a、22bについてもそれぞれK入力/K出力とすることで、処理数Kのバタフライ演算の第2段、第3段に対応するように構成することができる。このとき、セレクタ11からセレクタ12、セレクタ13への入力は各2入力となるので、処理数Kのバタフライ演算器4からK入力されるセレクタ12、セレクタ13の出力は選択的に使用される。なお、NワードRAM1−2の詳細構成は省略したが、NワードRAM1−1と同様とする。また、セレクタ11からセレクタ12、セレクタ13に入力するデータ対と組にして(K−2)個の空データ“0”を入力するものとしたが、セレクタ11の入力において挿入しても構わない。
また、図1に示したブロック構成図では、データ記憶部である8ワードRAMを2つ備えたFFT演算装置について説明したが、より少ないメモリ構成となる8ワードRAM1−2、セレクタ13、セレクタ14、セレクタ15およびセレクタ16を備えないFFT演算装置でもFFT演算が実行できる。このとき、これまで説明した8ワードRAM1−1は図示した8点FFT演算データの推移のように動作し、備えない8ワードRAM1−2が処理していた入力データの入力サイクルは入力の待ち時間となるが、少ないメモリ構成でFFT演算が実行できる。
また、この発明の実施の形態1に係るFFT演算装置では、入出力データの単位をワードで表現したが、ワードに限らず、バイトやダブルワードなどを単位とするデータサイズに対応した構成とすることで同様のFFT演算が実行できることはいうまでもない。
以上のように、この発明の実施の形態1に係るFFT演算装置によれば、N点の連続する入力データに対して少ないメモリ量でFFT演算することができる。
また、この発明の実施の形態1に係るFFT演算装置によれば、データ記憶部に記憶した処理済みのN点の入力データに対するN点の出力データの前半のデータを出力する処理サイクルと処理中のN点の入力データの前半のデータをデータ記憶部に記憶する処理サイクルおよびデータ記憶部に記憶した処理済みのN点の入力データに対するN点の出力データの後半のデータを出力する処理サイクルと、データ記憶部に記憶した処理中のN点の入力データの前半の入力データおよび処理中のN点の入力データの後半のデータに対して基数2のバタフライ演算器が生成するN点の中間データをデータ記憶部に記憶する処理サイクルとを同時に実行させるように制御することで、N点FFT演算に要する処理サイクルを短縮することができる。
また、この発明の実施の形態1に係るFFT演算装置によれば、入力されるN点の入力データごとに2つのデータ記憶部を切り替えて、一方のデータ記憶部に、記憶された処理済みのN点の入力データに対するN点の出力データを出力させると同時に、処理中のN点の入力データの前半のデータを記憶させ、この処理中のN点の入力データの前半と後半のデータに対して生成されたN点の中間データを記憶させる処理サイクル中に、他方のデータ記憶部に、処理中のN点の入力データと処理済みのN点の入力データの間に入力されたN点の入力データに対して生成された処理中のN点の中間データを記憶させ、この記憶させたN点の第2の中間データに対して生成されたN点の出力データを記憶させるように制御することで、2N個のメモリ量で入力データの入力に待ち時間が発生することなくN点FFT演算をNサイクルで実行することができる。
また、この発明の実施の形態1に係るFFT演算装置によれば、入力されるN点の入力データごとに、ビット正順のアドレスの記憶領域にN点の入力データを記憶して処理数Kのバタフライ演算器が実行した処理数Kのバタフライ演算でビット逆順のアドレスの記憶領域に並び替わって記憶されたN点の出力データをN点の入力データの入力順に並び替えて読み出す処理と、ビット逆順のアドレスの記憶領域にN点の入力データを並び替えて記憶して処理数Kのバタフライ演算器が実行した処理数Kのバタフライ演算でビット正順のアドレスの記憶領域に並び替わって記憶されたN点の出力データをN点の入力データの入力順に読み出す処理を交互に行い、Kリード/Kライトのデータ記憶部に入出力を同時実行することで、並べ替えに必要なメモリ領域を必要とせずにFFT演算を実行できる。
1、1−1、1−2 データ記憶部(NワードRAM)
2 基数2のバタフライ演算器
3 回転因子記憶部(回転因子ROM)
4 処理数Kのバタフライ演算器
11、12、13、14、15、16 セレクタ
21 ライトアドレスデコーダ(WAデコーダ)
22 ライトデータセレクタ(WDセレクタ)
23 リードアドレスデコーダ(RAデコーダ)
24a、24b (N/K)ワードRAM
25 リードデータセレクタ(RDセレクタ)

Claims (4)

  1. N点の入力データの前半のデータを記憶し、この記憶したN点の入力データの前半のデータと前記N点の入力データの後半のデータに対して生成されたN点の中間データを記憶し、この記憶したN点の中間データがN点の出力データではないとき、前記N点の出力データが生成されるまで、前記N点の中間データに対して生成されるN点の中間データを繰り返し記憶するNワードのデータ記憶部と、
    このデータ記憶部が記憶したN点の入力データの前半のデータと前記N点の入力データの後半のデータに対してN点FFT(Fast Fourier Transform)演算のバタフライ演算を実行して前記N点の中間データを生成する基数2のバタフライ演算器と、
    処理数Kのバタフライ演算に対する回転因子係数を記憶する回転因子記憶部と、
    この回転因子記憶部が記憶する回転因子係数に基づいて、前記データ記憶部が記憶したN点の中間データに対して前記N点FFT演算の処理数Kのバタフライ演算を実行して前記N点の中間データまたは前記N点の出力データを生成して前記データ記憶部に出力する処理数Kのバタフライ演算器と、
    前記データ記憶部の書き込みおよび読み出しを制御し、前記N点FFT演算処理済みのN点の入力データに対するN点の出力データを前記データ記憶部から読み出して出力する処理サイクルおよび前記N点FFT演算処理中のN点の入力データの前半のデータと後半のデータに対して前記基数2のバタフライ演算器により前記N点の中間データを生成して前記データ記憶部に書き込む処理サイクルを同時に実行させる制御部と
    を備えたFFT演算装置。
  2. 前記データ記憶部を2つ備え、
    前記制御部は、入力されるN点の入力データごとに前記2つのデータ記憶部を切り替えて、
    一方のデータ記憶部に、前記N点FFT演算処理済みのN点の入力データに対するN点の出力データを読み出して出力させると同時に、前記N点FFT演算処理中のN点の入力データの前半のデータと後半のデータに対して前記基数2のバタフライ演算器により前記N点の中間データを生成して書き込む処理サイクル中に、
    他方のデータ記憶部に、前記N点FFT演算処理中のN点の入力データと前記N点FFT演算処理済みのN点の入力データの間に入力された処理中のN点の入力データに対するN点の中間データに対して前記処理数Kのバタフライ演算器によりN点の出力データを生成する処理サイクルを行わせる
    請求項1記載のFFT演算装置。
  3. 前記データ記憶部は、入力されるN点の入力データごとに、
    ビット正順のアドレスの記憶領域にN点の入力データを記憶して前記処理数Kのバタフライ演算器が実行した処理数Kのバタフライ演算でビット逆順のアドレスの記憶領域に並び替わって記憶されたN点の出力データを前記N点の入力データの入力順に並び替えて読み出す処理と、
    ビット逆順のアドレスの記憶領域にN点の入力データを並び替えて記憶して前記処理数Kのバタフライ演算器が実行した処理数Kのバタフライ演算でビット正順のアドレスの記憶領域に並び替わって記憶されたN点の出力データを前記N点の入力データの入力順に読み出す処理と
    を交互に行う請求項1または請求項2記載のFFT演算装置。
  4. 前記データ記憶部は、
    K個の(N/K)ワードの1リード/1ライトの2ポートRAMで構成したNワードのKリード/Kライトの2KポートRAMである
    請求項1ないし請求項3のいずれかに記載のFFT演算装置。
JP2010159608A 2010-07-14 2010-07-14 Fft演算装置 Expired - Fee Related JP5549442B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010159608A JP5549442B2 (ja) 2010-07-14 2010-07-14 Fft演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010159608A JP5549442B2 (ja) 2010-07-14 2010-07-14 Fft演算装置

Publications (2)

Publication Number Publication Date
JP2012022500A true JP2012022500A (ja) 2012-02-02
JP5549442B2 JP5549442B2 (ja) 2014-07-16

Family

ID=45776747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010159608A Expired - Fee Related JP5549442B2 (ja) 2010-07-14 2010-07-14 Fft演算装置

Country Status (1)

Country Link
JP (1) JP5549442B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785614B2 (en) 2013-01-23 2017-10-10 Nec Corporation Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program
US9880975B2 (en) 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
US9934199B2 (en) 2013-07-23 2018-04-03 Nec Corporation Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon
WO2019031418A1 (ja) 2017-08-07 2019-02-14 日本電気株式会社 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体
US11604852B2 (en) 2017-12-27 2023-03-14 Nec Corporation Signal processing apparatus, method, program, and recording medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332932A (ja) * 1993-05-19 1994-12-02 Fujitsu Ltd 高速フーリエ変換装置
JPH1049518A (ja) * 1996-08-06 1998-02-20 Sony Corp 演算装置および方法
JP2000040080A (ja) * 1998-07-22 2000-02-08 Oki Electric Ind Co Ltd 高速フーリエ変換回路
JP2001022731A (ja) * 1999-07-07 2001-01-26 Yamatake Corp 高速フーリエ変換装置
JP2002351858A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd 処理装置
JP2007527072A (ja) * 2004-03-02 2007-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド インプレース計算時のレイテンシを最小化するための、分割されたメモリを持つ高速フーリエ変換回路
JP2008217359A (ja) * 2007-03-02 2008-09-18 Fujitsu Ltd 高速フーリエ変換装置及び高速フーリエ変換処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332932A (ja) * 1993-05-19 1994-12-02 Fujitsu Ltd 高速フーリエ変換装置
JPH1049518A (ja) * 1996-08-06 1998-02-20 Sony Corp 演算装置および方法
JP2000040080A (ja) * 1998-07-22 2000-02-08 Oki Electric Ind Co Ltd 高速フーリエ変換回路
JP2001022731A (ja) * 1999-07-07 2001-01-26 Yamatake Corp 高速フーリエ変換装置
JP2002351858A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd 処理装置
JP2007527072A (ja) * 2004-03-02 2007-09-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド インプレース計算時のレイテンシを最小化するための、分割されたメモリを持つ高速フーリエ変換回路
JP2008217359A (ja) * 2007-03-02 2008-09-18 Fujitsu Ltd 高速フーリエ変換装置及び高速フーリエ変換処理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785614B2 (en) 2013-01-23 2017-10-10 Nec Corporation Fast Fourier transform device, fast Fourier transform method, and recording medium storing fast Fourier transform program
US9934199B2 (en) 2013-07-23 2018-04-03 Nec Corporation Digital filter device, digital filtering method, and storage medium having digital filter program stored thereon
US9880975B2 (en) 2013-12-13 2018-01-30 Nec Corporation Digital filter device, digital filter processing method, and storage medium having digital filter program stored thereon
WO2019031418A1 (ja) 2017-08-07 2019-02-14 日本電気株式会社 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム記録媒体
US11604852B2 (en) 2017-12-27 2023-03-14 Nec Corporation Signal processing apparatus, method, program, and recording medium

Also Published As

Publication number Publication date
JP5549442B2 (ja) 2014-07-16

Similar Documents

Publication Publication Date Title
JP5549442B2 (ja) Fft演算装置
US20030065695A1 (en) Component reduction in montgomery multiplier processing element
US20140330880A1 (en) Methods and devices for multi-granularity parallel fft butterfly computation
JP2008217359A (ja) 高速フーリエ変換装置及び高速フーリエ変換処理方法
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
CN111985626A (zh) 一种加速rnn网络的系统、方法及存储介质
US20140089370A1 (en) Parallel bit reversal devices and methods
JP5269137B2 (ja) 演算装置
JPS6238975A (ja) 自己相関装置
JP2008052504A (ja) 離散フーリエ変換装置および離散フーリエ逆変換装置
JP2002269067A (ja) 行列演算装置
US8572148B1 (en) Data reorganizer for fourier transformation of parallel data streams
US8117507B2 (en) Decompressing method and device for matrices
CN114116012B (zh) 基于混洗操作的fft码位反序算法向量化实现方法及装置
JP2013025468A (ja) 高速フーリエ変換装置
JPH0644051A (ja) マイクロコンピュータ
US20240039694A1 (en) Device for processing homomorphically encrypted data
JP7157457B2 (ja) データ処理装置
JP4735962B2 (ja) パイプライン演算処理装置
RU2689433C1 (ru) Вычислительный модуль и способ обработки с использованием такого модуля
JP4295234B2 (ja) Fir型デジタルフィルタ
WO2020084694A1 (ja) 演算処理装置及び演算処理装置の制御方法
JPH07160676A (ja) 高速フーリエ変換装置及び高速フーリエ変換方法
JP2778478B2 (ja) 相関演算プロセッサ
JP3264114B2 (ja) ソート装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20140326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140404

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: 20140422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140505

R151 Written notification of patent or utility model registration

Ref document number: 5549442

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees