JP4562679B2 - データフローグラフ生成装置 - Google Patents

データフローグラフ生成装置 Download PDF

Info

Publication number
JP4562679B2
JP4562679B2 JP2006095162A JP2006095162A JP4562679B2 JP 4562679 B2 JP4562679 B2 JP 4562679B2 JP 2006095162 A JP2006095162 A JP 2006095162A JP 2006095162 A JP2006095162 A JP 2006095162A JP 4562679 B2 JP4562679 B2 JP 4562679B2
Authority
JP
Japan
Prior art keywords
dfg
circuit
unit
sub
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006095162A
Other languages
English (en)
Other versions
JP2007272395A (ja
Inventor
誠 岡田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2006095162A priority Critical patent/JP4562679B2/ja
Publication of JP2007272395A publication Critical patent/JP2007272395A/ja
Application granted granted Critical
Publication of JP4562679B2 publication Critical patent/JP4562679B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Microcomputers (AREA)

Description

この発明は、集積回路の動作設定に必要なデータフローグラフを生成する技術に関する。
近年、アプリケーションに応じてハードウエアの動作を変更可能なリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサを実現するためのアーキテクチャとしては、DSP(Digital Signal Processor)や、FPGA(Field Programmable Gate Array)を用いる方法が存在する。
FPGA(Field Programmable Gate Array)はLSI製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。FPGAは、論理回路の真理値表を格納するためのルックアップテーブル(LUT)と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。FPGAでは、LUTに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、FPGAでLSIを設計した場合、ASIC(Application Specific IC)による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている(例えば、特許文献1参照。)。
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うこともある。受信機では、放送モードごとに複数の回路を予めハードウエア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。したがって、受信機の他の放送モード用回路はその間、遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にLSIを瞬時に再構成することにすれば、回路構造をシンプルにして汎用性を高め、同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なLSIに製造業界の関心が集まっている。特に、携帯電話やPDA(Personal Data Assistance)などのモバイル端末に搭載されるLSIは小型化が必須であり、LSIを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、LSIの実装面積を抑えることができる。
FPGAは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのON/OFFを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向があり、さらに1本の配線に多くのスイッチが接続される構造のため、遅延が大きくなる。そのため、FPGAによるLSIは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。さらに、FPGAでは、多数のLUT方式の基本セルに構成情報を送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。そのため、瞬時に回路構成の切り替えが必要な用途にはFPGAは適していない。
それらの課題を解決するため近年、ALU(Arithmetic Logic Unit)と呼ばれる基本演算機能を複数持つ多機能素子を多段に並べたALUアレイを用いたリコンフィギュラブルプロセッサの検討も行われるようになった。ALUアレイでは、処理が上から下の一方向に流れるので、水平方向のALUを結ぶ配線は基本的には不要である。そのため、FPGAと比較して回路規模を小さくすることが可能となる。
ALUアレイでは、コマンドデータによりALU回路の演算機能構成と前後段のALUを接続する接続部の配線が制御され、所期の演算処理を実行することができる。コマンドデータは、一般にC言語等の高級プログラム言語で記述されたソースプログラムからデータフローグラフ(DFG:Data Flow Graph)を作成し、その情報をもとに作成される。
ALUアレイ上に1度にマッピングできるDFGの大きさはALUアレイの回路規模により制限されるため、大きなDFGは複数のDFGに分割して結合させる必要がある。結合して生成されるDFGの大きさは、ALUアレイで実行する回路コンフィギュレーションの回数に直接的な影響を与えるため、できるだけ小さく生成することが好ましい。
こうした状況に鑑み、本出願人は、リコンフィギュラブル回路の動作設定に必要なDFGを効率よく処理できる技術を開発した(特許文献2参照)。
この特許文献2のDFG処理方法は、機能の変更が可能なリコンフィギュラブル回路にマッピングされるDFGが、前記リコンフィギュラブル回路の論理回路の列数及び段数以下となるようDFGを再構成する方法に関するものである。
特開平10-256383号公報 特開2006−4345号公報
ところで、上記特許文献2のDFG処理方法においては、リコンフィギュラブル回路上にマッピングされる分割されたサブDFGからの出力データは、リコンフィギュラブル回路に接続されたメモリ(特許文献2でいうところのメモリ部29)を介して、他の分割されたサブDFGに渡される。
しかし、このようなDFG処理方法によれば、サブDFG間のデータ受渡しが多くなるとそれだけ多くのメモリが必要となる。場合によってはメモリ不足により演算そのものが実行不可能となる恐れがある。
そこで、この発明は上記の事情に鑑み、リコンフィギュラブル回路の動作設定に必要なDFGを前記リコンフィギュラブル回路にマッピング可能な大きさに再構成すると共に、サブDFG間のデータ受渡しに必要なメモリの使用量を減らすことを目的とする。
本発明のある態様は、データフローグラフ(DFG)を分割して2以上のサブDFGを生成するデータフローグラフ生成装置であって、サブDFG間のデータ入出力がメモリを介して行われるような複数のサブDFGを生成する手段、前記サブDFG内の第1ノードからデータがモリ出力され、かつ前記第1ノードの出力ノードに接続されたスルーノードである第2ノードからのデータがメモリに出力される場合、前記第2ノードからのメモリへの出力を削除する手段、を備えることを特徴とする。
このデータフローグラフ生成装置によれば、DFGを分割して得られるサブDFG間のデータ受渡しに必要なメモリの使用量を減らすことができる。また、使用メモリの低減に伴い消費電力を低減することもできる。
本発明のある態様のデータフローグラフ生成装置は、前記サブDFG生成手段で生成された複数のサブDFGを結合するDFG結合手段を更に備える。サブDFG生成手段と、DFG結合手段の両方を備えることにより、前記DFG(複数のサブDFGに分割される前のDFG)の再構成を行うことができる。
ところで、上記のサブDFG生成手段は、サブDFGの一部ノードからのメモリ出力をしている。したがって、このままサブDFGを結合しても、結合後のDFGでは正しく演算を行うことができない。そこで、このDFG結合手段は、前記サブDFG生成手段での処理により使用されなくなるメモリからの入力を受けていたノードの入力元の変更を行う。例えば、前記メモリの異なる領域をA、Bとしたとき、このDFG結合手段は、メモリ出力の前記削除により使用されなくなるメモリ領域Bからの入力を受けていたノードの入力元を、メモリ領域Aに変更する、といった処理を行う。
本発明のある態様のデータフローグラフ生成装置は、集積回路にマッピングされるDFGの生成に用いられる。このデータフローグラフ生成装置は、上記説明したようなサブDFG生成手段、及びDFG結合手段を有する。そして、入力されたDFGを、前記サブDFG生成手段、及び前記DFG結合手段での処理を経て、前記集積回路にマッピング可能なDFGに再構成することを特徴とする。
なお、集積回路にマッピング可能なDFGとは、例えば、集積回路の大きさを超えないようなDFGであるとか、集積回路の接続制限を満たすようなDFGのことをいう。この集積回路の例としては、リコンフィギュラブル回路が挙げられる。この場合、前記のサブDFG生成手段は、分割して生成するサブDFGの列数がリコンフィギュラブル回路1段あたりの論理回路の数以下となるようなサブDFGを生成する。更に生成したサブDFGはリコンフィギュラブル回路各段の論理回路の集合体間に課された接続制限も満たす。
なお、上記の集積回路が回路遅延を有している場合は、たとえDFGが集積回路にマッピング可能な大きさであっても演算を正しく行えないようなことがある。そこで、上記のサブDFG生成手段は、該集積回路の回路遅延を考慮してサブDFGの生成を行うものであっても良い。回路規模を小さくすることで回路遅延の問題を解消することができるからである。
本発明の集積回路の設定データ生成装置は、ソースプログラムをコンパイルしてDFGを生成するコンパイル手段と、前記コンパイル手段が生成するDFGを再構成することを特徴とした上記のデータフローグラフ生成装置と、前記データフローグラフ生成装置で再構成されたDFGから、前記集積回路に所期の回路を構成するための設定データを生成する設定データ生成手段を備えることを特徴とする。
本発明の集積回路は、上記の設定データ生成装置から供給された設定データに基づいて構成されたことを特徴とする。
本発明の処理装置は、上記の設定データ生成装置と、上記の集積回路を備えることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
本発明によれば、リコンフィギュラブル回路などの集積回路の動作設定に必要なDFGを、前記集積回路にマッピング可能な大きさに再構成することができるだけでなく、更に前記DFGを構成するサブDFG間のデータ受渡しに必要なメモリの使用量を減らすことができる。また、これによって、集積回路による演算がメモリ不足により実行不可能になるような恐れも減らすことができる。また、使用メモリの低減に伴い消費電力を低減することもできる。
図1は、実施例に係る処理装置10の構成図である。処理装置10は、集積回路装置26を備える。集積回路装置26は、回路構成を再構成可能とする機能を有する。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路12、設定部14、制御部18、出力回路22、メモリ部27および経路部24、29を備える。リコンフィギュラブル回路12は、設定を変更することにより、機能の変更を可能とする。
設定部14は、リコンフィギュラブル回路12に所期の回路を構成するための設定データ40を供給する。設定部14は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。この場合、制御部18がプログラムカウンタの出力を制御する。この意味において、設定データ40はコマンドデータと呼ばれてもよい。経路部24、29は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。出力回路22は、例えばデータフリップフロップ(D-FF)などの順序回路として構成され、リコンフィギュラブル回路12の出力を受ける。メモリ部27は経路部29に接続されている。リコンフィギュラブル回路12は組合せ回路または順序回路等の論理回路として構成される。
メモリ部27は、制御部18からの指示に基づき、リコンフィギュラブル回路12から出力されるデータ信号および/または外部から入力されるデータ信号を格納するための記憶領域を有する。メモリ部27はRAMとして構成される。メモリ部27にデータを書き込んで、そのデータを読み出すためには、少なくとも、それぞれの処理につき1クロック分の時間がかかる。メモリ部27に格納されたデータ信号は、制御部18からの指示に基づいて、経路部29を通じてリコンフィギュラブル回路12の入力として伝達される。メモリ部27は、制御部18からの指示により所定のタイミングでデータ信号をリコンフィギュラブル回路12に供給することができる。なお、メモリ部27は、設定部14からの指示によりデータ信号を出力してもよい。設定部14がコマンドメモリとして構成されている場合、メモリ部27の出力タイミングを指示するコマンドデータを有し、制御部18からのカウント値に基づいてコマンドデータをメモリ部27に出力してもよい。この場合、設定部14は、メモリ部27の動作を制御する制御部としても機能する。
リコンフィギュラブル回路12は、機能の変更が可能な論理回路を有して構成される。具体的にリコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路を複数段に配列させた構成を備え、さらに前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を備える。各段に含まれる複数の論理回路は、論理回路の集合体を構成する。この接続部は、前段の論理回路列の出力すなわち内部状態を保持する状態保持回路(以下、FF回路とも呼ぶ)の機能も備える。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路間の接続関係は、設定部14により供給される設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。
集積回路装置26により実現されるべきプログラム36が、記憶部34に保持されている。プログラム36は、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、記憶部34に格納されたプログラム36をコンパイルし、プログラム全体のデータフローグラフ(DFG)38に変換して記憶部34に格納する。DFG38は、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、DFG38は、上から下に向かって演算が進むように形成される。
データフローグラフ処理部31は、コンパイル部30により生成された1以上のDFGを、リコンフィギュラブル回路12の論理回路の集合体に含まれる論理回路の数に応じて、複数のサブDFGに分割する。具体的には、1以上のDFGを、リコンフィギュラブル回路12の段あたりの論理回路数、すなわち列数以下となる大きさに分割する。リコンフィギュラブル回路12が6列×3段の論理回路を有して構成される場合、DFGが6列を超えている場合に、列数を6以下とするサブDFGに分割する。
そして、データフローグラフ処理部31は、分割した複数のサブDFGを、論理回路の列数を超えないように結合する。これにより、列数を論理回路の集合体の列数以下とする結合DFGを生成する。
ここで、生成された結合DFGがリコンフィギュラブル回路の論理回路の集合体の個数(論理回路を構成するALUの段数)を超える場合、データフローグラフ処理部31は、更に結合DFGを分割して、複数のサブ結合DFGを生成する。具体的に、データフローグラフ処理部31は、結合したDFGをリコンフィギュラブル回路12の回路の段数以下となるように再分割する。リコンフィギュラブル回路12が6列×3段の論理回路を有して構成される場合、結合したDFGは、3段以下のサブ結合DFGに再分割される。分割した複数のサブ結合DFGは記憶部34に格納される。リコンフィギュラブル回路12に、分割した複数のサブ結合DFGにより定められる回路を繰り返し生成することで、リコンフィギュラブル回路12上に所期の回路を表現することが可能となる。
また、プログラム36の構成上、コンパイルした時点で複数のDFGが生成されることもある。例えば、互いに関連する複数のプログラム36をコンパイルする場合や、繰り返し呼び出されるルーチンプログラムが複数存在するプログラム36をコンパイルする場合などである。処理装置10において、複数のDFGがコンパイル部30により生成され、またコンパイル部30により生成されたDFGをデータフローグラフ処理部31が上述した処理を行うことで、複数のサブ結合DFGが生成される。
設定データ生成部32は、データフローグラフ処理部31により決定されたDFG38をもとに、設定データ40を生成する。設定データ40は、DFG38をリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や論理回路間の接続関係、さらには論理回路に入力させる定数データなどを定める。以下では、設定データ生成部32が、1つの生成すべきターゲット回路を分割してできる複数の回路の設定データ40を生成する例について説明する。
図2は、ターゲット回路42を分割してできる複数の回路について説明するための図である。1つのターゲット回路42を分割して生成される回路を、「分割回路」と呼ぶ。この例では、1つのターゲット回路42が、上下方向および左右方向に4つの分割回路、すなわち分割回路A、分割回路B、分割回路C、分割回路Dに分割されている。複数の分割回路は、リコンフィギュラブル回路12の列数の範囲内でそれぞれ結合され、実質的に等価な新たなターゲット回路として再生成されることになる。
例えば、生成すべきターゲット回路42の横方向のノード数がリコンフィギュラブル回路12の横方向のノード数(列数)よりも大きい場合、リコンフィギュラブル回路12にマッピングできる大きさになるように、ターゲット回路42のDFG38がデータフローグラフ処理部31において左右方向に分割される。なおノードは、DFG38において論理回路の機能を表現する。また、リコンフィギュラブル回路12の列数や、ALU間の入出力制限などにより、上下方向のノード間の接続を変更する必要がある場合に、ターゲット回路42のDFG38が上下方向に分割される。リコンフィギュラブル回路12の配列構造は、制御部18からデータフローグラフ処理部31に伝えられてもよく、また予め記憶部34に記録されていてもよい。本実施例において、DFG38は演算間の実行順序の依存関係を表現するものであり、データフローグラフ処理部31は、DFGを、リコンフィギュラブル回路12の列数に応じて分割し、分割したDFGをサブDFGとして設定する。
また、データフローグラフ処理部31は、複数のサブDFGの接続関係を調査する。なお、左右方向のみに分割した場合も同様に、データフローグラフ処理部31は、その接続関係を調査する必要がある。接続関係を調査すると、データフローグラフ処理部31は、接続関係にしたがって、複数のサブDFGを結合し、1つの大きな結合DFGを生成する。なお、この結合DFGは、その列数がリコンフィギュラブル回路12の列数以下となるように生成される。結合したDFGがリコンフィギュラブル回路12の段数よりも大きい場合、データフローグラフ処理部31は結合したDFGを分割して複数のサブ結合DFGを生成する。
設定データ生成部32は、結合DFGの設定データ40を生成し、記憶部34に記憶する。この設定データ40は、結合DFGを、リコンフィギュラブル回路12にマッピングするためのデータとして表現したものである。このように、リコンフィギュラブル回路12の列数に応じてDFGを再構成して、ターゲット回路42の設定データ40を生成することにより、汎用性の高い処理装置10を実現することが可能となる。
なお、データフローグラフ処理部31において複数のサブ結合DFGが生成された場合、設定データ生成部32は、複数のサブ結合DFGの設定データ40を生成し、記憶部34に記憶する。複数の設定データ40は、リコンフィギュラブル回路12の段数以下に分割した複数のサブ結合DFGを、リコンフィギュラブル回路12にマッピングするためのデータとして表現したものである。これにより、リコンフィギュラブル回路12の回路規模よりも大きいDFGを、リコンフィギュラブル回路12にマッピング可能な大きさに処理することが可能となる。即ち、処理装置10によれば、回路規模の小さいリコンフィギュラブル回路12を用いて、所望の回路を再構成することが可能となる。
図3は、リコンフィギュラブル回路12の構成を示す。リコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路50より構成される論理回路列を複数備える。具体的に、リコンフィギュラブル回路12は、論理回路列の多段接続構造と、各段に設けられた接続部52を備えて構成される。ここで多段とは、2以上の段であることを意味する。接続部52は、前段の論理回路の出力と後段の論理回路の入力の任意の接続関係あるいは予め定められた接続関係の組合せの中から選択された接続関係を設定することができる。また接続部52は、前段の論理回路の出力信号を保持することができる。リコンフィギュラブル回路12では、論理回路の多段接続構造により、上段から下段に向かって演算が進められる。なお、リコンフィギュラブル回路12は、論理回路列の1段の接続構造を有していてもよい。
リコンフィギュラブル回路12は、論理回路50としてALU(Arithmetic Logic Unit)を有している。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ALUが、2つの入力端子と2つの出力端子を有して構成される。
図示のように、リコンフィギュラブル回路12は、縦方向にX個、横方向にY個のALUが配置されたX段Y列のALUアレイとして構成される。第1段のALU11、ALU12、・・・、ALU1Yには、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第1段の接続部52に設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU2Yに入力される。第1段の接続部52においては、第1段のALU列の出力と第2段のALU列の入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように結線が構成されており、設定により所期の結線が有効となる。以下、最終段である第X段の接続部52まで同様の構成である。ALU列は、ALUの集合体に相当する。
なお、図3のリコンフィギュラブル回路12においては、接続部52が、ALU列と交互に1段ずつ設けられた構成を示している。この接続部52を各ALU列の下段に配置することにより、リコンフィギュラブル回路12は、1段ずつのALU列から構成されるX段のリコンフィギュラブルユニットに分割されることになる。具体的に、1段のリコンフィギュラブルユニットは、1段のALU列と1段の接続部52で構成される。この分割は、接続部52に含まれるFF回路にしたがうものであり、例えば2段のALU列ごとに接続部52を設け、2段のALU列の間を、FF回路を有しない接続部で接続する場合には、2段ずつのALU列で構成されるX/2段のリコンフィギュラブルユニットに分割されることになる。それ以外にも、FF回路を所定段のALU列ごとに設けることにより、所望段のリコンフィギュラブルユニットを構成することができる。
回路のコンフィギュレーションは1クロックで行われる。具体的に、設定部14が1クロックごとに設定データをリコンフィギュラブル回路12にマッピングする。各ALU列の出力は、後段の接続部52に保持される。なお、メモリ部27へのデータの書込および読出しも、それぞれ1クロックで行われる。したがって、メモリ部27にデータを書き込んで、そのデータを読み出すためには、少なくともALU列2段分の処理に相当する時間が必要となる。
接続部52は、外部やメモリ部27から供給される変数や定数を、所期のALUに供給する機能を有している。この機能を途中入力機能と呼ぶ。また、接続部52は、前段のALUの演算結果を外部に直接出力することもできる。この機能を途中出力機能と呼ぶ。この構成により、多様な組合せ回路を構成することが可能となり、設計の自由度が向上する。
図4は、DFG38の構造を説明するための図である。DFG38においては、入力される変数や定数の演算の流れが段階的にグラフ構造で表現されている。図中、演算子は丸印で示されており、ノードを表現する。設定データ生成部32は、このDFG38をリコンフィギュラブル回路12にマッピングするための設定データ40を生成する。実施例では、特にDFG38をリコンフィギュラブル回路12にマッピングしきれない場合に、DFG38を複数の領域に分割して結合し、さらに再分割することによって分割回路の設定データ40を生成する。DFG38による演算の流れを回路上で実現するべく、設定データ40は、演算機能を割り当てる論理回路を特定し、また論理回路間の接続関係を定め、さらに入力変数や入力定数などを定義したデータとなる。したがって、設定データ40は、各論理回路50の機能を選択するセレクタに供給する選択情報、接続部52の結線を設定する接続情報、必要な変数データや定数データなどを含んで構成される。
図1に戻って、回路の構成時、制御部18は、1つのターゲット回路42を構成するための複数の設定データ40を記憶部34から選択して読み出す。設定部14がコマンドメモリとして構成されている場合、制御部18は設定部14に対してプログラムカウンタ値を与え、設定部14は、そのカウンタ値に応じて格納した設定データを、コマンドデータとしてリコンフィギュラブル回路12に設定する。なお、設定部14は、キャッシュメモリや他の種類のメモリを有して構成されてもよい。なお、制御部18が記憶部34から設定データ40を受けて、その設定データ40を設定部14に供給してもよいが、制御部18を介さずに、予め設定部14に設定データを格納しておいてもよい。この場合、制御部18は、設定部14に予め格納された複数の設定データの中からターゲット回路42に応じた設定データがリコンフィギュラブル回路12に供給されるように、設定部14のデータ読出しを制御する。
設定部14は、設定データ40をリコンフィギュラブル回路12に設定し、リコンフィギュラブル回路12の回路を逐次再構成させる。これにより、リコンフィギュラブル回路12は、ターゲット回路に基づく所期の演算を実行できる。リコンフィギュラブル回路12は、基本セルとして高性能の演算能力のあるALUを用いており、またリコンフィギュラブル回路12および設定部14を1チップ上に構成することから、コンフィグレーションを高速に、例えば1クロックで実現することができる。制御部18はクロック機能を有し、クロック信号は、出力回路22およびメモリ部27に供給される。また制御部18は4進カウンタを含み、カウント信号を設定部14に供給してもよい。
図5は、リコンフィギュラブル回路12におけるALU間の接続関係を示す図である。なお、図5では、ALU列の間に配置される接続部52の図示を省略している。図5に示すリコンフィギュラブル回路12では、横方向に4個、縦方向に6個のALUが配置されたALUアレイとして構成される。第1段のALU11、ALU12、・・・、ALU14には、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第1段の接続部52に設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU24に入力される。第1段の接続部52においては、第1段のALU列の出力と第2段のALU列の入力の間で、一定の接続制限が課された接続関係を実現できるように結線が構成されており、設定により、その範囲内での所期の結線が有効となる。なお、第2段から第5段の接続部52においても同様である。最終段である第6段のALU列は演算の最終結果を出力する。接続部52は、ALU段の間で、物理的に近接して配置された論理回路同士を接続可能とするように構成される。これにより、配線長を短くすることができ、回路規模を削減することができる。その結果、低消費電力化及び処理高速化が可能となる。
図5に示すリコンフィギュラブル回路12では、6段×4列のALUが存在し、上段における1つのALUからの配線は、下段の3つのALUに制限される。図示のように、下段における1つのALUの入力は、上段における直上のALUと、直上のALUの左右のALUに制限され、また上段における1つのALUの出力は、下段における直下のALUと、直下のALUの左右のALUに制限される。例えば、ALU22に関してみると、その入力は、ALU11、ALU12、ALU13の3方向に制限され、その出力は、ALU31、ALU32、ALU33の3方向に制限される。なお、左または右に対応するALUが存在しなければ、その入力および出力は、それぞれ2方向に制限される。このような配線とすることにより、上下段の全てのALU間の接続を可能とする場合と比較すると、配線数を大幅に削減することが可能となる。
図6は、データフローグラフ処理部31の構成を示す。データフローグラフ処理部31は、DFG分割部60、サブDFG最適化部61、DFG結合部62を備える。実施例におけるデータフローグラフ処理機能は、処理装置10において、CPU、メモリ、メモリにロードされたDFG処理用プログラムなどによって実現され、ここではそれらの連携によって実現される機能ブロックを描いている。DFG処理用プログラムは、処理装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。
DFG分割部60は、コンパイル部30により生成されたDFGが、例えば以下のような場合に該当するような場合、DFGを分割して複数のサブDFGを生成する。
(1)DFGの列数がリコンフィギュラブル回路の1段あたりの論理回路の数よりも大きい場合。即ち、DFGの列数がリコンフィギュラブル回路のALUアレイの列数を超える場合。例えば、DFGが図5のようなリコンフィギュラブル回路12にマッピングされるのであれば、DFGの列数が5以上の場合。
(2)DFGがリコンフィギュラブル回路の接続制限に合致しない場合。例えばDFGが図5のようなリコンフィギュラブル回路12にマッピングされる場合、1つのALUからの配線は下段の3つのALUに制限されるが、マッピングしようとするDFGが、4つ以上のノードに対する出力を行うノードを有しているような場合。
なお、分割して生成されたサブDFG間のノード間を直接的に接続することができない場合、ノードの出力データは、一旦メモリ部27に格納される。
サブDFG最適化部61は、DFG分割部60で生成されたサブDFGの最適化を行う。例えば、生成されたサブDFG間のデータ受渡しが多い場合、それだけメモリ部27の使用量が多くなる。場合によってはメモリ不足によりサブDFG間のデータ受渡しができなくなって、演算そのものが実行不可能となる恐れがある。そこで、サブDFG最適化部61は、例えば、同一内容のデータが同じサブDFG内の複数ノードからメモリへ出力されるような場合があれば、いずれかのノードからのメモリ出力を削除するようにする。そうすることで、サブDFG間のデータ受渡しに使用するメモリの使用量を減らすことができる。これにより、メモリ不足による演算エラーの恐れを減らすことができるし、また、リコンフィギュラブル回路12を備えた集積回路装置26の消費電力を低減することができる。
DFG結合部62は、サブDFG最適化部61により最適化された複数のサブDFGを結合したDFGを生成する。
図7は、本実施例におけるDFG38の処理フローを示す。コンパイル部30がプログラム36をコンパイルして(S10)、DFG38を生成する(S12)。データフローグラフ処理部31のDFG分割部61は、生成されたDFG38を分割してサブDFGを生成する(S14)。サブDFG最適化部62は、分割したサブDFGの最適化を行う(S16)。DFG結合部63は、最適化されたサブDFGを結合してDFGを生成する(S18)。そして、設定データ生成部32は、結合されたDFGをもとに設定データ40を生成する(S20)。
なお、S18においてサブDFGを結合したDFGがリコンフィギュラブル回路の段数を超える場合、結合DFGを分割して複数のサブ結合DFGを生成する。そして、設定データ生成部32は、それぞれのサブ結合DFGをもとに複数の設定データ40を生成する。
(実施例)
以下、実施例を用いて、本願発明についての説明を行う。
図8は、コンパイル部30に入力されるCソースプログラムである。コンパイル部30は、このC言語で記述されたプログラムをコンパイルして、DFGを生成する。図9は、コンパイル部30から出力されるDFGである。このようなDFGを図5で示すような接続制限が課されたリコンフィギュラブル回路12にマッピングすることはできない。なぜなら図9のDFGには、下段の4つのノードへの出力を行っているノード(第1段目の加算ノード)が存在しているのに対し、図5のDFGは、1つのノードからは、下段の3つ以下のノードにしか接続できないという制約が課されているからである。そこで、DFG分割部60は、図9のDFGを図10のような2つのサブDFGに分割することで、下段の4つのノードへの出力を行うノードをなくす。
なお、図10の2つのサブDFGをリコンフィギュラブル回路にマッピングするには、リコンフィギュラブル回路が6段×3列のALUを備えていれば良い。図5のリコンフィギュラブル回路は6段×4列のALUを有しているから、図9のDFGをマッピングすることが可能である。なお、リコンフィギュラブル回路にマッピングされる2つのサブDFG間のデータ受け渡しは、メモリ部29に割り当てられるメモリ領域A、B、Cを介して行われる。
ここで、図10のDFGに着目すると、メモリAに出力されるデータと、メモリBに出力されるデータはスルーノード(movノード)を介して接続されていることに気づく。即ち、メモリAに出力されるデータと、メモリBに出力されるデータは同じ内容である。そこで、メモリAへの出力と、メモリBへの出力のいずれか一方は削除することができる。ここでは、movノードからのメモリBへの出力を削除する。その結果、図10のDFGは、図11のようなDFGに置き換えることができる。これによって、サブDFG間のデータ受け渡しに使用するメモリ使用量を減らすことができる。
図12は、サブDFG最適化部61が行う最適化処理のフローチャートを示したものである。このフローチャートは、サブDFG間のデータ受け渡しに使用されるメモリの使用量を減らす処理手順を示したものである。例えば、上記の図10のDFGから、図11のようなDFGを生成するための手順を示したものである。
サブDFGファイルが読み込まれると、まず、メモリへの出力を行うmovノードの探索を行う(S30)。メモリ出力を行うmovノード(このノードのことをノードMと呼ぶ)があれば(S31のyes)、ステップS32へ進む。ない場合は(S31のno)、サブDFG最適化部61による最適化処理は終了である。
ステップS32では、ノードMの入力ノードを辿り、非movノード(このノードのことをノードPと呼ぶ)の探索を行う。ステップS33では、ノードPが既にメモリ出力(この出力変数をAとする)を有しているかどうかを調べる。メモリ出力を既に有していれば(yesの場合)S38へ進み、有していないのであれば(noの場合)S34へ進む。
ステップS34では、ノードPにメモリ出力Aを作成する。ステップS35では、ノードMのメモリ出力(この出力変数をBとする)を削除する。ステップS36では、出力変数Bを入力とするノードをサーチする。ステップS37では、S36で発見されたノードの入力BをAに変更する。そして、ステップS30へ戻る。
ステップS38では、出力変数Aが最終出力かどうかを判断する。ここで、最終出力とは、サブDFGに分割される前のDFGの出力である。例えば、図9〜図11でいうところの、ret1、ret2のことである。最終出力ではないとは、他のサブDFGへのデータ受け渡しを行うメモリへの出力のことである。例えば、図10でいうところの、メモリA、B、Cへの出力のことである。最終出力であればステップS30へ戻り、最終出力でない場合はステップS35へ進む。
ここで、上記のフローチャートによる処理の具体例を説明する。図10のDFGから図11のDFGが生成される手順を説明する。
まず、図10で示されるようなDFGのファイルが読み込まれる。S30では、メモリBへの出力を行うmovノードMが発見される。S32では、movノードMへの入力を行う加算ノードPが発見される(図13の「状態1」参照)。このノードPは既にメモリ出力Aを持っているので、S33ではyesと判断される。しかし、このメモリ出力Aは、サブDFG間のデータ受け渡しを行うメモリへの出力であり、最終出力ではない。よってS38ではNoと判断され、S35へ進む。このノードPは既にメモリ出力Aを持っているので、S33ではyesと判断される。
S35では、ノードMのメモリ出力Bが削除される。S36では、メモリBからの入力を受けていたノード(図10のmergeノード)が発見される。S37では、このmergeノードへの入力ノードをメモリBからメモリAに変更する。
そして再びS30へ戻るが、メモリ出力を行うmovノードはS35での処理によりなくなっている(movノードからのメモリ出力が削除されている)ため、S31ではNoと判断され、サブDFG最適化処理部61による最適化処理は終了である。
以上、本発明を実施例もとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、リコンフィギュラブル回路12におけるALUの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する結線は設けられていないが、このような段を飛ばす接続結線を設ける構成としてもよい。
また、図1では、処理装置10が1つのリコンフィギュラブル回路12を有する場合を示しているが、複数のリコンフィギュラブル回路12を有していてもよい。複数のリコンフィギュラブル回路12が存在する場合は、複数のDFGを同時に処理することが可能となり、データ処理時間を短縮することが可能となる。
今回開示された実施形態及び実施例はすべての点で例示であって制限的なものではない。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
例えば、上記実施形態では、リコンフィギュラブル回路にマッピングされるDFGの処理に係るものであったが、この出願明細書において開示した考え方は、他にも適用することが可能である。
例えば、回路遅延を有する集積回路に演算を表すDFGを割り当てる場合において、回路遅延の影響を小さくするために、DFGを複数の小さなサブDFGに分割して集積回路にマッピングすることがある。上記リコンフィギュラブル回路での実施形態と同様、この場合もサブDFG間のデータのやり取りはD/FF(D−フリップフロップ)などのメモリを介して行うこととなるが、やはりサブDFG間のデータ受渡しに必要なメモリの使用量が問題になることがある。そのような場合においても、本願発明のように、サブDFG内の複数ノードから同一内容のデータがメモリの異なる領域へそれぞれ出力される場合は、いずれかのノードからのメモリ出力を削除することにより、メモリ使用量を減らすことができる。このように本願発明は、リコンフィギュラブル回路の設計に限らず、論理回路の設計において広く適用することが可能である。
実施例に係る処理装置の構成図である。 ターゲット回路を分割してできる複数の回路について説明するための図である。 リコンフィギュラブル回路12の構成図である。 DFG38の構造を説明するための図である。 リコンフィギュラブル回路12におけるALU間の接続関係を示す図である。 本実施例におけるDFG38の処理フローチャートである。 データフローグラフ処理部31の構成図である。 コンパイル部30に入力されるCソースプログラムである。 コンパイル部30から出力されるDFGである。 図9に示すDFGを、DFG分割部6が分割して生成した2つのサブDFGを示す図である。 サブDFG最適化部61により最適化されたサブDFGである。 サブDFG最適化部61が行う最適化処理のフローチャートである。 最適化処理の途中のデータフローグラフを示すものである。
符号の説明
10 処理装置
12 リコンフィギュラブル回路
14 設定部
18 制御部
22 出力回路
24 経路部
26 集積回路装置
27 メモリ部
29 経路部
30 コンパイル部
31 データフローグラフ処理部
32 設定データ生成部
34 記憶部
36 プログラム、
38 データフローグラフ
40 設定データ
50 論理回路
52 接続部
60 DFG分割部
61 サブDFG最適化部
62 DFG結合部

Claims (1)

  1. データフローグラフ(DFG)を分割して2以上のサブDFGを生成するデータフローグラフ生成装置であって
    サブDFG間のデータ入出力がメモリを介して行われるような複数のサブDFGを生成する手段
    前記サブDFG内の第1ノードからデータがモリ出力され、かつ前記第1ノードの出力ノードに接続されたスルーノードである第2ノードからのデータがメモリに出力される場合、前記第2ノードからのメモリへの出力を削除する手段、
    を備えることを特徴とするデータフローグラフ生成装置。
JP2006095162A 2006-03-30 2006-03-30 データフローグラフ生成装置 Expired - Fee Related JP4562679B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006095162A JP4562679B2 (ja) 2006-03-30 2006-03-30 データフローグラフ生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006095162A JP4562679B2 (ja) 2006-03-30 2006-03-30 データフローグラフ生成装置

Publications (2)

Publication Number Publication Date
JP2007272395A JP2007272395A (ja) 2007-10-18
JP4562679B2 true JP4562679B2 (ja) 2010-10-13

Family

ID=38675158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006095162A Expired - Fee Related JP4562679B2 (ja) 2006-03-30 2006-03-30 データフローグラフ生成装置

Country Status (1)

Country Link
JP (1) JP4562679B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5244421B2 (ja) * 2008-02-29 2013-07-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびプログラム分割方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182654A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP2005258593A (ja) * 2004-03-09 2005-09-22 Sanyo Electric Co Ltd データフローグラフ処理方法および処理装置
JP2006004345A (ja) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd データフローグラフ処理方法、リコンフィギュラブル回路および処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182654A (ja) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP2005258593A (ja) * 2004-03-09 2005-09-22 Sanyo Electric Co Ltd データフローグラフ処理方法および処理装置
JP2006004345A (ja) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd データフローグラフ処理方法、リコンフィギュラブル回路および処理装置

Also Published As

Publication number Publication date
JP2007272395A (ja) 2007-10-18

Similar Documents

Publication Publication Date Title
JP4275013B2 (ja) データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP4208577B2 (ja) 集積回路装置
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
WO2006046711A1 (ja) 再構成可能な論理回路を有するデータ処理装置
JPWO2006129722A1 (ja) 再構成可能な装置
JP4423953B2 (ja) 半導体集積回路
JP4562679B2 (ja) データフローグラフ生成装置
JP4553615B2 (ja) 処理装置
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
JP4208751B2 (ja) データフローグラフ処理装置。
JP4330472B2 (ja) 処理装置
JP4413052B2 (ja) データフローグラフ処理装置および処理装置
JP6553694B2 (ja) プロセッサエレメント、プログラマブルデバイス及びプロセッサエレメントの制御方法
JP2006065786A (ja) 処理装置
JP4357326B2 (ja) リコンフィギュラブル回路および処理装置
JP4610236B2 (ja) 設定データ生成装置
JP4553614B2 (ja) 処理装置
JP2008090869A (ja) 処理装置
JP2007172285A (ja) リコンフィギュラブル回路及び処理装置
JP2006065785A (ja) 処理装置
JP2009217619A (ja) 動作合成装置、動作合成方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100727

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees