Comments
Description
Transcript
FPGA を用いたリアルタイム為替レート変動予測システム
特別研究報告 題 目 FPGA を用いたリアルタイム 為替レート変動予測システムの実装 Real-time Implementation of Exchange Rate Fluctuation Forecasting System on FPGA 指導教員 密山 幸男 准教授 報告者 学籍番号: 1170059 氏名: 原 浩彰 平成 27 年 2 月 12 日 高知工科大学 大学院 工学研究科 基盤工学専攻 電子・光システム工学コース 目次 第1章 序論 1 第2章 為替レート変動予測システム 3 2.1 為替レート変動予測システムの処理フロー . . . . . . . . . . . . . . . . . . . 3 2.2 サンプリング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 サロゲートデータ生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 多次元アトラクタの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 局所再構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6 カオス性検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 第3章 ソフトウェアプロファイリング 11 3.1 評価環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 IAAFT サロゲート法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 タケンスの埋め込み定理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 局所ファジイ再構成法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 リアプノフ指数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.6 ソフトウェアプロファイリング結果 . . . . . . . . . . . . . . . . . . . . . . . 14 第4章 IAAFT サロゲート法の FPGA 設計 16 4.1 FPGA 設計の初期検討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 ランダムシャッフル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3 4.4 4.2.1 フィボナッチ LFSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.2 実装結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 FFT/IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.1 FFT の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.2 FFT の構成方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3.3 オーバラップ FFT 4.3.4 実装結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 分布保存/順列比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4.1 マージソート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 i 4.4.2 4.5 第5章 実装結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 IAAFT サロゲート法の FPGA 設計 . . . . . . . . . . . . . . . . . . . . . . . 31 結論 34 謝辞 35 参考文献 36 ii 第1章 序論 日本国の通貨「円」が変動相場制度へ移行した 1973 年 2 月以降,為替レート変動がもた らす実体経済への悪影響を緩和するために,日本銀行はしばしば外国為替市場への介入を 行っている [1].しかし,他国の経済事情や,様々な投機的な思惑によって変動する為替レー ト変動の予測は非常に困難であり,今日において為替レート変動予測を完璧に行う数理モ デルは存在しない. 一方で,為替レート変動には「カオス」の現象がみられることが知られており [2–5],短 時間であれば高精度の為替レート変動の予測が可能である.適切なタイミングでの為替介 入によって,小規模な介入で相場を効率的に安定させられる可能性が高くなることが報告 されている [6, 7].カオスとは,方程式から得られる解が非周期的であり,わずかに異なる 初期値からの解の違いが指数関数的に増大するが,初期値を与えれば解は一意的に決定さ れる初期値鋭敏性という特性を持つ物理学の現象である [8]. 先行研究において,様々な構成の為替レート変動予測システムが提案されている [6][9–11]. その中でも,1 週間分のアメリカドル/日本円(USD/JPY)の変動データを対象にした予測 システムでは約 2 時間先までの予測に成功している [6].さらに,この 2 時間の中でも近い 未来の値であればあるほどその予測精度は高い.そこで,本研究では,次の為替レート変 動が生起するまでの間に予測を完了させるリアルタイム為替レート変動予測システムの実 装を目的とする. 本研究では,リアルタイム為替レート変動予測を実現するために,FPGA(Field Pro- grammable Gate Array)を用いたシステムの高速化を提案する.FPGA とは LUT(Look Up Table)を構成要素とするプログラマブルデバイスとして広く普及しているデバイスであり, 製造プロセス微細化により面積性能効率は著しく向上しており,高性能計算機の処理エン ジンとしても利用されつつある [12]. 本研究ではまず,PC を用いたソフトウェアプロファイリングを行い,システム全体にお ける各処理の演算時間を解析する.次に,システムのリアルタイム化を目的として,高速 化が求められる演算の HDL(Hardware description language)設計・FPGA 実装を行い,回 路規模・演算速度について評価する. 本論文は 6 章で構成されている.以下,2 章では,為替レート変動予測システムの概要に ついて述べる.3 章では,2 章で述べた為替レート変動予測システムの,ソフトウェアプロ ファイリングについて述べ,ハードウェア化すべき処理を検討する.4 章では,FPGA 上に 1 実装する処理回路の設計・実装について述べ,回路規模・演算時間についての評価を行う. 5 章では,これまでの結果を考察し,結論について述べる. 2 第2章 為替レート変動予測システム 本章では,本研究で実装する為替レート変動予測システムの処理フローについて説明し さらに,各処理で行われる演算の詳細について述べる. 2.1 為替レート変動予測システムの処理フロー 先行研究で提案されている様々な構成の為替レート変動予測システム [6][9–11] の中で, 為替レート変動のカオス性に着目した予測システムの実装を行う.図 2.1 に本研究で実装す る為替レート変動予測システムの概要を示す. 3 ໝஆȬȸȈ ǵȳȗȪȳǰ Ͳሁ᧓᧓ᨠǵȳȗȪȳǰ ͲȆǣȃǯ᧓ǵȳȗȪȳǰ ໝஆȬȸȈ٭ѣȇȸǿ ǵȭDzȸȈȇȸǿဃ Ͳ/&dǵȭDzȸȈඥ ǫǪǹࣱ౨ᚰ ͲȪǢȗȎȕਦૠ ٶഏΨǢȈȩǯǿƷನ ͲǿDZȳǹƷ؈NJᡂLjྸܭ ኒЗʖย ޅϐನ ͲޅȕǡǸǤϐನඥ ໝஆȬȸȈ٭ѣʖยኽௐ 図 2.1: 為替レート変動予測システムの概要 実際の為替レートの値をサンプリングして,ある一定期間の変動をまとめたデータが為 替レート変動データである.一般に,為替レート変動データには,時系列予測が可能な線 形性とは別に,時系列予測が不可能な非線形性が含まれており,この非線形性が,最終的 な予測精度に悪影響を及ぼす.そこで時系列予測を行う前に,非線形な性質を破壊するた め,IAAFT(Iterated Amplitude Adjusted Fourier Transformed)サロゲートデータ作成アル ゴリズム [13] を用いてサロゲートデータを作成する.これにより元の為替レート変動デー タの自己相関関数 [14] を保存した確率的な時系列を作成することができる [15].次に,時 系列予測は,タケンスの埋め込み定理 [16] を用いて多次元アトラクタを構成した後,局所 ファジイ再構成法 [17, 18] による局所再構成によって得られる. また,予測した時系列の精度を検証するため,リアプノフ指数 [19] を求める.リアプノ フ指数とはカオスの振る舞いを定量的に表す量であり,演算結果の正負の符号によってカ オス性を検証することができる. なお,時系列予測を行う一連の操作と,カオス性検証は,元の為替レート変動データを 用いて,それぞれ別々に行える演算であるため,並列化が可能である. 4 2.2 サンプリング 為替レート変動データのサンプリング手法は,等時間間隔サンプリングとティック時間 サンプリングに分けることができる.等時間間隔サンプリングとは,サンプリング間隔を, 一定の時間間隔に定めてサンプリングを行う手法である.ティック時間サンプリングとは, 生起する全ての為替レート変動をサンプリングする手法である.表 2.1 に,それぞれのサン プリング手法の特徴を示す. 表 2.1: サンプリング手法の特徴 ሁ᧓᧓ᨠ ǵȳȗȪȳǰ Ȇǣȃǯ᧓ ǵȳȗȪȳǰ ᧈų ǷǹȆȠƷࣱᏡƴࣖơƯ ȇȸǿǛᛦራƢǔƜƱƕӧᏡ ᙐᲦഎȇȸǿƸႆဃƠƳƍ ჺų ᙐᲦഎȇȸǿƷႆဃ ȇȸǿƕᐔٻ 先行研究 [9] より,為替レート変動予測システムでは,ティック時間サンプリングの方が解 析精度が高いとされている.よって本研究では,精度の高いシステム設計を目指して,ティッ ク時間サンプリングを採用し,高精度の為替レート変動予測を,リアルタイムで行うこと を目指す. 2.3 サロゲートデータ生成 サロゲート法とは元々,時系列データの性質を明らかにする仮説検定手法である.時系列 に,ある性質があることを示したいとき,その対立仮説に関連する量を保存したランダム データを多数作り,もとの時系列と統計的な比較をすることで,その性質の有無を判定す るものである [20–22].このサロゲート法によって生成されるサロゲートデータは,もとの 時系列からその性質を破壊したデータである.このサロゲートデータ作成アルゴリズムは 為替レート変動予測以外の分野では,インターネットトラフィックのデータ解析 [23] や新 生児呼吸の時系列予測 [24] などに用いられている.本研究では,為替レート変動における 非線形の性質を破壊したサロゲートデータを得るために,IAAFT サロゲートデータ作成ア ルゴリズムを用いる.IAAFT サロゲートデータ作成アルゴリズムとは,Phase-randomized Fourier-transform サロゲート [25] データ作成アルゴリズムを改良したもので,具体的に以 下の反復を行う. (a)対象データの点列の分布をランダムに入れ替える.その際,元データの点列の分布も 別に保存しておく. 5 (b)ランダムに入れ替えた点列と,元データの点列の高速フーリエ変換(Fast Fourier Trans- form: FFT)をそれぞれ行う.ここで生成される周波数スペクトルの位相成分はラン ダムに入れ替えたデータの結果を用い,強度成分は元データの結果を用いる. (c)(b)で生成した周波数スペクトルの逆高速フーリエ変換(Inverse Fast Fourier Trans- form: IFFT)を行い,時系列データを生成する.この時生成される点列の分布は位相 成分が壊されたままである. (d)点列の分布を元データに近づけるために, (a)でランダム化した元データと同じ順に なるように,補正を施す. (e)(a)から(d)の反復の結果,FFT した時と IFFF した時の結果が変化しなくなれば 終了.そのデータをサロゲートデータとする.線形的な性質は保存されるが,非線形 の性質は破壊される. IAAFT サロゲート法のフローチャートを図 2.2,その説明を表 2.2 にそれぞれ示す. ǵȳȗȫ ȇȸǿ ȩȳȀȠ Ƿȣȃȕȫ Ўࠋ̬܍ϭ &&dϭ &&dϮ /ŵ ZĞ /&&d Ўࠋ̬܍Ϯ Зൔ᠋ ጮǓᡉƠ E Ჷ z ǵȭDzȸȈ ȇȸǿ 図 2.2: IAAFT サロゲート法フローチャート 6 表 2.2: IAAFT サロゲート法フローチャート概要 ȩȳȀȠǷȣȃȕȫ &&dϭ͕&&dϮ /&&d Ўࠋ̬܍ Зൔ᠋ ಒųᙲ ǵȳȗȫȇȸǿǛȩȳȀȠǷȣȃȕȫƢǔᲨ ȩȳȀȠǷȣȃȕȫưȩȳȀȠƴλǕஆƑƨໜЗƱᲦ ǵȳȗȫȇȸǿƷ&&dǛƦǕƧǕᘍƏᲨ &&dϭƷЈщƷࢍࡇЎᲢZĞ ᲣƱᲦ&&dϮƷЈщƷ&&dኽௐƷᙐእЎᲢ/ŵᲣƷ/&&dǛᘍ ƍᲦኒЗȇȸǿǛဃƢǔᲨ ǵȳȗȫȇȸǿƱ/&&dƷኽௐǛǽȸȈƠᲦໜЗƷЎࠋǛ̬܍ƢǔᲨ ΨƷǵȳȗȫȇȸǿƷໜЗƷЎࠋൔ᠋ǛᘍƏᲨ 2.4 多次元アトラクタの構成 多次元アトラクタの構成に用いる,タケンスの埋め込み定理とは,数理モデルと実際の 時系列データの間の橋渡しの役割を行う定理である.このタケンスの埋め込み定理に基づ いて行われる多次元アトラクタの構成とは,観測された時系列データから,もとの力学系 の状態空間とアトラクタを再構成することであり,式 (2.1) に示すベクトルが得られる.こ れを利用することで為替レート変動予測が可能となる. x(t) = (y(t), y(t − τ), y(t − 2 τ), …, y(t − (n − 1) τ)) (2.1) ここで,τ は遅れ時間,n は次元である.時間 t を変化させると,この n 次元再構成状態 空間の軌道が描ける.また,次元 n は,もとの力学系の状態空間の次元を m とした時, n ≥ 2m + 1 (2.2) であれば十分である事が証明されている.ただし,これは十分条件であって 2m + 1 未満で も埋め込みができる場合もある.本研究では十分条件である n = 5 とする.図 2.3 にタケ ンスの埋め込み定理の概念図を示す.なお,図 2.2 では簡単化のために,次元 n = 3 として いる. 7 図 2.3: タケンスの埋め込み定理の概念図 [3] 2.5 局所再構成 局所再構成は,タケンスの埋め込み定理によって得られた多次元のアトラクタのデータ を用いて,次の時間の為替レート変動の予測を行うことである.本研究では,局所ファジイ 再構成法を用いて,局所再構成を行う.為替レート変動データの近傍データベクトルから 次ステップの予測点を求める局所ファジイ再構成法の概念図を図 2.4 に示す.Xi ,Xi ’,Xi ” がそれぞれの近傍値,ZT が最新の値,ZT +s 及び ZT +2s が予測値を示す. yϮ yϭ͛ yϯ͛͛ dнƐ dнϮƐ yϮ͛ yϮ͛͛ yϯ͛ yϭ͛͛ d yϭ yϯ LJ;ƚͲϮʏͿ LJ;ƚͲʏͿ LJ;ƚͿ 図 2.4: 局所ファジイ再構成法の概念図 8 ファジイ推論によって,s ステップ先の予測値を求める計算式を(2.3)に示す [26, 27]. ∑n Z(T + s) = i=1 yi (ai + s)µi i=1 µi ∑n (2.3) (2.3)式において,Z(T + s)は s ステップ先の予測値,n は埋め込み次元,yi (ai + s) は 現在の値の近傍値の n 次元再構成状態空間におけるベクトル成分である.また,µi はファ ジイグレードと呼ばれ,図 2.5 に示すメンバーシップ関数によって求められる. 図 2.5: µi のメンバーシップ関数 [18] 2.6 カオス性検証 時系列データの性質は,予測可能な線形,予測不可能な非線形,そして予測は可能であ るが非常に複雑で予測が困難なカオスに分けることができる.線形であることは,ベクト ルの集合に対してその要素の定数倍と加法で特徴づけられる数式であり,その対義語が非 線形である.カオスとは,方程式から得られる解が非周期的であり,わずかに異なる初期 値からの解の違いが指数関数的に増大する初期値鋭敏性をいう特徴を持つ時系列である. カオスの振る舞いを定量的に表す量として,軌道の拡大率を表すリアプノフ指数 [19] が用 いられる.図 2.6 において, (a)の状態であれば軌道は広がり続け, (b)の状態であれば軌 道は広がらずそのままであり, (c)の状態であれば収縮し続ける.重要となるのがこのリア プノフ指数の正負の符号である.正であれば(a)の状態,すなわちカオス状態.± 0 また は負の状態であればそれぞれ(b)または(c)の状態,すなわち非カオス常態である. 9 図 2.6: リアプノフ指数概念図 [28] 本研究で為替レート変動データのカオス性を検証する目的は,為替レート変動データの 定常性を検証することである.定常性が低い為替レート変動データは予測の精度が低く,す なわち,その信憑性が低いと言える. 10 第3章 ソフトウェアプロファイリング 本章では,前章で述べた為替レート変動予測システムにおける各処理の,ソフトウェア プロファイリングの結果について詳細に述べる.さらに,システム全体の中で,長い演算 時間を要しているソフトウェア処理について考察し,FPGA で実装する回路を決定する. 3.1 評価環境 本研究では,表 3.1 に示す 1 週間分の範囲のアメリカドルと日本円(USD/JPY) の為替レー ト変動データに対する予測を行う.また,MathWorks 社の MATLAB を用いてソフトウェア プロファイリングを行った.表 3.2 に本研究でソフトウェアプロファイリングを行った,PC の性能を示す. 表 3.1: USD/JPY 為替レート変動データ ȇȸǿር ϮϬϬϳͬϬϲͬϬϰ᳸ ϮϬϬϳͬϬϲͬϬϴdŝĐŬ ٭רѣ இ͌ٻ ȇȸǿໜૠ ᧓᧓ᨠ;ƐͿ ;:WzͿ ϱϱ͕ϲϯϭ ϳ͘ϵ ϭϮϭ͘ϳϰ இ͌ݱ ;:WzͿ ǵȭDzȸȈ ȇȸǿૠ ϭϮϭ͘Ϭϴ ϮϭϬ 表 3.2: ソフトウェアプロファイリングに用いた PC の性能 K^ Wh ȡȢȪ tŝŶĚŽǁƐϳ /ŶƚĞůŽƌĞŝϱͲϮϰϬϬ ϰ͘ϬϬ' WƌŽĨĞƐƐŝŽŶĂůϯϮďŝƚ Whϯ͘ϭϬ',nj Ტϯ͘ϭϳ'̅ဇᲣ 3.2 IAAFT サロゲート法 本研究では,サロゲートデータを 210 個作成する.表 3.3 にそれぞれの演算時間を示す. 11 表 3.3: IAAFT サロゲート法演算時間 ም᧓Ɛ ϭ͘ϭϭϲ Ϭ͘ϬϬϰ Ϭ͘ϬϮϲ ϮϮ͘ϴϱϳ ϰϵϴ͘ϯϱϮ ϯϯ͘ϰϴϭ Ϭ͘ϳϯϬ ϱϱϲ͘ϱϲϲ ȩȳȀȠǷȣȃȕȫ Ўࠋ̬܍ϭ &&dϭ &&dϮ /&&d Ўࠋ̬܍Ϯ Зൔ᠋ dŽƚĂů лӳй Ϭ͘ϮϬϭ Ϭ͘ϬϬϭ Ϭ͘ϬϬϱ ϰ͘ϭϬϳ ϴϵ͘ϱϰϭ ϲ͘Ϭϭϲ Ϭ͘ϭϯϭ ϭϬϬ͘ϬϬϬ ソフトウェアプロファイリングの結果,リアルタイム処理を実現するためには,FFT,IFFT, 分布保存の高速化が必要であることが分かった.FFT2 と IFFT の演算時間の差が大きく異 なる理由として,繰り返し部分の処理において,FFT2 の演算は位相成分(Im)のみの演 算であり,その演算のほとんどは,数値を計算しない零演算であることが挙げられる.ま た,分布保存部の演算時間が長くなった理由は,非常に多い点数のデータを何度もソート しなければならず,データのメモリへの読み書きに時間がかかっていると推測できる.ま た,IAAFT サロゲートデータ法の仕様上,サロゲートデータ毎の繰り返回数にばらつきが ある.図 3.2 にサロゲートデータ毎の繰り返し回数を示す.最小繰り返し回数は 19 回,最 大繰り返し回数は 42 回,平均繰り返し回数は 26.8 回である. ϰϱ ϰϬ ጮǓᡉƠׅૠ ϯϱ ϯϬ Ϯϱ ϮϬ ϭϱ ϭϬ ϱ Ϭ Ϭ ϯϬ ϲϬ ϵϬ ϭϮϬ ϭϱϬ ϭϴϬ ǵȭDzȸȈȇȸǿ 図 3.1: サロゲートデータ毎の繰り返し回数 12 ϮϭϬ 3.3 タケンスの埋め込み定理 Ϯ ም᧓;ŵƐͿ ϭ͘ϴ ϭ͘ϲ U ϭ͘ϰ O ϭ͘Ϯ ᧓ϭ Ϭ͘ϴ ም Ϭ͘ϲ Ϭ͘ϰ Ϭ͘Ϯ Ϭ Ϭ ϱϬϬ ϭϬϬϬ ϭϱϬϬ ϮϬϬϬ ϮϱϬϬ ϯϬϬϬ ȇȸǿໜૠ ϯϱϬϬ ϰϬϬϬ ϰϱϬϬ ϱϬϬϬ 図 3.2: タケンスの埋め込み定理演算時間 タケンスの埋め込み定理の演算に要する時間を,データ点数毎にプロットした図を図 3.3 に示す.なお,次元数 n = 5.遅れ時間 τ = 1 である.タケンスの埋め込み定理において, データ点数の増加に伴い,演算時間は正比例で増加する.その近似式は y = 0.0002x + 0.695 である.本研究で予測を行うデータ数 65536 点の演算時間は 0.106 秒である.このことか ら,タケンスの埋め込み定理については,リアルタイム処理に向けた高速化の必要は無い と結論づけた. 3.4 局所ファジイ再構成法 図 2.3 に示す局所ファジイ再構成法について,次元数 n = 5,近傍データベクトル数 X = 3 としてプロファイリングを行った.図 2.4 に示すメンバーシップ関数はテーブルで保持する こととした.データ数 65536 点の演算時間は 0.121 秒となった.このことから,局所ファジ イ再構成法は,リアルタイム処理を行うための高速化の必要は無いと結論づけた. 13 3.5 リアプノフ指数 ም᧓ U ȪǢȗȎȕਦૠ ϮϬ ϭϴ ϭϲ U ϭϮ ᧓ϭϬ ምϴ ϲ ϭϰ Ϭ͘ϮϮϱ Ϭ͘Ϯ Ϭ͘ϭϳϱ Ϭ͘ϭϱ Ϭ͘ϭϮϱ Ϭ͘ϭ Ϭ͘Ϭϳϱ ϰ Ϭ͘Ϭϱ Ϯ Ϭ͘ϬϮϱ Ϭ Ϭ ϱϬϬ Ȫ Ǣ ȗ Ȏ ȕ ਦ ૠ Ϭ ϭϬϬϬ ϭϱϬϬ ϮϬϬϬ ϮϱϬϬ ϯϬϬϬ ϯϱϬϬ ϰϬϬϬ ϰϱϬϬ ϱϬϬϬ ȇȸǿໜૠ 図 3.3: リアプノフ指数と演算時間 図 3.4 にデータ点数に対するリアプノフ指数とその演算時間を示す.先行研究 [6] におい て,将来の予測可能な時間は長くとも 2 時間であると結論づけられている.2 時間のデータ 点数の平均は 924 点である.図 3.4 において,データ点数が 1000 点を超えた辺りからリア プノフ指数の値は急激に下がり,カオス性を持たないという結果が得られた.つまり,この 結果は 2 時間を超えたデータの予測は,その信憑性がないことを示している.よって,本 研究で実装するシステムは,リアプノフ指数の演算を行うデータ点数を 1000 点までとして 為替レート変動の定常性を確認する.データ点数を 1000 点までとした場合,リアプノフ指 数の演算時間は 7.277s である.よって,PC でもリアルタイム処理を行えるため,FPGA を 用いた高速化の必要は無いと結論づけた. 3.6 ソフトウェアプロファイリング結果 表 3.4 に示すソフトウェアプロファイリング結果より,リアルタイム為替レート変動予測 システムを実現するためには,IAAFT サロゲート法の高速化が必須である.以下 4 章にお いて,FPGA を用いて IAAFT サロゲート法を高速化する手法について詳細に述べる. なお,リアプノフ指数の演算についても,入力される為替レート変動データのリアプノ フ指数の値が大きい場合,リアルタイム処理が行えない可能性がある.しかし,軌道の広 がりを判定するリアプノフ指数の演算はその性質上,計算要素毎に分解することが難しく, 複雑な計算を多数行うため,FPGA を用いた高速化は困難である.しかし,本研究で用い た PC よりも高性能な環境で演算を行なうことで,より確実にリアルタイム処理を行うこと ができると考える. 14 表 3.4: ソフトウェアプロファイリング結果 ϼųྸ ȪǢȗȎȕਦૠ /&dǵȭDzȸȈඥ ǿDZȳǹƷ؈NJᡂLjྸܭ ޅȕǡǸǤϐನඥ 15 ም᧓;ƐͿ ϳ͘Ϯϳϳ ϱϱϲ͘ϱϲϲ Ϭ͘ϭϬϲ Ϭ͘ϭϮϭ 第 4 章 IAAFT サロゲート法の FPGA 設計 本章では,FPGA を用いた IAAFT サロゲート法の実装について述べる.まず,FPGA 設 計の初期検討を行った後,IAAFT サロゲート法を構成する各演算の FPGA 実装について 述べる.FPGA 設計ツールとして Altera 社 Quartus II 用いた.回路規模として LE(Logic Element)数,DSP (Digital Signal Processor)Block 数,演算時間として FPGA の最大動作 周波数動作時の演算時間と市販ボードの最大動作周波数動作時の演算時間について,それ ぞれ比較評価を行った.また,実装した回路について ModelSim 10.1e を用いて論理シミュ レーションを行なった. 4.1 FPGA 設計の初期検討 ターゲット FPGA として,Altera Stratix V 5SGXEA7K2,Altera Stratix III EP3SE260,Al- tera Cyclone IV 4CE115 の三種類のデバイスを用いた.それぞれの FPGA の性能を表 4.1 に 示す.なお Stratix は Altera 社のハイエンド FPGA であるのに対して,Cyclone は低コストデ ザインのニーズを満たすために開発された廉価版 FPGA である.また DSP Block は,ディ ジタル信号処理で扱う乗算器,加算器,減算器,パイプラインレジスタなどで構成される 専用回路である [29]. 表 4.1: ターゲット FPGA の性能 ǿȸDzȃȈ&W' ůƚĞƌĂ^ƚƌĂƚŝdžs ϱ^'yϳ<Ϯ&W' ůƚĞƌĂ^ƚƌĂƚŝdž/// Wϯ^ϮϲϬ&W' ůƚĞƌĂLJĐůŽŶĞ/s ϰϭϭϱ&W' >ૠ ϲϮϮ͕ϬϬϬ Ϯϱϱ͕ϬϬϬ ϭϭϰ͕ϰϴϬ ᦚ㍕ ᦚ㍕ &W'இٻ ࠊᝤȜȸȉ ^WůŽĐŬ✀㢮 ^WůŽĐŬಶᩘ ѣ˺ԗඬૠ இٻѣ˺ԗඬૠ sĂƌŝĂďůĞƉƌĞĐŝƐŝŽŶ Ϯϱϲ ϴϬϬD,nj ϭϮϱD,nj ^WďůŽĐŬ ^WďůŽĐŬ ϳϲϴ ϴϬϬD,nj ϱϬD,nj ϭϴͲďŝƚĞůĞŵĞŶƚƐ ŵďĞĚĚĞĚDƵůƚŝƉůŝĞƌ ϱϯϮ ϮϬϬD,nj ϱϬD,nj ϵͲďŝƚĞůĞŵĞŶƚƐ 表 4.2 に MATLAB で採用している IEEE754 標準規格 double 型について示す.MATLAB では 64 ビットの倍精度浮動小数点を採用しているが,オーバーフローを起こさずに演算を 行うために必要なビット幅の検討を行った結果 32 ビットで十分であることが分かった.よっ て本研究では,32 ビットの固定小数点方式を採用した. 16 表 4.2: IEEE754 標準規格(倍精度浮動小数点)[30] ȓȃȈ ϲϯ ϲϮ᳸ϱϮ ϱϭ᳸Ϭ ̅ဇ૾ඥ ᇷӭᲢϬсദŴϭсͿ ϭϬϮϯưȐǤǢǹƞǕƨਦૠᢿ ૠ͌ϭ͘ĨƷᇢૠᢿЎĨ 4.2 ランダムシャッフル IAAFT サロゲート法のランダムシャッフル回路には,小規模な回路規模であることに加 えて高速にシャッフルが完了することが求められる.よって,セキュリティ用途向けの複雑 な乱数生成機 [31] などではなく,生成が単純な擬似乱数で構わない.そこで本研究では,擬 似乱数をハードウェアデバイスで実現する方式としてフィボナッチ LFSR(Linear Feedback Shift Register)を用いた方式を採用する. 4.2.1 フィボナッチ LFSR フィボナッチ LFSR で,次の入力ビットに影響を与えるビットを「タップ」と呼び,それ らの位置を列挙したものをタップシーケンス [32] と呼ぶ.なお,このタップシーケンスは ビット数毎に決まっているパラメータである.ビット数を 4 とした場合,そのタップシー ケンスは「3,2」である.タップは順次排他的論理和がとられ,その結果が LSB にシフトさ れる.これを 2 を底とする多項式で表すと, (4.1)式の帰還多項式で示される.ビット数が 4 の場合の,乱数が生成される様子を図 4.1 に示す. x3 + x2 + 1 17 (4.1) 䠌䠌䠌䠍 䠌䠌䠍䠍 䠌䠍䠍䠍 ϭ 䠍䠌䠍䠍 䠍䠍䠍䠌 ϭ 䠌䠍䠍䠌 䠍䠍䠌䠍 ϭ 䠍䠍䠌䠌 ϭ 䠌䠍䠌䠍 ϭ 䠍䠌䠌䠍 ϭ 䠍䠌䠍䠌 䠌䠌䠍䠌 ϭ 䠌䠍䠌䠌 ϭ ϭ ϭ 䠍䠌䠌䠌 ϭ ϭ 䠌䠌䠌䠌 ϭ ϭ ϭ 図 4.1: フィボナッチ LFSR の概念図(ビット数 4) ビット数 4 の場合,乱数の周期は 24 -1 である.216 -1 点の乱数を発生させる場合,16 ビッ トが必要となる.そのタップシーケンスは「15,14,12,3」である.よって,これを 2 を底と する帰還多項式は(4.2)式で表される. x15 + x14 + x12 + x3 + 1 (4.2) 本研究で実装した,ランダムシャッフル部のブロック図を図 4.2 に,その信号リストを 表 4.3 にそれぞれ示す.ランダムシャッフル部は,回路のリセット信号を検出した後,32bit のデータ(実際の為替レートの値)をフィボナッチ LFSR で生成する 16bit 乱数値の示す Block RAM の番地に書き込む.全ての Block RAM の番地にデータが書き込まれた後,ラ ンダムデータを昇順で Block RAM より出力する. 18 ȩȳȀȠǷȣȃȕȫ ȕǣȜȊȃȁ>&^Z ϭϲ ȡȢȪဪע ໝஆȬȸȈ ٭ѣȇȸǿ ໝஆȬȸȈ ٭ѣȇȸǿ ϯϮ ůŽĐŬZD ϯϮďŝƚgϲϱϱϯϲǁŽƌĚ ϯϮ ȩȳȀȠ ȇȸǿ ǵȳȗȫ ȇȸǿ 図 4.2: ランダムシャッフル部ブロック図 表 4.3: ランダムシャッフル部信号リスト ̮ӭӸ ǯȭȃǯ /K / ȓȃȈૠ ϭ ᛯྸ Ͳ ȪǻȃȈ / ϭ / ϯϮ Ͳ K ϯϮ Ͳ ໝஆȬȸȈ ٭ѣȇȸǿ ȩȳȀȠ ȇȸǿ ͳᎋ ϱϬD,nj ׅែμ˳Ʒ ȪǻȃȈǛᘍƏ ϯϮďŝƚпϲϱϱϯϲໜƷ ȇȸǿλщ ϯϮďŝƚпϲϱϱϯϲໜƷ ȩȳȀȠȇȸǿǛЈщ 4.2.2 実装結果 本研究で実装したランダムシャッフル部の実装結果を表 4.4 に示す. 表 4.4: ランダムシャッフル部の実装結果 ǿȸDzȃȈ&W' >ૠ ůƚĞƌĂ^ƚƌĂƚŝdžs ϱ^'yϳ<Ϯ&W' ůƚĞƌĂ^ƚƌĂƚŝdž/// Wϯ^ϮϲϬ&W' ůƚĞƌĂLJĐůŽŶĞ/s ϰϭϭϱ&W' Ϯϯϭ ϭϯϱ ϯϳϭ ^WůŽĐŬ✀㢮 ^WůŽĐŬಶᩘ &W'இٻ ѣ˺ԗඬૠ ም᧓ ࠊᝤȜȸȉ இٻѣ˺ԗඬૠ ም᧓ Ϭ Ϭ͘ϭϲϰŵƐ ϭ͘ϬϰϵŵƐ Ϭ Ϭ͘ϭϲϰŵƐ Ϯ͘ϲϮϭŵƐ Ϭ Ϭ͘ϲϱϱŵƐ Ϯ͘ϲϮϭŵƐ sĂƌŝĂďůĞƉƌĞĐŝƐŝŽŶ ^WďůŽĐŬ ^WďůŽĐŬ ϭϴͲďŝƚĞůĞŵĞŶƚƐ ŵďĞĚĚĞĚDƵůƚŝƉůŝĞƌ ϵͲďŝƚĞůĞŵĞŶƚƐ 4.3 FFT/IFFT 4.3.1 FFT の概要 FFT[33] は,Cooley と Tukey らによって提案された離散フーリエ変換(Discrete Fourier Transform: DFT)を高速に行うアルゴリズムであり,図 4.3 に示すバタフライ演算器の組み 合わせによって構成される.ここで,Wc ,Ws は回転因子の値であり,n は FFT の基数,k 19 はバタフライ演算器毎に割り当てられる定数である.図 4.4 にバタフライ演算器を構成する 複素演算器を示す.複素演算器は,2 個の整数加算器からなる複素加算器,2 個の整数加算 器と 4 個の整数乗算器からなる複素乗算器から構成される [29]. ᐇ㒊 ൌ ൌ Ǧ ൌ ǣᇶᩘ䠈ǣͲǡͳǡǥǡሺȀʹǦͳሻ 㒊 ൌ ൌǦ ൌ ǣᇶᩘ䠈ǣͲǡͳǡǥǡሺȀʹǦͳሻ 図 4.3: バタフライ演算器の構成 zƌ yƌ 䠇 yƌнzƌtĐͲzŝtƐ zŝ 䠇 yŝнzƌtƐͲzŝtĐ tĐ 㽢 tƐ 㽢 」⣲ຍ⟬ჾ 䠉 zƌtĐͲzŝtƐ 䠇 zƌtƐнzŝtĐ 㽢 yŝ zƌtĐͲzŝtƐ zƌtƐнzŝtĐ 㽢 」⣲⟬ჾ 図 4.4: 複素演算器 4.3.2 FFT の構成方法 FFT はその性質上,基数は 2n でなければならない.216 -FFT は (4.3) 式より,52 万個を超 えるバタフライ演算器で構成される巨大な FFT であるが,FPGA の回路規模の制約により, 実装が可能なバタフライ演算器の個数には限りがある.このため,小さな基数の組み合わ せで,大きな基数の FFT を構成する手法を用いる.本研究では 216 -FFT を,図 4.5 に示す 基数 16 の FFT の組み合わせで設計する.図 4.6 に,16-FFT を x 軸方向に 4 段,y 軸方向に 4096 段並べて構成する 216 -FFT の概略図を示す. 20 小さな基数の組み合わせで大きな基数の FFT を構成する場合,その接続関係及び回転因 子の割り当ては複雑なものとなる.図 4.7 に 216 -FFT を基数 16 で構成する場合の接続図,図 4.8 にその回転因子の定数 k の割り当てをそれぞれ示す. 2n−1 × n ƐƚĂŐĞϬ ƐƚĂŐĞϭ ƐƚĂŐĞϮ (4.3) ƐƚĂŐĞϯ Ϭ ϭ Ϯ ϯ ϰ ϳ ϴ ϵ ϭϬ ϭϭ ϭϮ Ϭ ϭ ϭ Ϭ Ϯ ϭ Ϯ ϯ ϯ Ϯ ϯ Ϭ ϭ Ϯ ϰ ϰ ϱ ϱ ϭϯ ϭϰ ϲ ϭϱ ϳ ϰ ϯ ϰ ϲ ϱ ϲ ϱ ϲ ϳ ϳ ϳ 図 4.5: 16-FFT 21 dƌĂŶƐƉŽƐŝƚŝŽŶ ϱ ϲ Ϭ ĂƚĂϭϱ͕ϭϲ ͕͙͕ϯϭ ĂƚĂϲϱϱϮϬ͕ ϲϱϱϮϭ͕͙͕ϲϱϱϯϱ ƵĨĨĞƌ ĂƚĂϬ͕ϭ ͕͙͕ϭϱ ƵĨĨĞƌ ƵĨĨĞƌ ƵĨĨĞƌ ƵĨĨĞƌ ƵĨĨĞƌ 呍呍呍 ƵĨĨĞƌ ƵĨĨĞƌ ĂƚĂϲϱϱϮϬ͕ ϲϱϱϮϭ͕͙͕ϲϱϱϯϱ 䠍䠒Ͳ &&d ͕͙͕ϯϭ ĂƚĂϭϱ͕ϭϲ ƵĨĨĞƌ 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d ĂƚĂϬ͕ϭ ͕͙͕ϭϱ 図 4.6: 216 -FFT(周波数間引き)の概略図 dƌĂŶƐƉŽƐŝƚŝŽŶ ƵĨĨĞƌ ƵĨĨĞƌ 䠍䠒Ͳ &&d 呍呍呍 ƵĨĨĞƌ 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d 22 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d 䠍䠒Ͳ &&d ^ƚĂŐĞϭϱ ^ƚĂŐĞϭϮ ^ƚĂŐĞϭϭ ^ƚĂŐĞϴ ^ƚĂŐĞϳ ^ƚĂŐĞϰ ^ƚĂŐĞϯ ^ƚĂŐĞϬ ŝ ƐƚĂŐĞϭ Ϭ ϭϲϯϴϰ Ϭ ϭϲϯϴϰ Ϭ ϭϲϯϴϰ Ϭ ϭϲϯϴϰ Ϭ Ϭ Ϭ Ϭ Ϭ Ϭ Ϭ Ϭ 㻜 㻝 㻞 㻟 㻠 㻡 㻢 㻣 ϳ ϲ ϱ ƐƚĂŐĞϬ Ŷ сϬ͕ϭ͕͙͕ϰϬϵϱ ϭϲŶŝнϭϱ ϭϲŶŝнϭϯ ϭϲŶŝнϭϰ ϭϲŶŝнϭϭ ϭϲŶŝнϭϮ ϳ ϲ ϱ ϰ Ϯϰϱϳϲ ϭϲϯϴϰ ϴϭϵϮ Ϭ Ϯϰϱϳϲ ϭϲϯϴϰ ϴϭϵϮ Ϭ ϳ ϱ ϲ ϰ ϮϴϲϳϮ Ϯϰϱϳϲ ϮϬϰϴϬ ϭϲϯϴϰ ϭϮϮϴϴ ϴϭϵϮ ϰϬϵϲ Ϭ ƐƚĂŐĞϯ ϳ ϱ ϲ ϯ ϰ ϭ Ϯ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ ƐƚĂŐĞϰ Ŷ сϬ͕ϭ͕͙͕ϭϱ ŵ сϬ͕ϭ͕͙͕Ϯϱϱ ϮϱϲŵϭнŶϭнϮϰϬ Ϭ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ Ŷ ΎϮϬϰϴ ϳ ϳ ϱ ϲ ϯ ϰ ϭ Ϯ ϳ Ŷ нϮϰϱϳϲ Ŷ нϮϴϲϳϮ Ŷ ΎϮнϮϰϱϳϲ Ŷ Ύϰнϭϲϯϴϰ Ŷ Ύϴ Ŷ Ύϲϰнϭϲϯϴϰ Ŷ ΎϯϮнϮϰϱϳϲ Ŷ ΎϭϲнϮϴϲϳϮ Ŷ ΎϭϮϴ Ŷ ΎϭϬϮϰнϭϲϯϴϰ Ŷ ΎϱϭϮнϮϰϱϳϲ Ŷ ΎϮϱϲнϮϴϲϳϮ Ŷ нϮϬϰϴϬ Ŷ ΎϮнϭϲϯϴϰ Ŷ Ύϰ Ŷ Ύϴ Ŷ ΎϯϮнϭϲϯϴϰ Ŷ ΎϭϲнϮϰϱϳϲ Ŷ Ύϲϰ Ŷ ΎϭϮϴ Ŷ Ύϴ Ŷ ΎϭϲнϮϬϰϴϬ Ŷ ΎϱϭϮнϭϲϯϴϰ Ŷ ΎϮϱϲнϮϰϱϳϲ Ŷ Ύϲϰ 図 4.8: 216 -FFT を基数 16 で構成する場合の回転因子の割り当て Ŷ ΎϭϬϮϰ Ŷ нϭϲϯϴϰ Ŷ ΎϮ Ŷ ΎϮнϴϭϵϮ Ŷ Ύϰ Ŷ Ύϰнϭϲϯϴϰ Ŷ Ύϴ Ŷ Ύϭϲнϭϲϯϴϰ Ŷ ΎϯϮ Ŷ ΎϭϮϴ Ŷ ΎϱϭϮ Ŷ ΎϯϮнϴϭϵϮ Ŷ Ύϲϰнϭϲϯϴϰ Ŷ ΎϭϮϴ Ŷ ΎϮϱϲнϭϲϯϴϰ Ŷ ΎϭϬϮϰ Ŷ ΎϮнϮϰϱϳϲ Ŷ Ύϴ Ŷ ΎϭϬϮϰнϭϲϯϴϰ Ŷ ΎϱϭϮнϴϭϵϮ Ŷ ΎϮϱϲнϮϬϰϴϬ Ŷ нϴϭϵϮ Ŷ нϭϮϮϴϴ Ŷ ΎϮнϭϲϯϴϰ Ŷ Ύϰ Ŷ Ύϰнϭϲϯϴϰ Ŷ Ύϴ Ŷ ΎϭϲнϴϭϵϮ Ŷ ΎϯϮнϭϲϯϴϰ Ŷ Ύϲϰ Ŷ ΎϭϮϴ Ŷ ΎϭϬϮϰ Ŷ Ύϲϰнϭϲϯϴϰ Ŷ ΎϯϮнϮϰϱϳϲ Ŷ ΎϭϲнϭϮϮϴϴ Ŷ ΎϭϮϴ Ŷ ΎϮϱϲнϴϭϵϮ Ŷ ΎϱϭϮнϭϲϯϴϰ Ŷ ΎϭϬϮϰнϭϲϯϴϰ Ŷ ΎϱϭϮнϮϰϱϳϲ Ŷ ΎϮϱϲнϭϮϮϴϴ Ŷ Ŷ нϰϬϵϲ Ŷ ΎϮнϴϭϵϮ Ŷ Ύϰнϭϲϯϴϰ Ŷ Ύϴ Ŷ ΎϮ Ŷ ΎϭϲнϰϬϵϲ ƐƚĂŐĞϭϱ ƐƚĂŐĞϭϰ Ŷ Ύϰ Ŷ ΎϯϮнϴϭϵϮ Ŷ Ύϲϰнϭϲϯϴϰ Ŷ ΎϭϮϴ Ŷ ΎϮϱϲнϰϬϵϲ Ŷ ΎϯϮ ƐƚĂŐĞϭϯ ϲϭϰϰϬнŶŽ ϳ ϳ ϳ Ŷ сϬ͕ϭ͕͙͕ϰϬϵϱ ϱϯϮϰϴнŶŽ ϱϳϯϰϰнŶŽ ϰϱϬϱϲнŶŽ ϰϵϭϱϮнŶŽ ϯϲϴϲϰнŶŽ ϰϬϵϲϬнŶŽ ϮϴϲϳϮнŶŽ ϯϮϳϲϴнŶŽ ϱ ϲ ϯ ϰ ϭ Ϯ Ϭ ϱ ϲ ϰ ϯ ϮϬϰϴϬнŶŽ ϮϰϱϳϲнŶŽ ϭϮϮϴϴнŶŽ ϭϲϯϴϰнŶŽ ϰϬϵϲнŶŽ ϴϭϵϮнŶŽ ŶŽ ϲ ϱ ϰ ϯ ϭ Ϯ Ϭ Ŷ Ύϴ ϳ ϲ ϱ ϰ ϯ Ϯ ϭ Ϭ ƐƚĂŐĞϭϮ Ŷ Ύϲϰ Ŷ ΎϭϬϮϰнϭϲϯϴϰ Ŷ ΎϱϭϮнϴϭϵϮ Ŷ сϬ͕ϭ͕͙͕ϰϬϵϱ ϲϭϰϰϬнŶϯ ϱϯϮϰϴнŶϯ ϱϳϯϰϰнŶϯ ϰϱϬϱϲнŶϯ ϰϵϭϱϮнŶϯ ϯϲϴϲϰнŶϯ ϰϬϵϲϬнŶϯ ϮϴϲϳϮнŶϯ ϯϮϳϲϴнŶϯ Ϯ ϭ Ϭ ƐƚĂŐĞϭϮ ƐƚĂŐĞϭϯ ƐƚĂŐĞϭϰ ƐƚĂŐĞϭϱ Ŷ Ύϭϲ ƐƚĂŐĞϭϬ ϳ ϱ ϲ ϯ ϰ ϭ Ϯ Ϭ ϮϬϰϴϬнŶϯ ϮϰϱϳϲнŶϯ ϭϮϮϴϴнŶϯ ϭϲϯϴϰнŶϯ ϰϬϵϲнŶϯ ϴϭϵϮнŶϯ Ŷϯ ƐƚĂŐĞϭϭ ƐƚĂŐĞϵ ƐƚĂŐĞϴ Ŷ ΎϱϭϮ Ŷ ΎϭϮϴ ƐƚĂŐĞ Ŷ ΎϮϱϲ Ŷ ΎϭϬϮϰ ƐƚĂŐĞϲ ƐƚĂŐĞϳ ƐƚĂŐĞϱ ϳ ϳ ϰϬϵϲŵϮнŶϮнϯϴϰϬ Ŷ сϬ͕ϭ͕͙͕Ϯϱϱ ŵ сϬ͕ϭ͕͙͕ϭϱ ϱ ϲ ϲ ϰϬϵϲŵϮнŶϮнϯϯϮϴ ϰϬϵϲŵϮнŶϮнϯϱϴϰ ϲ ϰ ϱ ϱ ϯ ϰϬϵϲŵϮнŶϮнϮϴϭϲ ϰϬϵϲŵϮнŶϮнϯϬϳϮ ϰ ϯ ϰ ϯ ϰϬϵϲŵϮнŶϮнϮϯϬϰ ϰϬϵϲŵϮнŶϮнϮϱϲϬ ϰϬϵϲŵϮнŶϮнϭϳϵϮ ϰϬϵϲŵϮнŶϮнϮϬϰϴ Ϯ 図 4.7: 216 -FFT を基数 16 で構成する場合の接続図 ϳ ϲ ϳ ϱ ϲ ϮϱϲŵϭнŶϭнϮϬϴ ϮϱϲŵϭнŶϭнϮϮϰ ϲ ϰ ϱ ϱ ϯ ϮϱϲŵϭнŶϭнϭϳϲ ϮϱϲŵϭнŶϭнϭϵϮ ϰ ϯ ϰ ϯ Ϯ ϮϱϲŵϭнŶϭнϭϰϰ ϮϱϲŵϭнŶϭнϭϲϬ ϭ ϰ ϭ ϭϲŶŝнϵ ϭϲŶŝнϭϬ ϮϱϲŵϭнŶϭнϭϭϮ ϮϱϲŵϭнŶϭнϭϮϴ ϭ ϭ ϭ ϯ ϭ ϭ ϭ ϯ ϭ ϭ ϭ ϭ ϯ ϭ ϭϲŶŝнϳ ϭϲŶŝнϴ ϭ ϭ ϭ ϭ ϭ ϭ ƐƚĂŐĞϮ Ϭ ϭ Ϯ Ϯ ϰϬϵϲŵϮнŶϮнϭϮϴϬ ϰϬϵϲŵϮнŶϮнϭϱϯϲ ϭ Ϯ Ϯ ϮϱϲŵϭнŶϭнϴϬ ϮϱϲŵϭнŶϭнϵϲ ϭ ϭ ϭ ϭ ϭ Ϯ Ϯ ϭ ϭ ϭ ϭ ϭ Ϯ Ϯ Ϯ Ϯ Ϯ Ϯ ϭ ϭ ϭϲŶŝнϱ ϭϲŶŝнϲ Ϯ Ϯ Ϯ Ϯ ϭ ϭ Ϯ Ϭ ϭ ϭ ϰϬϵϲŵϮнŶϮнϳϲϴ ϰϬϵϲŵϮнŶϮнϭϬϮϰ Ϭ Ϯ Ϯ Ϯ Ϯ Ϯ Ϯ Ϯ ἢἑἧἻỶም֥ ϭ ϭ Ϯ ϭ Ϯ Ϯ Ϯ Ϯ ϭ Ϯ ϭϲŶŝнϯ ϭϲŶŝнϰ ϮϱϲŵϭнŶϭнϰϴ ϮϱϲŵϭнŶϭнϲϰ Ϭ Ϭ Ϭ ϰϬϵϲŵϮнŶϮнϮϱϲ ϰϬϵϲŵϮнŶϮнϱϭϮ Ϭ Ϭ ϮϱϲŵϭнŶϭнϭϲ ϮϱϲŵϭнŶϭнϯϮ Ϭ ϭϲŶŝнϭ ϭϲŶŝнϮ Ϯ Ϯ Ϯ Ϯ Ϯ Ϯ Ϯ ϭ ϭ Ϭ ϰϬϵϲŵϮнŶϮнϬ ϮϱϲŵϭнŶϭнϬ ƐƚĂŐĞϭϬ ƐƚĂŐĞϭϭ ϭϲŶŝнϬ ƐƚĂŐĞϵ Ϯ ƐƚĂŐĞϴ ϯ ϯ ϯ ϯ ϯ Ϯ ƐƚĂŐĞϳ ϯ ϯ ϯ ϯ ϯ ϯ ƐƚĂŐĞϲ ϯ ϯ ϯ ϯ ƐƚĂŐĞϱ ϯ ϯ ϯ ϯ ϯ ϯ ƐƚĂŐĞϰ ϯ ϯ ƐƚĂŐĞϯ ϯ ϯ ϯ ϯ ϯ ϯ ϯ Ϯ Ϯ 23 ϯ ƐƚĂŐĞϮ ϯ ϯ ƐƚĂŐĞϭ Ž ƐƚĂŐĞϬ dƌĂŶƐƉŽƐŝƚŝŽŶ 4.3.3 オーバラップ FFT 小さな基数の組み合わせで大きな基数の FFT を構成する手法だけでは,性能の低い FPGA においてリアルタイム予測を行うことができない.そこで本研究では,性能の低い FPGA においてもリアルタイム予測を行うために,FFT の FPGA 実装の手法として,オーバラッ プ FFT を用いる.オーバラップ FFT は,図 4.9 に示すように,標本化された信号データを オーバラップして取り込み,FFT 処理を行う手法である.この手法を用いることでオーバ ラップしない場合と比べて,バタフライ演算の回数を減らしつつ,周波数分解能を上げる ことが可能になり,精度の向上を図ることができる.オーバラップ処理を行う 1 つ 1 つの FFT の基数とオーバラップ率を上げることによって精度向上が可能になるが,一方で演算 量が増加するため,そのトレードオフを慎重に考慮する必要がある [29][34]. 図 4.9: オーバラップ FFT の概念図 [35] 4.3.4 実装結果 1 つの FPGA 上に実装できる FFT の基数の最大は 16 である [29].よって本研究では,2FFT,4-FFT,8-FFT,16-FFT を組み合わせ回路で実装した.図 4.10 に各基数の遅延,最大 動作周波数及びスループットを示す.図 4.11 に Altera Stratix V 5SGXEA7K2 FPGA の回路 規模,図 4.12 に Altera Stratix III EP3SE260 FPGA の回路規模,図 4.13 に Altera Cyclone IV 4CE115 FPGA の回路規模をそれぞれ示す. 24 இٻѣ˺ԗඬૠ /*\ ǹȫȸȗȃȈ )DRU ǹ ȫ ȗ ȃ Ȉ ᶌ ࡨ ȷ இ ٻ ѣ ˺ ԗ ඬ ૠ ࡨ PU ؕૠ 図 4.10: 遅延/最大動作周波数/スループット . ' ૠ .'ૠ 8CTKCDNGRTGEKUKQP &52DNQEM ؕૠ 8 C T K & DC 5 N 2G DR N Q GT EE M K U K Q P 図 4.11: Altera Stratix V 5SGXEA7K FPGA 回路規模 .'ૠ &52DNQEM DKVGNGOGPVU . ' ૠ ؕૠ 図 4.12: Altera Stratix III EP3SE260 FPGA 回路規模 25 D & K 5 V 2 GN DN GQ O E GM P V U . ' ૠ .'ૠ 'ODGFFGF /WNVKRNKGTDKV ؕૠ / W N V K ' RO N D K G GF T F G F D K V 図 4.13: Altera Cyclone IV 4CE115 FPGA 回路規模 図 4.10 において,基数が大きくなればなるほど段数が増加するため遅延が増加し最大動 作周波数が低下する.しかし,一回の演算で演算できる点数が増加するためスループット は向上する.図 4.11,図 4.12,図 4.13 において,基数が 16 の際,全てのターゲット FPGA において,搭載している DSP Block の数を超えてしまうため,その分を LE で補って実装し ている.一方,Stratix の方が Cyclone に比べて使用 LE 数が多いのは,Stratix と Cyclone で は LE の構造が異なっており,Stratix の LE では,効率的に実装できていないことが原因と して考えられる. 次に,オーバラップ率と演算時間のトレードオフについて検討する.表 4.5 にオーバラッ プ率を変化させた場合の演算時間を基数毎に示す.オーバラップせずに 216 -FFT を基数 16 で構成した場合の演算時間見積もりは,1.403ms である.表 4.5 において,赤く塗りつぶし た組み合わせは 216 -FFT をオーバラップせずに計算した場合よりも計算時間のかかる組み 合わせとなる. 26 表 4.5: オーバラップ率毎の演算時間 ǪȸȐ ȩȃȗྙ Ϭ͘ϬϬй ųؕૠ ϲ͘Ϯϱй ϭϮ͘ϱϬй ϭϴ͘ϳϱй Ϯϱ͘ϬϬй ϯϭ͘Ϯϱй ϯϳ͘ϱϬй ϰϯ͘ϳϱй 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 Ϯ ϭ͘ϳϰϳŵƐ ϰ Ϭ͘ϲϲϯŵƐ ϴ Ϭ͘ϰϴϴŵƐ ϭϲ Ϭ͘ϯϱϭŵƐ Ϭ͘ϯϳϰŵƐ Ϭ͘ϰϬϭŵƐ Ϭ͘ϰϯϮŵƐ Ϭ͘ϰϲϴŵƐ Ϭ͘ϱϭϬŵƐ Ϭ͘ϱϲϭŵƐ Ϭ͘ϲϮϰŵƐ Ϭ͘ϱϱϴŵƐ Ϭ͘ϴϴϰŵƐ Ϭ͘ϲϱϭŵƐ ϱϬ͘ϬϬй ϱϲ͘Ϯϱй ϲϮ͘ϱϬй ϲϴ͘ϳϱй ϳϱ͘ϬϬй ϴϭ͘Ϯϱй ϴϳ͘ϱϬй 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 䠉 ϭ͘ϯϮϲŵƐ Ϭ͘ϵϳϲŵƐ ϭ͘ϯϬϮŵƐ Ϯ͘ϲϱϭŵƐ ϭ͘ϵϱϯŵƐ ϯ͘ϵϬϱŵƐ Ϭ͘ϳϴϭŵƐ ϵϯ͘ϳϱй ϭϬϬ͘ϬϬй 䠉 䠉 䠉 Ϭ͘ϳϬϮŵƐ Ϭ͘ϴϬϮŵƐ Ϭ͘ϵϯϱŵƐ ϭ͘ϭϮϮŵƐ ϭ͘ϰϬϯŵƐ ϭ͘ϴϳϭŵƐ Ϯ͘ϴϬϲŵƐ ϱ͘ϲϭϯŵƐ 䠉 䠉 䠉 䠉 4.4 分布保存/順列比較 4.4.1 マージソート 点数の多いデータをソフトウェア処理でソートする際,一般的にはクイックソートを用 いる.しかしクイックソートは,プロセッサの再帰的処理の特性を利用したソート方法で あるため,FPGA 実装には適さないことが示されている [36].そこで本研究では,マージ ソート回路の FPGA 実装を行う [37]. マージソートの概要を図 4.14 に示す.マージソートは,並べ替えたい配列を再帰的に分 割していき,再び併合(マージ)していくことで,並び替えを実現するソートアルゴリズ ムであり,マージソートの計算量のオーダは,O(N log(N )) となる.本研究で実装したマー ジソートのブロック図を図 4.15,その信号リストを表 4.6 にそれぞれ示す. 27 図 4.14: マージソート概要図 [38] ϯϮ λщȇȸǿ ൔ᠋֥ ϭϲ ůŽĐŬZD ϯϮďŝƚgϲϱϱϯϲǁŽƌĚƐ ZĞĂĚͬtƌŝƚĞĂĚĚƌĞƐƐ ZĞĂĚͬtƌŝƚĞƐǁŝƚĐŚŝŶŐ ൔ᠋ׅែ ;Ӎ ŽƌᲶͿ ϯϮ Јщȇȸǿ 図 4.15: マージソート回路のブロック図 表 4.6: マージソート回路の信号リスト ̮ӭӸ λщȇȸǿ ZĞĂĚͬtƌŝƚĞ ĂĚĚƌĞƐƐ ZĞĂĚͬtƌŝƚĞ ƐǁŝƚĐŚŝŶŐ Јщȇȸǿ /K / K ȓȃȈૠ ͳᎋ ϯϮ ůŽĐŬZDǑǓλщƞǕǔȇȸǿ ൔ᠋֥ǑǓਦܭƞǕǔůŽĐŬZD ϭϲ ƷǢȉȬǹ K ϭ ദƷtƌŝƚĞͬƷZĞĂĚ K ϯϮ ůŽĐŬZDƴƖᡂLJǕǔȇȸǿ マージソート回路では,2 つの数値を比較して順番を入れ替える演算器を比較器と定義 する.比較器は,比較する入力データのアドレスを一つずつ Block RAM に送信し,Block RAM からのデータを受けとる.Read/Write switching の値は負である.大小比較の結果に 基づいて,比較器の指定するアドレスに,2 つのデータをそれぞれ書き込む.Read/Write 28 switching の値は正である.マージソートは以上の操作を繰り返しマージする際のデータを 入れ替えていくことでデータをソートする.なお,本研究ではデータを昇順でソートする. 比較器の個数を増やすことで,データソートを並列に行うことができるため,高速化を図 ることができる.しかしその比較器の個数分,回路規模が増加するため,比較器の個数と 回路規模がトレードオフとなる. 4.4.2 実装結果 まず,比較器の個数と回路規模のトレードオフの検討を行うため,比較器の個数を増や した際の LE とレジスタ数の増加について検討を行った.ターゲットデバイス毎の回路規模 を図 4.16,図 4.17,図 4.18 にそれぞれ示す.次に,比較器の個数を増やした際の演算時間 について,動作周波数毎に見積もった.比較器数毎の演算時間を図 4.19 に示す. . ' Ϯ͕ϬϬϬ͕ϬϬϬ ϭ͕ϵϬϬ͕ϬϬϬ ϭ͕ϴϬϬ͕ϬϬϬ ϭ͕ϳϬϬ͕ϬϬϬ ϭ͕ϲϬϬ͕ϬϬϬ ϭ͕ϱϬϬ͕ϬϬϬ ϭ͕ϰϬϬ͕ϬϬϬ ϭ͕ϯϬϬ͕ϬϬϬ ϭ͕ϮϬϬ͕ϬϬϬ ϭ͕ϭϬϬ͕ϬϬϬ ϭ͕ϬϬϬ͕ϬϬϬ ϵϬϬ͕ϬϬϬ ϴϬϬ͕ϬϬϬ ϳϬϬ͕ϬϬϬ ϲϬϬ͕ϬϬϬ ϱϬϬ͕ϬϬϬ ϰϬϬ͕ϬϬϬ ϯϬϬ͕ϬϬϬ ϮϬϬ͕ϬϬϬ ϭϬϬ͕ϬϬϬ Ϭ ϮϰϬ͕ϬϬϬ ϮϭϬ͕ϬϬϬ ϭϴϬ͕ϬϬϬ ϭϱϬ͕ϬϬϬ ϭϮϬ͕ϬϬϬ ϵϬ͕ϬϬϬ ϲϬ͕ϬϬϬ ϯϬ͕ϬϬϬ Ϭ ϴ͕ϬϬϬ ϳ͕ϬϬϬ ϲ͕ϬϬϬ ϱ͕ϬϬϬ ϰ͕ϬϬϬ ϯ͕ϬϬϬ Ϯ͕ϬϬϬ ϭ͕ϬϬϬ Ϭ ϭ Ϯ ϰ ϴ ϭϲ ൔ᠋֥̾ૠ ȬǸǹǿૠ ͗ϱϭϮ >͗ϯ͕ϳϱϲ͕ϬϯϮ ͗ϵϴ͕ϯϬϰ ϯϮ ůƚĞƌĂ^ƚƌĂƚŝdžs ϱ^'yϳ<Ϯ&W'ůŝŵŝƚ ൔ᠋֥̾ૠ ȬǸǹǿૠ > ȬǸǹǿૠ ͗ϭ͕ϬϮϰ >͗ϳ͕ϱϭϮ͕Ϭϲϰ ͗ϭϵϲ͕ϲϬϴ ϭ Ϯ ϰ ϴ ϭϲ ϯϮ ൔ᠋֥̾ૠ ϲϰ ϭϮϴ Ϯϱϲ ϱϭϮ ϭ͕ϬϮϰ 図 4.16: Altera Stratix V 5SGXEA7K FPGA 回路規模 29 ϭϬϬ͕ϬϬϬ ϵϱ͕ϬϬϬ ϵϬ͕ϬϬϬ ϴϱ͕ϬϬϬ ϴϬ͕ϬϬϬ ϳϱ͕ϬϬϬ ϳϬ͕ϬϬϬ ϲϱ͕ϬϬϬ ϲϬ͕ϬϬϬ ϱϱ͕ϬϬϬ ϱϬ͕ϬϬϬ ϰϱ͕ϬϬϬ ϰϬ͕ϬϬϬ ϯϱ͕ϬϬϬ ϯϬ͕ϬϬϬ Ϯϱ͕ϬϬϬ ϮϬ͕ϬϬϬ ϭϱ͕ϬϬϬ ϭϬ͕ϬϬϬ ϱ͕ϬϬϬ Ϭ Ȭ Ǹ ǹ ǿ ૠ . ' Ϯ͕ϬϬϬ͕ϬϬϬ ϭ͕ϵϬϬ͕ϬϬϬ ϭ͕ϴϬϬ͕ϬϬϬ ϭ͕ϳϬϬ͕ϬϬϬ ϭ͕ϲϬϬ͕ϬϬϬ ϭ͕ϱϬϬ͕ϬϬϬ ϭ͕ϰϬϬ͕ϬϬϬ ϭ͕ϯϬϬ͕ϬϬϬ ϭ͕ϮϬϬ͕ϬϬϬ ϭ͕ϭϬϬ͕ϬϬϬ ϭ͕ϬϬϬ͕ϬϬϬ ϵϬϬ͕ϬϬϬ ϴϬϬ͕ϬϬϬ ϳϬϬ͕ϬϬϬ ϲϬϬ͕ϬϬϬ ϱϬϬ͕ϬϬϬ ϰϬϬ͕ϬϬϬ ϯϬϬ͕ϬϬϬ ϮϬϬ͕ϬϬϬ ϭϬϬ͕ϬϬϬ Ϭ > ȬǸǹǿૠ ϭϴϬ͕ϬϬϬ ϭϱϬ͕ϬϬϬ ϭϮϬ͕ϬϬϬ ϵϬ͕ϬϬϬ ϲϬ͕ϬϬϬ ϯϬ͕ϬϬϬ Ϭ ϭ Ϯ ϰ ϴ ϭϲ ϭϮ͕ϬϬϬ ϭϬ͕ϬϬϬ ϴ͕ϬϬϬ ϲ͕ϬϬϬ ϰ͕ϬϬϬ Ϯ͕ϬϬϬ Ϭ ϯϮ ൔ᠋֥̾ૠ ȬǸǹǿૠ ͗ϭ͕ϬϮϰ >͗ϱ͕ϲϬϯ͕ϯϮϴ ͗ϭϵϲ͕ϲϬϴ ůƚĞƌĂ^ƚƌĂƚŝdž/// Wϯ^ϮϲϬ&W'ůŝŵŝƚ ϭ Ϯ ϰ ϴ ϭϲ ϯϮ ൔ᠋֥̾ૠ ϲϰ ϭϮϴ Ϯϱϲ ϱϭϮ ϭ͕ϬϮϰ ϭϬϬ͕ϬϬϬ ϵϱ͕ϬϬϬ ϵϬ͕ϬϬϬ ϴϱ͕ϬϬϬ ϴϬ͕ϬϬϬ ϳϱ͕ϬϬϬ ϳϬ͕ϬϬϬ ϲϱ͕ϬϬϬ ϲϬ͕ϬϬϬ ϱϱ͕ϬϬϬ ϱϬ͕ϬϬϬ ϰϱ͕ϬϬϬ ϰϬ͕ϬϬϬ ϯϱ͕ϬϬϬ ϯϬ͕ϬϬϬ Ϯϱ͕ϬϬϬ ϮϬ͕ϬϬϬ ϭϱ͕ϬϬϬ ϭϬ͕ϬϬϬ ϱ͕ϬϬϬ Ϭ Ȭ Ǹ ǹ ǿ ૠ ϭϬϬ͕ϬϬϬ ϵϱ͕ϬϬϬ ϵϬ͕ϬϬϬ ϴϱ͕ϬϬϬ ϴϬ͕ϬϬϬ ϳϱ͕ϬϬϬ ϳϬ͕ϬϬϬ ϲϱ͕ϬϬϬ ϲϬ͕ϬϬϬ ϱϱ͕ϬϬϬ ϱϬ͕ϬϬϬ ϰϱ͕ϬϬϬ ϰϬ͕ϬϬϬ ϯϱ͕ϬϬϬ ϯϬ͕ϬϬϬ Ϯϱ͕ϬϬϬ ϮϬ͕ϬϬϬ ϭϱ͕ϬϬϬ ϭϬ͕ϬϬϬ ϱ͕ϬϬϬ Ϭ Ȭ Ǹ ǹ ǿ ૠ 図 4.17: Altera Stratix III EP3SE260 FPGA 回路規模 . ' Ϯ͕ϬϬϬ͕ϬϬϬ ϭ͕ϵϬϬ͕ϬϬϬ ϭ͕ϴϬϬ͕ϬϬϬ ϭ͕ϳϬϬ͕ϬϬϬ ϭ͕ϲϬϬ͕ϬϬϬ ϭ͕ϱϬϬ͕ϬϬϬ ϭ͕ϰϬϬ͕ϬϬϬ ϭ͕ϯϬϬ͕ϬϬϬ ϭ͕ϮϬϬ͕ϬϬϬ ϭ͕ϭϬϬ͕ϬϬϬ ϭ͕ϬϬϬ͕ϬϬϬ ϵϬϬ͕ϬϬϬ ϴϬϬ͕ϬϬϬ ϳϬϬ͕ϬϬϬ ϲϬϬ͕ϬϬϬ ϱϬϬ͕ϬϬϬ ϰϬϬ͕ϬϬϬ ϯϬϬ͕ϬϬϬ ϮϬϬ͕ϬϬϬ ϭϬϬ͕ϬϬϬ Ϭ > ȬǸǹǿૠ LJĐůŽŶĞ/sϰϭϭϱ&W'ůŝŵŝƚ ϭϮϬ͕ϬϬϬ ϭϬϬ͕ϬϬϬ ϴϬ͕ϬϬϬ ϲϬ͕ϬϬϬ ϰϬ͕ϬϬϬ ϮϬ͕ϬϬϬ Ϭ ϭ Ϯ ϰ ϴ ϭϮ͕ϬϬϬ ϭϬ͕ϬϬϬ ϴ͕ϬϬϬ ϲ͕ϬϬϬ ϰ͕ϬϬϬ Ϯ͕ϬϬϬ Ϭ ϭϲ ϯϮ ൔ᠋֥̾ૠ ȬǸǹǿૠ ͗ϭ͕ϬϮϰ >͗ϯ͕ϲϯϴ͕ϮϳϮ ͗ϭϵϲ͕ϲϬϴ LJĐůŽŶĞ/sϰϭϭϱ&W'ůŝŵŝƚ ϭ Ϯ ϰ ϴ ϭϲ ϯϮ ൔ᠋֥̾ૠ ϲϰ ϭϮϴ Ϯϱϲ ϱϭϮ ϭ͕ϬϮϰ 図 4.18: Altera Cyclone IV 4CE115 FPGA 回路規模 30 ϭ͘Ϭ Ϭ͘ϵ Ϭ͘ϴ ϯϬ ϭϮϱD,nj Ϯϰ ም ᧓ᶝ ᶞ Ɛ Ϭ͘ϳ ϱϬD,nj Ϯϳ Ϯϭ ϭϴ Ϭ͘ϲ Ϭ͘ϱ ϮϬϬD,nj Ϭ͘ϰ ϴϬϬD,nj Ϭ͘ϯ Ϭ͘Ϯ ϭϱ Ϭ͘ϭ ϭϮ Ϭ͘Ϭ ϵ ZĞĂůdŝŵĞ ϯϮ ϲϰ ϭϮϴ Ϯϱϲ ϱϭϮ ϭ͕ϬϮϰ ϲ ϯ Ϭ ϭ Ϯ ϰ ϴ ϭϲ ϯϮ ൔ᠋֥̾ૠ ϲϰ ϭϮϴ Ϯϱϲ ϱϭϮ ϭ͕ϬϮϰ 図 4.19: 比較器数毎の演算時間 実装の結果,Stratix V では比較器数 64 個以下,Stratix III では比較器数 32 個以下,Cyclone IV では比較器数 16 個以下であれば 1 つの FPGA 上に実装できることが分かった.また,比 較器の個数が 4 個以上あれば,50MHz 以上で動作する FPGA であれば,リアルタイム処理 が可能なことが分かった. 4.5 IAAFT サロゲート法の FPGA 設計 本章で述べた,IAAFT サロゲート法の FPGA 設計についてまとめる.まず,為替レート 変動予測システムのリアルタイム処理を実現するためには,IAAFT サロゲート法の演算時 間を 7.67 秒以内で行う必要がある.それぞれのターゲット FPGA で,リアルタイム処理が 可能な構成例の演算時間と回路規模を表 4.7,表 4.8,表 4.9 に示す. 31 表 4.7: Stratix V 実装構成案(動作周波数:125MHz) >ͬϼྸ᧓ &&dؕૠ ųųų; Ϳ ൔ᠋֥ ̾ૠ ǪȸȐ ȩȃȗྙ ϰ ϴ ϭϲ ϯϮ ϲϰ ϰͲ&&d ;ϬйͿ ϰͲ&&d ;ϮϱйͿ ϰͲ&&d ;ϱϬйͿ ϰͲ&&d ;ϳϱйͿ ϴͲ&&d ;ϬйͿ ϯϭ͕ϵϵϱ>ͬϲ͘ϯϭϱƐ ϯϭ͕ϵϵϱ>ͬϳ͘ϱϱϴƐ ϯϭ͕ϵϵϱ>ͬϭϬ͘ϬϰϱƐ ϯϭ͕ϵϵϱ>ͬϭϳ͘ϱϬϱƐ ϰϱ͕ϳϯϴ>ͬϱ͘ϯϯϮƐ ϲϭ͕ϯϯϵ>ͬϱ͘ϬϮϯƐ ϲϭ͕ϯϯϵ>ͬϲ͘ϮϲϲƐ ϲϭ͕ϯϯϵ>ͬϴ͘ϳϱϯƐ ϲϭ͕ϯϯϵ>ͬϭϲ͘ϮϭϰƐ ϳϱ͕ϬϴϮ>ͬϰ͘ϬϰƐ ϭϮϬ͕ϬϮϳ>ͬϰ͘ϯϳϴƐ ϭϮϬ͕ϬϮϳ>ͬϱ͘ϲϮϭƐ ϭϮϬ͕ϬϮϳ>ͬϴ͘ϭϬϴƐ ϭϮϬ͕ϬϮϳ>ͬϭϱ͘ϱϲϴƐ ϭϯϯ͕ϳϳϬ>ͬϯ͘ϯϵϱƐ Ϯϯϳ͕ϰϬϯ>ͬϰ͘ϬϱϱƐ Ϯϯϳ͕ϰϬϯ>ͬϱ͘ϮϵϴƐ Ϯϯϳ͕ϰϬϯ>ͬϳ͘ϳϴϱƐ Ϯϯϳ͕ϰϬϯ>ͬϭϱ͘ϮϰϱƐ Ϯϱϭ͕ϭϰϲ>ͬϯ͘ϬϳϮƐ ϰϳϮ͕ϭϱϱ>ͬϯ͘ϴϵϯƐ ϰϳϮ͕ϭϱϱ>ͬϱ͘ϭϯϳƐ ϰϳϮ͕ϭϱϱ>ͬϳ͘ϲϮϯƐ ϰϳϮ͕ϭϱϱ>ͬϭϱ͘ϬϴϰƐ ϰϴϱ͕ϴϵϴ>ͬϮ͘ϵϭƐ &&dؕૠ ųųų;ǪȸȐ ϴͲ&&d ;ϮϱйͿ ϰϱ͕ϳϯϴ>ͬϲ͘ϮϰϳƐ ϳϱ͕ϬϴϮ>ͬϰ͘ϵϱϲƐ ϭϯϯ͕ϳϳϬ>ͬϰ͘ϯϭƐ Ϯϱϭ͕ϭϰϲ>ͬϯ͘ϵϴϳƐ ϰϴϱ͕ϴϵϴ>ͬϯ͘ϴϮϲƐ ൔ᠋֥ ̾ૠ ȩȃȗྙ Ϳ ϰ ϴ ϭϲ ϯϮ ϲϰ ϴͲ&&d ;ϱϬ͘ϬйͿ ϴͲ&&d ;ϳϱ͘ϬйͿ ϭϲͲ&&d ;ϬйͿ ϭϲͲ&&d ;ϮϱйͿ ϰϱ͕ϳϯϴ>ͬϴ͘ϬϳϵƐ ϳϱ͕ϬϴϮ>ͬϲ͘ϳϴϳƐ ϭϯϯ͕ϳϳϬ>ͬϲ͘ϭϰϮƐ Ϯϱϭ͕ϭϰϲ>ͬϱ͘ϴϭϵƐ ϰϴϱ͕ϴϵϴ>ͬϱ͘ϲϱϳƐ ϰϱ͕ϳϯϴ>ͬϭϯ͘ϱϳϯƐ ϳϱ͕ϬϴϮ>ͬϭϮ͘ϮϴϮƐ ϭϯϯ͕ϳϳϬ>ͬϭϭ͘ϲϯϲƐ Ϯϱϭ͕ϭϰϲ>ͬϭϭ͘ϯϭϰƐ ϰϴϱ͕ϴϵϴ>ͬϭϭ͘ϭϱϮƐ ϭϭϴ͕ϬϯϬ>ͬϰ͘ϱϱϵƐ ϭϰϳ͕ϯϳϰ>ͬϯ͘ϮϲϳƐ ϮϬϲ͕ϬϲϮ>ͬϮ͘ϲϮϮƐ ϯϮϯ͕ϰϯϴ>ͬϮ͘ϮϵϵƐ ϱϱϴ͕ϭϵϬ>ͬϮ͘ϭϯϳƐ ϭϭϴ͕ϬϯϬ>ͬϱ͘ϮϭϲƐ ϭϰϳ͕ϯϳϰ>ͬϯ͘ϵϮϱƐ ϮϬϲ͕ϬϲϮ>ͬϯ͘ϮϳϵƐ ϯϮϯ͕ϰϯϴ>ͬϮ͘ϵϱϲƐ ϱϱϴ͕ϭϵϬ>ͬϮ͘ϳϵϱƐ ϭϲͲ&&d ;ϱϬйͿ ϭϲͲ&&d ;ϳϱйͿ ϭϭϴ͕ϬϯϬ>ͬϲ͘ϱϯϮƐ ϭϭϴ͕ϬϯϬ>ͬϭϬ͘ϰϴϭƐ ϭϰϳ͕ϯϳϰ>ͬϱ͘ϮϰϭƐ ϭϰϳ͕ϯϳϰ>ͬϵ͘ϭϵƐ ϮϬϲ͕ϬϲϮ>ͬϰ͘ϱϵϱƐ ϮϬϲ͕ϬϲϮ>ͬϴ͘ϱϰϰƐ ϯϮϯ͕ϰϯϴ>ͬϰ͘ϮϳϮƐ ϯϮϯ͕ϰϯϴ>ͬϴ͘ϮϮϭƐ ϱϱϴ͕ϭϵϬ>ͬϰ͘ϭϭϭƐ ϱϱϴ͕ϭϵϬ>ͬϴ͘ϬϲƐ ȪǢȫǿǤȠϼྸӧᏡ 表 4.8: Stratix III 実装構成案(動作周波数:50MHz) >ૠͬϼྸ᧓ &&dؕૠ ųųų;ǪȸȐ ൔ᠋֥ ̾ૠ ȩȃȗྙ Ϳ ϰ ϴ ϭϲ ϯϮ ϲϰ ϰͲ&&d ;ϬйͿ ϰͲ&&d ;ϮϱйͿ ϰͲ&&d ;ϱϬйͿ ϰͲ&&d ;ϳϱйͿ ϴͲ&&d ;ϬйͿ ϯϬ͕ϯϯϵ>ͬϭϬ͘ϭϵƐ ϯϬ͕ϯϯϵ>ͬϭϭ͘ϰϯϰƐ ϯϬ͕ϯϯϵ>ͬϭϯ͘ϵϮƐ ϯϬ͕ϯϯϵ>ͬϮϭ͘ϯϴϭƐ ϯϰ͕ϲϴϳ>ͬϵ͘ϮϬϳƐ ϱϵ͕ϲϴϯ>ͬϲ͘ϵϲϮƐ ϱϵ͕ϲϴϯ>ͬϴ͘ϮϬϱƐ ϱϵ͕ϲϴϯ>ͬϭϬ͘ϲϵϮƐ ϱϵ͕ϲϴϯ>ͬϭϴ͘ϭϱϯƐ ϲϰ͕Ϭϯϭ>ͬϱ͘ϵϳϵƐ ϭϭϴ͕ϯϳϭ>ͬϱ͘ϯϰϴƐ ϭϭϴ͕ϯϳϭ>ͬϲ͘ϱϵϭƐ ϭϭϴ͕ϯϳϭ>ͬϵ͘ϬϳϴƐ ϭϭϴ͕ϯϳϭ>ͬϭϲ͘ϱϯϴƐ ϭϮϮ͕ϳϭϵ>ͬϰ͘ϯϲϱƐ Ϯϯϱ͕ϳϰϳ>ͬϰ͘ϱϰϭƐ Ϯϯϱ͕ϳϰϳ>ͬϱ͘ϳϴϰƐ Ϯϯϱ͕ϳϰϳ>ͬϴ͘ϮϳϭƐ Ϯϯϱ͕ϳϰϳ>ͬϭϱ͘ϳϯϭƐ ϮϰϬ͕Ϭϵϱ>ͬϯ͘ϱϱϴƐ ϰϳϬ͕ϰϵϵ>ͬϰ͘ϭϯϳƐ ϰϳϬ͕ϰϵϵ>ͬϱ͘ϯϴƐ ϰϳϬ͕ϰϵϵ>ͬϳ͘ϴϲϳƐ ϰϳϬ͕ϰϵϵ>ͬϭϱ͘ϯϮϴƐ ϰϳϰ͕ϴϰϳ>ͬϯ͘ϭϱϰƐ &&dؕૠ ųųų;ǪȸȐ ϴͲ&&d ;ϮϱйͿ ϯϰ͕ϲϴϳ>ͬϭϬ͘ϭϮϯƐ ϲϰ͕Ϭϯϭ>ͬϲ͘ϴϵϰƐ ϭϮϮ͕ϳϭϵ>ͬϱ͘ϮϴƐ ϮϰϬ͕Ϭϵϱ>ͬϰ͘ϰϳϯƐ ϰϳϰ͕ϴϰϳ>ͬϰ͘ϬϳƐ ൔ᠋֥ ̾ૠ ϰ ϴ ϭϲ ϯϮ ϲϰ ȩȃȗྙ Ϳ ϴͲ&&d ;ϱϬ͘ϬйͿ ϴͲ&&d ;ϳϱ͘ϬйͿ ϭϲͲ&&d ;ϬйͿ ϭϲͲ&&d ;ϮϱйͿ ϭϲͲ&&d ;ϱϬйͿ ϭϲͲ&&d ;ϳϱйͿ ϯϰ͕ϲϴϳ>ͬϭϭ͘ϵϱϰƐ ϲϰ͕Ϭϯϭ>ͬϴ͘ϳϮϲƐ ϭϮϮ͕ϳϭϵ>ͬϳ͘ϭϭϮƐ ϮϰϬ͕Ϭϵϱ>ͬϲ͘ϯϬϱƐ ϰϳϰ͕ϴϰϳ>ͬϱ͘ϵϬϭƐ ϯϰ͕ϲϴϳ>ͬϭϳ͘ϰϰϵƐ ϲϰ͕Ϭϯϭ>ͬϭϰ͘ϮϮϭƐ ϭϮϮ͕ϳϭϵ>ͬϭϮ͘ϲϬϲƐ ϮϰϬ͕Ϭϵϱ>ͬϭϭ͘ϳϵϵƐ ϰϳϰ͕ϴϰϳ>ͬϭϭ͘ϯϵϲƐ ϳϬ͕ϰϬϭ>ͬϴ͘ϰϯϰƐ ϵϵ͕ϳϰϱ>ͬϱ͘ϮϬϲƐ ϭϱϴ͕ϰϯϯ>ͬϯ͘ϱϵϮƐ Ϯϳϱ͕ϴϬϵ>ͬϮ͘ϳϴϰƐ ϱϭϬ͕ϱϲϭ>ͬϮ͘ϯϴϭƐ ϳϬ͕ϰϬϭ>ͬϵ͘ϬϵϮƐ ϵϵ͕ϳϰϱ>ͬϱ͘ϴϲϯƐ ϭϱϴ͕ϰϯϯ>ͬϰ͘ϮϰϵƐ Ϯϳϱ͕ϴϬϵ>ͬϯ͘ϰϰϮƐ ϱϭϬ͕ϱϲϭ>ͬϯ͘ϬϯϵƐ ϳϬ͕ϰϬϭ>ͬϭϬ͘ϰϬϴƐ ϵϵ͕ϳϰϱ>ͬϳ͘ϭϴƐ ϭϱϴ͕ϰϯϯ>ͬϱ͘ϱϲϱƐ Ϯϳϱ͕ϴϬϵ>ͬϰ͘ϳϱϴƐ ϱϭϬ͕ϱϲϭ>ͬϰ͘ϯϱϱƐ ϳϬ͕ϰϬϭ>ͬϭϰ͘ϯϱϳƐ ϵϵ͕ϳϰϱ>ͬϭϭ͘ϭϮϴƐ ϭϱϴ͕ϰϯϯ>ͬϵ͘ϱϭϰƐ Ϯϳϱ͕ϴϬϵ>ͬϴ͘ϳϬϳƐ ϱϭϬ͕ϱϲϭ>ͬϴ͘ϯϬϯƐ ȪǢȫǿǤȠϼྸӧᏡ 32 表 4.9: Cyclone IV 実装構成案(動作周波数:50MHz) >ૠͬϼྸ᧓ &&dؕૠ ųųų;ǪȸȐ ൔ᠋֥ ̾ૠ ȩȃȗྙ Ϳ ϰ ϴ ϭϲ ϯϮ ϲϰ ϰͲ&&d ;ϬйͿ ϰͲ&&d ;ϮϱйͿ ϰͲ&&d ;ϱϬйͿ ϰͲ&&d ;ϳϱйͿ ϴͲ&&d ;ϬйͿ ϭϱ͕ϯϮϱ>ͬϲ͘ϯϭϱƐ ϭϱ͕ϯϮϱ>ͬϳ͘ϱϱϴƐ ϭϱ͕ϯϮϱ>ͬϭϬ͘ϬϰϱƐ ϭϱ͕ϯϮϱ>ͬϭϳ͘ϱϬϱƐ ϭϴ͕ϱϳϳ>ͬϱ͘ϯϯϮƐ Ϯϵ͕ϱϯϳ>ͬϱ͘ϬϮϯƐ Ϯϵ͕ϱϯϳ>ͬϲ͘ϮϲϲƐ Ϯϵ͕ϱϯϳ>ͬϴ͘ϳϱϯƐ Ϯϵ͕ϱϯϳ>ͬϭϲ͘ϮϭϰƐ ϯϮ͕ϳϴϵ>ͬϰ͘ϬϰƐ ϱϳ͕ϵϲϭ>ͬϰ͘ϯϳϴƐ ϱϳ͕ϵϲϭ>ͬϱ͘ϲϮϭƐ ϱϳ͕ϵϲϭ>ͬϴ͘ϭϬϴƐ ϱϳ͕ϵϲϭ>ͬϭϱ͘ϱϲϴƐ ϲϭ͕Ϯϭϯ>ͬϯ͘ϯϵϱƐ ϭϭϰ͕ϴϬϵ>ͬϰ͘ϬϱϱƐ ϭϭϰ͕ϴϬϵ>ͬϱ͘ϮϵϴƐ ϭϭϰ͕ϴϬϵ>ͬϳ͘ϳϴϱƐ ϭϭϰ͕ϴϬϵ>ͬϭϱ͘ϮϰϱƐ ϭϭϴ͕Ϭϲϭ>ͬϯ͘ϬϳϮƐ ϮϮϴ͕ϱϬϱ>ͬϯ͘ϴϵϯƐ ϮϮϴ͕ϱϬϱ>ͬϱ͘ϭϯϳƐ ϮϮϴ͕ϱϬϱ>ͬϳ͘ϲϮϯƐ ϮϮϴ͕ϱϬϱ>ͬϭϱ͘ϬϴϰƐ Ϯϯϭ͕ϳϱϳ>ͬϮ͘ϵϭƐ &&dؕૠ ųųų;ǪȸȐ ϴͲ&&d ;ϮϱйͿ ϭϴ͕ϱϳϳ>ͬϲ͘ϮϰϳƐ ϯϮ͕ϳϴϵ>ͬϰ͘ϵϱϲƐ ϲϭ͕Ϯϭϯ>ͬϰ͘ϯϭƐ ϭϭϴ͕Ϭϲϭ>ͬϯ͘ϵϴϳƐ Ϯϯϭ͕ϳϱϳ>ͬϯ͘ϴϮϲƐ ൔ᠋֥ ̾ૠ ϰ ϴ ϭϲ ϯϮ ϲϰ ȩȃȗྙ Ϳ ϴͲ&&d ;ϱϬ͘ϬйͿ ϴͲ&&d ;ϳϱ͘ϬйͿ ϭϲͲ&&d ;ϬйͿ ϭϲͲ&&d ;ϮϱйͿ ϭϲͲ&&d ;ϱϬйͿ ϭϲͲ&&d ;ϳϱйͿ ϭϴ͕ϱϳϳ>ͬϴ͘ϬϳϵƐ ϯϮ͕ϳϴϵ>ͬϲ͘ϳϴϳƐ ϲϭ͕Ϯϭϯ>ͬϲ͘ϭϰϮƐ ϭϭϴ͕Ϭϲϭ>ͬϱ͘ϴϭϵƐ Ϯϯϭ͕ϳϱϳ>ͬϱ͘ϲϱϳƐ ϭϴ͕ϱϳϳ>ͬϭϯ͘ϱϳϯƐ ϯϮ͕ϳϴϵ>ͬϭϮ͘ϮϴϮƐ ϲϭ͕Ϯϭϯ>ͬϭϭ͘ϲϯϲƐ ϭϭϴ͕Ϭϲϭ>ͬϭϭ͘ϯϭϰƐ Ϯϯϭ͕ϳϱϳ>ͬϭϭ͘ϭϱϮƐ Ϯϱ͕ϯϮϳ>ͬϰ͘ϱϱϵƐ ϯϵ͕ϱϯϵ>ͬϯ͘ϮϲϳƐ ϲϳ͕ϵϲϯ>ͬϮ͘ϲϮϮƐ ϭϮϰ͕ϴϭϭ>ͬϮ͘ϮϵϵƐ Ϯϯϴ͕ϱϬϳ>ͬϮ͘ϭϯϳƐ Ϯϱ͕ϯϮϳ>ͬϱ͘ϮϭϲƐ ϯϵ͕ϱϯϵ>ͬϯ͘ϵϮϱƐ ϲϳ͕ϵϲϯ>ͬϯ͘ϮϳϵƐ ϭϮϰ͕ϴϭϭ>ͬϮ͘ϵϱϲƐ Ϯϯϴ͕ϱϬϳ>ͬϮ͘ϳϵϱƐ Ϯϱ͕ϯϮϳ>ͬϲ͘ϱϯϮƐ ϯϵ͕ϱϯϵ>ͬϱ͘ϮϰϭƐ ϲϳ͕ϵϲϯ>ͬϰ͘ϱϵϱƐ ϭϮϰ͕ϴϭϭ>ͬϰ͘ϮϳϮƐ Ϯϯϴ͕ϱϬϳ>ͬϰ͘ϭϭϭƐ Ϯϱ͕ϯϮϳ>ͬϭϬ͘ϰϴϭƐ ϯϵ͕ϱϯϵ>ͬϵ͘ϭϵƐ ϲϳ͕ϵϲϯ>ͬϴ͘ϱϰϰƐ ϭϮϰ͕ϴϭϭ>ͬϴ͘ϮϮϭƐ Ϯϯϴ͕ϱϬϳ>ͬϴ͘ϬϲƐ ȪǢȫǿǤȠϼྸӧᏡ 33 第5章 結論 本研究では FPGA を用いて,リアルタイム為替レート変動予測システムの実装構成案を 示した.まず,為替レート変動予測システムのリアルタイム処理を行うために,高速化が 必要な演算について検討した.ソフトウェアプロファイリングの結果,IAAFT サロゲート 法の高速化がリアルタイム処理に必要であることを示した.そして,IAAFT サロゲート法 を高速に行うために,それぞれを演算要素毎に分けて設計を行い,回路規模・演算速度に ついて評価を行った.FFT・IFFT のオーバラップ率及び比較器の個数のトレードオフにつ いて検討した.最後に,それぞれのターゲット FPGA で IAAFT サロゲート法をリアルタイ ムで実装可能な構成について示した. 今後の研究課題として,様々な期間の為替レート変動データを用いて予測精度の評価を 行い,演算速度だけでなく演算精度を向上させることが挙げられる. 34 謝辞 本研究を行うにあたって,日頃より熱心なご指導とご鞭撻頂いた,高知工科大学大学院 電子・光システム工学コース 密山 幸男准教授に心から感謝致します.また,ご助言を頂く とともに日頃からお世話になりました高知工科大学大学院電子・光システム工学コース 橘 昌良教授,星野 考総准教授に厚くお礼申し上げます. さらに,日頃より有益な議論をさせて頂き,研究内容についてのご助言を賜りました,密 山研究室,橘研究室の皆様に心から感謝致します. 35 参考文献 [1] 日本銀行, 日本銀行における外国為替市場介入事務の概要: “ https://www.boj.or.jp/intl finance/outline/expkainyu.htm/ ”. [2] Lorenz E. N.:“ Deterministic Nonperiodic Flow ”, Journal of Atmospheric Sciences, Vol.20, pp.130-141, 1963 年. [3] 合原 一幸, 五百旗頭 正: “ カオス応用システム ”, 朝倉書店, 1995 年. [4] 山田 泰司, 高橋 純:“ 決定論的カオス理論に基づく時系列解析システム ”, 工業技術社, 月刊「計装」, Vol.40, No. 8, 1997 年. [5] 高木 康順, 秋山 裕, 田中 辰雄 (蓑谷千鳳彦, 廣松毅監修): “ 応用計量経済学 I 第 5 章 「カオス理論の計量分析への応用」”, 多賀出版, 1997 年. [6] Yoshito Hirata, Kazuyuki Aihara:“ Timing matters in foreign exchange markets ”, Physica A: Statistical Mechanics and its Applications, Vol.391, No.3, pp.760-766, 2012 年. [7] 茨城大学工学部知能システム工学科鈴木研究室: “ http://tsuzuki.ise.ibaraki.ac.jp/TS lab/naiyou.html ”. [8] 藤渕 智康: “ ローレンツモデルにおけるカオスの定量的解析 ”, 東京大学学士論文, 2000 年. [9] 大塚 陽介, 鈴木 智也: “ 決定論的ジャンプ課程のシステム同定と長期予測に適したサ ンプリング手法の検討 ”, TOM, Vol.5, No.1, pp.30-39, 2012 年. [10] 原 央樹, 吉田 真一:“ カオス理論による市場予測 ”, 高知工科大学学士学位論文, 2010 年. [11] 吉川 一輝, 高田 宗樹, 松浦 康之, 平田 隆之: “ サロゲート解析を利用した為替レート時 系列解析 ”, 日本物理学会北陸支部定例学術講演会講演予稿集, pp.10, 2011 年. [12] 末吉 敏則, 天野 英晴: “ リコンフィギャラブルシステム ”, オーム社, 2005 年. [13] Schreiber, T. and Schmitz, A.: ”Improved surrogate data for nonlinearity tests ”, Phys. Rev. Lett., Vol.77, pp.635-638, 1996 年. 36 [14] Apo’s 集合知・複雑系の勉強部屋: “ http://socialapo.seesaa.net/article/292286194.html ”. [15] Mikio Hasegawa, Tohru Ikeguchi:“ An Analysis of Network Traffic using Surrogate Data ”, IEICE Technical Report NLP2001-11, pp.39-46, 2001 年. [16] F. Takens : “ Detecting strange attractors in turbulence ”, Lecture Notes in Mathematics, Vol.898, pp.366-381, 1981 年. [17] 五百旗頭 正, 菅家 正康, 藤本 泰成, 鈴木 慎悟: “ カオス的時系列の短期予測のための局 所ファジイ再構成法 ”, 日本ファジイ学会誌, Vol.7, No.1, pp.186-194, 1995 年. [18] 加藤 一男, 本城 勇介, 小尻 利治:“ 局所ファジィ再構成によるレーダ雨量計での降雨量 予測 ”, 土木学会中部支部研究発表会講演概要集, pp191-192, 1997 年. [19] Kaplan James L., and James A. Yorke: “ Chaotic behavior of multidimensional difference equations ”, Functional differential equations and approximation of fixed points, Springer Berlin Heidelberg, pp.204-227, 1979 年. [20] 城 真範, 平田 祥人, 合原 一幸: “ ヴァイオリンの音はカオスか?”, IEICE Technical Report NLP2009-85, pp.23-26, 2009 年. [21] 池口 徹:“非線形時系列解析とサロゲートデータ法”, 物性研究, Vol.91, No.2, pp.144-147, 2008 年. [22] 徳田 功,“ 人間情報処理学特論, ”http://iipl.jaist.ac.jp/ isao/I485F/lecture1.pdf, 北陸先端 科学技術大学情報科学研究科専門講義. [23] 細田 健人, 鈴木 智也, 長谷川 幹雄, 池口 徹:“サロゲートデータ法によるインターネット トラフィックデータの解析 ”, IEICE Technical Report NLP2002-150, pp.83-88, 2003 年. [24] 寳来 俊介, 山田 泰司, 高橋 純, 森川 良行, 小谷 誠,“ 新生児呼吸時系列における定常性 及び予測可能性の解析 ”, T.IEE Japan, Vol.120-C, No.8/9, pp.1076-1085, 2000 年. [25] James Theiler, Stephen Eubank, André Longtin, Bryan Galdrikian, J Doyne Farmer: “ Testing for nonlinearity in time series: the method of surrogate data ”, Physica D, Nonlinear Phenomena, Vol.58, No.1, pp.77-94, 1992 年. [26] 金久保 正明, 静岡理工科大学総合情報学部コンピュータシステム学科・知能インタラ クション研究室, ファジイ推論: “ http://www.sist.ac.jp/ kanakubo/research/reasoning kr/fuzzy.html ”. 37 [27] 加藤 一男, 本城 勇介, 小尻 利治:“ 局所ファジィ再構成によるレーダ雨量計での降雨量 予測 ”, 土木学会中部支部研究発表会講演概要集, pp191-192, 1997 年. [28] Wolf Alan, Swift J. B., Swinney H. L., and Vastano J.A.: “ Determining LE from a time series ”, Physica D, Nonlinear Phenomena, Vol.16, No.3, pp.285-317, 1985 年. [29] 原 浩彰, 密山 幸男:“ 複数 FPGA を用いた FFT の高性能化実装に関する研究 ”, 高知工 科大学学士学位論文, 2012 年. [30] マスワークス公式日本語サイト: “ http://www.mathworks.co.jp/index.html?s tid=gn logo ”. [31] P. Ketthong, W. San-Um, “ A Hardware true random-bit generation system using resistorcapacitor network based chaotic circuit”, The International Electrical Engineering Congress, 2013 年. [32] XILINX Application Note, Product Obsolete/Under Obsolescence: “ http://www.xilinx.com/support/documentation/application notes/xapp052.pdf ”. [33] J. W. Cooley and J.W. Tukey: “ An algorithm for the machine computation of complex fourier series ”, Mathematics of Com-putation, Vol. 19, pp.297-301, 1965 年. [34] 高橋 拓也, 内藤 文博, 梅比良 正弘: “ 機械式駐車場における安全のためのマイクロ波 人感知センサの設計と特性 ”, IEICE Technical Report USN2010-6, pp.25-30, 2010 年. [35] 富岡 多寿子, 佐方 連, 小林 崇裕:“ 自己相関を用いたコグニティブ端末向け狭帯域信号 検出方法 ”, IEICE Technical Report SR2008-8, pp.43-50, 2008 年. [36] 水木 元由: “ ソフトウェアのハードウェア化を考える ”, Design Wave Magazine 2001 June, pp107-, 2001 年. [37] Abirami.R: “ VHDL Implementation of Merge Sort Algorithm ”, International Journal of Computer Science and Communication Engineering, Vol.3, No.2, pp15-18, 2014 年. [38] マージソート: “ http://www.ics.kagoshima-u.ac.jp/ fuchida/edu/algorithm/sort-algorithm/merge-sort.html ”. 38