JP2007272394A - データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、処理装置、及びリコンフィギュラブル回路 - Google Patents

データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、処理装置、及びリコンフィギュラブル回路 Download PDF

Info

Publication number
JP2007272394A
JP2007272394A JP2006095161A JP2006095161A JP2007272394A JP 2007272394 A JP2007272394 A JP 2007272394A JP 2006095161 A JP2006095161 A JP 2006095161A JP 2006095161 A JP2006095161 A JP 2006095161A JP 2007272394 A JP2007272394 A JP 2007272394A
Authority
JP
Japan
Prior art keywords
flow graph
data flow
circuit
node
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006095161A
Other languages
English (en)
Other versions
JP4562678B2 (ja
Inventor
Makoto Okada
誠 岡田
Kazuhisa Iizuka
和久 飯塚
Makoto Kosone
真 小曽根
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 JP2006095161A priority Critical patent/JP4562678B2/ja
Publication of JP2007272394A publication Critical patent/JP2007272394A/ja
Application granted granted Critical
Publication of JP4562678B2 publication Critical patent/JP4562678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Microcomputers (AREA)

Abstract

【目的】リコンフィギュラブル回路の動作設定に必要なデータフローグラフを、従来の技術よりも更に小型化し、これによりリコンフィギュラブル回路の低消費電力化を図る。
【構成】
データフローグラフ処理部31は、コンパイル部30で生成されたデータフローグラフを、リコンフィギュラブル回路12に最も適した形でマッピングできるようなデータフローグラフに最適化する。データフローグラフ処理部31は、上段ノードから下段ノードへのデータ伝播のみしか行わない連続するスルーノードを削除し、その伝播されるデータが内部状態回路20を介して上段ノードから下段ノードへ伝播されるよう、データフローグラフを変換する。
【選択図】 図3

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を動的に再構成することで、回路構成の再利用を図る方法が提案されている。
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うこともある。受信機では、放送モードごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。したがって、受信機の他の放送モード用の回路はその間、遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時に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は、加算演算やシフト演算などの演算機能をそれぞれ実行する複数の基本演算素子を備えて構成される。ALUが基本演算素子を多く持つことは、それだけALUアレイの演算能力を高め、演算処理の汎用性を高めることができる。一方で、ALUの基本演算素子の数を増やすことは、それだけALUの回路規模が大きくなるという欠点もある。
例えば、乗算演算機能を実行する基本演算素子をALUに作りこんだ場合、その基本演算素子の回路規模が大きくなるため、ALUアレイ全体の回路規模が増大する。一方、乗算演算素子を有しないALUアレイで乗算演算を実行する場合、加算演算やシフト演算などを組み合わせたDFGを作成して、ALUアレイにマッピングすることになる。この場合、DFGが非常に大きくなり、乗算処理に時間がかかり、処理の高速性が損なわれるとともに、ALUアレイの消費電力が増加する。
こうした状況に鑑み、本出願人は、効率よくデータフローグラフを作成し、また効率よくデータフローグラフを実行するリコンフィギュラブル回路および処理装置に関する技術を開発した(特許文献2参照)。
ここで、特許文献2のデータフローグラフ処理方法について簡単に説明しておく。図15は、筆算アルゴリズムを用いて被乗数24ビット×乗数4ビットの計算をするデータフローグラフである。このデータフローグラフでは、所定の規則に従って配列されたノード群70が4つ存在している。
図16は、図15において4段にて構成されていたノード群70のそれぞれを1つのノードmul_tに置換したあとの状態を示したものである。
ここで、演算が割り当てられていないノード(nopノード)が多数存在することに気づく。これらのnopノードのうち、mul_tノードへ接続されていないnopノードについては削除が可能である。このようなnopノードを削除した後のデータフローグラフを示したのが図17である。
上記のような方法によれば、被乗数24ビット×乗数4ビットの乗算の実行には、従来(図15)は20段のALU列が必要であったのが、8段のALU列で可能となる。また、ノード数も従来は65個必要だったのが、15個で済む。これにより、DFGの段数を減らすことができ、リコンフィギュラブル回路における回路再構成回数を少なくすると共に、回路再構成に伴う消費電力を少なくしている。
特開平10−256383号公報 特開2005−275698号公報
しかしながら、特許文献2のデータフローグラフ処理方法により生成されるデータフローグラフは、まだ十分に小さいとはいえない。
例えば、図17のデータフローグラフにおいては、演算処理を行わず、データの受け渡しのみを行うnopノードがまだ8つ残っている。これらのノードを削減することができれば、データフローグラフの更なる小型化が可能である。
上記説明した例では、乗数のビット数が4ビットであったが、乗数のビット数が例えば16とか32ビットのようにもっと大きい場合には、それだけ多くのnopノードが残ってしまうことになる。これらのnopノードを削減することができれば、データフローグラフがマッピングされるリコンフィギュラブル回路をより効率的に利用することができるし、また、リコンフィギュラブル回路の消費電力を大きく減らすことができる。
そこで、この発明は上記の事情に鑑み、リコンフィギュラブル回路の動作設定に必要なデータフローグラフを従来の技術よりも更に小型化し、これにより、リコンフィギュラブル回路の利用効率の向上、及びリコンフィギュラブル回路の低消費電力化を図ることを目的とする。
本発明のデータフローグラフ再構成装置は、機能の変更が可能なリコンフィギュラブル回路にマッピングされるデータフローグラフを生成するデータフローグラフ再構成装置であって、データフローグラフから連続するスルーノード群を探索するスルーノード群探索手段と、探索されたスルーノード群の先頭ノードへの出力を行うノードの出力先を、前記リコンフィギュラブル回路に接続されるメモリへ変更する出力先変更手段と、前記スルーノード群の一部のノードを前記データフローグラフから削除するスルーノード削除手段と、削除されたスルーノードからの入力を受けていた演算ノードの入力元を前記メモリへ変更する入力元変更手段を備えることを特徴とする。
このようなデータフローグラフ再構成装置によれば、例えば、上段ノードから下段ノードへのデータ伝播のみしか行わない連続するスルーノード群を削除し、その伝播されるデータが(リコンフィギュラブル回路の外部の)メモリを介して上段ノードから下段ノードへ伝播されるよう、データフローグラフを変換する。したがって、リコンフィギュラブル回路にマッピングされるデータフローグラフの規模を小さくすることができ、ひいてはリコンフィギュラブル回路の消費電力を低減することができる。
好ましくは、前記スルーノード削除手段は、前記スルーノード群における先頭部のノードは削除せず、前記先頭部以外のノードのみを削除することを特徴とする。
好ましくは、前記スルーノード削除手段は、前記リコンフィギュラブル回路と前記メモリ間のアクセス速度に基づいて、削除しない先頭部のノードの数を決定することを特徴とする。これは、リコンコンフィギュラブル回路内のデータ伝播速度と、メモリを介したデータ伝播速度との違いを考慮したものである。
本発明のリコンフィギュラブル回路の設定データ生成装置は、ソースプログラムをコンパイルしてデータフローグラフを生成するコンパイル手段と、前記コンパイル手段が生成するデータフローグラフを再構成することを特徴とした上記のデータフローグラフ再構成装置と、前記データフローグラフ再構成装置で再構成されたデータフローグラフから、前記リコンフィギュラブル回路に所期の回路を構成するための設定データを生成する設定データ生成手段を備えることを特徴とする。
本発明の処理装置は、上記の設定データ生成装置と、機能の変更が可能なリコンフィギュラブル回路と、前記リコンフィギュラブル回路の出力を格納するメモリとを備えた集積回路を備えることを特徴とする。
本発明のリコンフィギュラブル回路は、上記の設定データ生成装置から供給された設定データに基づいて構成されたことを特徴とする。
この発明によれば、リコンフィギュラブル回路の動作設定に必要なデータフローグラフを従来の技術よりも更に小型化し、これにより、リコンフィギュラブル回路の利用効率の向上、及びリコンフィギュラブル回路の低消費電力化を実現することができる。
<処理装置の構成>
図1は、実施の形態に係る処理装置10の構成図である。処理装置10は、回路構成を再構成可能とする機能を有する集積回路装置26を備える。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路12、設定部14、制御部18、内部状態保持回路20、出力回路22、第1フィードバック経路24、遅延保持回路27および第2フィードバック経路29を備える。リコンフィギュラブル回路12は設定を変更することにより、機能の変更を可能とする。リコンフィギュラブル回路12は組合せ回路または順序回路等の論理回路として構成される。第1フィードバック経路24および第2フィードバック経路29は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。
リコンフィギュラブル回路12は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を設定可能な接続部とを備える。構造的には、複数の論理回路列の間に、論理回路列間の接続用結線を設定する接続部が設けられる。リコンフィギュラブル回路12は、複数段に配列された各論理回路の機能、および論理回路間の接続を任意に設定することで、機能の変更を可能とする。本実施の形態における論理回路は、演算機能のそれぞれを実行する基本演算素子の複数個を所定の規則の下で接続する組合せ用結線を有して構成される。
設定部14は、リコンフィギュラブル回路12に所期の回路を構成するための設定データ40を供給する。設定部14は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。この場合、制御部18がプログラムカウンタの出力を制御する。この場合、設定データ40はコマンドメモリから出力されるコマンドデータであってよい。
内部状態保持回路20は、例えばデータフリップフロップ(DFF)などの順序回路として構成され、リコンフィギュラブル回路12の出力を受け付ける。内部状態保持回路20は第1フィードバック経路24に接続されており、リコンフィギュラブル回路12の出力を直接リコンフィギュラブル回路12の入力にフィードバックさせる。また内部状態保持回路20は、リコンフィギュラブル回路12の出力を遅延保持回路27に供給する。内部状態保持回路20は選択器を有し、選択器は、制御部からの選択指示をもとに、第1フィードバック経路24に送り出すデータ、および遅延保持回路27に供給するデータを選択する。なお、選択器は、同一のデータを第1フィードバック経路24および遅延保持回路27の双方に送り出してもよい。
遅延保持回路27はメモリであって、リコンフィギュラブル回路12から出力される出力データを格納するための複数のRAMにより構成される。遅延保持回路27は、リコンフィギュラブル回路12の出力データを任意の時間遅延させる機能をもつ。この例では、遅延保持回路27が、内部状態保持回路20から出力されるデータを格納しているが、リコンフィギュラブル回路12から直接出力されるデータを格納してもよい。遅延保持回路27は、制御部18からのW/Rイネーブル信号およびアドレス信号に基づいて、データの書込/読出を行う。遅延保持回路27は第2フィードバック経路29に接続されており、制御部18からの読出指示に基づいて、所期のタイミングでデータをリコンフィギュラブル回路12の入力にフィードバックさせる。なお、設定部14がコマンドメモリとして構成されている場合、コマンドメモリから供給されるコマンドデータで、遅延保持回路27のデータの書込/読出を行ってもよい。
出力回路22は、例えばデータフリップフロップ(DFF)などの順序回路として構成され、リコンフィギュラブル回路12から出力されるデータを外部に出力する。この例では、出力回路22が、遅延保持回路27から出力されるデータを受け付けているが、リコンフィギュラブル回路12から直接出力されるデータを受け付けてもよく、また内部状態保持回路20から出力されるデータを受け付けてもよい。
処理装置10においては、リコンフィギュラブル回路12の出力をリコンフィギュラブル回路12の入力にフィードバックする経路が、第1フィードバック経路24および第2フィードバック経路29の2系統存在する。第1フィードバック経路24は、遅延保持回路27を介さないために、リコンフィギュラブル回路12の出力データを高速にフィードバック処理することが可能である。一方、第2フィードバック経路29は、制御部18からの指示により所期のタイミングでデータ信号をリコンフィギュラブル回路12に供給することができる。このように、第1フィードバック経路24または第2フィードバック経路29は、リコンフィギュラブル回路12上に再構成する回路に応じて適宜使い分けられる。
リコンフィギュラブル回路12は、機能の変更が可能な論理回路を有して構成される。複数の論理回路は、マトリックス状に配置された構造をとってもよい。各論理回路の機能と、論理回路間の接続関係は、設定部14により供給される設定データ40に基づいて設定される。また、論理回路内において、基本演算素子同士を接続する組合せ用結線も、設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。
集積回路装置26により実現されるべきプログラム36が、記憶部34に保持されている。プログラム36は、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、記憶部34に格納されたプログラム36をコンパイルし、データフローグラフ(DFG)38に変換して記憶部34に格納する。データフローグラフ38は、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、データフローグラフ38は、上から下に向かって演算が進むように作成される。
本実施の形態では、論理回路が複数の基本演算素子を有して、それぞれの演算機能を実行する。一般的に用いる演算としては、加算演算や減算演算など様々なものをあげることができるが、そのうちの一つに乗算演算がある。リコンフィギュラブル回路12の汎用性という観点からは、各論理回路が乗算を実行する基本演算素子を備えることが好ましいが、実際には乗算用の演算素子は、他の加算演算などの演算素子と比較すると、回路規模が非常に大きい。そのため、論理回路は、乗算用の基本演算素子を持たずに構成され、データフローグラフ38中の乗算演算は、筆算アルゴリズムやBoothアルゴリズムなどを用いて加算やビットシフトなどで演算できる形態に展開する必要がある。乗算演算の展開は、コンパイル部30により実行される。
データフローグラフ処理部31は、コンパイル部30で生成されたデータフローグラフを、リコンフィギュラブル回路12にマッピング可能なデータフローグラフに変換する。また、リコンフィギュラブル回路12に最も適したデータフローグラフをマッピングできるよう、データフローグラフの最適化を行う。
なお、データフローの一群から置換されたノードは、リコンフィギュラブル回路12の論理回路で処理可能なノードである必要がある。これに対応して、論理回路は、置換されたノードを処理するために、自身のもつ複数の基本演算素子を所定の順序で組み合わせるための組合せ用結線を有して構成される。これにより、論理回路は基本演算素子の数を増やすことなく、組合せ用結線をもつことで、複数の基本演算素子により実行される新たな演算機能をもつことができる。
設定データ生成部32は、データフローグラフ38から設定データ40を生成する。設定データ40は、データフローグラフ38をリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や論理回路間の接続関係を定める。設定データ生成部32が、1つの生成すべき回路を分割してできる複数の回路の設定データ40を生成してもよい。
図2は、リコンフィギュラブル回路12の一般的構成を示す。
リコンフィギュラブル回路12は、それぞれが複数の演算機能を選択的に実行可能な論理回路の多段配列と、前段の論理回路の出力と後段の論理回路の入力の接続関係を任意に設定可能な接続部52とを備える。リコンフィギュラブル回路12では、論理回路の多段配列構造により、上段から下段に向かって演算が進められる。なお、本明細書および特許請求の範囲において「多段」とは、複数の段を意味する。
リコンフィギュラブル回路12は、論理回路としてALU(Arithmetic Logic Unit)を有している。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフト、加算、減算などの複数種類の多ビット演算を設定により選択的に実行できる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。実施の形態において、ALUは、乗算を実行する機能は有していない。乗算用の演算素子の回路規模が大きいためであり、したがって、乗算演算は、加算やビットシフト、ビット積演算などを組み合わせることで処理されることになる。図示の例では、ALUが、2つの入力端子と1つの出力端子を有して構成される。
リコンフィギュラブル回路12は、縦方向にX個、横方向にY個のALUが配置されたX段Y列のALUアレイとして構成される。ここでは、縦方向に3個、横方向に6個のALUが配置された3段6列のALUアレイを示している。リコンフィギュラブル回路12は、接続部52およびALU列53を備える。ALU列53は複数段に設けられ、接続部52は前後段のALU列53の間に設けられて、前段のALUの出力と後段のALUの入力の接続関係を設定する。
図2に示す例では、第1段のALU列53aと第2段のALU列53bの間に、第2段を構成する接続部52bが設けられ、第2段のALU列53bと第3段のALU列53cの間に、第3段を構成する接続部52cが設けられる。なお、第1段を構成する接続部52aは、第1段のALU列53aの上側に設けられる。
第1段のALU11、ALU12、・・・、ALU16には、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第2段の接続部52bに設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU26に入力される。第2段の接続部52bにおいては、第1段のALU列53aの出力と第2段のALU列53bの入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように接続用結線が構成されており、設定により所期の結線が有効となる。第2段のALU21、ALU22、・・・、ALU26には、ALU列53aの出力が入力され、設定された所定の演算がなされる。演算結果の出力は、第3段の接続部52cの接続用結線において設定された接続にしたがって、第3段のALU31、ALU32、・・・、ALU36に入力される。
最終段となる第3段のALU列53cからの出力データは、内部状態保持回路20に出力される。内部状態保持回路20および/または遅延保持回路27は、第1フィードバック経路24および/または第2フィードバック経路29を介して、出力データを接続部52aに入力する。接続部52aは、接続用結線を設定し、第1段のALU11、ALU12、・・・、ALU16にデータを供給する。
図3は、データフローグラフ処理部31の構成を示す。このデータフローグラフ処理部31は、コンパイル部30で生成されたデータフローグラフを、リコンフィギュラブル回路12にマッピング可能なデータフローグラフに変換する。また、リコンフィギュラブル回路12に最も適したデータフローグラフをマッピングできるよう、データフローグラフの最適化を行う。
データフローグラフ処理部31は、仮DFG生成部60、DFG再構成部62を備える。実施の形態におけるデータフローグラフ処理機能は、処理装置10において、CPU、メモリ、メモリにロードされたDFG処理用プログラムなどによって実現され、ここではそれらの連携によって実現される機能ブロックを描いている。DFG処理用プログラムは、処理装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。
仮DFG生成部60は、コンパイル部30により生成されたデータフローグラフ(或いは中間ファイル)を解析し、リコンフィギュラブル回路12にマッピング可能なデータフローグラフを生成する。例えば、中間ファイルによって記述されている演算が非常に長くて、このままではリコンフィギュラブル回路12にマッピングできないような場合は、データフローグラフを適当な大きさに分割する。例えば、あるノードから2ノード以上離れている(下段の)ノードへ出力されているようなノードがある場合(いわゆる、スキップがある場合)、スルーノードを挿入する等の処理を行う。
DFG再構成部62は、まず、仮DFG生成部60により生成されたデータフローグラフから、連続するスルーノード群を探索する。そして、探索された連続するスルーノード群を削除することで、データフローグラフの小型化を行う。しかし、ただ単にスルーノード群を削除されただけのデータフローグラフをリコンフィギュラブル回路12にマッピングするだけでは演算を行うことができない。
そこで、DFG再構成部62は、連続するスルーノード群を削除すると共に、連続するスルーノード群により伝播されるデータをメモリに一時出力させるよう、データフローグラフを再構成する。即ち、データを伝播させるためだけにリコンフィギュラブル回路12のALU回路のスルーノードを割り当てる代わりに、そのデータをメモリ(内部状態保持回路20)に一時退避させる。これにより、リコンフィギュラブル回路12の利用効率を上げる。
具体的には、DFG再構成部62は、上記で述べたようなスルーノード群を削除する手段に加え、探索されたスルーノード群の先頭ノードへの出力を行うノードの出力先を前記リコンフィギュラブル回路に接続されるメモリへ変更する手段、削除されたスルーノードからの入力を受けていた演算ノードの入力元を前記メモリへ変更する手段を更に備える。これにより、DFG再構成部62はデータフローグラフの最適化を行うことができる。
図4は、データフローグラフ38の構造を説明するための図である。データフローグラフ38においては、入力される変数や定数の演算の流れが段階的にグラフ構造で表現されている。図中、演算子は丸印で示されている。“>>”は右へのビットシフトを示し、“<<”は左へのビットシフトを示し、“+”は加算を示し、“-”は減算を示す。設定データ生成部32は、このデータフローグラフ38をリコンフィギュラブル回路12にマッピングするための設定データ40を生成する。データフローグラフ38による演算の流れを回路上で実現するべく、設定データ40は、演算機能を割り当てる論理回路を特定し、また論理回路間の接続関係を定め、さらに入力変数や入力定数などを定義したデータとなる。したがって、設定データ40は、各論理回路の機能を選択するセレクタに供給する選択情報、接続部52の結線を設定する接続情報、必要な変数データや定数データなどを含んで構成される。
なお、本実施の形態においては、複数の演算機能を選択的に実行可能な論理回路が、乗算演算を実行するための基本演算素子を有していないため、乗算演算は、コンパイル部30により、論理回路が有する基本演算素子で処理できる加算、ビットシフトなどの演算に展開されて、設定データ40が生成されることになる。
設定部14がコマンドメモリとして構成されている場合、制御部18は設定部14に対してプログラムカウンタ値を与え、設定部14は、そのカウンタ値に応じて格納した設定データを、コマンドデータとしてリコンフィギュラブル回路12に設定する。なお、設定部14は、キャッシュメモリや他の種類のメモリを有して構成されてもよい。なお、本例においては、制御部18が記憶部34から設定データ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に供給してもよい。
<DFGの処理機能の説明>
図5は、コンパイル部30に入力されるCソースプログラムである。これは乗算演算を行うプログラムをC言語で記述したもの、でありxが被乗数であり、yが乗数である。
図6は、コンパイル部30から出力される中間ファイルである(なお、本実施形態のコンパイル部30は、特許文献2におけるコンパイル部30が行う処理に加えて、所定のノード群を1つのmul_tノードに置換する処理までも行うものとする)。この中間ファイルは、乗数、非乗数のビット幅を16bitに制限した乗算処理を加減算に展開した処理を表している。
仮DFG生成部60は、この中間ファイルを解析して、図7で示すようなデータフローグラフを生成する。例えば、図6の中間ファイルに着目すると、lsl8命令から出力されるデータ$x0が、複数個のmul_t命令に出力されていることが分かる。この中間ファイルをこのままリコンフィギュラブル回路12に割り当てることはできないので、データフローグラフにスルーノード(同図ではmovノードとして表現)を挿入し、図7のようなデータフローグラフを生成する。
図8は、DFG再構成部62が行う最適化処理のフローチャートを示したものである。このフローチャートは、図7のデータフローグラフから、図10のようなデータフローグラフを生成するための手順を示したものである。
図10のデータフローグラフでは、図8における連続スルーノード群が削除されている。削除されるスルーノードを伝播するデータはメモリAに出力され、メモリAにて一時的に格納される。そして、削除されたmovノードからデータを読み出す代わりに、メモリからデータが読み出される。これにより、リコンフィギュラブル回路12のALUにマッピングされるデータフローグラフの小型化を図る。
まず、n個以上連続するスルーノード(movノード)が、仮DFG生成部60により生成されたデータフローグラフにあるかどうかを探索する(ステップS1)。
この実施形態では、連続するスルーノードの全てのノードを削除する訳ではなく、先頭部のスルーノードについては削除しない。nとは削除しない先頭部のスルーノード数のことである。このnの大きさは、リコンフィギュラブル回路12と、メモリ(内部状態保持回路20)との間のアクセス速度に基づいて決定される。図7のデータフローグラフがマッピングされたリコンフィギュラブル回路12においては、リコンフィギュラブル回路12のALUに割り当てられるmovノード群を用いて上段のノードから下段のノードへのデータ伝播が行われることになる。これに対し、図10のデータフローグラフでは、リコンフィギュラブル回路12の外部にあるメモリ(内部状態保持回路20)を用いて上段のノードから下段のノードへデータを伝播させる。しかし、通常、メモリに対するデータ読み書きの時間は、ALU間のデータ伝播よりも時間がかかる。したがって、一旦データをメモリに退避させると、そのデータをすぐに演算ノードでの演算に使うことができない。例えば、全てのmovノードを削除してしまうと、図8の上から2段目のmul_tノードは、メモリAからlsl8ノードの出力データの内容を読み出す必要があるが、メモリAのアクセスには時間がかかるので間に合わない。そこで、メモリに対するデータ読み書きの時間と、ALU間のデータ伝播時間とを比較して、nをいくつにするかが決定される。
なお、この実施形態では、n=3であるものとして以下の説明を行う。
ステップS1において、3個以上連続するmovノードが探索された場合、ステップS2へ進む。3個以上連続するmovノードが探索されなかった場合は、このフローチャートにおける処理は終了である。
ステップS2では、連続するmovノードの先頭ノードへの入力を行うノード(以下、ノードpと呼ぶ)を探索する。
ステップS3では、連続するmovノードの先頭ノードからn+1番目(4番目)以降のmovノードの出力ノードcを探索する。このステップS3の処理を終えた直後のDFGの状態を示したものが、図9の「状態1」である。
ステップS4では、ノードpの出力をメモリAへの書き込みへ変更する。
ステップS5では、ノードcへの入力をメモリAからの読み込みへ変更する。このステップS5の処理を終えた直後のDFGの状態を示したものが、図9の「状態2」である。
ステップS6では、n+1番目(4番目)以降のノードを削除する。そして、最適化処理は終了である(図9の「状態3」、及び図10参照)。
このように、本実施形態のDFG再構成部62によれば、コンパイラで生成されたデータフローグラフのノード数を8個減らすことができ、リコンフィギュラブル回路12にマッピングされるALUの数を8つ減らすことができる。これにより、減らした部分に別のDFGを割り当てることができ、回路の小型化を図ることができるとともに、低消費電力化、実行速度の向上も可能となる。
<他の演算への適用例>
上記では、乗算演算への適用例であったが、他の演算についても適用可能である。
図11は、コンパイル部30に入力されるCソースプログラムである。これは、変数xと10との加算結果が0x7FFFFF(16進数表示)であった場合、加算結果であるx+10を23ビット右シフトさせる演算を行うものである。
図12は、コンパイラから出力される中間ファイルである。図13は、仮DFG生成部60により、リコンフィギュラブル回路12にマッピング可能なものに変換されたデータフローグラフである。ここでasrとは右シフトを示すものであり、数字はシフトされるビット数を示すものである。例えばasr8とは8ビット右シフトを指す。
図14は、DFG再構成部62での最適化処理の結果、生成されるデータフローグラフである。本実施形態では、先頭のmovノードから3つ以内のmovノードから演算ノード(asrノード)へ入力されるものはない。したがって、この実施形態では全てのmovノードを削除している。
このように、本実施形態のDFG再構成部62によれば、コンパイラで生成されたデータフローグラフのノード数を5個減らすことができる。これにより、減らした部分に別のDFGを割り当てることができ、回路の小型化を図ることができるとともに、低消費電力化、実行速度の向上も可能となる。
このように本願発明は、乗算演算以外の演算についても適用可能である。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
例えば、図8で示したフローチャートの処理においては、リコンフィギュラブル回路12と内部状態保持回路20との間のメモリアクセス時間を考慮して、全てのスルーノードを削除することはしなかった。しかしながら、例えば図13のデータフローグラフのように、先頭部分のノードからの演算ノードへの出力がない場合は、全てのスルーノードを削除しても良い。
実施の形態に係る処理装置10の構成図である。 リコンフィギュラブル回路12の一般的構成を示す図である。 データフローグラフ処理部31の構成を示す図である。 データフローグラフ38の構造を説明するための図である。 コンパイル部30に入力されるCソースプログラムである。 コンパイル部30から出力される中間ファイルである。 仮DFG生成部60が生成するデータフローグラフである。 DFG再構成部62が行う最適化処理のフローチャートである。 最適化処理の途中のデータフローグラフを示すものである。 DFG再構成部62により最適化処理されたデータフローグラフである。 コンパイル部30に入力されるCソースプログラムである。 コンパイラから出力される中間ファイルである。 仮DFG生成部60が生成するデータフローグラフである。 DFG再構成部62により最適化処理されたデータフローグラフである。 筆算アルゴリズムを用いて被乗数24ビット×乗数4ビットの計算をするデータフローグラフである 図15において4段にて構成されていたノード群70のそれぞれを1つのノードmul_tに置換したあとの状態を示したものである。 nopノードを削除した後のデータフローグラフである。
符号の説明
10 処理装置
12 リコンフィギュラブル回路
14 設定部
18 制御部
20 内部状態保持回路
30 コンパイル部
31 データフローグラフ処理部
32 設定データグラフ処理部
60 仮DFG生成部
62 DFG再構成部

Claims (6)

  1. 機能の変更が可能なリコンフィギュラブル回路にマッピングされるデータフローグラフを再構成するデータフローグラフ再構成装置であって、
    データフローグラフから連続するスルーノード群を探索するスルーノード群探索手段と、
    探索されたスルーノード群の先頭ノードへの出力を行うノードの出力先を、前記リコンフィギュラブル回路に接続されるメモリへ変更する出力先変更手段と、
    前記スルーノード群の一部のノードを前記データフローグラフから削除するスルーノード削除手段と、
    削除されたスルーノードからの入力を受けていた演算ノードの入力元を前記メモリへ変更する入力元変更手段を備えることを特徴とする、データフローグラフ再構成装置。
  2. 前記スルーノード削除手段は、
    前記スルーノード群における先頭部のノードは削除せず、前記先頭部以外のノードのみを削除することを特徴とする、請求項1記載のデータフローグラフ再構成装置。
  3. 前記スルーノード削除手段は、
    前記リコンフィギュラブル回路と前記メモリ間のアクセス速度に基づいて、削除しない先頭部のノードの数を決定することを特徴とする、請求項2記載のデータフローグラフ再構成装置。
  4. ソースプログラムをコンパイルしてデータフローグラフを生成するコンパイル手段と、
    前記コンパイル手段が生成するデータフローグラフを再構成する、請求項1ないし3の何れかに記載のデータフローグラフ再構成装置と、
    前記データフローグラフ再構成装置で再構成されたデータフローグラフから、前記リコンフィギュラブル回路に所期の回路を構成するための設定データを生成する設定データ生成手段を備えることを特徴とする、リコンフィギュラブル回路の設定データ生成装置。
  5. 請求項4記載の設定データ生成装置と、
    機能の変更が可能なリコンフィギュラブル回路と、前記リコンフィギュラブル回路の出力を格納するメモリを備えた集積回路を備えることを特徴とする処理装置。
  6. 請求項4記載の設定データ生成装置から供給された設定データに基づいて構成されたことを特徴とする、リコンフィギュラブル回路。
JP2006095161A 2006-03-30 2006-03-30 データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置 Active JP4562678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006095161A JP4562678B2 (ja) 2006-03-30 2006-03-30 データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006095161A JP4562678B2 (ja) 2006-03-30 2006-03-30 データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置

Publications (2)

Publication Number Publication Date
JP2007272394A true JP2007272394A (ja) 2007-10-18
JP4562678B2 JP4562678B2 (ja) 2010-10-13

Family

ID=38675157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006095161A Active JP4562678B2 (ja) 2006-03-30 2006-03-30 データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置

Country Status (1)

Country Link
JP (1) JP4562678B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573607A (zh) * 2023-11-28 2024-02-20 北京智芯微电子科技有限公司 可重构协处理器、芯片、多核信号处理***和计算方法

Citations (4)

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

Patent Citations (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573607A (zh) * 2023-11-28 2024-02-20 北京智芯微电子科技有限公司 可重构协处理器、芯片、多核信号处理***和计算方法

Also Published As

Publication number Publication date
JP4562678B2 (ja) 2010-10-13

Similar Documents

Publication Publication Date Title
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP4275013B2 (ja) データフローグラフ処理装置、処理装置、リコンフィギュラブル回路。
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
KR100952760B1 (ko) 집적 회로 장치
US7120903B2 (en) Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus
JPWO2006129722A1 (ja) 再構成可能な装置
JP2005044329A (ja) 半導体集積回路
JP5007838B2 (ja) 情報処理装置および情報処理プログラム
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
JP4553615B2 (ja) 処理装置
GB2370139A (en) Parallel loaded shift register in parallel processor element
JP4413052B2 (ja) データフローグラフ処理装置および処理装置
JP4208751B2 (ja) データフローグラフ処理装置。
JP4562679B2 (ja) データフローグラフ生成装置
JP4357326B2 (ja) リコンフィギュラブル回路および処理装置
JP4330472B2 (ja) 処理装置
JP2006065786A (ja) 処理装置
JP4673739B2 (ja) リコンフィギュラブル回路
US7007059B1 (en) Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization
JP4553614B2 (ja) 処理装置
JP4610236B2 (ja) 設定データ生成装置
JP4601567B2 (ja) データフローグラフの生成方法、及び処理装置
JP4748944B2 (ja) 処理装置
JP2007172400A (ja) 処理装置
JP2006065785A (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: 20100521

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

R151 Written notification of patent or utility model registration

Ref document number: 4562678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3