再構成ユニットによる解探索の方法およびデータ処理装置
【課題】遺伝的アルゴリズムにより解を探索するのに適したデータ処理装置を提供する。
【解決手段】回路を再構成可能なPEマトリクス10と、PEの接続情報を含むコンフィグレーションデータ18により回路を再構成する制御ユニット2aと、遺伝的アルゴリズムによりヒューリスティックにコンフィグレーションデータ(発見的コンフィグレーションデータ、GCD)を生成する生成ユニット2bとを有するデータ処理装置50を提供する。データ処理装置50は、さらに、発見的なコンフィグレーションデータにより再構成される評価対象回路61に対し入力データの複数のサンプルを供給するサンプルデータ供給ユニット62と、評価対象回路61の出力データの少なくとも一部を用いて評価する評価ユニット63とを含む。
【解決手段】回路を再構成可能なPEマトリクス10と、PEの接続情報を含むコンフィグレーションデータ18により回路を再構成する制御ユニット2aと、遺伝的アルゴリズムによりヒューリスティックにコンフィグレーションデータ(発見的コンフィグレーションデータ、GCD)を生成する生成ユニット2bとを有するデータ処理装置50を提供する。データ処理装置50は、さらに、発見的なコンフィグレーションデータにより再構成される評価対象回路61に対し入力データの複数のサンプルを供給するサンプルデータ供給ユニット62と、評価対象回路61の出力データの少なくとも一部を用いて評価する評価ユニット63とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回路を再構成可能なユニットを用いた解探索方法およびデータ処理装置に関するものである。
【背景技術】
【0002】
特許文献1には、生物の進化の過程を模倣した最適化手法の1つである遺伝的アルゴリズム(GA:Genetic Algorithm)をもとに考案された遺伝的プログラミング(GP:Genetic Programming)を画像処理に適用したツリー構造状画像変換自動作成方法を印刷物の文字列抽出方法に用いることが記載されている。
【0003】
特許文献2には、解探索装置及びその初期値設定方法について開示されている。この方法は、数値計算によって物理化学現象をシミュレーションするソフトウェアに組み込まれた物理化学モデルが用いる複数のパラメータの値が、測定結果の様に外部から与えられたデータとの誤差を最小となる様に、遺伝的アルゴリズムを用いて自動的に探索する計算方法に関するものである。さらに、具体的には、この解探索装置、例えば、半導体回路シミュレータが内蔵するトランジスタモデルが持つ複数のパラメータを実測した電流電圧データ(I−Vデータ)の誤差が小さくなる様に合せ込んだり、半導体プロセスシミュレータが内蔵するイオン注入モデルが持つ複数のパラメータをSIMS測定した結果に合せ込んだりして、これらのシミュレータと実測結果の食い違いを抑制する事で、これらのシミュレータの予測性を高める為に用いられるものである。
【0004】
特許文献3には、コジェネレーションシステムの最適化方法および設備提案システムが記載されている。この最適化方法では,機器構成の最適化と運転パターンの最適化とを交互に繰り返す。そして,機器構成の最適化の際,機器と運転パターンとを1組の機器情報データとし,その機器情報データを基本単位として遺伝子操作中の交叉を行う。また,運転パターンの最適化の際、機器構成を固定し、その機器構成での運転パターンについて遺伝子操作を行う。そして,最適化された機器構成および運転パターンでの評価値を判定する。判定条件を満たしていない場合には,判定条件を満たすまで上記処理を繰り返すことが記載されている。
【0005】
特許文献4には、画像処理方法として、誤差拡散処理の目標としての2値画像であるターゲット画像を、遺伝的アルゴリズムに基づいて生成しておくことが記載されている。そして、均一輝度画像に対して誤差拡散パラメータを用いた誤差拡散処理を施すことによって比較画像を生成し、該比較画像と前記ターゲット画像の画質の差を評価する画質評価関数を設定し、この画質評価関数による評価値が最小となるように、誤差拡散パラメータを最適化する。
【0006】
特許文献5には、情報処理機構を用いて運転指向を推定する場合、遺伝的アルゴリズムを用いた情報処理機構で、計算負荷の増加を抑制できる運転指向推定装置を提供することが記載されている。運転指向推定装置は、運転指向によって変化する可能性のある運転操作量を検出する運転操作量検出部と、車両の走行環境に基づいて、前記検出された運転操作量を補正する運転操作量補正部とを備え、補正された運転操作量に基づいて、情報処理機構を用いて運転指向を推定する。走行環境には、道路の勾配及び路面の滑り易さの少なくともいずれか一方が含まれることができる。運転操作量には、アクセル開度、アクセル開度変化量、及びブレーキ踏力の少なくともいずれか一つが含まれることができる。
【0007】
特許文献6には、計算機を用いて所望の物性値条件を満たす高分子の構造を求める高分子材料設計方法であって、高分子モデルの作成条件および物性値条件を入力するステップと、この作成条件の下でモノマーに基づく構成単位を高分子の設計単位とし、この設計単位を遺伝子として遺伝的アルゴリズムの個体となる高分子モデルを作成するステップと、作成された高分子モデルについて物性値を計算し、前記物性値条件に対する適合度を計算するステップとを有する。そして、遺伝的アルゴリズムを用いて、次世代以降の個体の作成および適合度計算のステップを繰り返し、適合度の大きい高分子の構造を探索することを特徴とする方法が記載されている。
【0008】
特許文献7には、ロボットの行動学習に有利なセンサの形態を自動的に設計することができるセンサ設計装置が記載されている。初期世代作成部は、センサの形態を特定するための複数の遺伝子型を作成し、各遺伝子型により特定されるセンサの形態を有する複数のロボットを仮想的に作成し、行動学習部は、複数のロボットに仮想的に学習を行わせ、学習結果を基に各ロボットの適応度を算出し、選択部は、各ロボットの適応度を基に親個体となる複数のロボットを選択し、次世代作成部は、選択されたロボットの遺伝子型から遺伝的アルゴリズムに基づき次世代の遺伝子型を作成し、各次世代の遺伝子型により特定されるセンサの形態を有する複数のロボットを仮想的に作成し、行動学習部は、次世代の複数のロボットに仮想的に再度学習を行わせ、選択部、次世代作成部及び行動学習部による処理を所定世代繰り返してセンサの形態を決定することが記載されている。
【0009】
特許文献8には、2次元以上の空間に複数の要素を最適な状態で配置する要素配置最適化問題において、問題規模の大きい要素配置最適化問題を高速に処理できるようにすることが記載されている。複数の要素の初期配置状態に関する情報がコンピュータに入力されると、遺伝的アルゴリズムをCPUで実行して、初期配置状態にある複数の要素の疎密を解消する第1アルゴリズム実行ステップと、第1アルゴリズム実行ステップにて疎密が解消された後の複数の要素の中間配置状態に関する情報がコンピュータに入力されると、局所的疎密解消アルゴリズムをCPUで実行して、中間配置状態にある複数の要素の疎密を更に解消する第2アルゴリズム実行ステップとを実行することにより、接続関係を維持しながら初期配置状態にある複数の要素の疎密を解消することが記載されている。
【0010】
特許文献9には、通信システムに応用されるシーケンスの生成方法が記載されている。この方法は、長さの予め設定された複数のシーケンスをランダムに生成するステップ(1)と、各シーケンスの特定のパラメータ値を計算するステップ(2)と、計算により得られた特定のパラメータ値が一定の条件を満たす複数のシーケンスを選択するステップ(3)と、以上の処理により得られたシーケンスに対して適応遺伝変異を行い、適応確率により変異後特定のパラメータ値が最適になったシーケンスを選択するステップ(4)と、予め決めた回数までステップ(2)から(4)を繰り返し、最後に得られた複数のシーケンスから、特定のパラメータ値が最適なシーケンスを選択して出力シーケンスとするステップ(5)とを含む。
【0011】
特許文献10には、テンプレート画像を含む画像の検索を高速に高い精度で行うことが記載されている。領域選択受付部からの画像の領域の選択に基づいてテンプレート画像生成部はテンプレート画像を生成する。このテンプレート画像および検索対象になるターゲット画像は、画像縮小部において所定の縮小率に縮小される。個体抽出部において生成されたターゲット画像とテンプレート画像とを照合する領域の情報を有する染色体の適応度が、ターゲット画像準備値テーブルおよびテンプレート画像準備値テーブルに保持された準備値を用いて適応度算出部において算出された後、遺伝的アルゴリズム処理部で選択、交配および突然変異が行われる。以上の処理を所定世代数繰り返した後に、準最適解に対応する適応値が所定の閾値を超えているか否かが類似画像判断部で判断されることが記載されている。
【0012】
特許文献11には、周期的に配置されてなるマイクロレンズアレイの形状測定方法が記載されている。この方法では、被測定対象のマイクロレンズアレイに所定波長の入射光を入射させ、透過側又は反射側に生じる回折光の直交する2つの方向に回折される各々複数の回折次数の強度を検出することで、各回折次数の回折効率の実測値を求め、他方、被測定対象のマイクロレンズアレイの各レンズの形状として2次元的なサンプリング点に初期値を与え、その初期値から出発して前記所定波長の入射光を入射させたときに透過側又は反射側に生じる回折光の直交する2つの方向に回折される各々複数の回折次数の強度を厳密な電磁波解析により算出し、順次遺伝的アルゴリズムを適用しながら、その算出値と前記実測値の差をパラメータとする評価関数を用いて、前記初期値の形状を最適化する。
【0013】
特許文献12には、マルチビームを用いた電子写真方式の画像形成手段や回転多面鏡による走査光学系を用いた電子写真方式の画像形成手段において発生する画質の劣化を防ぐことが記載されている。そのため、評価手段によりマルチビームの各ビームで発生するドットの出現頻度や回転多面鏡の各反射面によって走査形成されるドットの出現頻度に基づいてディザマトリクスに応じて生成される画像データに対する評価を行ない、この評価結果に基づき求めたディザマトリクスの適応度に基づいて遺伝的アルゴリズム処理手段により遺伝的アルゴリズム処理を実行し、ディザデータ出力手段においては生成した遺伝子情報によりディザマトリクスを出力する。これにより、マルチビームの各ビームで光量に違いがある場合や回転多面鏡の反射面にばらつきがある場合であっても、画質への影響を軽減させることができるので、画質の劣化を防ぐことができることが記載されている。
【0014】
特許文献13には、機械本体の複数個所の温度測定に基づいて加工点における熱的な変位量を推定し補正する機能を備えた工作機械における、補正に用いられる所定の関係式に適合する最適な温度測定位置を遺伝的アルゴリズムを用いて求めることが記載されている。
【0015】
特許文献14には、適切なパレート最適個体を短時間で効率良く得ることが可能な多目的最適化装置、多目的最適化方法および多目的最適化プログラムを提供することが記載されている。多目的進化型アルゴリズム部は第1、第2および第3の親個体から複数の子個体候補を生成する。次に、適応度推定モジュールは全ての親個体および子個体候補についての真の適応度の推定値を算出する。さらに、多目的進化型アルゴリズム部は、全ての親個体および子個体候補のランキングを行い、最上位ランクの1つの子個体候補を親個体集合に追加して混雑度を算出し、それらの子個体候補を混雑度の良い順にソートし、より良い混雑度を有する所定数の子個体候補を子個体集合として選択する。多目的最適化問題の一例は、エンジンの燃費およびトルクの最適化に適用することである。
【0016】
特許文献15には、巡回すべき複数の地点に順序および/または時間的な制約がある場合に、当該制約を満足し得る巡回経路を探索できるようにすることが記載されている。そのため、巡回対象の地点の位置情報および/または巡回対象の地点の制約条件を入力する操作・入力手段と、2地点間の経路を探索する2点間経路探索手段と、複数の巡回対象の地点を巡回する巡回経路を探索する巡回経路探索手段と、を備え、2地点間経路探索手段は、巡回対象の2地点間全ての最短経路を探索して記憶し、巡回経路探索手段は、遺伝アルゴリズムを用いて最適な巡回経路を求める際に、巡回順序に応じた経路コストの和に前記巡回対象の地点の制約条件に応じた制約コストを付加して評価値を算出し、該評価値が既存集団における遺伝子より良い評価値であれば遺伝子集団に加えて、巡回経路探索を進める。
【0017】
特許文献16には、車両毎にパラメータ調整を行う必要がなく、車両の運動状態の変化に即応してリアルタイムにコーナリングパワーを推定可能なコーナリングパワー推定装置を提供することが記載されている。このため、コーナリングパワー推定装置は、車両運動モデルに基づいてヨーレートの推定値の演算を行う演算装置と、遺伝的アルゴリズムによる進化計算を行う算出装置とを備えている。
【0018】
特許文献17には、所定環境において最適解を求めるにあたり、染色体の初期値を新たに発生させる場合に、探索済み領域以外の領域に発生させ、効率的に最適解を求めることが記載されている。複数の情報体からなる情報体集団に対し、遺伝的アルゴリズムを用いて探索操作を行い、最適解を求める最適解探索装置において、適応度値の変化率と予め定められた変化率とを比較し、前記適応度値の変化率が、前記予め定められた変化率より小さいと判断した場合、新たな情報体を導入する。その際に、すでに導入されている情報体の分布情報を参照して、情報体密度がより少ない領域に対して新たに情報体を導入する。
【0019】
特許文献18には、複数種類のプロセッシングエレメントの機能およびそれらの接続を変えて種々のデータパスを動的に再構成するタイプの集積回路装置が記載されている。
【特許文献1】特開2004−362440号公報
【特許文献2】特開2006−23868号公報
【特許文献3】特開2006−268102号公報
【特許文献4】特開2006−303999号公報
【特許文献5】特開2006−312414号公報
【特許文献6】特開2007−31541号公報
【特許文献7】特開2007−41723号公報
【特許文献8】特開2007−52799号公報
【特許文献9】特開2007−68174号公報
【特許文献10】特開2007−102634号公報
【特許文献11】特開2007−121057号公報
【特許文献12】特開2007−137007号公報
【特許文献13】特開2007−167966号公報
【特許文献14】特開2007−172306号公報
【特許文献15】特開2007−187584号公報
【特許文献16】特開2007−190955号公報
【特許文献17】特開2007−199943号公報
【特許文献18】特開2006−285386号公報
【発明の開示】
【発明が解決しようとする課題】
【0020】
遺伝的アルゴリズムは、メタヒューリスティック(Metahuristic)な解法の一例である。メタヒューリスティクスは、一般的な計算問題を解くためのヒューリスティックな方法(トライアンドエラーにより問題を解く方法)の1つであって、特定の問題に限定されず、どのような問題に対しても汎用的に対応できるように設計された、アルゴリズムの基本的な枠組みを示す。メタヒューリスティクスには、遺伝的アルゴリズムの他に、シミュレーテッドアニーリング法などが含まれる。また、この明細書において遺伝的アルゴリズムとは、遺伝的プログラミング、免疫的アルゴリズムなどのさまざまな拡張手段を含むものである。
【0021】
遺伝的アルゴリズムは、上記特許文献1−17に示したように、多種多様な分野において多種多様な問題の解決に用いることが提案されている。遺伝的アルゴリズムを用いて、問題に対する解を見つける際に、一般的に要求されることは、できるだけ複雑な遺伝子を表現できること、できるだけ任意な遺伝子を選択できることである。そして、各遺伝子をできるだけ多くの条件で適正に評価し、世代交代をできるだけ多く繰り返すことにより、最も適応度の高い個体(遺伝子)を「解」として出力することである。しかしながら、世代交代により生み出される各遺伝子を評価するためには、通常、長時間を要する。このため、複雑な表現を持った遺伝子の採用が実際には困難であり、最大世代数も限られてしまうことが多い。さらに、進化に長時間を要するために、遺伝子をリアルタイムに、あるいはリアルタイムに近い状態で進化させて、環境への適応力を高めることも難しい。
【0022】
このような問題は、遺伝的アルゴリズムを用いた解法に限らず、トライアンドエアーを繰り返し(反復し)、解を発見的に導く、メタヒューリスティックな解法に共通するものである。したがって、複雑な表現を持った遺伝子に代表されるメタヒューリスティクスな解を高速で評価できる手段および方法が求められている。
【課題を解決するための手段】
【0023】
本発明の一態様は、回路を構成するための複数のエレメントと、複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、内部配線による複数のエレメントの接続を変更すること、および/または複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置である。この制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより、再構成ユニットの少なくとも一部に回路を再構成する。このデータ処理装置は、さらに、発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給するサンプルデータ供給ユニットと、複数のサンプルに基づく評価対象回路の出力データの少なくとも一部を用いて評価対象回路の評価値を得る評価ユニットとを含む。
【0024】
再構成ユニットに回路を再構成するためのコンフィグレーションデータと、そのコンフィグレーションデータにより再構成される回路とは、基本的に一対一で対応する。したがって、コンフィグレーションデータに何らかの変化があれば、それにより再構成される回路も変化する。回路のそのような変化により、回路の出力に影響があるか否かはケースバイケースである。しかしながら、コンフィグレーションデータを、それにより再構成される回路の出力を用いて評価することが可能であり、最適解として評価されたコンフィグレーションデータにより、同一構成の他の再構成ユニットに回路を再構成すれば、同一の性能を得られる。そして、コンフィグレーションデータの評価は、コンピュータプログラムにより動作する数値的な計算またはシミュレーションではなく、再構成ユニットに再構成された回路を機能させる、すなわち、複数の入力データのサンプルを再構成された回路に供給することで短時間に行えるようになる。
【0025】
また、複雑な遺伝子に対応するような複雑なコンフィグレーションデータも、それに対応した回路として再構成ユニットに実装される。そのようなコンフィグレーションデータにより再構成される回路は、回路構成が複雑になるかもしれない。しかしながら、回路構成が複雑になることにより処理速度が低下したとしても、その度合いは、プログラムステートメントが増大することによる処理速度の低下とは比較にならないほど小さく、複雑なコンフィグレーションデータであっても短時間で評価できる。さらに、パイプライン処理、並列処理などを併用することにより、より高速な評価が可能となる。したがって、複雑な表現を持った遺伝子に代表されるメタヒューリスティクスな解を高速で評価できる。
【0026】
サンプルデータ供給ユニットは、評価対象回路においてパイプライン処理が行われる間隔で複数のサンプルを供給し、評価ユニットは、評価対象回路とともに、再構成ユニットに構成されることが好ましい。発見的なコンフィグレーションデータにより、パイプライン処理が行われる評価対象回路が構成されれば、評価ユニットにおける処理も含めてパイプライン処理が可能となる。したがって、複雑なコンフィグレーションデータであっても、実質的に、評価結果を、サンプルの入力データを入力するために要する時間程度の短い間隔で得ることができる。
【0027】
制御ユニットは、複数セットの発見的なコンフィグレーションデータを出力し、再構成ユニットには、複数セットの発見的なコンフィグレーションデータにより、複数の評価対象回路が再構成され、サンプルデータ供給ユニットは、複数の評価対象回路に対し並列に前記複数のサンプルを供給することが望ましい。複数セットの発見的なコンフィグレーションデータを、複数の評価対象回路により並列に評価できる。したがって、評価結果を短時間に得ることができる。
【0028】
評価ユニットから得られる評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成し、制御ユニットより使用可能とする生成ユニットをさらに有することが望ましい。評価結果が得られる時間を短縮できるので、世代交代する間隔を短縮でき、最適解を得るための最大世代数を増大できる。
【0029】
生成ユニットは、再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成する機能を含むことが望ましい。発見的なコンフィグレーションデータにより再構成される評価対象回路は、予め規定される評価ユニットにおいて有意な出力データを出力するとは限らない。テンプレートコンフィグレーションデータを親または現世代として次世代の発見的なコンフィグレーションデータを生成することにより、無駄あるいは評価対象にならない評価対象回路を再構成するような発見的なコンフィグレーションデータが生成される可能性を抑制できる。
【0030】
複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータであることが望ましい。このようなテンプレートコンフィグレーションから生成される次世代の発見的なコンフィグレーションデータを生成することにより、次世代の発見的なコンフィグレーションデータがパイプライン処理を行う評価対象回路を再構成するものである可能性を向上でき、評価時間を短縮できる可能性が高くなる。
【0031】
生成ユニットは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、次世代の発見的なコンフィグレーションデータを生成することが望ましい。内部配線による複数のエレメントの接続を変更することも含めて次世代の発見的なコンフィグレーションデータを生成しても良い。複雑で多種多様な遺伝子に相当するコンフィグレーションデータを生成できる。しかしながら、評価対象にならない評価対象回路を再構成するコンフィグレーションデータも生成され易くなる。コンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新して、次世代の発見的なコンフィグレーションデータを生成することにより、評価対象にならない評価対象回路を再構成するコンフィグレーションデータが生成される可能性を低くできる。
【0032】
テンプレートコンフィグレーションデータが、解を求めようとしているシステムなどに固有の条件を反映するものであっても良い。テンプレートコンフィグレーションデータの、それら固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代の発見的なコンフィグレーションデータを生成するようにしても良い。発見的なコンフィグレーションデータの変化、突然変異の範囲が縮小されるが、システムに適した解を早いタイミングで得ることができる。
【0033】
本発明の他の態様の1つは、再構成ユニットと、コンフィグレーションデータを出力する制御ユニットとを有するデータ処理装置であって、制御ユニットは、最適解として評価された発見的なコンフィグレーションデータにより回路を再構成する、データ処理装置である。最適解として評価された発見的なコンフィグレーションデータにより、再構成ユニットに、評価対象回路と同一の回路を構成することができ、最適と評価された機能を再構成ユニットにより提供できる。
【0034】
本発明の他の態様のさらに異なるものは、回路を再構成可能な再構成ユニットを用いた解探索の方法である。再構成ユニットは、複数のエレメントと、複数のエレメントを接続するための内部配線とを含み、内部配線による複数のエレメントの接続を変更すること、および/または、複数のエレメントの機能を変更することにより、回路を再構成可能である。再構成ユニットの回路を再構成するためのコンフィグレーションデータは、複数のエレメントの接続情報および/または複数のエレメントの機能情報を含む。当該方法は、以下の各ステップを有する。
・少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより再構成ユニットの少なくとも一部に回路を再構成すること。
・発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給すること。
・複数のサンプルに基づく評価対象回路の出力データの少なくとも一部を用いて評価対象回路の評価を得ること。
・評価を得ることを繰り返すことにより、評価対象回路を再構成するための発見的なコンフィグレーションデータを解として探索すること。
【0035】
この方法は、発見的なコンフィグレーションデータを、その発見的なコンフィグレーションデータにより再構成ユニットに再構成される回路により評価できる。したがって、高速で、最適解を探索できる。
【0036】
サンプルを供給するステップは、評価対象回路においてパイプライン処理が行われる間隔で複数のサンプルを供給することを含み、評価値を得るステップは、評価対象回路とともに、再構成ユニットに構成される回路により評価値を得ることを含むことが望ましい。
【0037】
再構成するステップは、複数セットの発見的なコンフィグレーションデータにより、再構成ユニットに複数の評価対象回路を再構成することを含み、サンプルを供給するステップは、複数の評価対象回路に対し並列に複数のサンプルを供給することを含むことが望ましい。
【0038】
評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することをさらに有することが望ましい。そのような発見的なコンフィグレーションデータは、遺伝的アルゴリズムにより生成される遺伝子に対応したコンフィグレーションデータ(遺伝子的コンフィグレーションデータ、遺伝的コンフィグレーションデータ、遺伝子対応コンフィグレーションデータ)となる。次世代の発見的なコンフィグレーションデータは、現世代の発見的なコンフィグレーションデータとして使用され、評価対象回路が再構成される。
【0039】
上記の生成するステップは、再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0040】
複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータであることがさらに望ましい。
【0041】
生成するステップは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0042】
テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、生成するステップは、テンプレートコンフィグレーションデータの、固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0043】
また、この方法は、さらに、前世代のコンフィグレーションデータを、内部配線による複数のエレメントの接続を変更することを含めて、遺伝的アルゴリズムにより更新し、再構成ユニットにより評価し、複数のテンプレートコンフィグレーションデータを探索することをさらに含むことが望ましい。あるシステムに対して適当な解が得られそうなテンプレートコンフィグレーションデータは、ヒューリスティックな方法により探索できる。それを、事前に、再構成ユニットを用いて行うことにより、最適解の探索に要する時間を短縮できる。
【発明を実施するための最良の形態】
【0044】
図1(a)に、再構成可能なデバイスの一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/またはPEsの接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。PEマトリクス10に配置されるPEの数は、上記に限定されるものではない。
【0045】
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図1(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。このようにPEマトリクス10は、回路を構成するための複数のエレメントと、これらのエレメントを接続するための内部配線とを含む再構成ユニットであり、内部配線によりエレメントの接続を変えることによりPEマトリクス10に含まれる回路を動的に再構成できる。
【0046】
図1(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えばMPEGデコーダを時分割した複数の機能(サブファンクション)を、PEマトリクス10に時分割で動的に再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
【0047】
図1(d)は、PEマトリクス10に回路を構成する他の例の一つである。再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。このデバイス1は、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できるので、専用のハードウエアに匹敵する速度で処理を行うことができる。さらに、PEマトリクス10に含まれるPEsは、クロックにより同期した処理を行うことが可能であり、パイプライン処理に適したデータフロー(データパス)をPEマトリクス10に再構成できる。さらに、多数のPEsにより並列処理を行う複数のデータフローを並列に再構成することも可能である。したがって、PEマトリクス10に回路を動的に再構成することにより、ハードウエアにより高速処理と、ソフトウエアのような柔軟性とが融合された動作環境および解探索環境を提供できる。
【0048】
図2に、PEマトリクス10の配列を拡大して示している。処理エレメントPEsは、全体として、16×24のマトリクスを構成するように配置されている。なお、図3に示すように、PEのいくつかは、2個分のPEのスペースを占め、全体として376個のPEがPEマトリクス10に実際には配置されているが、図2には反映していない。これらのPEsは、さらに、それぞれ8×8のPEsからなる6つのグループに区分けされている。これらのグループをセグメントSと称し、PEマトリクス10の左上から右下に向かって順番にセグメントS0からセグメントS5が配置されている。各々のセグメントS0〜S5に含まれるPEは、1サイクルの遅延の範囲内でデータを送受信可能なイントラセグメントコネクションで接続されている。また、セグメントS0〜S5の内、隣接するセグメントは、後述するディレイエレメントを介してインターセグメントコネクション22により接続されている。
【0049】
図3に、PEマトリクス10に含まれるPEsの具体的な配置例を示している。図3に示したPEのうち、「EX」で始まるPEは、EXEエレメントと呼ばれ、算術演算、論理演算および2入力の比較機能を含む演算用のエレメントである。「EXC」は、CMPSB命令を搭載し、「EXF」は、FF1命令を搭載し、「EXM」は、乗算命令を搭載し、「EXR」はBREV命令を搭載し、「EXS」は、BSWAP命令を搭載するというように、タイプ毎に固有の演算機能も含んでいる。
【0050】
「DL」で始まるPEは、ディレイエレメントであり、1−8クロックの間の遅延をそれぞれ設定できる。「DLE」は、セグメント内のデータ遅延用であり、「DLV」は縦方向のセグメント間のデータ送受信用であり、「DLH」は横方向のセグメント間のデータ送受信用であり、「DLX」は縦横方向のセグメント間のデータ送受信用のエレメントである。
【0051】
「RAM」と表示されたPEは、DNAの内部メモリとして使用されるエレメント(メモリエレメント)である。「LDB」と表示されたPEは、データ入力用のDNA内部バッファである。「STB」と表示されたPEは、データ出力用のDNA内部バッファである。「C16E」と表示されたPEは、DNA内部バッファに対するアドレス生成エレメントである。「C32E」と表示されたPEは、外部メモリ空間に対するアドレス生成エレメントである。「LDX」と表示されたPEは、DNAダイレクトI/Oからのデータ入力用エレメントである。「STX」と表示されたPEは、DNAダイレクトI/Oへのデータ出力用エレメントである。PEマトリクス10において、LDBおよびLDXは、外部からデータを入力するための入力インターフェイスとして使用でき、STBおよびSTXは、外部へデータを出力するための出力インターフェイスとして使用できる。
【0052】
図4に、PEの一例として、EXEエレメント(「EXM」)の概略構成をブロック図により示している。EXMエレメントは、ALU11aと、MUL(16×16)11bと、FF11cなどを含む。このEXMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18に含まれる、PEの機能を設定するための機能情報により、算術演算、論理演算、2入力の比較機能、さらには、乗算のいずれか、または複合した命令を実行するように構成できる。また、複数のFF11cを内蔵しているので、エレメントPEに対するデータの入力から出力までのレイテンシを制御することが可能であり、ディレイエレメント(DLE)の数が不足する構成では、ディレイエレメントとしての機能をセットすることも可能である。
【0053】
図5に、PEの他の例として、RAMエレメント(「RAM」)の概略構成をブロック図により示している。このRAMエレメントは、データ格納用メモリエレメントであり、16KB(32ビット×4096ワード)のRAMモジュール12aと、アドレス入力用のアドレスレジスタ(FF)12b、ラッチ12c、データ入力用のライトデータレジスタ(FF)12d、ラッチ12e、データ出力用のリードデータレジスタ(FF)12fを含む。RAMモジュール12aのリードとライトの制御は、アドレスデータおよび/またはリードデータとともに入力されるトークンの値により行なわれる。アドレス入力からリードデータの出力までは、EXEエレメントと同様に3クロックサイクル程度で可能になっており、PEマトリクス10に含まれる他のタイプのPEと同様のレイテンシで、データの入出力が可能である。このRAMエレメントは、DNA3のコンフィグレーションメモリ19に格納され、それぞれのPEに供給されるコンフィグレーションデータ18に含まれる機能情報により、32ビットモード、デュアルポート32ビットモード、FIFOモード、16ビットモード、8ビットモード、さらに、FSM(フィードバックステートモード)でデータ入力および/または出力するように構成できる。
【0054】
RAMエレメントのアクセスアドレスの生成には、EXEエレメント、カウンタエレメントであるC16Eおよび/またはC32Eを使用することができ、PEマトリクス10のルーティングマトリクス(マトリクスバス)を通じて、RAMエレメントに入力できる。したがって、RAMエレメントへの入出力は、PEマトリクス10に再構成される回路により制御できる。なお、RAM、EX以外のPEについても、同様に、それぞれのPEに提供されるコンフィグレーションデータ18に含まれる機能情報により、機能(定数などを含めて)を設定および変更できる。
【0055】
PEマトリクス10は、複数のPEsと、それらを接続するためのルーティングマトリクス(内部配線、配線群)20を含む。ルーティングマトリクス20は、セグメントS内のPEを接続するための第1レベルの配線群(第1レベルのルーティングマトリクス、イントラコネクト)21と、ディレイエレメントを介して隣接するセグメントSの間を接続するための第2レベルの配線群(第2レベルのルーティングマトリクス、インターコネクト)22とを含む。ルーティングマトリクス20によるPEsの接続はコンフィグレーションデータ18により制御できる。したがって、PEマトリクス10には、コンフィグレーションデータ18により、複数のPEのそれぞれの機能を変更すること、および/または、ルーティングマトリクス20の少なくとも一部の接続を変更することにより、異なる回路(データパス、データフロー)を再構成できる。
【0056】
図6に、セグメントSの内部のPEsを接続するための第1レベルの配線群21の構成の一例を示している。第1レベルのルーティングマトリクス21は、セグメントS0に含まれる8×8個のPEsを接続するために、128の縦方向のバス23と、64の横方向のバス24とを含む。縦方向のバス23は、16のグループに分けられ、それぞれ8のバスを含む2つのV−バス23xおよび23yがペアとなり、PEsの縦の列(コラム)に沿って、その列の両側に配置されている。横方向のバス24は8のグループに分けられ、それぞれ8のバスを含むH−バス24がPEの横方向の行(ライン)に沿って配置されている。V−バス23xおよび23yには、8−1のバスセレクタ(マルチプレクサ、MUX)25がそれぞれのPEに対応して設けられており、それぞれのPEに対してデータの入力を可能としている。
【0057】
H−バス24には、H−バス24とV−バス23xおよび23yのそれぞれの交差に対応して、8−1のバスセレクタ(マルチプレクサ、MUX)26が設けられている。したがって、1つのH−バス24から1つのデータセットを、そのH−バス24と交差している1つのV−バス23xまたは23yに出力できる。逆も可能である。H−バス24に含まれるバスのそれぞれには、そのラインのPEsの出力が接続される。したがって、V−バス23xおよび23yと、H−バス24とを介することにより、セグメントSに含まれるPEsを接続できる。これらのV−バス23xおよび23y、およびH−バス24の接続は、コンフィグレーションデータ18に含まれる接続情報により制御できる。そして、これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により実現できる接続パターンは膨大であり、基本的には、セグメントSに含まれる全てのPEをフレキシブルに接続できる。したがって、コンフィグレーションデータ18により、PEsの接続を、配線資源により制限は受けるとしても、基本的には、自由自在に制御できる。
【0058】
これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により接続できる範囲、すなわち、各セグメントS0〜S5内のPEの間では1サイクル(1クロック)以内にデータを送受信できる。したがって、タイミング的には、例えば、セグメントS0に含まれるPEsは、いずれも等価である。このため、同一セグメント内であれば、回路を構成するために、いずれのPEを選択して機能を割り付けても、タイミングの検討は不要であり、タイミング的には、セグメント内のPEsを用いて、所定の回路を自由に配置および配線できる。
【0059】
図7に、第2レベルのルーティングマトリクス22の構成を示している。図7では、第2レベルのルーティングマトリクス22により、隣接するセグメントS1およびS4にそれぞれ含まれている接続用のエレメントDLHを接続している。それぞれのDLHは、それぞれのセグメントS1およびS4の内部の第1レベルのルーティングマトリクス21に接続している。したがって、セグメントS1に含まれるPEと、セグメントS4に含まれるPEとを第2レベルのルーティングマトリクス22を介して接続することができる。接続用のディレイエレメントDLHは、第1レベルのルーティングマトリクス21に含まれるバスのインターフェイスとして機能する。セグメント間の接続も、したがって、DLHなどのセグメント内における接続用のエレメントと他のPEとの接続および接続用エレメントの機能を、コンフィグレーションデータ18の接続情報および/または機能情報により制御できる。したがって、PEマトリクス10に含まれるすべてのPEsの接続および機能を、マトリクス10の全体としても、マトリクス10の部分に限定的にも、コンフィグレーションデータ18により制御することができる。
【0060】
メタヒューリスティクスな方法により生成される発見的なコンフィグレーションデータ(ヒューリスティックに生成されたコンフィグレーションデータ、ヒューリスティックなコンフィグレーションデータ)およびそれによりPEマトリクス10に再構成される回路は、回路から出力される結果が、その処理により得ようとする目的に合致したもの、あるいは目的に合致している確率が高そうなものであれば、意味(たとえば、物理的な内容、統計学的な意味、その他の学術的な意味)が無い、意味が不明または意味を解析するために時間を要するものであっても良い。しかしながら、以下では、説明を簡単にするために、発見的なコンフィグレーションが、評価対象回路として、以下のような適当または任意の多項式を演算するための回路を再構成する場合を想定する。
【0061】
Σfi(x1,x2・・xn−1,xn)=Fout ・・・(1)
上記式(1)において、iは1〜nまでの整数であり、式(1)の多項式の部分が、変数xiにより与えられる何らかの事象(システム、現象)に対する解に相当する。したがって、以下では、遺伝的アルゴリズムにより、最適解を示す多項式の部分を探索する。そのため、多項式が、遺伝子、すなわち、発見的なコンフィグレーション(遺伝子的コンフィグレーションデータ、遺伝子対応のコンフィグレーションデータ)として生成され、その発見的なコンフィグレーションを、再構成ユニットであるPEマトリクス10にその発見的なコンフィグレーションにより再構成された評価対象回路により評価する。発見的なコンフィグレーションの生成方法によるが、生成された発見的なコンフィグレーションによりPEマトリクス10に再構成される評価対象回路のうち、式(1)として意味のあるものが評価されるということも可能である。さらには、生成された発見的なコンフィグレーションによりPEマトリクス10に再構成される評価対象回路を、式(1)が実装されていると想定して評価するということも可能である。
【0062】
式(1)の出力Foutは、評価対象回路の出力に相当する。出力Foutを得るために、学習データ、教師データなどと称される変数xiの複数セットをサンプルとして入力する。学習データには、変数xiのセットと、そのセット(学習データセット)により得られたい結果とが含まれており、出力Foutと、結果とを比較することにより、その学習データセットに対する評価対象回路の可否が判断される。そして、複数の学習データセットに対して、良好な結果が得られた発見的なコンフィグレーションを親として、次世代の発見的なコンフィグレーションが生成される。
【0063】
図8に、コンフィグレーションデータ18の一例を示している。コンフィグレーションデータ18は、各PEの機能を記述している機能情報セクション18aと、バスセレクタ25および26の接続情報を記述している接続情報セクション18bとを含む。セクション18aには、各PEを特定するための識別情報(アドレス)18cと、機能の設定内容18dとが含まれている。セクション18bには、バスセレクタ25および26を特定するための識別情報(アドレス)18eと、接続の内容18fとが含まれている。以下の例では、同じフォーマットのコンフィグレーションデータ18であって、含まれている機能情報18aおよび/または接続情報18bが異なる複数のデータがヒューリスティックな方法、具体的には、遺伝的アルゴリズムにより、発見的なコンフィグレーションデータ(以降では遺伝子的コンフィグレーションデータあるいは遺伝子対応コンフィグレーションデータ、GCD)71が世代単位で、遺伝子対応コンフィグレーションデータ(GCD)のグループあるいはセット70として生成される。GCD71は、ヒューリスティックに生成される情報を含めばよく、PEマトリクス10全体がヒューリスティックな情報により再構成される必要はない。PEマトリクス10に実装(再構成)される回路のうち、評価対象回路に相当する部分の全てまたは一部を再構成するための情報がヒューリスティックな情報であればよい。この明細書において、ヒューリスティックなデータまたは情報とは、少なくとも1部が、ヒューリスティクス(メタヒューリスティクス)な方法により生成されたものを示す。
【0064】
図9は、本発明の実施形態の一例のデータ処理装置のブロック図である。このデータ処理装置50は、DAPDNA1を用いて実現されている。データ処理装置50は、再構成ユニット(再構成領域)であるPEマトリクス10を有する。このPEマトリクス10は、上述したように、回路を構成するための複数のエレメント(PE)と、これらPEを接続するための内部配線20とを含み、内部配線20による複数のPEの接続および/またはPEsのそれぞれの機能を変更することにより、当該再構成ユニット10に含まれる回路を再構成可能である。さらに、データ処理装置50は、複数のPEの接続情報18bおよび各PEの機能情報18aを含む再構成情報(コンフィグレーションデータ)18を用いて、PEマトリクス10に回路を再構成する再構成制御ユニット2aを有する。この例では、再構成制御ユニット2aとしての機能はDAP2により提供され、再構成制御ユニット2aにより回路を再構成するために用いられるコンフィグレーションデータ18はGCD71を含む。
【0065】
このデータ処理装置50では、再構成制御ユニット2aが、コンフィグレーションメモリ19にGCD71をセットし、PEマトリクス10の一部を用いて、評価対象回路61を構成する。さらに、再構成制御ユニット2aは、GCD71とは異なるコンフィグレーションデータ18をコンフィグレーションメモリ19にセットし、PEマトリクス10の残りの部分を用いて、評価対象回路61を評価するためにサンプルデータ(学習データ)76を供給するための回路(サンプルデータ供給回路)62と、評価対象回路61の出力(この例ではFout)の評価を行い評価値78、たとえば出力Foutの正解率を演算するための回路(評価回路)63とを構成する。
【0066】
図10(a)は、GCD71のある世代の群(グループ)70の一例である。たとえば、1世代の遺伝子データの群70は、1000個の遺伝子データ71を含み、それぞれの遺伝子データはGCD71を示している。
【0067】
図10(b)は、学習データ76の一例である。学習データ76は、1000個のデータセット75を含み、それぞれのデータセット75は、多項式(1)の変数x1〜x50と、それらの変数により計算される予定の値(予定値)Tsとを含む。学習データ76は、サンプルデータ供給回路62により、各々のGCD71によりPEマトリクス10に再構成される評価対象回路61に供給される。これら1000個のデータセット75による出力値は、評価回路63により予定値Tsと比較され、正解率が演算される。図10(c)に、遺伝子(GCD)71毎の正解率が評価値78として出力された状態を示している。
【0068】
図9に示すように、データ処理装置50は、次世代の遺伝子、すなわち次世代のGCDの群72を生成するユニット(生成ユニット)2bを有する。この例では、生成ユニット2bとしての機能はDAP2により提供される。生成ユニット2bは、遺伝的アルゴリズムにより、現世代のGCD群(遺伝子群)70から次世代のGCD群(遺伝子群)72を生成し、現世代のGCD群70を次世代のGCD群72により置き換え、再構成制御ユニット2aが使用できるようにする。より具体的には、生成ユニット2bは、評価値78により、現世代のGCD70のそれぞれのGCD71の適応度を判断する。そして、ある確率で選択(淘汰、再生)し、交叉、突然変異、コピーを含む遺伝的操作を行い、次世代のGCD群72を生成する。選択方法は、ルーレット選択、ランキング選択、トーナメント選択などが知られている。交叉方法は、一点交叉、二点交叉、多点交叉、一様交叉などが知られている。次世代のGCD群72は、最適解のGCD71ができるだけ早く探索されるように生成することが好ましく、具体的な遺伝子操作の方法は、解を得ようとするシステムの特性などによって選択することができる。
【0069】
図11に、あるGCD71を含むコンフィグレーションデータ18によりPEマトリクス10に回路が再構成された状態を示している。この例では、GCD71によりPEマトリクス10に再構成された評価対象回路61は、4つの演算ブロック65a〜65dを含む。それぞれの演算ブロック65a〜65dに対して、PEマトリクス10に構成されたサンプル供給ユニット62は、学習データ76を並列に供給する。評価対象回路61の出力は評価回路63において評価される。サンプル供給回路62が、たとえば、学習データ76の1つのセット75の最後を示すデータを評価対象回路61に入力し、評価回路63では、最終のデータがすべての演算ブロック65a〜65dから出力されたことを判定閾値で判定する。そして、そのタイミングで得られた評価対象回路61の出力を、学習データセット75に含まれている正解Tsと比較する。学習データ76に含まれる1000個の学習データセット75に対して、評価対象回路61の出力と正解Tsとを比較することにより、評価値として正解率78を出力することができる。
【0070】
図12に、演算ブロック65aの一例を示している。この演算ブロック65aに含まれる回路は、ALU、セレクタ、ラッチ、RAMとしての機能を有する各PEの機能を変更するだけで多種多様な多項式を表現することができる構成を備えた回路の一例である。この演算ブロック65aの構成を採用することにより、たとえば、PEの1タイプであるRAMエレメントにより、図5に示したようにルックアップテーブル(LUT)としての機能を実現でき、三角関数あるいは他の算術関数を含む多項式であっても実装できる。また、図4に示したように、PEの1タイプであるEXエレメントは、2入力のALUとしての機能を備えており、一方の入力を無効にしたり、イミディエイトを代入することなどにより、PEの機能を変更するだけで実質的にPE間の接続も変更することができる。
【0071】
したがって、生成ユニット2bは、現世代のGCD71に含まれる複数のPEの機能を規定するパラメータ(機能情報)18dを遺伝的アルゴリズムにより更新し、次世代のGCD群72を生成する機能を含むことにより、多種多様な遺伝子に対応するGCDを生成することができる。また、コンフィグレーションデータの機能情報18dを更新することにより次世代のGCD群72を生成する方法を採用すると、コンフィグレーションデータ18の接続情報18fは保存される。したがって、現世代のGCD71により再構成される評価対象回路61が、入力から出力までデータフローを形成するように複数のPEを接続する接続情報18fを備えていれば、その特性は次世代のGCD群72に引き継がれる。
【0072】
このため、入力から出力まで、すなわち、サンプル供給回路62から評価回路63に到達するようなデータフローを形成する接続情報18fを備えた複数のコンフィグレーションデータ(テンプレートコンフィグレーションデータ)74をテンプレート群73として用意しておくことは有用である。生成ユニット2bは、テンプレート群73に含まれるコンフィグレーションデータを現世代として、次世代のGCD群72を生成することができ、データフローを形成する特性を備えたGCD71により評価対象回路61を再構成できる。したがって、評価回路63に出力がでないような評価に値しない回路が構成される可能性を低減でき、最適な解、すなわち、最適なGCDに到達する速度を向上できる。
【0073】
また、図12に示した回路は、入力される学習データセット75に含まれる複数の変数xiをパイプライン処理することができる構成である。特に、このデータ処理装置50に採用されている動的再構成デバイスのDAPDNAにおいては、PEマトリクス10に含まれる各PEがクロックで同期した処理を行う。このため、連続パイプライン処理を行うデータフロー(データパス)をPEマトリクス10に再構成することができる。
【0074】
したがって、評価対象回路61でパイプライン処理を行うことにより、複数の学習データセット75を連続して、あるいは、演算結果Foutが収束するために要する若干のクロック(サイクル、インターバル)を開けて連続供給することが可能である。その結果、学習データセット75の入力に要する時間程度の間隔で評価対象回路61の出力Foutを評価回路63に出力することができる。たとえば、学習データセット75に含まれる変数を並列に1クロックで入力できるような評価対象回路61であれば、理想的には1クロック毎に出力Foutを得ることができる。このため、それぞれのGCD71の評価に要する時間を大幅に短縮できる。パイプライン処理を行う回路構成も、たとえば、コンフィグレーションデータの接続情報18fを保持することで、次世代のGCD71に伝えることができる。また、テンプレートコンフィグレーションデータ74も、パイプライン処理を行う回路構成であることが望ましい。また、サンプル供給回路62は、パイプライン処理が行われることを前提として学習データセット75を供給することも有効である。パイプライン処理が行われないような評価対象回路61は、高い評価値を得られないので、パイプライン処理が行われる特性を備えた回路を構成するGCD71を選択的に残し、次世代へ繋ぐことが可能となる。
【0075】
本明細書において、パイプライン処理は、「毎クロック連続してデータ処理を行う」処理を示す。本例の再構成デバイス1は、DNAというデータフロー型のハードウエアで回路構成をとっており、データをロードするエレメント(LDB)により強制的にデータをロードするかぎり必ずパイプライン処理となる。逆にパイプライン処理しない構成をとるためには、アドレス出力用のエレメント(C16L、C32L)およびロードエレメントLDBといった、DRAM6からの処理対象データのロードを制御する機構のパラメータを変更する必要がある。これらのパラメータも、GCD71の遺伝子情報の一部に加えることにより、GCD71によっては「パイプライン処理をしない」という現象を起こすことが可能である。したがって、「非パイプライン処理」があらかじめ劣っているとわかっているのならば、GCD71の遺伝子情報を限定して必ずパイプライン処理になるようにすることが可能である。すなわち、具体的には、特定のエレメント(たとえば、LDB、C16L、C32L等)のパラメータは固定にしておく。
【0076】
また、本例の再構成デバイス1においては、パイプライン処理には、非フィードバック処理のみならず、フィードバック処理を含めることが可能である。フィードバック処理を含めてパイプライン処理する場合は、たとえば、データをRAMエレメントなどにより提供されるFF機能上に蓄積することが要求される。RAMエレメントおよびその他のエレメントにおいてFF機能が提供されるような初期値も、GCD71の遺伝子情報とすることが可能である。フィードバック処理を含めることにより、GCD71により表現できる回路構成が爆発的に広がる。たとえば、FIRフィルタに対して、フィードバック付き小規模HWで大規模なフィルタを構成できるIIRフィルタを例として挙げることができる。したがって、フィードバック処理を含むGCD71は、このタイプのGAGPで探索する解の好ましい一例である。
【0077】
選択的に次世代のGCD群70に引き継ぐ特性は上記に限定されない。テンプレート群73に含まれるテンプレートコンフィグレーションデータ74を、解を求めようとしているシステム、本例であれば変数xiにより与えられるシステムに固有の条件を反映するように生成し、生成ユニット2bは、テンプレートコンフィグレーションデータ74の固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代のGCD群72を生成する機能を含むことが望ましい。コンフィグレーションデータ18によりPEマトリクス10に構成可能な多様性に富んだ回路と、解を求めようとするシステムの特性との融合を図ることができる。このため、データ処理装置50により、引用文献1〜17に示されているような多種多様な用途に対し、メタヒューリスティクスな方法により、典型的には遺伝的アルゴリズム(遺伝的プログラム)により最適解を探索するシステムを提供できる。
【0078】
テンプレートコンフィグレーションデータ(遺伝子テンプレート)74による記述を採用することは、次のことを含む。予め単一のDNAコンフィギュレーションにより遺伝子テンプレートを記述し、複数(数個〜数10個)のDNAコンフィギュレーションを予め用意する。これにより、多様な遺伝子に対応することが可能となる。また、遺伝子テンプレートのパラメータのみを更新することにより無数の遺伝子式を表現することが可能となる。また、複数のテンプレートの中から、テンプレートを選択することにより多様な遺伝子を表現することが可能となる。また、演算器(PE)を最大限活用し、シストリックアレイ型の多種多様な演算を実現することも可能となる。さらに、1つの遺伝子に対して全学習データを連続してパイプライン処理し、結果(正解数)を短時間で出力することも可能となる。
【0079】
図13ないし図15に、動的再構成デバイス1を用いたデータ処理装置50により、解を探索する方法の一例を示している。これらの図においては、GCDを遺伝子と表示し、遺伝的とGCDとの対応関係を示している。
【0080】
図13に示す方法81は、次世代の遺伝子に相当するGCD群72を生成するステップ85と、生成された次世代のGCD群72を現世代の遺伝子に相当するGCD群70と置き換えて、その世代のGCD群70を評価するステップ86とを有する。最初のGCD群を生成するステップ85では、データ処理装置50の生成ユニット2bが、テンプレート群73に含まれるテンプレートコンフィグレーションデータ74を個体としてランダムに選択し、それらの個体から第1世代のGCD群70を生成する。
【0081】
次に、ステップ86において、再構成制御ユニット2aは、第1世代のGCD群70に含まれるそれぞれのGCD71を含むコンフィグレーションデータ18をコンフィグレーションメモリ19にセットし、PEマトリクス10に評価対象回路61を再構成する。サンプル供給回路62は、評価対象回路61に学習データ76を供給し、評価回路63により評価値を得る。それぞれのGCD71に対応する評価対象回路61を評価し、第1世代のGCD群70に含まれるすべてのGCD71の評価が終了すると、ステップ85に戻って、次世代のGCD群72を生成する。
【0082】
ステップ85において、生成ユニット2bは、現世代(第1世代)のGCD群70と、評価データ78とに基づき、遺伝的アルゴリズムにより次世代(第2世代)のGCD群72を生成し、現世代のGCD群70と置き換える。ステップ86において、再構成制御ユニット2aは、第1世代のGCDに基づきヒューリスティックに生成された第2世代のGCD群を評価する。
【0083】
このステップ86において、さらに具体的には、再構成制御ユニット2aは、ステップ87aにおいて、個々の第2世代のGCD71を用いて、PEマトリクス10に評価対象回路61を再構成し、ステップ87bにおいて、評価対象回路61を評価する。このデータ処理装置50においては、PEマトリクス10に、典型的には1クロックで回路をダイナミックに再構成することができる。したがって、個々のGCD71を評価するのに要する時間のほとんどすべては、評価対象回路61を評価するための時間となる。
【0084】
ステップ87bはステップ88および89を含む。ステップ88において、サンプルデータ供給ユニット62により学習データ76の各学習データセット75を評価対象回路61に供給する。ステップ88においては、学習データ76の学習データセット75に含まれる変数xiが次々とロードされ、評価対象回路61に供給される。さらに、ステップ89において、評価対象回路61が学習データセット75の演算を終了するのを待って、評価対象回路61に出力により、評価回路63が評価対象回路61を評価する。
【0085】
図13に示すように、1つのGCD71を評価するために、10000セットの学習データ75を供給し、その学習データ75の演算を待って評価する必要がある。さらに、1世代のGCD群70の評価を終了するためには、1000個のGCD71に対して同様の処理を行う必要がある。そして、100世代のGCD群70の評価を繰り返すことにより、ステップ90において、適切なGCD71を、最適解として得ることができる。学習データセット75の数、一世代に含まれる遺伝子総数(GCDの総数)、評価世代数は例示に過ぎず、多くても、少なくても良い。メタヒューリスティクスな解法としては、それぞれの数が多い方が、より最適な解が求められることが多い。このケースでは、変数xi(たとえば、iは1〜50)により与えられる事象に関する最適解を得るために、学習データセット75による評価(ステップ88および89)を109回繰り返す。データ処理装置50においては、ステップ88および89を、GCD71により再構成された専用回路(評価対象回路)61により実行する。したがって、CPUなどの汎用の回路を用いて、プログラムポインタにしたがってロードを繰り返すソフトウェアプログラムを用いて演算を繰り返すケースと比較し、大幅に最適解を得るまで時間を短縮できる。このため、より多くの学習データセット、遺伝子総数、評価世代数により解を得ることが可能となり、より最適な解を得ることが可能となる。
【0086】
図14に示す方法82も、次世代の遺伝子に相当するGCD群72を生成するステップ85と、次世代のGCD群72を現世代のGCD群70と置き換えて、その世代のGCD群70を評価するステップ86とを有する。さらに、ステップ86のうち、評価対象回路61を評価するステップ87bにおいて、このデータ処理装置50は、学習データ76の各学習データセット75を評価対象回路61に供給するステップ88と、評価対象回路61が学習データセット75の演算を終了するのを待って評価回路63が評価対象回路61を評価するステップ89とを、DNAデバイス1の特性を活かして連続パイプライン処理する。すなわち、評価対象回路61における演算終了を待たずに、評価対象回路61の出力に影響を与えない範囲で連続して複数の学習データセット75を、サンプルデータ供給回路62により評価対象回路61に供給する。
【0087】
それぞれのGCD71を評価するステップ87bをパイプライン処理することにより、ステップ87bの処理時間を大幅に短縮できる。上述したように、このケースでは、最適解を得るために、学習データセット75による評価ステップ87b(ステップ88および89)を109回繰り返す。したがって、評価ステップ87bの一回の処理時間の削減効果は、ステップ90において最適解を得るまでの処理時間に109のオーダで反映され、解探索に要する処理時間を大幅に短縮できる。
【0088】
さらに、それぞれの学習データセット75を評価対象回路61に供給するために要する時間を短縮することによりステップ87bの処理時間をさらに短縮できる。たとえば、学習データセット75に含まれる複数の変数xiがパラレルに入力できるように、サンプルデータ供給回路62および/または評価対象回路61を構成することにより、評価対象回路61から、ほぼ連続して、1クロックまたは数クロック単位で出力を評価回路63に供給できる。さらに、パイプライン処理を行うことにより、評価対象回路61の演算時間(処理時間)が、評価するステップ87bに要する時間(評価時間)に与える影響を緩和できる。遺伝子に対応するGCD71により再構成される評価対象回路61としては、できるだけ任意で、できるだけ複雑な回路が構成できることが望ましい。多数のPEを含む評価対象回路61は、処理時間は長くなる。しかしながら、パイプライン処理を採用することにより、個々の評価対象回路61の処理時間が長くなることは、入力データを供給してから出力が得られるまでのレイテンシが長くなることに影響するだけであり、多数の学習データセット75の評価間隔には影響を与えない。したがって、このデータ処理装置50により、複雑な構成の遺伝子に対応するGCD71を採用でき、短時間で最適な解を探索できる。
【0089】
図15に示す方法83も、次世代の遺伝子に相当するGCD群72を生成するステップ85と、生成されたGCD群72を現世代のGCD群70として評価するステップ86とを有する。さらに、ある世代のGCD群70を評価するステップ86において、GCD群70に含まれる複数のGCD71により複数の評価対象回路61をPEマトリクス10に再構成し、それら複数の評価対象回路61を並列に評価する。したがって、各世代のGCD群70の評価に要する処理時間を数分の一に短縮することができ、最適解の探索に要する処理時間をさらに短縮できる。図15に示すパラレル処理により処理時間を短縮する方法83は、図14に示したパイプライン処理により処理時間を短縮する方法82とともに適用することが可能であり、最適解の探索に要する処理時間をさらに短縮できる。
【0090】
データ処理装置50に採用されている動的再構成デバイス(DAPDNA)1は、PEマトリクス10の一部だけであっても、動的に回路を再構成することができる。したがって、複数のGCD71により複数の評価対象回路61を再構成する場合も、それら複数の評価対象回路61を同期して再構成する必要はなく、それぞれの評価対象回路61の評価に要する時間に応じて、随時、PEマトリクス10の空いた領域に評価対象回路61を再構成し、評価することができる。
【0091】
上記に加え、解を得ようとする事象あるいはシステムの探索に適したテンプレートコンフィグレーション群73を予め用意し、そのテンプレートコンフィグレーション群73を初世代として次世代のGCD群72を生成することは、短時間に最適な解を得るために有用な1つの方法である。そのようなテンプレートコンフィグレーション74は、上記と同様に、データ処理装置50により探索することができる。また、テンプレートコンフィグレーション群73により探索された解のGCD71をテンプレートコンフィグレーション群73に加えたり、学習データ76に、探索された解のGCD71の適用により得られたデータを加えたりすることは可能である。したがって、探索された解に基づいて、さらにシステムに適した解を再探索したり、変化する事象あるいはシステムに対して最適な解を探索して自律的に適応するような装置を提供することが可能である。
【0092】
さらに、このデータ処理装置50は、探索された解、すなわち、探索された最適のGCD71を用いて、事象あるいはシステムの入力データに対して出力データを生成し、出力するデータ処理装置としても機能する。したがって、このデータ処理装置50により探索された解(GCD)70を、同じタイプのデータ処理装置50に実装することにより、その解(GCD)を簡単に利用することができる。また、その解(GCD)を同じタイプのデータ処理装置50に適用するために、その解(GCD)の意味あるいはその解の物理的な意義を解釈したり、シミュレーションなどにより求めたりする必要はない。また、データ処理装置50により得られた解をシミュレーションなどにより分析し、他の装置の制御のために用いることも可能である。
【0093】
なお、上記では、遺伝的アルゴリズム(GA)をもとに、メタヒューリスティクスにコンフィグレーションデータを生成する例を説明しているが、メタヒューリスティクスにコンフィグレーションデータを生成する方法は、遺伝的アルゴリズムに限らず、遺伝的アルゴリズムの拡張の1つである免疫的アルゴリズム、さらには、シミュレーテッドアニーリング法などの他のメタヒューリスティクスな最適化手法であっても良い。
【0094】
また、これらのメタヒューリスティクスな方法により生成されるコンフィグレーションデータによりPEマトリクスに再構成可能な回路は、回路として表現できる機能であれば、基本的にどのような機能であっても含めることが可能であり、上述した多項式に限らず、ツリー構造により機能が示される事象(アプリケーション)、その他の構造により機能が示される事象(アプリケーション)、たとえば、引用文献1〜17に示した用途(技術)に対しても上記のデータ処理装置および解探索方法を適用できる。
【図面の簡単な説明】
【0095】
【図1】図1(a)は、再構成可能なデバイスの一例の概略構成を示し、図1(b)は、PEマトリクスの概略を示し、図1(c)および図1(d)は、PEマトリクスを動的に再構成する様子を示す。
【図2】PEマトリクスの配列を示す図。
【図3】PEマトリクスに配置されたPEのタイプを示す図。
【図4】PEの1つのタイプのEXMの構成を示すブロック図。
【図5】PEの1つのタイプのRAMの構成を示すブロック図。
【図6】セグメント内の配線(イントラセグメント配線)を示す図。
【図7】セグメント間の配線(インターセグメント配線)を示す図。
【図8】コンフィグレーションデータのフォーマットの一例を示す図。
【図9】再構成可能な領域を含むデータ処理装置の一例を示すブロック図。
【図10】図10(a)はコフィグレーションデータ(遺伝子データ)、図10(b)は学習データ、および図10(c)は評価データ(正解率)の例を示す。
【図11】評価対象回路の一例を示すブロック図。
【図12】演算ブロックの一例を示すブロック図。
【図13】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【図14】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【図15】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【符号の説明】
【0096】
1 再構成可能なデバイス
2a 再構成制御ユニット、 2b 生成ユニット
10 PEマトリクス(再構成ユニット)
50 データ処理装置
70、72、74 遺伝的アルゴリズムで生成されたコンフィグレーションデータ(GCD)群
【技術分野】
【0001】
本発明は、回路を再構成可能なユニットを用いた解探索方法およびデータ処理装置に関するものである。
【背景技術】
【0002】
特許文献1には、生物の進化の過程を模倣した最適化手法の1つである遺伝的アルゴリズム(GA:Genetic Algorithm)をもとに考案された遺伝的プログラミング(GP:Genetic Programming)を画像処理に適用したツリー構造状画像変換自動作成方法を印刷物の文字列抽出方法に用いることが記載されている。
【0003】
特許文献2には、解探索装置及びその初期値設定方法について開示されている。この方法は、数値計算によって物理化学現象をシミュレーションするソフトウェアに組み込まれた物理化学モデルが用いる複数のパラメータの値が、測定結果の様に外部から与えられたデータとの誤差を最小となる様に、遺伝的アルゴリズムを用いて自動的に探索する計算方法に関するものである。さらに、具体的には、この解探索装置、例えば、半導体回路シミュレータが内蔵するトランジスタモデルが持つ複数のパラメータを実測した電流電圧データ(I−Vデータ)の誤差が小さくなる様に合せ込んだり、半導体プロセスシミュレータが内蔵するイオン注入モデルが持つ複数のパラメータをSIMS測定した結果に合せ込んだりして、これらのシミュレータと実測結果の食い違いを抑制する事で、これらのシミュレータの予測性を高める為に用いられるものである。
【0004】
特許文献3には、コジェネレーションシステムの最適化方法および設備提案システムが記載されている。この最適化方法では,機器構成の最適化と運転パターンの最適化とを交互に繰り返す。そして,機器構成の最適化の際,機器と運転パターンとを1組の機器情報データとし,その機器情報データを基本単位として遺伝子操作中の交叉を行う。また,運転パターンの最適化の際、機器構成を固定し、その機器構成での運転パターンについて遺伝子操作を行う。そして,最適化された機器構成および運転パターンでの評価値を判定する。判定条件を満たしていない場合には,判定条件を満たすまで上記処理を繰り返すことが記載されている。
【0005】
特許文献4には、画像処理方法として、誤差拡散処理の目標としての2値画像であるターゲット画像を、遺伝的アルゴリズムに基づいて生成しておくことが記載されている。そして、均一輝度画像に対して誤差拡散パラメータを用いた誤差拡散処理を施すことによって比較画像を生成し、該比較画像と前記ターゲット画像の画質の差を評価する画質評価関数を設定し、この画質評価関数による評価値が最小となるように、誤差拡散パラメータを最適化する。
【0006】
特許文献5には、情報処理機構を用いて運転指向を推定する場合、遺伝的アルゴリズムを用いた情報処理機構で、計算負荷の増加を抑制できる運転指向推定装置を提供することが記載されている。運転指向推定装置は、運転指向によって変化する可能性のある運転操作量を検出する運転操作量検出部と、車両の走行環境に基づいて、前記検出された運転操作量を補正する運転操作量補正部とを備え、補正された運転操作量に基づいて、情報処理機構を用いて運転指向を推定する。走行環境には、道路の勾配及び路面の滑り易さの少なくともいずれか一方が含まれることができる。運転操作量には、アクセル開度、アクセル開度変化量、及びブレーキ踏力の少なくともいずれか一つが含まれることができる。
【0007】
特許文献6には、計算機を用いて所望の物性値条件を満たす高分子の構造を求める高分子材料設計方法であって、高分子モデルの作成条件および物性値条件を入力するステップと、この作成条件の下でモノマーに基づく構成単位を高分子の設計単位とし、この設計単位を遺伝子として遺伝的アルゴリズムの個体となる高分子モデルを作成するステップと、作成された高分子モデルについて物性値を計算し、前記物性値条件に対する適合度を計算するステップとを有する。そして、遺伝的アルゴリズムを用いて、次世代以降の個体の作成および適合度計算のステップを繰り返し、適合度の大きい高分子の構造を探索することを特徴とする方法が記載されている。
【0008】
特許文献7には、ロボットの行動学習に有利なセンサの形態を自動的に設計することができるセンサ設計装置が記載されている。初期世代作成部は、センサの形態を特定するための複数の遺伝子型を作成し、各遺伝子型により特定されるセンサの形態を有する複数のロボットを仮想的に作成し、行動学習部は、複数のロボットに仮想的に学習を行わせ、学習結果を基に各ロボットの適応度を算出し、選択部は、各ロボットの適応度を基に親個体となる複数のロボットを選択し、次世代作成部は、選択されたロボットの遺伝子型から遺伝的アルゴリズムに基づき次世代の遺伝子型を作成し、各次世代の遺伝子型により特定されるセンサの形態を有する複数のロボットを仮想的に作成し、行動学習部は、次世代の複数のロボットに仮想的に再度学習を行わせ、選択部、次世代作成部及び行動学習部による処理を所定世代繰り返してセンサの形態を決定することが記載されている。
【0009】
特許文献8には、2次元以上の空間に複数の要素を最適な状態で配置する要素配置最適化問題において、問題規模の大きい要素配置最適化問題を高速に処理できるようにすることが記載されている。複数の要素の初期配置状態に関する情報がコンピュータに入力されると、遺伝的アルゴリズムをCPUで実行して、初期配置状態にある複数の要素の疎密を解消する第1アルゴリズム実行ステップと、第1アルゴリズム実行ステップにて疎密が解消された後の複数の要素の中間配置状態に関する情報がコンピュータに入力されると、局所的疎密解消アルゴリズムをCPUで実行して、中間配置状態にある複数の要素の疎密を更に解消する第2アルゴリズム実行ステップとを実行することにより、接続関係を維持しながら初期配置状態にある複数の要素の疎密を解消することが記載されている。
【0010】
特許文献9には、通信システムに応用されるシーケンスの生成方法が記載されている。この方法は、長さの予め設定された複数のシーケンスをランダムに生成するステップ(1)と、各シーケンスの特定のパラメータ値を計算するステップ(2)と、計算により得られた特定のパラメータ値が一定の条件を満たす複数のシーケンスを選択するステップ(3)と、以上の処理により得られたシーケンスに対して適応遺伝変異を行い、適応確率により変異後特定のパラメータ値が最適になったシーケンスを選択するステップ(4)と、予め決めた回数までステップ(2)から(4)を繰り返し、最後に得られた複数のシーケンスから、特定のパラメータ値が最適なシーケンスを選択して出力シーケンスとするステップ(5)とを含む。
【0011】
特許文献10には、テンプレート画像を含む画像の検索を高速に高い精度で行うことが記載されている。領域選択受付部からの画像の領域の選択に基づいてテンプレート画像生成部はテンプレート画像を生成する。このテンプレート画像および検索対象になるターゲット画像は、画像縮小部において所定の縮小率に縮小される。個体抽出部において生成されたターゲット画像とテンプレート画像とを照合する領域の情報を有する染色体の適応度が、ターゲット画像準備値テーブルおよびテンプレート画像準備値テーブルに保持された準備値を用いて適応度算出部において算出された後、遺伝的アルゴリズム処理部で選択、交配および突然変異が行われる。以上の処理を所定世代数繰り返した後に、準最適解に対応する適応値が所定の閾値を超えているか否かが類似画像判断部で判断されることが記載されている。
【0012】
特許文献11には、周期的に配置されてなるマイクロレンズアレイの形状測定方法が記載されている。この方法では、被測定対象のマイクロレンズアレイに所定波長の入射光を入射させ、透過側又は反射側に生じる回折光の直交する2つの方向に回折される各々複数の回折次数の強度を検出することで、各回折次数の回折効率の実測値を求め、他方、被測定対象のマイクロレンズアレイの各レンズの形状として2次元的なサンプリング点に初期値を与え、その初期値から出発して前記所定波長の入射光を入射させたときに透過側又は反射側に生じる回折光の直交する2つの方向に回折される各々複数の回折次数の強度を厳密な電磁波解析により算出し、順次遺伝的アルゴリズムを適用しながら、その算出値と前記実測値の差をパラメータとする評価関数を用いて、前記初期値の形状を最適化する。
【0013】
特許文献12には、マルチビームを用いた電子写真方式の画像形成手段や回転多面鏡による走査光学系を用いた電子写真方式の画像形成手段において発生する画質の劣化を防ぐことが記載されている。そのため、評価手段によりマルチビームの各ビームで発生するドットの出現頻度や回転多面鏡の各反射面によって走査形成されるドットの出現頻度に基づいてディザマトリクスに応じて生成される画像データに対する評価を行ない、この評価結果に基づき求めたディザマトリクスの適応度に基づいて遺伝的アルゴリズム処理手段により遺伝的アルゴリズム処理を実行し、ディザデータ出力手段においては生成した遺伝子情報によりディザマトリクスを出力する。これにより、マルチビームの各ビームで光量に違いがある場合や回転多面鏡の反射面にばらつきがある場合であっても、画質への影響を軽減させることができるので、画質の劣化を防ぐことができることが記載されている。
【0014】
特許文献13には、機械本体の複数個所の温度測定に基づいて加工点における熱的な変位量を推定し補正する機能を備えた工作機械における、補正に用いられる所定の関係式に適合する最適な温度測定位置を遺伝的アルゴリズムを用いて求めることが記載されている。
【0015】
特許文献14には、適切なパレート最適個体を短時間で効率良く得ることが可能な多目的最適化装置、多目的最適化方法および多目的最適化プログラムを提供することが記載されている。多目的進化型アルゴリズム部は第1、第2および第3の親個体から複数の子個体候補を生成する。次に、適応度推定モジュールは全ての親個体および子個体候補についての真の適応度の推定値を算出する。さらに、多目的進化型アルゴリズム部は、全ての親個体および子個体候補のランキングを行い、最上位ランクの1つの子個体候補を親個体集合に追加して混雑度を算出し、それらの子個体候補を混雑度の良い順にソートし、より良い混雑度を有する所定数の子個体候補を子個体集合として選択する。多目的最適化問題の一例は、エンジンの燃費およびトルクの最適化に適用することである。
【0016】
特許文献15には、巡回すべき複数の地点に順序および/または時間的な制約がある場合に、当該制約を満足し得る巡回経路を探索できるようにすることが記載されている。そのため、巡回対象の地点の位置情報および/または巡回対象の地点の制約条件を入力する操作・入力手段と、2地点間の経路を探索する2点間経路探索手段と、複数の巡回対象の地点を巡回する巡回経路を探索する巡回経路探索手段と、を備え、2地点間経路探索手段は、巡回対象の2地点間全ての最短経路を探索して記憶し、巡回経路探索手段は、遺伝アルゴリズムを用いて最適な巡回経路を求める際に、巡回順序に応じた経路コストの和に前記巡回対象の地点の制約条件に応じた制約コストを付加して評価値を算出し、該評価値が既存集団における遺伝子より良い評価値であれば遺伝子集団に加えて、巡回経路探索を進める。
【0017】
特許文献16には、車両毎にパラメータ調整を行う必要がなく、車両の運動状態の変化に即応してリアルタイムにコーナリングパワーを推定可能なコーナリングパワー推定装置を提供することが記載されている。このため、コーナリングパワー推定装置は、車両運動モデルに基づいてヨーレートの推定値の演算を行う演算装置と、遺伝的アルゴリズムによる進化計算を行う算出装置とを備えている。
【0018】
特許文献17には、所定環境において最適解を求めるにあたり、染色体の初期値を新たに発生させる場合に、探索済み領域以外の領域に発生させ、効率的に最適解を求めることが記載されている。複数の情報体からなる情報体集団に対し、遺伝的アルゴリズムを用いて探索操作を行い、最適解を求める最適解探索装置において、適応度値の変化率と予め定められた変化率とを比較し、前記適応度値の変化率が、前記予め定められた変化率より小さいと判断した場合、新たな情報体を導入する。その際に、すでに導入されている情報体の分布情報を参照して、情報体密度がより少ない領域に対して新たに情報体を導入する。
【0019】
特許文献18には、複数種類のプロセッシングエレメントの機能およびそれらの接続を変えて種々のデータパスを動的に再構成するタイプの集積回路装置が記載されている。
【特許文献1】特開2004−362440号公報
【特許文献2】特開2006−23868号公報
【特許文献3】特開2006−268102号公報
【特許文献4】特開2006−303999号公報
【特許文献5】特開2006−312414号公報
【特許文献6】特開2007−31541号公報
【特許文献7】特開2007−41723号公報
【特許文献8】特開2007−52799号公報
【特許文献9】特開2007−68174号公報
【特許文献10】特開2007−102634号公報
【特許文献11】特開2007−121057号公報
【特許文献12】特開2007−137007号公報
【特許文献13】特開2007−167966号公報
【特許文献14】特開2007−172306号公報
【特許文献15】特開2007−187584号公報
【特許文献16】特開2007−190955号公報
【特許文献17】特開2007−199943号公報
【特許文献18】特開2006−285386号公報
【発明の開示】
【発明が解決しようとする課題】
【0020】
遺伝的アルゴリズムは、メタヒューリスティック(Metahuristic)な解法の一例である。メタヒューリスティクスは、一般的な計算問題を解くためのヒューリスティックな方法(トライアンドエラーにより問題を解く方法)の1つであって、特定の問題に限定されず、どのような問題に対しても汎用的に対応できるように設計された、アルゴリズムの基本的な枠組みを示す。メタヒューリスティクスには、遺伝的アルゴリズムの他に、シミュレーテッドアニーリング法などが含まれる。また、この明細書において遺伝的アルゴリズムとは、遺伝的プログラミング、免疫的アルゴリズムなどのさまざまな拡張手段を含むものである。
【0021】
遺伝的アルゴリズムは、上記特許文献1−17に示したように、多種多様な分野において多種多様な問題の解決に用いることが提案されている。遺伝的アルゴリズムを用いて、問題に対する解を見つける際に、一般的に要求されることは、できるだけ複雑な遺伝子を表現できること、できるだけ任意な遺伝子を選択できることである。そして、各遺伝子をできるだけ多くの条件で適正に評価し、世代交代をできるだけ多く繰り返すことにより、最も適応度の高い個体(遺伝子)を「解」として出力することである。しかしながら、世代交代により生み出される各遺伝子を評価するためには、通常、長時間を要する。このため、複雑な表現を持った遺伝子の採用が実際には困難であり、最大世代数も限られてしまうことが多い。さらに、進化に長時間を要するために、遺伝子をリアルタイムに、あるいはリアルタイムに近い状態で進化させて、環境への適応力を高めることも難しい。
【0022】
このような問題は、遺伝的アルゴリズムを用いた解法に限らず、トライアンドエアーを繰り返し(反復し)、解を発見的に導く、メタヒューリスティックな解法に共通するものである。したがって、複雑な表現を持った遺伝子に代表されるメタヒューリスティクスな解を高速で評価できる手段および方法が求められている。
【課題を解決するための手段】
【0023】
本発明の一態様は、回路を構成するための複数のエレメントと、複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、内部配線による複数のエレメントの接続を変更すること、および/または複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置である。この制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより、再構成ユニットの少なくとも一部に回路を再構成する。このデータ処理装置は、さらに、発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給するサンプルデータ供給ユニットと、複数のサンプルに基づく評価対象回路の出力データの少なくとも一部を用いて評価対象回路の評価値を得る評価ユニットとを含む。
【0024】
再構成ユニットに回路を再構成するためのコンフィグレーションデータと、そのコンフィグレーションデータにより再構成される回路とは、基本的に一対一で対応する。したがって、コンフィグレーションデータに何らかの変化があれば、それにより再構成される回路も変化する。回路のそのような変化により、回路の出力に影響があるか否かはケースバイケースである。しかしながら、コンフィグレーションデータを、それにより再構成される回路の出力を用いて評価することが可能であり、最適解として評価されたコンフィグレーションデータにより、同一構成の他の再構成ユニットに回路を再構成すれば、同一の性能を得られる。そして、コンフィグレーションデータの評価は、コンピュータプログラムにより動作する数値的な計算またはシミュレーションではなく、再構成ユニットに再構成された回路を機能させる、すなわち、複数の入力データのサンプルを再構成された回路に供給することで短時間に行えるようになる。
【0025】
また、複雑な遺伝子に対応するような複雑なコンフィグレーションデータも、それに対応した回路として再構成ユニットに実装される。そのようなコンフィグレーションデータにより再構成される回路は、回路構成が複雑になるかもしれない。しかしながら、回路構成が複雑になることにより処理速度が低下したとしても、その度合いは、プログラムステートメントが増大することによる処理速度の低下とは比較にならないほど小さく、複雑なコンフィグレーションデータであっても短時間で評価できる。さらに、パイプライン処理、並列処理などを併用することにより、より高速な評価が可能となる。したがって、複雑な表現を持った遺伝子に代表されるメタヒューリスティクスな解を高速で評価できる。
【0026】
サンプルデータ供給ユニットは、評価対象回路においてパイプライン処理が行われる間隔で複数のサンプルを供給し、評価ユニットは、評価対象回路とともに、再構成ユニットに構成されることが好ましい。発見的なコンフィグレーションデータにより、パイプライン処理が行われる評価対象回路が構成されれば、評価ユニットにおける処理も含めてパイプライン処理が可能となる。したがって、複雑なコンフィグレーションデータであっても、実質的に、評価結果を、サンプルの入力データを入力するために要する時間程度の短い間隔で得ることができる。
【0027】
制御ユニットは、複数セットの発見的なコンフィグレーションデータを出力し、再構成ユニットには、複数セットの発見的なコンフィグレーションデータにより、複数の評価対象回路が再構成され、サンプルデータ供給ユニットは、複数の評価対象回路に対し並列に前記複数のサンプルを供給することが望ましい。複数セットの発見的なコンフィグレーションデータを、複数の評価対象回路により並列に評価できる。したがって、評価結果を短時間に得ることができる。
【0028】
評価ユニットから得られる評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成し、制御ユニットより使用可能とする生成ユニットをさらに有することが望ましい。評価結果が得られる時間を短縮できるので、世代交代する間隔を短縮でき、最適解を得るための最大世代数を増大できる。
【0029】
生成ユニットは、再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成する機能を含むことが望ましい。発見的なコンフィグレーションデータにより再構成される評価対象回路は、予め規定される評価ユニットにおいて有意な出力データを出力するとは限らない。テンプレートコンフィグレーションデータを親または現世代として次世代の発見的なコンフィグレーションデータを生成することにより、無駄あるいは評価対象にならない評価対象回路を再構成するような発見的なコンフィグレーションデータが生成される可能性を抑制できる。
【0030】
複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータであることが望ましい。このようなテンプレートコンフィグレーションから生成される次世代の発見的なコンフィグレーションデータを生成することにより、次世代の発見的なコンフィグレーションデータがパイプライン処理を行う評価対象回路を再構成するものである可能性を向上でき、評価時間を短縮できる可能性が高くなる。
【0031】
生成ユニットは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、次世代の発見的なコンフィグレーションデータを生成することが望ましい。内部配線による複数のエレメントの接続を変更することも含めて次世代の発見的なコンフィグレーションデータを生成しても良い。複雑で多種多様な遺伝子に相当するコンフィグレーションデータを生成できる。しかしながら、評価対象にならない評価対象回路を再構成するコンフィグレーションデータも生成され易くなる。コンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新して、次世代の発見的なコンフィグレーションデータを生成することにより、評価対象にならない評価対象回路を再構成するコンフィグレーションデータが生成される可能性を低くできる。
【0032】
テンプレートコンフィグレーションデータが、解を求めようとしているシステムなどに固有の条件を反映するものであっても良い。テンプレートコンフィグレーションデータの、それら固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代の発見的なコンフィグレーションデータを生成するようにしても良い。発見的なコンフィグレーションデータの変化、突然変異の範囲が縮小されるが、システムに適した解を早いタイミングで得ることができる。
【0033】
本発明の他の態様の1つは、再構成ユニットと、コンフィグレーションデータを出力する制御ユニットとを有するデータ処理装置であって、制御ユニットは、最適解として評価された発見的なコンフィグレーションデータにより回路を再構成する、データ処理装置である。最適解として評価された発見的なコンフィグレーションデータにより、再構成ユニットに、評価対象回路と同一の回路を構成することができ、最適と評価された機能を再構成ユニットにより提供できる。
【0034】
本発明の他の態様のさらに異なるものは、回路を再構成可能な再構成ユニットを用いた解探索の方法である。再構成ユニットは、複数のエレメントと、複数のエレメントを接続するための内部配線とを含み、内部配線による複数のエレメントの接続を変更すること、および/または、複数のエレメントの機能を変更することにより、回路を再構成可能である。再構成ユニットの回路を再構成するためのコンフィグレーションデータは、複数のエレメントの接続情報および/または複数のエレメントの機能情報を含む。当該方法は、以下の各ステップを有する。
・少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより再構成ユニットの少なくとも一部に回路を再構成すること。
・発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給すること。
・複数のサンプルに基づく評価対象回路の出力データの少なくとも一部を用いて評価対象回路の評価を得ること。
・評価を得ることを繰り返すことにより、評価対象回路を再構成するための発見的なコンフィグレーションデータを解として探索すること。
【0035】
この方法は、発見的なコンフィグレーションデータを、その発見的なコンフィグレーションデータにより再構成ユニットに再構成される回路により評価できる。したがって、高速で、最適解を探索できる。
【0036】
サンプルを供給するステップは、評価対象回路においてパイプライン処理が行われる間隔で複数のサンプルを供給することを含み、評価値を得るステップは、評価対象回路とともに、再構成ユニットに構成される回路により評価値を得ることを含むことが望ましい。
【0037】
再構成するステップは、複数セットの発見的なコンフィグレーションデータにより、再構成ユニットに複数の評価対象回路を再構成することを含み、サンプルを供給するステップは、複数の評価対象回路に対し並列に複数のサンプルを供給することを含むことが望ましい。
【0038】
評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することをさらに有することが望ましい。そのような発見的なコンフィグレーションデータは、遺伝的アルゴリズムにより生成される遺伝子に対応したコンフィグレーションデータ(遺伝子的コンフィグレーションデータ、遺伝的コンフィグレーションデータ、遺伝子対応コンフィグレーションデータ)となる。次世代の発見的なコンフィグレーションデータは、現世代の発見的なコンフィグレーションデータとして使用され、評価対象回路が再構成される。
【0039】
上記の生成するステップは、再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0040】
複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータであることがさらに望ましい。
【0041】
生成するステップは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0042】
テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、生成するステップは、テンプレートコンフィグレーションデータの、固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代の発見的なコンフィグレーションデータを生成することを含むことが望ましい。
【0043】
また、この方法は、さらに、前世代のコンフィグレーションデータを、内部配線による複数のエレメントの接続を変更することを含めて、遺伝的アルゴリズムにより更新し、再構成ユニットにより評価し、複数のテンプレートコンフィグレーションデータを探索することをさらに含むことが望ましい。あるシステムに対して適当な解が得られそうなテンプレートコンフィグレーションデータは、ヒューリスティックな方法により探索できる。それを、事前に、再構成ユニットを用いて行うことにより、最適解の探索に要する時間を短縮できる。
【発明を実施するための最良の形態】
【0044】
図1(a)に、再構成可能なデバイスの一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/またはPEsの接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。PEマトリクス10に配置されるPEの数は、上記に限定されるものではない。
【0045】
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図1(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。このようにPEマトリクス10は、回路を構成するための複数のエレメントと、これらのエレメントを接続するための内部配線とを含む再構成ユニットであり、内部配線によりエレメントの接続を変えることによりPEマトリクス10に含まれる回路を動的に再構成できる。
【0046】
図1(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えばMPEGデコーダを時分割した複数の機能(サブファンクション)を、PEマトリクス10に時分割で動的に再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
【0047】
図1(d)は、PEマトリクス10に回路を構成する他の例の一つである。再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。このデバイス1は、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できるので、専用のハードウエアに匹敵する速度で処理を行うことができる。さらに、PEマトリクス10に含まれるPEsは、クロックにより同期した処理を行うことが可能であり、パイプライン処理に適したデータフロー(データパス)をPEマトリクス10に再構成できる。さらに、多数のPEsにより並列処理を行う複数のデータフローを並列に再構成することも可能である。したがって、PEマトリクス10に回路を動的に再構成することにより、ハードウエアにより高速処理と、ソフトウエアのような柔軟性とが融合された動作環境および解探索環境を提供できる。
【0048】
図2に、PEマトリクス10の配列を拡大して示している。処理エレメントPEsは、全体として、16×24のマトリクスを構成するように配置されている。なお、図3に示すように、PEのいくつかは、2個分のPEのスペースを占め、全体として376個のPEがPEマトリクス10に実際には配置されているが、図2には反映していない。これらのPEsは、さらに、それぞれ8×8のPEsからなる6つのグループに区分けされている。これらのグループをセグメントSと称し、PEマトリクス10の左上から右下に向かって順番にセグメントS0からセグメントS5が配置されている。各々のセグメントS0〜S5に含まれるPEは、1サイクルの遅延の範囲内でデータを送受信可能なイントラセグメントコネクションで接続されている。また、セグメントS0〜S5の内、隣接するセグメントは、後述するディレイエレメントを介してインターセグメントコネクション22により接続されている。
【0049】
図3に、PEマトリクス10に含まれるPEsの具体的な配置例を示している。図3に示したPEのうち、「EX」で始まるPEは、EXEエレメントと呼ばれ、算術演算、論理演算および2入力の比較機能を含む演算用のエレメントである。「EXC」は、CMPSB命令を搭載し、「EXF」は、FF1命令を搭載し、「EXM」は、乗算命令を搭載し、「EXR」はBREV命令を搭載し、「EXS」は、BSWAP命令を搭載するというように、タイプ毎に固有の演算機能も含んでいる。
【0050】
「DL」で始まるPEは、ディレイエレメントであり、1−8クロックの間の遅延をそれぞれ設定できる。「DLE」は、セグメント内のデータ遅延用であり、「DLV」は縦方向のセグメント間のデータ送受信用であり、「DLH」は横方向のセグメント間のデータ送受信用であり、「DLX」は縦横方向のセグメント間のデータ送受信用のエレメントである。
【0051】
「RAM」と表示されたPEは、DNAの内部メモリとして使用されるエレメント(メモリエレメント)である。「LDB」と表示されたPEは、データ入力用のDNA内部バッファである。「STB」と表示されたPEは、データ出力用のDNA内部バッファである。「C16E」と表示されたPEは、DNA内部バッファに対するアドレス生成エレメントである。「C32E」と表示されたPEは、外部メモリ空間に対するアドレス生成エレメントである。「LDX」と表示されたPEは、DNAダイレクトI/Oからのデータ入力用エレメントである。「STX」と表示されたPEは、DNAダイレクトI/Oへのデータ出力用エレメントである。PEマトリクス10において、LDBおよびLDXは、外部からデータを入力するための入力インターフェイスとして使用でき、STBおよびSTXは、外部へデータを出力するための出力インターフェイスとして使用できる。
【0052】
図4に、PEの一例として、EXEエレメント(「EXM」)の概略構成をブロック図により示している。EXMエレメントは、ALU11aと、MUL(16×16)11bと、FF11cなどを含む。このEXMエレメントは、DNA3のコンフィグレーションメモリ19に格納されたコンフィグレーションデータ18に含まれる、PEの機能を設定するための機能情報により、算術演算、論理演算、2入力の比較機能、さらには、乗算のいずれか、または複合した命令を実行するように構成できる。また、複数のFF11cを内蔵しているので、エレメントPEに対するデータの入力から出力までのレイテンシを制御することが可能であり、ディレイエレメント(DLE)の数が不足する構成では、ディレイエレメントとしての機能をセットすることも可能である。
【0053】
図5に、PEの他の例として、RAMエレメント(「RAM」)の概略構成をブロック図により示している。このRAMエレメントは、データ格納用メモリエレメントであり、16KB(32ビット×4096ワード)のRAMモジュール12aと、アドレス入力用のアドレスレジスタ(FF)12b、ラッチ12c、データ入力用のライトデータレジスタ(FF)12d、ラッチ12e、データ出力用のリードデータレジスタ(FF)12fを含む。RAMモジュール12aのリードとライトの制御は、アドレスデータおよび/またはリードデータとともに入力されるトークンの値により行なわれる。アドレス入力からリードデータの出力までは、EXEエレメントと同様に3クロックサイクル程度で可能になっており、PEマトリクス10に含まれる他のタイプのPEと同様のレイテンシで、データの入出力が可能である。このRAMエレメントは、DNA3のコンフィグレーションメモリ19に格納され、それぞれのPEに供給されるコンフィグレーションデータ18に含まれる機能情報により、32ビットモード、デュアルポート32ビットモード、FIFOモード、16ビットモード、8ビットモード、さらに、FSM(フィードバックステートモード)でデータ入力および/または出力するように構成できる。
【0054】
RAMエレメントのアクセスアドレスの生成には、EXEエレメント、カウンタエレメントであるC16Eおよび/またはC32Eを使用することができ、PEマトリクス10のルーティングマトリクス(マトリクスバス)を通じて、RAMエレメントに入力できる。したがって、RAMエレメントへの入出力は、PEマトリクス10に再構成される回路により制御できる。なお、RAM、EX以外のPEについても、同様に、それぞれのPEに提供されるコンフィグレーションデータ18に含まれる機能情報により、機能(定数などを含めて)を設定および変更できる。
【0055】
PEマトリクス10は、複数のPEsと、それらを接続するためのルーティングマトリクス(内部配線、配線群)20を含む。ルーティングマトリクス20は、セグメントS内のPEを接続するための第1レベルの配線群(第1レベルのルーティングマトリクス、イントラコネクト)21と、ディレイエレメントを介して隣接するセグメントSの間を接続するための第2レベルの配線群(第2レベルのルーティングマトリクス、インターコネクト)22とを含む。ルーティングマトリクス20によるPEsの接続はコンフィグレーションデータ18により制御できる。したがって、PEマトリクス10には、コンフィグレーションデータ18により、複数のPEのそれぞれの機能を変更すること、および/または、ルーティングマトリクス20の少なくとも一部の接続を変更することにより、異なる回路(データパス、データフロー)を再構成できる。
【0056】
図6に、セグメントSの内部のPEsを接続するための第1レベルの配線群21の構成の一例を示している。第1レベルのルーティングマトリクス21は、セグメントS0に含まれる8×8個のPEsを接続するために、128の縦方向のバス23と、64の横方向のバス24とを含む。縦方向のバス23は、16のグループに分けられ、それぞれ8のバスを含む2つのV−バス23xおよび23yがペアとなり、PEsの縦の列(コラム)に沿って、その列の両側に配置されている。横方向のバス24は8のグループに分けられ、それぞれ8のバスを含むH−バス24がPEの横方向の行(ライン)に沿って配置されている。V−バス23xおよび23yには、8−1のバスセレクタ(マルチプレクサ、MUX)25がそれぞれのPEに対応して設けられており、それぞれのPEに対してデータの入力を可能としている。
【0057】
H−バス24には、H−バス24とV−バス23xおよび23yのそれぞれの交差に対応して、8−1のバスセレクタ(マルチプレクサ、MUX)26が設けられている。したがって、1つのH−バス24から1つのデータセットを、そのH−バス24と交差している1つのV−バス23xまたは23yに出力できる。逆も可能である。H−バス24に含まれるバスのそれぞれには、そのラインのPEsの出力が接続される。したがって、V−バス23xおよび23yと、H−バス24とを介することにより、セグメントSに含まれるPEsを接続できる。これらのV−バス23xおよび23y、およびH−バス24の接続は、コンフィグレーションデータ18に含まれる接続情報により制御できる。そして、これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により実現できる接続パターンは膨大であり、基本的には、セグメントSに含まれる全てのPEをフレキシブルに接続できる。したがって、コンフィグレーションデータ18により、PEsの接続を、配線資源により制限は受けるとしても、基本的には、自由自在に制御できる。
【0058】
これらのV−バス23xおよび23y、およびH−バス24を含む第1レベルのバス21により接続できる範囲、すなわち、各セグメントS0〜S5内のPEの間では1サイクル(1クロック)以内にデータを送受信できる。したがって、タイミング的には、例えば、セグメントS0に含まれるPEsは、いずれも等価である。このため、同一セグメント内であれば、回路を構成するために、いずれのPEを選択して機能を割り付けても、タイミングの検討は不要であり、タイミング的には、セグメント内のPEsを用いて、所定の回路を自由に配置および配線できる。
【0059】
図7に、第2レベルのルーティングマトリクス22の構成を示している。図7では、第2レベルのルーティングマトリクス22により、隣接するセグメントS1およびS4にそれぞれ含まれている接続用のエレメントDLHを接続している。それぞれのDLHは、それぞれのセグメントS1およびS4の内部の第1レベルのルーティングマトリクス21に接続している。したがって、セグメントS1に含まれるPEと、セグメントS4に含まれるPEとを第2レベルのルーティングマトリクス22を介して接続することができる。接続用のディレイエレメントDLHは、第1レベルのルーティングマトリクス21に含まれるバスのインターフェイスとして機能する。セグメント間の接続も、したがって、DLHなどのセグメント内における接続用のエレメントと他のPEとの接続および接続用エレメントの機能を、コンフィグレーションデータ18の接続情報および/または機能情報により制御できる。したがって、PEマトリクス10に含まれるすべてのPEsの接続および機能を、マトリクス10の全体としても、マトリクス10の部分に限定的にも、コンフィグレーションデータ18により制御することができる。
【0060】
メタヒューリスティクスな方法により生成される発見的なコンフィグレーションデータ(ヒューリスティックに生成されたコンフィグレーションデータ、ヒューリスティックなコンフィグレーションデータ)およびそれによりPEマトリクス10に再構成される回路は、回路から出力される結果が、その処理により得ようとする目的に合致したもの、あるいは目的に合致している確率が高そうなものであれば、意味(たとえば、物理的な内容、統計学的な意味、その他の学術的な意味)が無い、意味が不明または意味を解析するために時間を要するものであっても良い。しかしながら、以下では、説明を簡単にするために、発見的なコンフィグレーションが、評価対象回路として、以下のような適当または任意の多項式を演算するための回路を再構成する場合を想定する。
【0061】
Σfi(x1,x2・・xn−1,xn)=Fout ・・・(1)
上記式(1)において、iは1〜nまでの整数であり、式(1)の多項式の部分が、変数xiにより与えられる何らかの事象(システム、現象)に対する解に相当する。したがって、以下では、遺伝的アルゴリズムにより、最適解を示す多項式の部分を探索する。そのため、多項式が、遺伝子、すなわち、発見的なコンフィグレーション(遺伝子的コンフィグレーションデータ、遺伝子対応のコンフィグレーションデータ)として生成され、その発見的なコンフィグレーションを、再構成ユニットであるPEマトリクス10にその発見的なコンフィグレーションにより再構成された評価対象回路により評価する。発見的なコンフィグレーションの生成方法によるが、生成された発見的なコンフィグレーションによりPEマトリクス10に再構成される評価対象回路のうち、式(1)として意味のあるものが評価されるということも可能である。さらには、生成された発見的なコンフィグレーションによりPEマトリクス10に再構成される評価対象回路を、式(1)が実装されていると想定して評価するということも可能である。
【0062】
式(1)の出力Foutは、評価対象回路の出力に相当する。出力Foutを得るために、学習データ、教師データなどと称される変数xiの複数セットをサンプルとして入力する。学習データには、変数xiのセットと、そのセット(学習データセット)により得られたい結果とが含まれており、出力Foutと、結果とを比較することにより、その学習データセットに対する評価対象回路の可否が判断される。そして、複数の学習データセットに対して、良好な結果が得られた発見的なコンフィグレーションを親として、次世代の発見的なコンフィグレーションが生成される。
【0063】
図8に、コンフィグレーションデータ18の一例を示している。コンフィグレーションデータ18は、各PEの機能を記述している機能情報セクション18aと、バスセレクタ25および26の接続情報を記述している接続情報セクション18bとを含む。セクション18aには、各PEを特定するための識別情報(アドレス)18cと、機能の設定内容18dとが含まれている。セクション18bには、バスセレクタ25および26を特定するための識別情報(アドレス)18eと、接続の内容18fとが含まれている。以下の例では、同じフォーマットのコンフィグレーションデータ18であって、含まれている機能情報18aおよび/または接続情報18bが異なる複数のデータがヒューリスティックな方法、具体的には、遺伝的アルゴリズムにより、発見的なコンフィグレーションデータ(以降では遺伝子的コンフィグレーションデータあるいは遺伝子対応コンフィグレーションデータ、GCD)71が世代単位で、遺伝子対応コンフィグレーションデータ(GCD)のグループあるいはセット70として生成される。GCD71は、ヒューリスティックに生成される情報を含めばよく、PEマトリクス10全体がヒューリスティックな情報により再構成される必要はない。PEマトリクス10に実装(再構成)される回路のうち、評価対象回路に相当する部分の全てまたは一部を再構成するための情報がヒューリスティックな情報であればよい。この明細書において、ヒューリスティックなデータまたは情報とは、少なくとも1部が、ヒューリスティクス(メタヒューリスティクス)な方法により生成されたものを示す。
【0064】
図9は、本発明の実施形態の一例のデータ処理装置のブロック図である。このデータ処理装置50は、DAPDNA1を用いて実現されている。データ処理装置50は、再構成ユニット(再構成領域)であるPEマトリクス10を有する。このPEマトリクス10は、上述したように、回路を構成するための複数のエレメント(PE)と、これらPEを接続するための内部配線20とを含み、内部配線20による複数のPEの接続および/またはPEsのそれぞれの機能を変更することにより、当該再構成ユニット10に含まれる回路を再構成可能である。さらに、データ処理装置50は、複数のPEの接続情報18bおよび各PEの機能情報18aを含む再構成情報(コンフィグレーションデータ)18を用いて、PEマトリクス10に回路を再構成する再構成制御ユニット2aを有する。この例では、再構成制御ユニット2aとしての機能はDAP2により提供され、再構成制御ユニット2aにより回路を再構成するために用いられるコンフィグレーションデータ18はGCD71を含む。
【0065】
このデータ処理装置50では、再構成制御ユニット2aが、コンフィグレーションメモリ19にGCD71をセットし、PEマトリクス10の一部を用いて、評価対象回路61を構成する。さらに、再構成制御ユニット2aは、GCD71とは異なるコンフィグレーションデータ18をコンフィグレーションメモリ19にセットし、PEマトリクス10の残りの部分を用いて、評価対象回路61を評価するためにサンプルデータ(学習データ)76を供給するための回路(サンプルデータ供給回路)62と、評価対象回路61の出力(この例ではFout)の評価を行い評価値78、たとえば出力Foutの正解率を演算するための回路(評価回路)63とを構成する。
【0066】
図10(a)は、GCD71のある世代の群(グループ)70の一例である。たとえば、1世代の遺伝子データの群70は、1000個の遺伝子データ71を含み、それぞれの遺伝子データはGCD71を示している。
【0067】
図10(b)は、学習データ76の一例である。学習データ76は、1000個のデータセット75を含み、それぞれのデータセット75は、多項式(1)の変数x1〜x50と、それらの変数により計算される予定の値(予定値)Tsとを含む。学習データ76は、サンプルデータ供給回路62により、各々のGCD71によりPEマトリクス10に再構成される評価対象回路61に供給される。これら1000個のデータセット75による出力値は、評価回路63により予定値Tsと比較され、正解率が演算される。図10(c)に、遺伝子(GCD)71毎の正解率が評価値78として出力された状態を示している。
【0068】
図9に示すように、データ処理装置50は、次世代の遺伝子、すなわち次世代のGCDの群72を生成するユニット(生成ユニット)2bを有する。この例では、生成ユニット2bとしての機能はDAP2により提供される。生成ユニット2bは、遺伝的アルゴリズムにより、現世代のGCD群(遺伝子群)70から次世代のGCD群(遺伝子群)72を生成し、現世代のGCD群70を次世代のGCD群72により置き換え、再構成制御ユニット2aが使用できるようにする。より具体的には、生成ユニット2bは、評価値78により、現世代のGCD70のそれぞれのGCD71の適応度を判断する。そして、ある確率で選択(淘汰、再生)し、交叉、突然変異、コピーを含む遺伝的操作を行い、次世代のGCD群72を生成する。選択方法は、ルーレット選択、ランキング選択、トーナメント選択などが知られている。交叉方法は、一点交叉、二点交叉、多点交叉、一様交叉などが知られている。次世代のGCD群72は、最適解のGCD71ができるだけ早く探索されるように生成することが好ましく、具体的な遺伝子操作の方法は、解を得ようとするシステムの特性などによって選択することができる。
【0069】
図11に、あるGCD71を含むコンフィグレーションデータ18によりPEマトリクス10に回路が再構成された状態を示している。この例では、GCD71によりPEマトリクス10に再構成された評価対象回路61は、4つの演算ブロック65a〜65dを含む。それぞれの演算ブロック65a〜65dに対して、PEマトリクス10に構成されたサンプル供給ユニット62は、学習データ76を並列に供給する。評価対象回路61の出力は評価回路63において評価される。サンプル供給回路62が、たとえば、学習データ76の1つのセット75の最後を示すデータを評価対象回路61に入力し、評価回路63では、最終のデータがすべての演算ブロック65a〜65dから出力されたことを判定閾値で判定する。そして、そのタイミングで得られた評価対象回路61の出力を、学習データセット75に含まれている正解Tsと比較する。学習データ76に含まれる1000個の学習データセット75に対して、評価対象回路61の出力と正解Tsとを比較することにより、評価値として正解率78を出力することができる。
【0070】
図12に、演算ブロック65aの一例を示している。この演算ブロック65aに含まれる回路は、ALU、セレクタ、ラッチ、RAMとしての機能を有する各PEの機能を変更するだけで多種多様な多項式を表現することができる構成を備えた回路の一例である。この演算ブロック65aの構成を採用することにより、たとえば、PEの1タイプであるRAMエレメントにより、図5に示したようにルックアップテーブル(LUT)としての機能を実現でき、三角関数あるいは他の算術関数を含む多項式であっても実装できる。また、図4に示したように、PEの1タイプであるEXエレメントは、2入力のALUとしての機能を備えており、一方の入力を無効にしたり、イミディエイトを代入することなどにより、PEの機能を変更するだけで実質的にPE間の接続も変更することができる。
【0071】
したがって、生成ユニット2bは、現世代のGCD71に含まれる複数のPEの機能を規定するパラメータ(機能情報)18dを遺伝的アルゴリズムにより更新し、次世代のGCD群72を生成する機能を含むことにより、多種多様な遺伝子に対応するGCDを生成することができる。また、コンフィグレーションデータの機能情報18dを更新することにより次世代のGCD群72を生成する方法を採用すると、コンフィグレーションデータ18の接続情報18fは保存される。したがって、現世代のGCD71により再構成される評価対象回路61が、入力から出力までデータフローを形成するように複数のPEを接続する接続情報18fを備えていれば、その特性は次世代のGCD群72に引き継がれる。
【0072】
このため、入力から出力まで、すなわち、サンプル供給回路62から評価回路63に到達するようなデータフローを形成する接続情報18fを備えた複数のコンフィグレーションデータ(テンプレートコンフィグレーションデータ)74をテンプレート群73として用意しておくことは有用である。生成ユニット2bは、テンプレート群73に含まれるコンフィグレーションデータを現世代として、次世代のGCD群72を生成することができ、データフローを形成する特性を備えたGCD71により評価対象回路61を再構成できる。したがって、評価回路63に出力がでないような評価に値しない回路が構成される可能性を低減でき、最適な解、すなわち、最適なGCDに到達する速度を向上できる。
【0073】
また、図12に示した回路は、入力される学習データセット75に含まれる複数の変数xiをパイプライン処理することができる構成である。特に、このデータ処理装置50に採用されている動的再構成デバイスのDAPDNAにおいては、PEマトリクス10に含まれる各PEがクロックで同期した処理を行う。このため、連続パイプライン処理を行うデータフロー(データパス)をPEマトリクス10に再構成することができる。
【0074】
したがって、評価対象回路61でパイプライン処理を行うことにより、複数の学習データセット75を連続して、あるいは、演算結果Foutが収束するために要する若干のクロック(サイクル、インターバル)を開けて連続供給することが可能である。その結果、学習データセット75の入力に要する時間程度の間隔で評価対象回路61の出力Foutを評価回路63に出力することができる。たとえば、学習データセット75に含まれる変数を並列に1クロックで入力できるような評価対象回路61であれば、理想的には1クロック毎に出力Foutを得ることができる。このため、それぞれのGCD71の評価に要する時間を大幅に短縮できる。パイプライン処理を行う回路構成も、たとえば、コンフィグレーションデータの接続情報18fを保持することで、次世代のGCD71に伝えることができる。また、テンプレートコンフィグレーションデータ74も、パイプライン処理を行う回路構成であることが望ましい。また、サンプル供給回路62は、パイプライン処理が行われることを前提として学習データセット75を供給することも有効である。パイプライン処理が行われないような評価対象回路61は、高い評価値を得られないので、パイプライン処理が行われる特性を備えた回路を構成するGCD71を選択的に残し、次世代へ繋ぐことが可能となる。
【0075】
本明細書において、パイプライン処理は、「毎クロック連続してデータ処理を行う」処理を示す。本例の再構成デバイス1は、DNAというデータフロー型のハードウエアで回路構成をとっており、データをロードするエレメント(LDB)により強制的にデータをロードするかぎり必ずパイプライン処理となる。逆にパイプライン処理しない構成をとるためには、アドレス出力用のエレメント(C16L、C32L)およびロードエレメントLDBといった、DRAM6からの処理対象データのロードを制御する機構のパラメータを変更する必要がある。これらのパラメータも、GCD71の遺伝子情報の一部に加えることにより、GCD71によっては「パイプライン処理をしない」という現象を起こすことが可能である。したがって、「非パイプライン処理」があらかじめ劣っているとわかっているのならば、GCD71の遺伝子情報を限定して必ずパイプライン処理になるようにすることが可能である。すなわち、具体的には、特定のエレメント(たとえば、LDB、C16L、C32L等)のパラメータは固定にしておく。
【0076】
また、本例の再構成デバイス1においては、パイプライン処理には、非フィードバック処理のみならず、フィードバック処理を含めることが可能である。フィードバック処理を含めてパイプライン処理する場合は、たとえば、データをRAMエレメントなどにより提供されるFF機能上に蓄積することが要求される。RAMエレメントおよびその他のエレメントにおいてFF機能が提供されるような初期値も、GCD71の遺伝子情報とすることが可能である。フィードバック処理を含めることにより、GCD71により表現できる回路構成が爆発的に広がる。たとえば、FIRフィルタに対して、フィードバック付き小規模HWで大規模なフィルタを構成できるIIRフィルタを例として挙げることができる。したがって、フィードバック処理を含むGCD71は、このタイプのGAGPで探索する解の好ましい一例である。
【0077】
選択的に次世代のGCD群70に引き継ぐ特性は上記に限定されない。テンプレート群73に含まれるテンプレートコンフィグレーションデータ74を、解を求めようとしているシステム、本例であれば変数xiにより与えられるシステムに固有の条件を反映するように生成し、生成ユニット2bは、テンプレートコンフィグレーションデータ74の固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、次世代のGCD群72を生成する機能を含むことが望ましい。コンフィグレーションデータ18によりPEマトリクス10に構成可能な多様性に富んだ回路と、解を求めようとするシステムの特性との融合を図ることができる。このため、データ処理装置50により、引用文献1〜17に示されているような多種多様な用途に対し、メタヒューリスティクスな方法により、典型的には遺伝的アルゴリズム(遺伝的プログラム)により最適解を探索するシステムを提供できる。
【0078】
テンプレートコンフィグレーションデータ(遺伝子テンプレート)74による記述を採用することは、次のことを含む。予め単一のDNAコンフィギュレーションにより遺伝子テンプレートを記述し、複数(数個〜数10個)のDNAコンフィギュレーションを予め用意する。これにより、多様な遺伝子に対応することが可能となる。また、遺伝子テンプレートのパラメータのみを更新することにより無数の遺伝子式を表現することが可能となる。また、複数のテンプレートの中から、テンプレートを選択することにより多様な遺伝子を表現することが可能となる。また、演算器(PE)を最大限活用し、シストリックアレイ型の多種多様な演算を実現することも可能となる。さらに、1つの遺伝子に対して全学習データを連続してパイプライン処理し、結果(正解数)を短時間で出力することも可能となる。
【0079】
図13ないし図15に、動的再構成デバイス1を用いたデータ処理装置50により、解を探索する方法の一例を示している。これらの図においては、GCDを遺伝子と表示し、遺伝的とGCDとの対応関係を示している。
【0080】
図13に示す方法81は、次世代の遺伝子に相当するGCD群72を生成するステップ85と、生成された次世代のGCD群72を現世代の遺伝子に相当するGCD群70と置き換えて、その世代のGCD群70を評価するステップ86とを有する。最初のGCD群を生成するステップ85では、データ処理装置50の生成ユニット2bが、テンプレート群73に含まれるテンプレートコンフィグレーションデータ74を個体としてランダムに選択し、それらの個体から第1世代のGCD群70を生成する。
【0081】
次に、ステップ86において、再構成制御ユニット2aは、第1世代のGCD群70に含まれるそれぞれのGCD71を含むコンフィグレーションデータ18をコンフィグレーションメモリ19にセットし、PEマトリクス10に評価対象回路61を再構成する。サンプル供給回路62は、評価対象回路61に学習データ76を供給し、評価回路63により評価値を得る。それぞれのGCD71に対応する評価対象回路61を評価し、第1世代のGCD群70に含まれるすべてのGCD71の評価が終了すると、ステップ85に戻って、次世代のGCD群72を生成する。
【0082】
ステップ85において、生成ユニット2bは、現世代(第1世代)のGCD群70と、評価データ78とに基づき、遺伝的アルゴリズムにより次世代(第2世代)のGCD群72を生成し、現世代のGCD群70と置き換える。ステップ86において、再構成制御ユニット2aは、第1世代のGCDに基づきヒューリスティックに生成された第2世代のGCD群を評価する。
【0083】
このステップ86において、さらに具体的には、再構成制御ユニット2aは、ステップ87aにおいて、個々の第2世代のGCD71を用いて、PEマトリクス10に評価対象回路61を再構成し、ステップ87bにおいて、評価対象回路61を評価する。このデータ処理装置50においては、PEマトリクス10に、典型的には1クロックで回路をダイナミックに再構成することができる。したがって、個々のGCD71を評価するのに要する時間のほとんどすべては、評価対象回路61を評価するための時間となる。
【0084】
ステップ87bはステップ88および89を含む。ステップ88において、サンプルデータ供給ユニット62により学習データ76の各学習データセット75を評価対象回路61に供給する。ステップ88においては、学習データ76の学習データセット75に含まれる変数xiが次々とロードされ、評価対象回路61に供給される。さらに、ステップ89において、評価対象回路61が学習データセット75の演算を終了するのを待って、評価対象回路61に出力により、評価回路63が評価対象回路61を評価する。
【0085】
図13に示すように、1つのGCD71を評価するために、10000セットの学習データ75を供給し、その学習データ75の演算を待って評価する必要がある。さらに、1世代のGCD群70の評価を終了するためには、1000個のGCD71に対して同様の処理を行う必要がある。そして、100世代のGCD群70の評価を繰り返すことにより、ステップ90において、適切なGCD71を、最適解として得ることができる。学習データセット75の数、一世代に含まれる遺伝子総数(GCDの総数)、評価世代数は例示に過ぎず、多くても、少なくても良い。メタヒューリスティクスな解法としては、それぞれの数が多い方が、より最適な解が求められることが多い。このケースでは、変数xi(たとえば、iは1〜50)により与えられる事象に関する最適解を得るために、学習データセット75による評価(ステップ88および89)を109回繰り返す。データ処理装置50においては、ステップ88および89を、GCD71により再構成された専用回路(評価対象回路)61により実行する。したがって、CPUなどの汎用の回路を用いて、プログラムポインタにしたがってロードを繰り返すソフトウェアプログラムを用いて演算を繰り返すケースと比較し、大幅に最適解を得るまで時間を短縮できる。このため、より多くの学習データセット、遺伝子総数、評価世代数により解を得ることが可能となり、より最適な解を得ることが可能となる。
【0086】
図14に示す方法82も、次世代の遺伝子に相当するGCD群72を生成するステップ85と、次世代のGCD群72を現世代のGCD群70と置き換えて、その世代のGCD群70を評価するステップ86とを有する。さらに、ステップ86のうち、評価対象回路61を評価するステップ87bにおいて、このデータ処理装置50は、学習データ76の各学習データセット75を評価対象回路61に供給するステップ88と、評価対象回路61が学習データセット75の演算を終了するのを待って評価回路63が評価対象回路61を評価するステップ89とを、DNAデバイス1の特性を活かして連続パイプライン処理する。すなわち、評価対象回路61における演算終了を待たずに、評価対象回路61の出力に影響を与えない範囲で連続して複数の学習データセット75を、サンプルデータ供給回路62により評価対象回路61に供給する。
【0087】
それぞれのGCD71を評価するステップ87bをパイプライン処理することにより、ステップ87bの処理時間を大幅に短縮できる。上述したように、このケースでは、最適解を得るために、学習データセット75による評価ステップ87b(ステップ88および89)を109回繰り返す。したがって、評価ステップ87bの一回の処理時間の削減効果は、ステップ90において最適解を得るまでの処理時間に109のオーダで反映され、解探索に要する処理時間を大幅に短縮できる。
【0088】
さらに、それぞれの学習データセット75を評価対象回路61に供給するために要する時間を短縮することによりステップ87bの処理時間をさらに短縮できる。たとえば、学習データセット75に含まれる複数の変数xiがパラレルに入力できるように、サンプルデータ供給回路62および/または評価対象回路61を構成することにより、評価対象回路61から、ほぼ連続して、1クロックまたは数クロック単位で出力を評価回路63に供給できる。さらに、パイプライン処理を行うことにより、評価対象回路61の演算時間(処理時間)が、評価するステップ87bに要する時間(評価時間)に与える影響を緩和できる。遺伝子に対応するGCD71により再構成される評価対象回路61としては、できるだけ任意で、できるだけ複雑な回路が構成できることが望ましい。多数のPEを含む評価対象回路61は、処理時間は長くなる。しかしながら、パイプライン処理を採用することにより、個々の評価対象回路61の処理時間が長くなることは、入力データを供給してから出力が得られるまでのレイテンシが長くなることに影響するだけであり、多数の学習データセット75の評価間隔には影響を与えない。したがって、このデータ処理装置50により、複雑な構成の遺伝子に対応するGCD71を採用でき、短時間で最適な解を探索できる。
【0089】
図15に示す方法83も、次世代の遺伝子に相当するGCD群72を生成するステップ85と、生成されたGCD群72を現世代のGCD群70として評価するステップ86とを有する。さらに、ある世代のGCD群70を評価するステップ86において、GCD群70に含まれる複数のGCD71により複数の評価対象回路61をPEマトリクス10に再構成し、それら複数の評価対象回路61を並列に評価する。したがって、各世代のGCD群70の評価に要する処理時間を数分の一に短縮することができ、最適解の探索に要する処理時間をさらに短縮できる。図15に示すパラレル処理により処理時間を短縮する方法83は、図14に示したパイプライン処理により処理時間を短縮する方法82とともに適用することが可能であり、最適解の探索に要する処理時間をさらに短縮できる。
【0090】
データ処理装置50に採用されている動的再構成デバイス(DAPDNA)1は、PEマトリクス10の一部だけであっても、動的に回路を再構成することができる。したがって、複数のGCD71により複数の評価対象回路61を再構成する場合も、それら複数の評価対象回路61を同期して再構成する必要はなく、それぞれの評価対象回路61の評価に要する時間に応じて、随時、PEマトリクス10の空いた領域に評価対象回路61を再構成し、評価することができる。
【0091】
上記に加え、解を得ようとする事象あるいはシステムの探索に適したテンプレートコンフィグレーション群73を予め用意し、そのテンプレートコンフィグレーション群73を初世代として次世代のGCD群72を生成することは、短時間に最適な解を得るために有用な1つの方法である。そのようなテンプレートコンフィグレーション74は、上記と同様に、データ処理装置50により探索することができる。また、テンプレートコンフィグレーション群73により探索された解のGCD71をテンプレートコンフィグレーション群73に加えたり、学習データ76に、探索された解のGCD71の適用により得られたデータを加えたりすることは可能である。したがって、探索された解に基づいて、さらにシステムに適した解を再探索したり、変化する事象あるいはシステムに対して最適な解を探索して自律的に適応するような装置を提供することが可能である。
【0092】
さらに、このデータ処理装置50は、探索された解、すなわち、探索された最適のGCD71を用いて、事象あるいはシステムの入力データに対して出力データを生成し、出力するデータ処理装置としても機能する。したがって、このデータ処理装置50により探索された解(GCD)70を、同じタイプのデータ処理装置50に実装することにより、その解(GCD)を簡単に利用することができる。また、その解(GCD)を同じタイプのデータ処理装置50に適用するために、その解(GCD)の意味あるいはその解の物理的な意義を解釈したり、シミュレーションなどにより求めたりする必要はない。また、データ処理装置50により得られた解をシミュレーションなどにより分析し、他の装置の制御のために用いることも可能である。
【0093】
なお、上記では、遺伝的アルゴリズム(GA)をもとに、メタヒューリスティクスにコンフィグレーションデータを生成する例を説明しているが、メタヒューリスティクスにコンフィグレーションデータを生成する方法は、遺伝的アルゴリズムに限らず、遺伝的アルゴリズムの拡張の1つである免疫的アルゴリズム、さらには、シミュレーテッドアニーリング法などの他のメタヒューリスティクスな最適化手法であっても良い。
【0094】
また、これらのメタヒューリスティクスな方法により生成されるコンフィグレーションデータによりPEマトリクスに再構成可能な回路は、回路として表現できる機能であれば、基本的にどのような機能であっても含めることが可能であり、上述した多項式に限らず、ツリー構造により機能が示される事象(アプリケーション)、その他の構造により機能が示される事象(アプリケーション)、たとえば、引用文献1〜17に示した用途(技術)に対しても上記のデータ処理装置および解探索方法を適用できる。
【図面の簡単な説明】
【0095】
【図1】図1(a)は、再構成可能なデバイスの一例の概略構成を示し、図1(b)は、PEマトリクスの概略を示し、図1(c)および図1(d)は、PEマトリクスを動的に再構成する様子を示す。
【図2】PEマトリクスの配列を示す図。
【図3】PEマトリクスに配置されたPEのタイプを示す図。
【図4】PEの1つのタイプのEXMの構成を示すブロック図。
【図5】PEの1つのタイプのRAMの構成を示すブロック図。
【図6】セグメント内の配線(イントラセグメント配線)を示す図。
【図7】セグメント間の配線(インターセグメント配線)を示す図。
【図8】コンフィグレーションデータのフォーマットの一例を示す図。
【図9】再構成可能な領域を含むデータ処理装置の一例を示すブロック図。
【図10】図10(a)はコフィグレーションデータ(遺伝子データ)、図10(b)は学習データ、および図10(c)は評価データ(正解率)の例を示す。
【図11】評価対象回路の一例を示すブロック図。
【図12】演算ブロックの一例を示すブロック図。
【図13】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【図14】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【図15】遺伝子(コンフィグレーションデータ)を評価して解を探索する過程を示す図。
【符号の説明】
【0096】
1 再構成可能なデバイス
2a 再構成制御ユニット、 2b 生成ユニット
10 PEマトリクス(再構成ユニット)
50 データ処理装置
70、72、74 遺伝的アルゴリズムで生成されたコンフィグレーションデータ(GCD)群
【特許請求の範囲】
【請求項1】
回路を構成するための複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、前記内部配線による前記複数のエレメントの接続を変更すること、および/または前記複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、
前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより前記再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置であって、
前記制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成し、
当該データ処理装置は、さらに、
前記発見的なコンフィグレーションデータにより再構成される評価対象回路に対し入力データの複数のサンプルを供給するサンプルデータ供給ユニットと、
前記複数のサンプルに基づく前記評価対象回路の出力データの少なくとも一部を用いて前記評価対象回路の評価値を得る評価ユニットとを含む、データ処理装置。
【請求項2】
請求項1において、前記サンプルデータ供給ユニットは、前記評価対象回路においてパイプライン処理が行われる間隔で前記複数のサンプルを供給し、
前記評価ユニットは、前記評価対象回路とともに、前記再構成ユニットに構成される、データ処理装置。
【請求項3】
請求項1または2において、前記制御ユニットは、複数セットの発見的なコンフィグレーションデータを出力し、前記再構成ユニットには、前記複数セットの発見的なコンフィグレーションデータにより、複数の評価対象回路が再構成され、
前記サンプルデータ供給ユニットは、前記複数の評価対象回路に対し並列に前記複数のサンプルを供給する、データ処理装置。
【請求項4】
請求項1ないし3のいずれかにおいて、前記評価ユニットから得られる評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成し、前記制御ユニットより使用可能とする生成ユニットをさらに有する、データ処理装置。
【請求項5】
請求項4において、前記生成ユニットは、前記再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項6】
請求項5において、前記複数セットのテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータである、データ処理装置。
【請求項7】
請求項5または6において、前記生成ユニットは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項8】
請求項5ないし7のいずれかにおいて、前記テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、
前記生成ユニットは、前記テンプレートコンフィグレーションデータの、前記固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項9】
回路を構成するための複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、前記内部配線による前記複数のエレメントの接続を変更すること、および/または前記複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、
前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより前記再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置であって、
前記制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成され、最適解として評価された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成する、データ処理装置。
【請求項10】
回路を再構成可能な再構成ユニットを用いた解探索の方法であって、
前記再構成ユニットは、複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含み、前記内部配線による前記複数のエレメントの接続を変更すること、および/または、前記複数のエレメントの機能を変更することにより、回路を再構成可能であり、前記再構成ユニットの回路を再構成するためのコンフィグレーションデータは、前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含み、
当該方法は、
少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成することと、
前記発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給することと、
前記複数のサンプルに基づく前記評価対象回路の出力データの少なくとも一部を用いて前記評価対象回路の評価を得ることと、
前記評価を得ることの繰り返しにより、前記評価対象回路を再構成するための前記発見的なコンフィグレーションデータを解として探索することとを有する方法。
【請求項11】
請求項10において、前記サンプルを供給することは、前記評価対象回路においてパイプライン処理が行われる間隔で前記複数のサンプルを供給することを含み、
前記評価値を得ることは、前記評価対象回路とともに、前記再構成ユニットに構成される回路により評価値を得ることを含む、方法。
【請求項12】
請求項10または11において、前記再構成することは、複数セットの発見的なコンフィグレーションデータにより、前記再構成ユニットに複数の評価対象回路を再構成することを含み、
前記サンプルを供給することは、前記複数の評価対象回路に対し並列に前記複数のサンプルを供給することを含む、方法。
【請求項13】
請求項10ないし12のいずれかにおいて、前記評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することをさらに有する、方法。
【請求項14】
請求項13において、前記生成することは、前記再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項15】
請求項14において、前記複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータである、方法。
【請求項16】
請求項14または15において、前記生成することは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項17】
請求項14ないし16のいずれかにおいて、前記テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、
前記生成することは、前記テンプレートコンフィグレーションデータの、前記固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項18】
請求項14ないし17のいずれかにおいて、前世代のコンフィグレーションデータを、前記内部配線による前記複数のエレメントの接続を変更することを含めて、遺伝的アルゴリズムにより更新し、前記再構成ユニットにより評価し、前記複数のテンプレートコンフィグレーションデータを探索することをさらに含む、方法。
【請求項1】
回路を構成するための複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、前記内部配線による前記複数のエレメントの接続を変更すること、および/または前記複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、
前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより前記再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置であって、
前記制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成し、
当該データ処理装置は、さらに、
前記発見的なコンフィグレーションデータにより再構成される評価対象回路に対し入力データの複数のサンプルを供給するサンプルデータ供給ユニットと、
前記複数のサンプルに基づく前記評価対象回路の出力データの少なくとも一部を用いて前記評価対象回路の評価値を得る評価ユニットとを含む、データ処理装置。
【請求項2】
請求項1において、前記サンプルデータ供給ユニットは、前記評価対象回路においてパイプライン処理が行われる間隔で前記複数のサンプルを供給し、
前記評価ユニットは、前記評価対象回路とともに、前記再構成ユニットに構成される、データ処理装置。
【請求項3】
請求項1または2において、前記制御ユニットは、複数セットの発見的なコンフィグレーションデータを出力し、前記再構成ユニットには、前記複数セットの発見的なコンフィグレーションデータにより、複数の評価対象回路が再構成され、
前記サンプルデータ供給ユニットは、前記複数の評価対象回路に対し並列に前記複数のサンプルを供給する、データ処理装置。
【請求項4】
請求項1ないし3のいずれかにおいて、前記評価ユニットから得られる評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成し、前記制御ユニットより使用可能とする生成ユニットをさらに有する、データ処理装置。
【請求項5】
請求項4において、前記生成ユニットは、前記再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項6】
請求項5において、前記複数セットのテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータである、データ処理装置。
【請求項7】
請求項5または6において、前記生成ユニットは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項8】
請求項5ないし7のいずれかにおいて、前記テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、
前記生成ユニットは、前記テンプレートコンフィグレーションデータの、前記固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、前記次世代の発見的なコンフィグレーションデータを生成する機能を含む、データ処理装置。
【請求項9】
回路を構成するための複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含む再構成ユニットであって、前記内部配線による前記複数のエレメントの接続を変更すること、および/または前記複数のエレメントのそれぞれの機能を変更することにより、回路を再構成可能な再構成ユニットと、
前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含むコンフィグレーションデータにより前記再構成ユニットの回路を再構成する制御ユニットとを有するデータ処理装置であって、
前記制御ユニットは、少なくとも一部がメタヒューリスティックアルゴリズムにより生成され、最適解として評価された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成する、データ処理装置。
【請求項10】
回路を再構成可能な再構成ユニットを用いた解探索の方法であって、
前記再構成ユニットは、複数のエレメントと、前記複数のエレメントを接続するための内部配線とを含み、前記内部配線による前記複数のエレメントの接続を変更すること、および/または、前記複数のエレメントの機能を変更することにより、回路を再構成可能であり、前記再構成ユニットの回路を再構成するためのコンフィグレーションデータは、前記複数のエレメントの接続情報および/または前記複数のエレメントの機能情報を含み、
当該方法は、
少なくとも一部がメタヒューリスティックアルゴリズムにより生成された発見的なコンフィグレーションデータにより前記再構成ユニットの少なくとも一部に回路を再構成することと、
前記発見的なコンフィグレーションデータにより再構成される評価対象回路に入力データの複数のサンプルを供給することと、
前記複数のサンプルに基づく前記評価対象回路の出力データの少なくとも一部を用いて前記評価対象回路の評価を得ることと、
前記評価を得ることの繰り返しにより、前記評価対象回路を再構成するための前記発見的なコンフィグレーションデータを解として探索することとを有する方法。
【請求項11】
請求項10において、前記サンプルを供給することは、前記評価対象回路においてパイプライン処理が行われる間隔で前記複数のサンプルを供給することを含み、
前記評価値を得ることは、前記評価対象回路とともに、前記再構成ユニットに構成される回路により評価値を得ることを含む、方法。
【請求項12】
請求項10または11において、前記再構成することは、複数セットの発見的なコンフィグレーションデータにより、前記再構成ユニットに複数の評価対象回路を再構成することを含み、
前記サンプルを供給することは、前記複数の評価対象回路に対し並列に前記複数のサンプルを供給することを含む、方法。
【請求項13】
請求項10ないし12のいずれかにおいて、前記評価値に基づいて、遺伝的アルゴリズムにより、次世代の発見的なコンフィグレーションデータを生成することをさらに有する、方法。
【請求項14】
請求項13において、前記生成することは、前記再構成ユニットに含まれる複数のエレメントの機能と、それら複数のエレメントを接続するための内部配線の接続とを予め規定した複数セットのテンプレートコンフィグレーションデータの少なくとも一部のセットを親の遺伝子として、遺伝的アルゴリズムにより、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項15】
請求項14において、前記複数のテンプレートコンフィグレーションデータは、パイプライン処理を行う回路を再構成するためのコンフィグレーションデータである、方法。
【請求項16】
請求項14または15において、前記生成することは、現世代の発見的なコンフィグレーションデータに含まれる複数のPEの機能を規定するパラメータを、遺伝的アルゴリズムにより更新し、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項17】
請求項14ないし16のいずれかにおいて、前記テンプレートコンフィグレーションデータは、解を求めようとしているシステムに固有の条件を反映するものであり、
前記生成することは、前記テンプレートコンフィグレーションデータの、前記固有の条件に関する部分を変えない範囲で、内部配線による複数のエレメントの接続に関する部分、および/または複数のエレメントのそれぞれの機能に関する部分を、遺伝的アルゴリズムによって変更することにより、前記次世代の発見的なコンフィグレーションデータを生成することを含む、方法。
【請求項18】
請求項14ないし17のいずれかにおいて、前世代のコンフィグレーションデータを、前記内部配線による前記複数のエレメントの接続を変更することを含めて、遺伝的アルゴリズムにより更新し、前記再構成ユニットにより評価し、前記複数のテンプレートコンフィグレーションデータを探索することをさらに含む、方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2009−104403(P2009−104403A)
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願番号】特願2007−275494(P2007−275494)
【出願日】平成19年10月23日(2007.10.23)
【出願人】(500238789)アイピーフレックス株式会社 (15)
【Fターム(参考)】
【公開日】平成21年5月14日(2009.5.14)
【国際特許分類】
【出願日】平成19年10月23日(2007.10.23)
【出願人】(500238789)アイピーフレックス株式会社 (15)
【Fターム(参考)】
[ Back to top ]