特許第5882714号(P5882714)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東京計器株式会社の特許一覧

特許5882714リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール
<>
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000002
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000003
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000004
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000005
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000006
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000007
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000008
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000009
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000010
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000011
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000012
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000013
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000014
  • 特許5882714-リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5882714
(24)【登録日】2016年2月12日
(45)【発行日】2016年3月9日
(54)【発明の名称】リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール
(51)【国際特許分類】
   G06F 15/78 20060101AFI20160225BHJP
   H03K 19/173 20060101ALI20160225BHJP
   G06F 17/50 20060101ALI20160225BHJP
【FI】
   G06F15/78 560
   H03K19/173 101
   G06F17/50 656A
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2011-273168(P2011-273168)
(22)【出願日】2011年12月14日
(65)【公開番号】特開2013-125378(P2013-125378A)
(43)【公開日】2013年6月24日
【審査請求日】2014年12月12日
(73)【特許権者】
【識別番号】000003388
【氏名又は名称】東京計器株式会社
(74)【代理人】
【識別番号】110000408
【氏名又は名称】特許業務法人高橋・林アンドパートナーズ
(72)【発明者】
【氏名】吉村 光正
【審査官】 清木 泰
(56)【参考文献】
【文献】 特開2013−012108(JP,A)
【文献】 特開2007−128124(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F15/78
H03K19/173−19/177
G06F15/80
G06F 9/38
G06F11/00
G06F17/50
G06F 7/00
G06F15/16 −15/177
(57)【特許請求の範囲】
【請求項1】
それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置し、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるリコンフィギュラブルプロセッサの制御方法において、
所定の時間において、前記複数のプロセッサエレメントの1つである第1のプロセッサエレメントをデータの記憶に用い、
前記所定の時間に続く時間において、前記複数のプロセッサエレメントの他の1つである第2のプロセッサエレメントと前記第1のプロセッサエレメントとを配線で接続することによって前記第1のプロセッサエレメントに記憶された前記データを前記第2のプロセッサエレメントに移動または複写させ、同時に、前記複数のプロセッサエレメントの残部で所定の機能を実現する、
ことを特徴とするリコンフィギュラブルプロセッサの制御方法。
【請求項2】
請求項1記載のリコンフィギュラブルプロセッサの制御方法において、
前記リコンフィギュラブルプロセッサは外部からクロック信号が供給され、このクロック信号に応じて、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が時間的に変化し、
配線による接続関係を有するようにされるプロセッサエレメントとの間の信号遅延により規定されるクリティカルパスが所定範囲内になるように前記第1のプロセッサエレメントと前記第2のプロセッサエレメントが選択されることを特徴とするリコンフィギュラブルプロセッサの制御方法。
【請求項3】
それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置したリコンフィギュラブル回路と、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるコンフィギュレーション情報を格納するコンフィギュレーションメモリとを有するリコンフィギュラブルプロセッサの前記コンフィギュレーション情報を生成する方法において、
順次前記リコンフィギュラブル回路に実装されるべき複数の関数に用いられ又は生成されるところのデータのライフタイムを所定の範囲に制限し、当該ライフタイムを超えて同一のプロセッサエレメントが前記データを記憶し続けることを避けることを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法。
【請求項4】
請求項3記載のリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法において、
所定の時間に、あるデータをあるプロセッサエレメントが記憶し始めた場合には、前記所定の時間が終わって、複数のプロセッサエレメントの配線の接続関係により実現される機能が変化した上で、次の時間となった際に、当該次の時間に、前記あるデータを前記あるプロセッサエレメントから他のプロセッサエレメントに移動させるように、リコンフィギュラブルプロセッサのコンフィギュレーション情報を生成することを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法。
【請求項5】
ハードウェアに、請求項3又は4記載のリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法を実行させるためのコンフィギュレーション情報生成ツール。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リコンフィギュラブルプロセッサ(動的再構成プロセッサ)の制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報(動的再構成情報)を生成する方法及びコンフィギュレーション情報生成ツールに関する。
【背景技術】
【0002】
それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置したリコンフィギュラブル回路(動的再構成回路)と、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるコンフィギュレーション情報を格納するコンフィギュレーションメモリ(構成情報メモリ)とを有するリコンフィギュラブルプロセッサが知られている。
【0003】
リコンフィギュラブルプロセッサは時間の経過と共に回路構成を変更しながら処理を行う。図11はその動作の概要を示した図であり、図11(A)は処理すべき関数をC言語表記で表したコード、図11(B)はその動作を時系列とともに示した図である。図11(B)においては、上から下に向かって時間の流れがある。個々の矩形はリコンフィギュラブル回路とこれが実装するところの関数を示している。
【0004】
図11(A)の各関数function_1()、function_2()、function_1()及びfunction_3()は、同じリコンフィギュラブル回路で異なる時間に実装される。時間1においてはfunction_1()がリコンフィギュラブル回路上に実装され、時間2においてはfunction_2()がリコンフィギュラブル回路上に実装され、時間3においてはfunction_1()がリコンフィギュラブル回路上に実装され、時間4においてはfunction_3()がリコンフィギュラブル回路上に実装される。
【0005】
図11(B)に示すように、時間1において、function_1()に引数0が供給され、その出力は変数aに格納される。時間2においてはfunction_2()の出力が変数bに格納される。時間3においてはfunction_1()に時間1において求められた変数aが引数として用いられ、その出力は変数cに格納される。時間4においてはfunction_3()に引数a、b及びcが供給され、出力が変数zに格納される。そして、この図から明らかなように、変数a、b、cは、各回路構成(リコンフィギュラブル回路に実装された関数)間でデータの受け渡しを行う必要がある。
【0006】
データの受け渡し方法の例の1つを図12に示す。すなわち、データの処理結果を適切なタイミングでリコンフィギュラブル回路外のメモリにストア(退避)させる(図12(A))。データの初期化や演算をする場合などは、適切なタイミングで、リコンフィギュラブル回路外のメモリからロード(復旧)する(図12(B))。メモリはリコンフィギュラブルプロセッサと同一チップ上に設けてもよいし、別チップ上に設けても良い。これは、一般的なプロセッサシステムに例えると、キャッシュメモリ、外部メモリ乃至HDDに対応する。しかし、ロード/ストア処理に時間がかかるという問題がある。
【0007】
データの受け渡し方法の他の例を図13に示す。すなわち、リコンフィギュラブル回路そのものでデータを表現するというものである。ステートマシン(状態遷移マシン)の例として、s1、s2、s3、s4、s1・・・と遷移する例が示されている。そして、s1、s2、s3、s4の各状態を異なる時間における異なる回路構成config#1、config#2、config#3、config#4に割り当てる。このように、ステートマシンの各ステートを独立した回路構成に割り当てた場合、それぞれの回路構成が対応したステートを表現しているとみなすことができる。この方法によれば、メモリを使わないのでロード/ストア処理は不要である。しかし、演算対象データを受け渡すには不向きである。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2006−129722号公報
【特許文献2】特開2006−40254号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
以上説明した、回路構成(リコンフィギュラブル回路に実装された関数)間でのデータの受け渡し方法にはいずれも問題がある。そこで、リコンフィギュラブル回路内に生成したメモリを使用する方法が考えられる。これを図14に示す。リコンフィギュラブル回路領域内に、そのプロセッサエレメントを用いてフリップフロップ回路やRAM等のメモリを構成し、演算後にライト(書込み)したり(図14(A))、演算前にリード(読出し)したり(図14(B))する。これは、一般的なプロセッサに例えると、レジスタに相当する。したがって、動作が極めて高速になるというメリットがある。一方で、ストアを行った回路構成とロードを行う回路構成で同じメモリを参照する必要があり、その間はデータを保持し続けなければならない。
【0010】
しかし、リコンフィギュラブル回路内のプロセッサエレメントを用いてメモリを構成しこれに受け渡すべきデータを保存する場合には、そのプロセッサエレメントを長い時間メモリとしての使用に固定化することは、回路構成内の配置計算における計算量、すなわち、コンフィギュレーション情報を生成するための計算量が膨大になるという問題がある。また、後述するような自由度の低下、クリティカルパスの問題もある。
【0011】
本発明は、以上のような問題に鑑み創案されたもので、リコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する際の計算量を減らすことを目的の1つとするものである。
【課題を解決するための手段】
【0012】
上記課題を解決するため、本発明においては、それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置し、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるリコンフィギュラブルプロセッサの制御方法において、所定の時間において、前記複数のプロセッサエレメントの1つである第1のプロセッサエレメントをデータの記憶に用い、前記所定の時間に続く時間において、前記複数のプロセッサエレメントの他の1つである第2のプロセッサエレメントと前記第1のプロセッサエレメントとを配線で接続することによって前記第1のプロセッサエレメントに記憶された前記データを前記第2のプロセッサエレメントに移動または複写させ、同時に、前記複数のプロセッサエレメントの残部で所定の機能を実現する、ことを特徴とするリコンフィギュラブルプロセッサの制御方法が提供される。
【0013】
この方法においては、リコンフィギュラブルプロセッサは外部からクロック信号が供給され、このクロック信号に応じて、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が時間的に変化し、配線による接続関係を有するようにされるプロセッサエレメントとの間の信号遅延により規定されるクリティカルパスが所定範囲内になるように前記第1のプロセッサエレメントと前記第2のプロセッサエレメントが選択されることが望ましい。
【0014】
上記課題を解決するため、本発明においては、それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置したリコンフィギュラブル回路と、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるコンフィギュレーション情報を格納するコンフィギュレーションメモリとを有するリコンフィギュラブルプロセッサの前記コンフィギュレーション情報を生成する方法において、順次前記リコンフィギュラブル回路に実装されるべき複数の関数に用いられ又は生成されるところのデータのライフタイムを所定の範囲に制限し、当該ライフタイムを超えて同一のプロセッサエレメントが前記データを記憶し続けることを避けることを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法が提供される。
【0015】
この方法においては、所定の時間に、あるデータをプロセッサエレメントが記憶し始めた場合には、前記所定の時間が終わって、複数のプロセッサエレメントの配線の接続関係により実現される機能が変化した上で、次の時間までに限られることが望ましい。
【0016】
上記課題を解決するため、本発明においては、さらに、上記方法を用いるコンフィギュレーション情報生成ツールが提供される。
【発明の効果】
【0017】
以上、説明した本発明によれば、リコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する際の計算量を減らし、構成の自由度を向上することが可能となる。また、動作クロックを高速化することが可能になる場合がある。
【図面の簡単な説明】
【0018】
図1】本発明において用いられるリコンフィギュラブルプロセッサの内部構成の一例である。
図2】本発明において用いられるリコンフィギュラブル回路の回路構成の一例である。
図3】構成間の共有メモリをプロセッサエレメントPE上に実装した例である。
図4】本発明の構成間共有の分割の方法を説明した図である。
図5】本発明の構成間共有の分割の方法を説明した図である。
図6】コンフィギュレーション情報を生成するツール(ワークステーション上で動作するソフトウェア)の構成例である。
図7】本発明の論理合成モジュールによる実現例である。
図8】本発明の論理合成モジュールによる実現例である。
図9】本発明の配置配線の例である。
図10】本発明の配置配線の例である。
図11】リコンフィギュラブルプロセッサの動作の概要を示した図である。
図12】リコンフィギュラブルプロセッサにおけるデータの受け渡し方法の例である。
図13】リコンフィギュラブルプロセッサにおけるデータの受け渡し方法の例である。
図14】リコンフィギュラブルプロセッサにおけるデータの受け渡し方法の例である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態を図示例と共に説明する。図1は、本発明において用いられるリコンフィギュラブルプロセッサ100の内部構成の一例である。リコンフィギュラブルプロセッサ100は、リコンフィギュラブル回路101とコンフィギュレーションメモリ102とリコンフュギュレーション制御回路103とから構成され、内部バス104を経由して外部I/O105と接続されている。内部バス104とリコンフィギュラブル回路101とは信号線106で接続され、ここでデータがやり取りされる。内部バス105とリコンフィギュレーション制御回路103とは信号線108で接続され、ここで制御データ(コンフィギュレーション情報及び各種の制御情報を含む。)がやり取りされる。リコンフィギュレーション制御回路103は信号線107を介してリコンフィギュラブル回路101に含まれるプロセッサエレメントの記憶及び演算の機能並びにこれらの配線の再構成を制御する。リコンフィギュレーション制御回路103はコンフィギュレーションメモリ102にコンフィギュレーション情報を、信号線109を介してストアしロードする。
【0020】
図2は、リコンフィギュラブル回路101の回路構成の一例である。図2に示すように、リコンフィギュラブル回路101は行列状(y行、x列)に配列されたプロセッサエレメントPEから構成されている。プロセッサエレメントPEは、ルックアップテーブルLUT、フリップフロップFF及び選択回路selから構成され、記憶及び演算の機能を有する。各プロセッサエレメントPEの間には配線領域が存在し、任意のプロセッサエレメントPE間を接続可能な配線を有する。
【0021】
図3は構成間の共有メモリをプロセッサエレメントPE上に実装し、かつ、その位置を固定した場合の例である。時間0においては、構成config#0がリコンフィギュラブル回路に実装されている。そして、#0、#5、#6、#8及び#10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。時間0に引き続く時間1においては、構成config#1がリコンフィギュラブル回路に実装されている。そして、#0、#1、#6、#8及び#10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。時間1に引き続く時間2においては、構成config#2がリコンフィギュラブル回路に実装されている。そして、#0、#2、#5、#8、#9及び#10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。このような例において、時間0、時間1及び時間2の通しで開いているプロセッサエレメントPEは#4(#0と#8に挟まれた部分)のみであるため、この3つの時間にまたがる記憶領域(格納される変数のライフタイムが3であることに対応する。)は#4にしか確保できない。つまり、複数の時間にわたって同じ座標のプロセッサエレメントが空いていないと、配置配線に失敗するのである。
【0022】
各回路構成内の配置配線は、従来のLSIの配置配線方法によって実現することが可能である。しかしながら、ダイナミックリコンフィギュラブル回路においては、構成間共有メモリを通じて、各回路構成同士が影響し合う。つまり、回路構成毎の独立した配置配線に分割することができず、配置配線における計算量が膨大になる。図3の例においては、具体的には、合計計算量は(config#0の計算量)+(config#1の計算量)+(config#2の計算量)ではなく、(config#0の計算量)×(config#1の計算量)×(config#2の計算量)とならざるをえない。
【0023】
(構成間共有の分割をすることにより計算量の削減及び自由度の向上)
【0024】
図4及び図5を用いて、本発明による構成間共有の分割の方法を説明する。ここで紹介する例は変数のライフタイムを2以下に制限した例である。
【0025】
図4(A)は処理すべき関数をC言語表記で表したコード、図4(B)はその動作を状態遷移図で表した図、図4(C)は変数のライフタイムを示した図表である。図4(A)の各関数function_1()、function_2()、function_1()及びfunction_3()は、同じリコンフィギュラブル回路で異なる時間に実装される。時間1においてはfunction_1()がリコンフィギュラブル回路上に実装され、時間2においてはfunction_2()がリコンフィギュラブル回路上に実装され、時間3においてはfunction_1()がリコンフィギュラブル回路上に実装され、時間4においてはfunction_3()がリコンフィギュラブル回路上に実装される。
【0026】
図4(C)に示すように、変数aは時間1、2、3及び4を通して生存する。つまり、そのライフタイムは4である。変数bは時間2、3及び4を通して生存する。つまり、そのライフタイムは3である。変数cは時間3及び4を通して生存する。つまり、そのライフタイムは2である。変数zは時間4のみで用いられる。つまり、そのライフタイムは1である。しかし、この例をそのまま実装すると、変数aのために同じプロセッサエレメントPEを通しで確保する必要があり、配置配線にかかる計算量が極めて膨大になるうえ、配置配線の自由度も低下する。
【0027】
図5(A)は図4(A)のコードに改変を加えたものである。図5(B)はその配置配線における実装の一例を示した図、図5(C)は変数のライフタイムを示した図表である。各関数function_1()、function_2()、function_1()及びfunction_3()は、同じリコンフィギュラブル回路で異なる時間に実装される。時間1においてはfunction_1()がリコンフィギュラブル回路上にconfig#1として実装され、時間2においてはfunction_2()がリコンフィギュラブル回路上にconfig#2として実装され、時間3においてはfunction_1()がconfig#1としてリコンフィギュラブル回路上に実装され、時間4においてはfunction_3()がリコンフィギュラブル回路上にconfig#3として実装される。
【0028】
図5(A)のコード及び図5(C)の変数のライフタイムにあるように、変数のライフタイムは2に制限されている。ある時間と次の時間までしか同一の変数が用いられないように構成されている。つまり、変数aは、a1、a2、a3に分割され、変数bは、b1、b2に分割されている。つまり、分割した共有が同一変数について複数存在する場合に、それらを別物として扱い、変数はその数だけ複製を生成する。図5(B)の例では、時間3において変数a2は変数a3にコピーされ、変数b1は変数b2にコピーされる。同時に時間3においては関数function_1()も実装されている。
【0029】
ここで変数aについて着目すると、配置配線に必要な計算量は、図4に示したようなライフタイムの長い変数の記憶領域が特定のPE上に実装される例と比較すると、激減することが理解される。すなわち、図4の例においては、合計計算量は(config#1の計算量)×(config#2の計算量)×(config#3の計算量)となるところを、図5のように構成間共有の分割を施すと、(config#1の計算量)×(config#2の計算量)+(config#2の計算量×config#3の計算量)となる。このようにして、変数のライフタイムを2に制限することによって、配置配線に必要な計算量は激減するとともにその自由度は増加する。このような配置配線によって得られたコンフィギュレーション情報は、前述したリコンフィギュラブルプロセッサに転送され、リコンフィギュラブルプロセッサが所望の機能をダイナミックに再構成して動作する。
【0030】
(コンフィギュレーション情報を生成するツール)
【0031】
図6は、コンフィギュレーション情報を生成するツール200(ワークステーション上で動作するソフトウェア)の構成例である。ツール200は、高位言語(HDL、C等)による設計をサポートするためのモジュール201、論理合成モジュール202及び配置配線モジュール203から構成される。
【0032】
設計サポートモジュール201によって、主として回路設計を高位言語で行うユーザとのインターフェイス及びそのためのエディタ等が供給される。
【0033】
論理合成モジュール202には、設計サポートモジュール201によって生成された設計情報が供給され、これによって、各時間における論理回路構成にかかる情報(RTL等)が生成される。具体的には、リコンフィギュラブル回路のリソース(プロセッサエレメントの規模・数等)に応じて、回路を適切な単位に分割し、処理の単位が小さい場合は、リコンフィギュラブル回路のリソースにあわせて回路を結合する。さらに、本発明においては、状態遷移情報を管理する必要もある。
【0034】
配置配線モジュール203には、論理回路構成情報が供給され、これによって、各時間における配置配線(使用するプロセッサエレメントPEの配置、機能、プロセッサエレメント間の配線)が決められ、コンフィギュレーション情報が生成される。さらに、本発明においては、論理合成モジュールから状態遷移情報を受取る必要がある。
【0035】
(論理合成による実現例)
【0036】
以下、図7及び図8を参照して、本発明の論理合成モジュールによる実現例を示す。図7(A)は論理合成すべきソースコードの一例である。x = a + bはconfig#1に合成し、y = c * dはconfig#2に合成し、z = x − y及びw = x + yはconfig#3に合成する。
【0037】
図7(B)はこのソースコードをDFG(データフローグラフ)表現した例である。図中矩形はレジスタを、丸は演算器を表している。演算器内に付された記号は演算器の動作(加算が+、減算が−、乗算が*である。)を示している。時間の流れに沿って、上から下へとデータが流れるように表現されている。config#1で計算したxはconfig#3で使用するため、変数xが生成される。変数xはconfig#2では演算に使用されず、値を保持するためにのみ使用される。その結果、変数xはconfig#1、config#2、config#3を通じて生存することになり、そのライフタイムが3となる。
【0038】
図8(A)は論理合成すべきソースコードに本発明の方法に従って変形を加えてた例である。x=a+bがconfig#1に合成されるのは図7(A)と同様である。しかし、y=c*dのみならずxをx’にコピーするところのx’=xが共にconfig#2に合成される。そして、x’−y及びw=x’+yがconfig#3に合成される。
【0039】
図8(B)はこのソースコードをDFG(データフローグラフ)表現した例である。config#1で計算したxはconfig#2においてx’にコピー(移動)される。config#3で使用する変数は変数x’である。その結果、変数xはconfig#1及びconfig#2を通じてのみ生存し、そのライフタイムは2となる。また、変数x’はconfig#2及びconfig#3を通じてのみ生存することになり、そのライフタイムは2となる。なお、本発明の論理合成モジュールによる実現例として、config#1で計算したxはconfig#2においてx’にコピー(移動)される例を示したが、コンフィギュレーション情報を生成するための計算量が所定の範囲内の場合またはクリティカルパスが所定の範囲内の場合は,xはx’にコピー(移動)されず,そのまま生存されてもよい。
【0040】
以上のようにして論理合成モジュール202において変数のライフタイムを制限しつつ論理合成を行う結果、次の段の配置配線モジュール203における計算量を減らすことができるとともに配置の自由度を向上することが可能となる。
【0041】
(クリティカルパスの考慮による動作速度の改善)
【0042】
プロセッサエレメントPE間の配線遅延は、データを出力するプロセッサエレメントPEとデータを入力するプロセッサエレメントPEのマンハッタン距離によって規定される。ここでマンハッタン距離とは、行の差の絶対値及び列の差の絶対値の和である。最も遅延が生じる距離は、図2を例にとると、0行0列のプロセッサエレメントPEとy行x列のプロセッサエレメントPE間である(したがって、これがクリティカルパスとなる。)。一般的なリコンフィギュラブルプロセッサにおいては、一定の周波数のクロック信号を用いて、そのクロックの周期(又は分周したクロックの周期)に従って動作を行っていた。そして、クリティカルパスにおける信号遅延時間が発生したとしても、誤動作を行わないようなクロック信号を選択していた。
【0043】
図9には、図7(A)のソースコードによって示される処理を配置配線した例である。x=a+bはconfig#1に合成し、y=c*dはconfig#2に合成し、z=x−y及びw=x+yはconfig#3に合成する。この図から明らかなように、config#1は、演算処理を行うプロセッサエレメントと引数a及びb、処理結果xの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。config#2においても、演算処理を行うプロセッサエレメントと引数c及びd、処理結果yの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。しかしながら、config#3においては、演算処理を行うプロセッサエレメントと引数xの保持を行うプロセッサエレメントとが距離3乃至4であるために、最適化配置されていない。これでは、変数の受け渡しを行うべきプロセッサエレメントと演算処理を行うプロセッサエレメントとの間にクリティカルパスが形成され、十分な速度を得ることができない。クロック周波数が一定の場合にはこのクリティカルパスを前提にした低速なクロックを選択する必要があり、全体的に動作が遅くなるおそれがある。
【0044】
図10には、図8(A)のソースコードによって示される処理を配置配線した例である。この図から明らかなように、config#1は、演算処理を行うプロセッサエレメントと引数a及びb、処理結果xの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。config#2においても、演算処理を行うプロセッサエレメントと引数c及びd、処理結果yの保持を行うプロセッサエレメントと、並びにxとx’を保持するプロセッサエレメントがいずれも距離1であるために、最適化配置がなされている。そして、config#3においては、演算処理を行うプロセッサエレメントと引数xの保持を行うプロセッサエレメントとが最大2となっている。その結果、クリティカルパスは距離2であり、これに応じてクロックの速度を早めることができ、クロック周波数が一定の場合にはこのクリティカルパスを前提にした高速なクロックを選択することが可能となり、全体的に動作が早くなる。
【0045】
図10では、距離を2以下に制限した例を示したが、さらに自由度を上げて、2以上の所定の距離となるように制限することも可能である。そして、そのような制限を加えた形で変数を保持するプロセッサエレメントを選択する。
【0046】
以上、本発明の実施例にかかるリコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツールを説明したが、本発明は上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【0047】
100 リコンフィギュラブルプロセッサ
101 リコンフィギュラブル回路
102 コンフィギュレーションメモリ
103 リコンフュギュレーション制御回路
104 内部バス
105 外部I/O
106、107、108、109 信号線
200 ツール
201 設計サポートモジュール
202 論理合成モジュール
203 配置配線モジュール



図1
図2
図4
図5
図6
図7
図8
図11
図12
図13
図14
図3
図9
図10