JP2007272395A - Date flow graph generation device, setting data generation device of integrated circuit, processor, and integrated circuit - Google Patents

Date flow graph generation device, setting data generation device of integrated circuit, processor, and integrated circuit Download PDF

Info

Publication number
JP2007272395A
JP2007272395A JP2006095162A JP2006095162A JP2007272395A JP 2007272395 A JP2007272395 A JP 2007272395A JP 2006095162 A JP2006095162 A JP 2006095162A JP 2006095162 A JP2006095162 A JP 2006095162A JP 2007272395 A JP2007272395 A JP 2007272395A
Authority
JP
Japan
Prior art keywords
dfg
sub
unit
circuit
memory
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
JP2006095162A
Other languages
Japanese (ja)
Other versions
JP4562679B2 (en
Inventor
Makoto Okada
誠 岡田
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/en
Publication of JP2007272395A publication Critical patent/JP2007272395A/en
Application granted granted Critical
Publication of JP4562679B2 publication Critical patent/JP4562679B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Microcomputers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reconfigure a DFG to a size which can be mapped to a reconfigurable circuit and reduce a use quantity of a memory necessary for data transfer among sub-DFGs. <P>SOLUTION: A data flow graph processing unit 31 includes a DFG dividing unit 60, a sub-DFG optimizing unit 61 and a DFG combining unit 62. The Dividing unit 60 divides a DFG generated from a compile unit 30 to generate a plurality of sub-DFGs. The optimizing unit 61 optimizes the sub-DFGs generated from the dividing unit 60. For example, if there is the case in which the data with the identical content is outputted from a plurality of nodes in the same sub-DFG to a memory, the optimizing unit 61 outputs data to the identical address of the memory from the plurality of nodes. The combining unit 62 generates DFGs in which the plurality of sub-DFGs optimized by the optimizing unit 61. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

この発明は、集積回路の動作設定に必要なデータフローグラフを生成する技術に関する。
The present invention relates to a technique for generating a data flow graph necessary for setting an operation of an integrated circuit.

近年、アプリケーションに応じてハードウエアの動作を変更可能なリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサを実現するためのアーキテクチャとしては、DSP(Digital Signal Processor)や、FPGA(Field Programmable Gate Array)を用いる方法が存在する。   In recent years, development of reconfigurable processors capable of changing hardware operations in accordance with applications has been underway. As an architecture for realizing a reconfigurable processor, there are methods using a DSP (Digital Signal Processor) and an FPGA (Field Programmable Gate Array).

FPGA(Field Programmable Gate Array)はLSI製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。FPGAは、論理回路の真理値表を格納するためのルックアップテーブル(LUT)と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。FPGAでは、LUTに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、FPGAでLSIを設計した場合、ASIC(Application Specific IC)による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている(例えば、特許文献1参照。)。   An FPGA (Field Programmable Gate Array) can design circuit configuration relatively freely by writing circuit data after the LSI is manufactured, and is used for designing dedicated hardware. The FPGA includes a lookup table (LUT) for storing a truth table of a logic circuit, a basic cell composed of an output flip-flop, and a programmable wiring resource that connects the basic cells. In the FPGA, a target logical operation can be realized by writing data stored in the LUT and wiring data. However, when an LSI is designed using an FPGA, the mounting area is very large and the cost is high compared to an ASIC (Application Specific IC) design. Thus, a method has been proposed in which the circuit configuration is reused by dynamically reconfiguring the FPGA (see, for example, Patent Document 1).

例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うこともある。受信機では、放送モードごとに複数の回路を予めハードウエア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。したがって、受信機の他の放送モード用回路はその間、遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にLSIを瞬時に再構成することにすれば、回路構造をシンプルにして汎用性を高め、同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なLSIに製造業界の関心が集まっている。特に、携帯電話やPDA(Personal Data Assistance)などのモバイル端末に搭載されるLSIは小型化が必須であり、LSIを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、LSIの実装面積を抑えることができる。   For example, in satellite broadcasting, image quality may be adjusted by switching broadcast modes depending on the season. In the receiver, a plurality of circuits are built in hardware for each broadcast mode in advance, and the circuit is switched by a selector according to the broadcast mode for reception. Therefore, the other broadcast mode circuits of the receiver are idle during that time. When switching and using multiple dedicated circuits, such as mode switching, and the switching interval is relatively long, instead of creating multiple dedicated circuits, the LSI can be reconfigured instantaneously at the time of switching. The structure can be simplified to improve versatility, and at the same time the mounting cost can be reduced. In order to meet such needs, the manufacturing industry has attracted attention to dynamically reconfigurable LSIs. In particular, LSIs mounted on mobile terminals such as cellular phones and PDAs (Personal Data Assistance) must be downsized, and if LSIs can be dynamically reconfigured and functions can be switched appropriately according to the application, Mounting area can be reduced.

FPGAは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのON/OFFを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向があり、さらに1本の配線に多くのスイッチが接続される構造のため、遅延が大きくなる。そのため、FPGAによるLSIは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。さらに、FPGAでは、多数のLUT方式の基本セルに構成情報を送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。そのため、瞬時に回路構成の切り替えが必要な用途にはFPGAは適していない。   The FPGA has a high degree of design freedom in circuit configuration and is general-purpose. On the other hand, in order to enable connection between all the basic cells, it is necessary to include a large number of switches and a control circuit for controlling ON / OFF of the switches. This inevitably increases the mounting area of the control circuit. Further, since a complicated wiring pattern is used for the connection between the basic cells, the wiring tends to be long, and the delay increases because of the structure in which many switches are connected to one wiring. For this reason, FPGA based LSIs are often used only for trial manufacture and experiments, and are not suitable for mass production in view of mounting efficiency, performance, cost, and the like. Furthermore, in the FPGA, it is necessary to send configuration information to a large number of basic cells of the LUT method, so that it takes a considerable time to configure the circuit. For this reason, the FPGA is not suitable for applications that require instantaneous switching of the circuit configuration.

それらの課題を解決するため近年、ALU(Arithmetic Logic Unit)と呼ばれる基本演算機能を複数持つ多機能素子を多段に並べたALUアレイを用いたリコンフィギュラブルプロセッサの検討も行われるようになった。ALUアレイでは、処理が上から下の一方向に流れるので、水平方向のALUを結ぶ配線は基本的には不要である。そのため、FPGAと比較して回路規模を小さくすることが可能となる。   In order to solve these problems, in recent years, a reconfigurable processor using an ALU array in which multi-functional elements having a plurality of basic arithmetic functions called ALU (Arithmetic Logic Unit) are arranged in multiple stages has been studied. In the ALU array, processing flows in one direction from the top to the bottom, so wiring that connects the ALUs in the horizontal direction is basically unnecessary. Therefore, the circuit scale can be reduced as compared with the FPGA.

ALUアレイでは、コマンドデータによりALU回路の演算機能構成と前後段のALUを接続する接続部の配線が制御され、所期の演算処理を実行することができる。コマンドデータは、一般にC言語等の高級プログラム言語で記述されたソースプログラムからデータフローグラフ(DFG:Data Flow Graph)を作成し、その情報をもとに作成される。
ALUアレイ上に1度にマッピングできるDFGの大きさはALUアレイの回路規模により制限されるため、大きなDFGは複数のDFGに分割して結合させる必要がある。結合して生成されるDFGの大きさは、ALUアレイで実行する回路コンフィギュレーションの回数に直接的な影響を与えるため、できるだけ小さく生成することが好ましい。
In the ALU array, the calculation function configuration of the ALU circuit and the wiring of the connection part connecting the preceding and succeeding ALUs are controlled by command data, and the expected calculation process can be executed. The command data is generally created based on the data flow graph (DFG: Data Flow Graph) created from a source program described in a high-level program language such as C language.
Since the size of the DFG that can be mapped on the ALU array at a time is limited by the circuit scale of the ALU array, it is necessary to divide a large DFG into a plurality of DFGs. Since the size of the combined DFG is directly affected by the number of circuit configurations executed in the ALU array, it is preferable to generate the DFG as small as possible.

こうした状況に鑑み、本出願人は、リコンフィギュラブル回路の動作設定に必要なDFGを効率よく処理できる技術を開発した(特許文献2参照)。   In view of such a situation, the present applicant has developed a technology that can efficiently process DFG necessary for operation setting of a reconfigurable circuit (see Patent Document 2).

この特許文献2のDFG処理方法は、機能の変更が可能なリコンフィギュラブル回路にマッピングされるDFGが、前記リコンフィギュラブル回路の論理回路の列数及び段数以下となるようDFGを再構成する方法に関するものである。
特開平10-256383号公報 特開2006−4345号公報
The DFG processing method of Patent Document 2 is a method of reconfiguring a DFG so that the DFG mapped to the reconfigurable circuit whose function can be changed is less than the number of columns and the number of stages of the logic circuit of the reconfigurable circuit. It is about.
JP-A-10-256383 JP 2006-4345 A

ところで、上記特許文献2のDFG処理方法においては、リコンフィギュラブル回路上にマッピングされる分割されたサブDFGからの出力データは、リコンフィギュラブル回路に接続されたメモリ(特許文献2でいうところのメモリ部29)を介して、他の分割されたサブDFGに渡される。   By the way, in the DFG processing method of Patent Document 2, output data from the divided sub-DFG mapped on the reconfigurable circuit is a memory connected to the reconfigurable circuit (as referred to in Patent Document 2). It is passed to another divided sub-DFG via the memory unit 29).

しかし、このようなDFG処理方法によれば、サブDFG間のデータ受渡しが多くなるとそれだけ多くのメモリが必要となる。場合によってはメモリ不足により演算そのものが実行不可能となる恐れがある。   However, according to such a DFG processing method, as the number of data exchanges between the sub-DFGs increases, so much memory is required. In some cases, the operation itself may be impossible due to a memory shortage.

そこで、この発明は上記の事情に鑑み、リコンフィギュラブル回路の動作設定に必要なDFGを前記リコンフィギュラブル回路にマッピング可能な大きさに再構成すると共に、サブDFG間のデータ受渡しに必要なメモリの使用量を減らすことを目的とする。   Therefore, in view of the above circumstances, the present invention reconfigures the DFG necessary for setting the operation of the reconfigurable circuit to a size that can be mapped to the reconfigurable circuit, and also requires the memory necessary for data transfer between the sub-DFGs. The purpose is to reduce the amount of use.

本発明のデータフローグラフ生成装置は、データフローグラフ(DFG)を分割して2以上のサブDFGを生成するサブDFG生成手段を備える。前記サブDFG生成手段は、サブDFG間のデータ入出力がメモリを介して行われるような複数のサブDFGを生成し、前記サブDFG内の複数ノードから同一内容のデータが前記メモリの異なる領域へそれぞれ出力される場合、前記複数ノードのいずれかのノードからのメモリへの出力を削除することを特徴とする。   The data flow graph generation apparatus of the present invention includes sub-DFG generation means for dividing a data flow graph (DFG) to generate two or more sub-DFGs. The sub-DFG generation unit generates a plurality of sub-DFGs such that data input / output between the sub-DFGs is performed via a memory, and data having the same content is transmitted from a plurality of nodes in the sub-DFG to different areas of the memory. When each is output, the output to the memory from any one of the plurality of nodes is deleted.

このデータフローグラフ生成装置によれば、DFGを分割して得られるサブDFG間のデータ受渡しに必要なメモリの使用量を減らすことができる。また、使用メモリの低減に伴い消費電力を低減することもできる。   According to this data flow graph generation device, it is possible to reduce the amount of memory used for data transfer between sub-DFGs obtained by dividing a DFG. In addition, power consumption can be reduced as the memory used is reduced.

前記サブDFG生成手段は、例えば、前記複数ノードがスルーノードを含むとき、前記スルーノードからのメモリへの出力を削除する。或いは、前記スルーノードのメモリ出力の削除に代えて、前記スルーノードの入力元ノードからのメモリ出力を削除するものであっても良い。   For example, when the plurality of nodes include a through node, the sub-DFG generation unit deletes the output from the through node to the memory. Alternatively, instead of deleting the memory output of the through node, the memory output from the input source node of the through node may be deleted.

本発明のある態様のデータフローグラフ生成装置は、前記サブDFG生成手段で生成された複数のサブDFGを結合するDFG結合手段を更に備える。サブDFG生成手段と、DFG結合手段の両方を備えることにより、前記DFG(複数のサブDFGに分割される前のDFG)の再構成を行うことができる。   The data flow graph generation device according to an aspect of the present invention further includes DFG combining means for combining a plurality of sub DFGs generated by the sub DFG generating means. By providing both the sub-DFG generating means and the DFG combining means, the DFG (DFG before being divided into a plurality of sub-DFGs) can be reconfigured.

ところで、上記のサブDFG生成手段は、サブDFGの一部ノードからのメモリ出力をしている。したがって、このままサブDFGを結合しても、結合後のDFGでは正しく演算を行うことができない。そこで、このDFG結合手段は、前記サブDFG生成手段での処理により使用されなくなるメモリからの入力を受けていたノードの入力元の変更を行う。例えば、前記メモリの異なる領域をA、Bとしたとき、このDFG結合手段は、メモリ出力の前記削除により使用されなくなるメモリ領域Bからの入力を受けていたノードの入力元を、メモリ領域Aに変更する、といった処理を行う。   By the way, the sub-DFG generation means outputs a memory from a partial node of the sub-DFG. Therefore, even if the sub-DFGs are combined as they are, the combined DFG cannot correctly perform the operation. Therefore, the DFG combining unit changes the input source of the node that has received the input from the memory that is no longer used by the processing in the sub-DFG generating unit. For example, when the different areas of the memory are A and B, the DFG combining means sets the input source of the node that has received the input from the memory area B that is no longer used due to the deletion of the memory output to the memory area A. Change it.

本発明のある態様のデータフローグラフ生成装置は、集積回路にマッピングされるDFGの生成に用いられる。このデータフローグラフ生成装置は、上記説明したようなサブDFG生成手段、及びDFG結合手段を有する。そして、入力されたDFGを、前記サブDFG生成手段、及び前記DFG結合手段での処理を経て、前記集積回路にマッピング可能なDFGに再構成することを特徴とする。   A data flow graph generation apparatus according to an aspect of the present invention is used to generate a DFG mapped to an integrated circuit. This data flow graph generation apparatus includes a sub-DFG generation unit and a DFG combination unit as described above. Then, the input DFG is reconfigured into a DFG that can be mapped to the integrated circuit through processing in the sub-DFG generation means and the DFG combination means.

なお、集積回路にマッピング可能なDFGとは、例えば、集積回路の大きさを超えないようなDFGであるとか、集積回路の接続制限を満たすようなDFGのことをいう。この集積回路の例としては、リコンフィギュラブル回路が挙げられる。この場合、前記のサブDFG生成手段は、分割して生成するサブDFGの列数がリコンフィギュラブル回路1段あたりの論理回路の数以下となるようなサブDFGを生成する。更に生成したサブDFGはリコンフィギュラブル回路各段の論理回路の集合体間に課された接続制限も満たす。   Note that the DFG that can be mapped to the integrated circuit means, for example, a DFG that does not exceed the size of the integrated circuit or a DFG that satisfies the connection limit of the integrated circuit. An example of this integrated circuit is a reconfigurable circuit. In this case, the sub-DFG generation unit generates a sub-DFG such that the number of sub-DFG columns generated by division is equal to or less than the number of logic circuits per stage of the reconfigurable circuit. Furthermore, the generated sub-DFG also satisfies the connection restrictions imposed between the collections of logic circuits at each stage of the reconfigurable circuit.

なお、上記の集積回路が回路遅延を有している場合は、たとえDFGが集積回路にマッピング可能な大きさであっても演算を正しく行えないようなことがある。そこで、上記のサブDFG生成手段は、該集積回路の回路遅延を考慮してサブDFGの生成を行うものであっても良い。回路規模を小さくすることで回路遅延の問題を解消することができるからである。   If the integrated circuit has a circuit delay, the calculation may not be performed correctly even if the DFG has a size that can be mapped to the integrated circuit. Therefore, the sub-DFG generation unit may generate the sub-DFG in consideration of the circuit delay of the integrated circuit. This is because the circuit delay problem can be solved by reducing the circuit scale.

本発明の集積回路の設定データ生成装置は、ソースプログラムをコンパイルしてDFGを生成するコンパイル手段と、前記コンパイル手段が生成するDFGを再構成することを特徴とした上記のデータフローグラフ生成装置と、前記データフローグラフ生成装置で再構成されたDFGから、前記集積回路に所期の回路を構成するための設定データを生成する設定データ生成手段を備えることを特徴とする。   An integrated circuit setting data generation apparatus according to the present invention includes: a compiling unit that compiles a source program to generate a DFG; and the data flow graph generation apparatus that reconfigures the DFG generated by the compiling unit; And setting data generation means for generating setting data for configuring a desired circuit in the integrated circuit from the DFG reconfigured by the data flow graph generation device.

本発明の集積回路は、上記の設定データ生成装置から供給された設定データに基づいて構成されたことを特徴とする。   An integrated circuit according to the present invention is configured based on the setting data supplied from the setting data generating device.

本発明の処理装置は、上記の設定データ生成装置と、上記の集積回路を備えることを特徴とする。   A processing apparatus according to the present invention includes the setting data generation apparatus and the integrated circuit.

なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
It should be noted that any combination of the above components and the expression of the present invention expressed as a method, apparatus, system, and computer program are also effective as an aspect of the present invention.

本発明によれば、リコンフィギュラブル回路などの集積回路の動作設定に必要なDFGを、前記集積回路にマッピング可能な大きさに再構成することができるだけでなく、更に前記DFGを構成するサブDFG間のデータ受渡しに必要なメモリの使用量を減らすことができる。また、これによって、集積回路による演算がメモリ不足により実行不可能になるような恐れも減らすことができる。また、使用メモリの低減に伴い消費電力を低減することもできる。
According to the present invention, not only can the DFG necessary for setting the operation of an integrated circuit such as a reconfigurable circuit be reconfigured to a size that can be mapped to the integrated circuit, but also a sub-DFG that constitutes the DFG. It is possible to reduce the amount of memory required for data transfer between the two. This can also reduce the possibility that the operation by the integrated circuit may not be executed due to a shortage of memory. In addition, power consumption can be reduced as the memory used is reduced.

図1は、実施例に係る処理装置10の構成図である。処理装置10は、集積回路装置26を備える。集積回路装置26は、回路構成を再構成可能とする機能を有する。集積回路装置26は1チップとして構成され、リコンフィギュラブル回路12、設定部14、制御部18、出力回路22、メモリ部27および経路部24、29を備える。リコンフィギュラブル回路12は、設定を変更することにより、機能の変更を可能とする。   FIG. 1 is a configuration diagram of a processing apparatus 10 according to the embodiment. The processing device 10 includes an integrated circuit device 26. The integrated circuit device 26 has a function that makes it possible to reconfigure the circuit configuration. The integrated circuit device 26 is configured as one chip, and includes a reconfigurable circuit 12, a setting unit 14, a control unit 18, an output circuit 22, a memory unit 27, and path units 24 and 29. The reconfigurable circuit 12 can change the function by changing the setting.

設定部14は、リコンフィギュラブル回路12に所期の回路を構成するための設定データ40を供給する。設定部14は、プログラムカウンタのカウント値に基づいて記憶したデータを出力するコマンドメモリとして構成されてもよい。この場合、制御部18がプログラムカウンタの出力を制御する。この意味において、設定データ40はコマンドデータと呼ばれてもよい。経路部24、29は、フィードバックパスとして機能し、リコンフィギュラブル回路12の出力を、リコンフィギュラブル回路12の入力に接続する。出力回路22は、例えばデータフリップフロップ(D-FF)などの順序回路として構成され、リコンフィギュラブル回路12の出力を受ける。メモリ部27は経路部29に接続されている。リコンフィギュラブル回路12は組合せ回路または順序回路等の論理回路として構成される。   The setting unit 14 supplies setting data 40 for configuring a desired circuit to the reconfigurable circuit 12. The setting unit 14 may be configured as a command memory that outputs stored data based on the count value of the program counter. In this case, the control unit 18 controls the output of the program counter. In this sense, the setting data 40 may be called command data. The path units 24 and 29 function as feedback paths, and connect the output of the reconfigurable circuit 12 to the input of the reconfigurable circuit 12. The output circuit 22 is configured as a sequential circuit such as a data flip-flop (D-FF), for example, and receives the output of the reconfigurable circuit 12. The memory unit 27 is connected to the path unit 29. The reconfigurable circuit 12 is configured as a logic circuit such as a combinational circuit or a sequential circuit.

メモリ部27は、制御部18からの指示に基づき、リコンフィギュラブル回路12から出力されるデータ信号および/または外部から入力されるデータ信号を格納するための記憶領域を有する。メモリ部27はRAMとして構成される。メモリ部27にデータを書き込んで、そのデータを読み出すためには、少なくとも、それぞれの処理につき1クロック分の時間がかかる。メモリ部27に格納されたデータ信号は、制御部18からの指示に基づいて、経路部29を通じてリコンフィギュラブル回路12の入力として伝達される。メモリ部27は、制御部18からの指示により所定のタイミングでデータ信号をリコンフィギュラブル回路12に供給することができる。なお、メモリ部27は、設定部14からの指示によりデータ信号を出力してもよい。設定部14がコマンドメモリとして構成されている場合、メモリ部27の出力タイミングを指示するコマンドデータを有し、制御部18からのカウント値に基づいてコマンドデータをメモリ部27に出力してもよい。この場合、設定部14は、メモリ部27の動作を制御する制御部としても機能する。   The memory unit 27 has a storage area for storing a data signal output from the reconfigurable circuit 12 and / or a data signal input from the outside based on an instruction from the control unit 18. The memory unit 27 is configured as a RAM. In order to write data to the memory unit 27 and read the data, at least one clock time is required for each process. The data signal stored in the memory unit 27 is transmitted as an input to the reconfigurable circuit 12 through the path unit 29 based on an instruction from the control unit 18. The memory unit 27 can supply a data signal to the reconfigurable circuit 12 at a predetermined timing according to an instruction from the control unit 18. Note that the memory unit 27 may output a data signal according to an instruction from the setting unit 14. When the setting unit 14 is configured as a command memory, the setting unit 14 may have command data that instructs the output timing of the memory unit 27, and may output the command data to the memory unit 27 based on the count value from the control unit 18. . In this case, the setting unit 14 also functions as a control unit that controls the operation of the memory unit 27.

リコンフィギュラブル回路12は、機能の変更が可能な論理回路を有して構成される。具体的にリコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路を複数段に配列させた構成を備え、さらに前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を備える。各段に含まれる複数の論理回路は、論理回路の集合体を構成する。この接続部は、前段の論理回路列の出力すなわち内部状態を保持する状態保持回路(以下、FF回路とも呼ぶ)の機能も備える。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路間の接続関係は、設定部14により供給される設定データ40に基づいて設定される。設定データ40は、以下の手順で生成される。   The reconfigurable circuit 12 includes a logic circuit whose function can be changed. Specifically, the reconfigurable circuit 12 includes a configuration in which logic circuits capable of selectively executing a plurality of arithmetic functions are arranged in a plurality of stages, and further includes an output of a preceding logic circuit string and an input of a subsequent logic circuit string. The connection part which can set the connection relationship with is provided. A plurality of logic circuits included in each stage constitutes a collection of logic circuits. This connection unit also has a function of a state holding circuit (hereinafter also referred to as FF circuit) that holds the output of the preceding logic circuit row, that is, the internal state. The plurality of logic circuits are arranged in a matrix. The function of each logic circuit and the connection relationship between the logic circuits are set based on setting data 40 supplied by the setting unit 14. The setting data 40 is generated by the following procedure.

集積回路装置26により実現されるべきプログラム36が、記憶部34に保持されている。プログラム36は、回路における処理の動作を記述した動作記述を示し、信号処理回路または信号処理アルゴリズムなどをC言語などの高級言語で記述したものである。コンパイル部30は、記憶部34に格納されたプログラム36をコンパイルし、プログラム全体のデータフローグラフ(DFG)38に変換して記憶部34に格納する。DFG38は、回路における演算間の実行順序の依存関係を表現し、入力変数および定数の演算の流れをグラフ構造で示したものである。一般に、DFG38は、上から下に向かって演算が進むように形成される。   A program 36 to be realized by the integrated circuit device 26 is held in the storage unit 34. The program 36 shows an operation description describing the operation of processing in the circuit, and describes a signal processing circuit or a signal processing algorithm in a high-level language such as C language. The compiling unit 30 compiles the program 36 stored in the storage unit 34, converts it into a data flow graph (DFG) 38 of the entire program, and stores the data flow graph (DFG) 38 in the storage unit 34. The DFG 38 expresses the dependency of the execution order between operations in the circuit, and shows the flow of operations of input variables and constants in a graph structure. In general, the DFG 38 is formed so that the calculation proceeds from top to bottom.

データフローグラフ処理部31は、コンパイル部30により生成された1以上のDFGを、リコンフィギュラブル回路12の論理回路の集合体に含まれる論理回路の数に応じて、複数のサブDFGに分割する。具体的には、1以上のDFGを、リコンフィギュラブル回路12の段あたりの論理回路数、すなわち列数以下となる大きさに分割する。リコンフィギュラブル回路12が6列×3段の論理回路を有して構成される場合、DFGが6列を超えている場合に、列数を6以下とするサブDFGに分割する。   The data flow graph processing unit 31 divides one or more DFGs generated by the compiling unit 30 into a plurality of sub-DFGs according to the number of logic circuits included in the set of logic circuits of the reconfigurable circuit 12. . Specifically, one or more DFGs are divided into a number of logic circuits per stage of the reconfigurable circuit 12, that is, a size that is equal to or less than the number of columns. When the reconfigurable circuit 12 is configured to include 6 columns × 3 stages of logic circuits, when the DFG exceeds 6 columns, the reconfigurable circuit 12 is divided into sub-DFGs having 6 or less columns.

そして、データフローグラフ処理部31は、分割した複数のサブDFGを、論理回路の列数を超えないように結合する。これにより、列数を論理回路の集合体の列数以下とする結合DFGを生成する。   Then, the data flow graph processing unit 31 combines the plurality of divided sub-DFGs so as not to exceed the number of columns of the logic circuit. As a result, a combined DFG is generated in which the number of columns is equal to or less than the number of columns in the logic circuit aggregate.

ここで、生成された結合DFGがリコンフィギュラブル回路の論理回路の集合体の個数(論理回路を構成するALUの段数)を超える場合、データフローグラフ処理部31は、更に結合DFGを分割して、複数のサブ結合DFGを生成する。具体的に、データフローグラフ処理部31は、結合したDFGをリコンフィギュラブル回路12の回路の段数以下となるように再分割する。リコンフィギュラブル回路12が6列×3段の論理回路を有して構成される場合、結合したDFGは、3段以下のサブ結合DFGに再分割される。分割した複数のサブ結合DFGは記憶部34に格納される。リコンフィギュラブル回路12に、分割した複数のサブ結合DFGにより定められる回路を繰り返し生成することで、リコンフィギュラブル回路12上に所期の回路を表現することが可能となる。   Here, if the generated combined DFG exceeds the number of logic circuit aggregates of reconfigurable circuits (the number of ALU stages constituting the logic circuit), the data flow graph processing unit 31 further divides the combined DFG. Generate a plurality of sub-joined DFGs. Specifically, the data flow graph processing unit 31 subdivides the combined DFG so as to be equal to or less than the number of stages of the reconfigurable circuit 12. When the reconfigurable circuit 12 is configured to include 6 columns × 3 stages of logic circuits, the combined DFG is subdivided into sub-joined DFGs of 3 stages or less. The plurality of divided sub-joined DFGs are stored in the storage unit 34. By repeatedly generating a circuit defined by a plurality of divided sub-coupled DFGs in the reconfigurable circuit 12, it is possible to express a desired circuit on the reconfigurable circuit 12.

また、プログラム36の構成上、コンパイルした時点で複数のDFGが生成されることもある。例えば、互いに関連する複数のプログラム36をコンパイルする場合や、繰り返し呼び出されるルーチンプログラムが複数存在するプログラム36をコンパイルする場合などである。処理装置10において、複数のDFGがコンパイル部30により生成され、またコンパイル部30により生成されたDFGをデータフローグラフ処理部31が上述した処理を行うことで、複数のサブ結合DFGが生成される。   In addition, due to the configuration of the program 36, a plurality of DFGs may be generated at the time of compilation. For example, when compiling a plurality of programs 36 related to each other, or compiling a program 36 having a plurality of routine programs that are repeatedly called. In the processing apparatus 10, a plurality of DFGs are generated by the compiling unit 30, and the DFG generated by the compiling unit 30 is processed by the data flow graph processing unit 31 to generate a plurality of sub-joined DFGs. .

設定データ生成部32は、データフローグラフ処理部31により決定されたDFG38をもとに、設定データ40を生成する。設定データ40は、DFG38をリコンフィギュラブル回路12にマッピングするためのデータであり、リコンフィギュラブル回路12における論理回路の機能や論理回路間の接続関係、さらには論理回路に入力させる定数データなどを定める。以下では、設定データ生成部32が、1つの生成すべきターゲット回路を分割してできる複数の回路の設定データ40を生成する例について説明する。   The setting data generation unit 32 generates setting data 40 based on the DFG 38 determined by the data flow graph processing unit 31. The setting data 40 is data for mapping the DFG 38 to the reconfigurable circuit 12, and includes the functions of the logic circuit in the reconfigurable circuit 12, the connection relationship between the logic circuits, and constant data to be input to the logic circuit. Determine. Hereinafter, an example will be described in which the setting data generation unit 32 generates setting data 40 for a plurality of circuits obtained by dividing one target circuit to be generated.

図2は、ターゲット回路42を分割してできる複数の回路について説明するための図である。1つのターゲット回路42を分割して生成される回路を、「分割回路」と呼ぶ。この例では、1つのターゲット回路42が、上下方向および左右方向に4つの分割回路、すなわち分割回路A、分割回路B、分割回路C、分割回路Dに分割されている。複数の分割回路は、リコンフィギュラブル回路12の列数の範囲内でそれぞれ結合され、実質的に等価な新たなターゲット回路として再生成されることになる。   FIG. 2 is a diagram for explaining a plurality of circuits formed by dividing the target circuit 42. A circuit generated by dividing one target circuit 42 is referred to as a “divided circuit”. In this example, one target circuit 42 is divided into four divided circuits, that is, divided circuit A, divided circuit B, divided circuit C, and divided circuit D, in the vertical direction and the horizontal direction. The plurality of divided circuits are respectively coupled within the range of the number of columns of the reconfigurable circuit 12, and are regenerated as a substantially equivalent new target circuit.

例えば、生成すべきターゲット回路42の横方向のノード数がリコンフィギュラブル回路12の横方向のノード数(列数)よりも大きい場合、リコンフィギュラブル回路12にマッピングできる大きさになるように、ターゲット回路42のDFG38がデータフローグラフ処理部31において左右方向に分割される。なおノードは、DFG38において論理回路の機能を表現する。また、リコンフィギュラブル回路12の列数や、ALU間の入出力制限などにより、上下方向のノード間の接続を変更する必要がある場合に、ターゲット回路42のDFG38が上下方向に分割される。リコンフィギュラブル回路12の配列構造は、制御部18からデータフローグラフ処理部31に伝えられてもよく、また予め記憶部34に記録されていてもよい。本実施例において、DFG38は演算間の実行順序の依存関係を表現するものであり、データフローグラフ処理部31は、DFGを、リコンフィギュラブル回路12の列数に応じて分割し、分割したDFGをサブDFGとして設定する。   For example, when the number of nodes in the horizontal direction of the target circuit 42 to be generated is larger than the number of nodes in the horizontal direction (number of columns) of the reconfigurable circuit 12, the size can be mapped to the reconfigurable circuit 12. The DFG 38 of the target circuit 42 is divided in the left-right direction in the data flow graph processing unit 31. The node expresses the function of the logic circuit in the DFG 38. Further, when it is necessary to change the connection between the nodes in the vertical direction due to the number of columns of the reconfigurable circuit 12 or the input / output limitation between the ALUs, the DFG 38 of the target circuit 42 is divided in the vertical direction. The arrangement structure of the reconfigurable circuit 12 may be transmitted from the control unit 18 to the data flow graph processing unit 31 or may be recorded in the storage unit 34 in advance. In this embodiment, the DFG 38 expresses the dependency of the execution order between operations, and the data flow graph processing unit 31 divides the DFG according to the number of columns of the reconfigurable circuit 12 and divides the DFG. Is set as the sub-DFG.

また、データフローグラフ処理部31は、複数のサブDFGの接続関係を調査する。なお、左右方向のみに分割した場合も同様に、データフローグラフ処理部31は、その接続関係を調査する必要がある。接続関係を調査すると、データフローグラフ処理部31は、接続関係にしたがって、複数のサブDFGを結合し、1つの大きな結合DFGを生成する。なお、この結合DFGは、その列数がリコンフィギュラブル回路12の列数以下となるように生成される。結合したDFGがリコンフィギュラブル回路12の段数よりも大きい場合、データフローグラフ処理部31は結合したDFGを分割して複数のサブ結合DFGを生成する。   In addition, the data flow graph processing unit 31 investigates the connection relationship between the plurality of sub-DFGs. Similarly, when the data is divided only in the left-right direction, the data flow graph processing unit 31 needs to investigate the connection relationship. When the connection relationship is examined, the data flow graph processing unit 31 combines a plurality of sub-DFGs according to the connection relationship to generate one large combined DFG. The combined DFG is generated such that the number of columns is equal to or less than the number of columns of the reconfigurable circuit 12. When the combined DFG is larger than the number of stages of the reconfigurable circuit 12, the data flow graph processing unit 31 divides the combined DFG to generate a plurality of sub-combined DFGs.

設定データ生成部32は、結合DFGの設定データ40を生成し、記憶部34に記憶する。この設定データ40は、結合DFGを、リコンフィギュラブル回路12にマッピングするためのデータとして表現したものである。このように、リコンフィギュラブル回路12の列数に応じてDFGを再構成して、ターゲット回路42の設定データ40を生成することにより、汎用性の高い処理装置10を実現することが可能となる。   The setting data generation unit 32 generates setting data 40 of the combined DFG and stores it in the storage unit 34. The setting data 40 is expressed as data for mapping the combined DFG to the reconfigurable circuit 12. As described above, by reconfiguring the DFG according to the number of columns of the reconfigurable circuit 12 and generating the setting data 40 of the target circuit 42, it is possible to realize the processing device 10 with high versatility. .

なお、データフローグラフ処理部31において複数のサブ結合DFGが生成された場合、設定データ生成部32は、複数のサブ結合DFGの設定データ40を生成し、記憶部34に記憶する。複数の設定データ40は、リコンフィギュラブル回路12の段数以下に分割した複数のサブ結合DFGを、リコンフィギュラブル回路12にマッピングするためのデータとして表現したものである。これにより、リコンフィギュラブル回路12の回路規模よりも大きいDFGを、リコンフィギュラブル回路12にマッピング可能な大きさに処理することが可能となる。即ち、処理装置10によれば、回路規模の小さいリコンフィギュラブル回路12を用いて、所望の回路を再構成することが可能となる。   When a plurality of sub-joined DFGs are generated in the data flow graph processing unit 31, the setting data generating unit 32 generates setting data 40 for the plurality of sub-joined DFGs and stores them in the storage unit 34. The plurality of setting data 40 is expressed as data for mapping a plurality of sub-coupled DFGs divided into the number of stages or less of the reconfigurable circuit 12 to the reconfigurable circuit 12. As a result, a DFG larger than the circuit scale of the reconfigurable circuit 12 can be processed into a size that can be mapped to the reconfigurable circuit 12. That is, according to the processing apparatus 10, it is possible to reconfigure a desired circuit using the reconfigurable circuit 12 having a small circuit scale.

図3は、リコンフィギュラブル回路12の構成を示す。リコンフィギュラブル回路12は、複数の演算機能を選択的に実行可能な論理回路50より構成される論理回路列を複数備える。具体的に、リコンフィギュラブル回路12は、論理回路列の多段接続構造と、各段に設けられた接続部52を備えて構成される。ここで多段とは、2以上の段であることを意味する。接続部52は、前段の論理回路の出力と後段の論理回路の入力の任意の接続関係あるいは予め定められた接続関係の組合せの中から選択された接続関係を設定することができる。また接続部52は、前段の論理回路の出力信号を保持することができる。リコンフィギュラブル回路12では、論理回路の多段接続構造により、上段から下段に向かって演算が進められる。なお、リコンフィギュラブル回路12は、論理回路列の1段の接続構造を有していてもよい。   FIG. 3 shows the configuration of the reconfigurable circuit 12. The reconfigurable circuit 12 includes a plurality of logic circuit strings each including a logic circuit 50 that can selectively execute a plurality of arithmetic functions. Specifically, the reconfigurable circuit 12 is configured to include a multi-stage connection structure of logic circuit arrays and connection portions 52 provided in each stage. Here, multistage means that there are two or more stages. The connection unit 52 can set an arbitrary connection relationship between the output of the preceding logic circuit and the input of the subsequent logic circuit, or a connection relationship selected from a predetermined combination of connection relationships. The connection unit 52 can hold the output signal of the preceding logic circuit. In the reconfigurable circuit 12, the operation is advanced from the upper stage to the lower stage by the multi-stage connection structure of the logic circuits. Note that the reconfigurable circuit 12 may have a one-stage connection structure of a logic circuit array.

リコンフィギュラブル回路12は、論理回路50としてALU(Arithmetic Logic Unit)を有している。ALUは、複数種類の多ビット演算を選択的に実行可能な算術論理回路であって、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ALUは、複数の演算機能を設定するためのセレクタを有して構成されている。図示の例では、ALUが、2つの入力端子と2つの出力端子を有して構成される。   The reconfigurable circuit 12 has an ALU (Arithmetic Logic Unit) as the logic circuit 50. The ALU is an arithmetic logic circuit capable of selectively executing a plurality of types of multi-bit operations, and can selectively execute a plurality of types of multi-bit operations such as logical sum, logical product, and bit shift by setting. Each ALU has a selector for setting a plurality of arithmetic functions. In the illustrated example, the ALU has two input terminals and two output terminals.

図示のように、リコンフィギュラブル回路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の集合体に相当する。   As illustrated, the reconfigurable circuit 12 is configured as an X-stage Y-column ALU array in which X ALUs in the vertical direction and Y ALUs in the horizontal direction are arranged. Input variables and constants are input to the first-stage ALU11, ALU12,..., ALU1Y, and a set predetermined calculation is performed. The output of the calculation result is input to the second-stage ALU 21, ALU 22,..., ALU 2Y according to the connection set in the first-stage connection unit 52. In the first stage connection section 52, an arbitrary connection relationship between the output of the first ALU column and the input of the second ALU column or a combination of predetermined connection relationships is selected. The connection is configured so that the connection relationship can be realized, and the intended connection is enabled by setting. Hereinafter, the configuration is the same up to the connection part 52 of the Xth stage which is the final stage. The ALU column corresponds to an aggregate of ALUs.

なお、図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列ごとに設けることにより、所望段のリコンフィギュラブルユニットを構成することができる。   Note that the reconfigurable circuit 12 of FIG. 3 shows a configuration in which the connection units 52 are provided one by one alternately with the ALU column. By disposing the connection unit 52 at the lower stage of each ALU column, the reconfigurable circuit 12 is divided into X-stage reconfigurable units each including one ALU column. Specifically, the one-stage reconfigurable unit includes one-stage ALU row and one-stage connection unit 52. This division is in accordance with the FF circuit included in the connection unit 52. For example, a connection unit 52 is provided for each two-stage ALU column, and a connection unit having no FF circuit is connected between two ALU columns. In this case, it is divided into X / 2-stage reconfigurable units each composed of two ALU rows. In addition, by providing an FF circuit for each ALU column at a predetermined stage, a reconfigurable unit at a desired stage can be configured.

回路のコンフィギュレーションは1クロックで行われる。具体的に、設定部14が1クロックごとに設定データをリコンフィギュラブル回路12にマッピングする。各ALU列の出力は、後段の接続部52に保持される。なお、メモリ部27へのデータの書込および読出しも、それぞれ1クロックで行われる。したがって、メモリ部27にデータを書き込んで、そのデータを読み出すためには、少なくともALU列2段分の処理に相当する時間が必要となる。   Circuit configuration is performed in one clock. Specifically, the setting unit 14 maps the setting data to the reconfigurable circuit 12 every clock. The output of each ALU column is held in the connection unit 52 at the subsequent stage. Note that data is written to and read from the memory unit 27 in one clock. Therefore, in order to write data to the memory unit 27 and read the data, a time corresponding to at least two stages of processing of the ALU column is required.

接続部52は、外部やメモリ部27から供給される変数や定数を、所期のALUに供給する機能を有している。この機能を途中入力機能と呼ぶ。また、接続部52は、前段のALUの演算結果を外部に直接出力することもできる。この機能を途中出力機能と呼ぶ。この構成により、多様な組合せ回路を構成することが可能となり、設計の自由度が向上する。   The connection unit 52 has a function of supplying variables and constants supplied from the outside and the memory unit 27 to the intended ALU. This function is called an intermediate input function. The connection unit 52 can also directly output the calculation result of the preceding ALU to the outside. This function is called an intermediate output function. With this configuration, various combinational circuits can be configured, and the degree of freedom in design is improved.

図4は、DFG38の構造を説明するための図である。DFG38においては、入力される変数や定数の演算の流れが段階的にグラフ構造で表現されている。図中、演算子は丸印で示されており、ノードを表現する。設定データ生成部32は、このDFG38をリコンフィギュラブル回路12にマッピングするための設定データ40を生成する。実施例では、特にDFG38をリコンフィギュラブル回路12にマッピングしきれない場合に、DFG38を複数の領域に分割して結合し、さらに再分割することによって分割回路の設定データ40を生成する。DFG38による演算の流れを回路上で実現するべく、設定データ40は、演算機能を割り当てる論理回路を特定し、また論理回路間の接続関係を定め、さらに入力変数や入力定数などを定義したデータとなる。したがって、設定データ40は、各論理回路50の機能を選択するセレクタに供給する選択情報、接続部52の結線を設定する接続情報、必要な変数データや定数データなどを含んで構成される。   FIG. 4 is a diagram for explaining the structure of the DFG 38. In the DFG 38, the flow of calculation of input variables and constants is expressed step by step in a graph structure. In the figure, operators are indicated by circles and represent nodes. The setting data generation unit 32 generates setting data 40 for mapping the DFG 38 to the reconfigurable circuit 12. In the embodiment, particularly when the DFG 38 cannot be mapped to the reconfigurable circuit 12, the DFG 38 is divided into a plurality of areas and combined, and further divided, thereby generating setting data 40 of the divided circuit. In order to realize the operation flow by the DFG 38 on the circuit, the setting data 40 specifies data that specifies a logic circuit to which an operation function is assigned, defines a connection relationship between the logic circuits, and further defines input variables, input constants, and the like. Become. Therefore, the setting data 40 includes selection information supplied to a selector that selects the function of each logic circuit 50, connection information for setting the connection of the connection unit 52, necessary variable data, constant data, and the like.

図1に戻って、回路の構成時、制御部18は、1つのターゲット回路42を構成するための複数の設定データ40を記憶部34から選択して読み出す。設定部14がコマンドメモリとして構成されている場合、制御部18は設定部14に対してプログラムカウンタ値を与え、設定部14は、そのカウンタ値に応じて格納した設定データを、コマンドデータとしてリコンフィギュラブル回路12に設定する。なお、設定部14は、キャッシュメモリや他の種類のメモリを有して構成されてもよい。なお、制御部18が記憶部34から設定データ40を受けて、その設定データ40を設定部14に供給してもよいが、制御部18を介さずに、予め設定部14に設定データを格納しておいてもよい。この場合、制御部18は、設定部14に予め格納された複数の設定データの中からターゲット回路42に応じた設定データがリコンフィギュラブル回路12に供給されるように、設定部14のデータ読出しを制御する。   Returning to FIG. 1, at the time of circuit configuration, the control unit 18 selects and reads a plurality of setting data 40 for configuring one target circuit 42 from the storage unit 34. When the setting unit 14 is configured as a command memory, the control unit 18 gives a program counter value to the setting unit 14, and the setting unit 14 reconfigures the setting data stored in accordance with the counter value as command data. Set to the configurable circuit 12. The setting unit 14 may include a cache memory and other types of memory. The control unit 18 may receive the setting data 40 from the storage unit 34 and supply the setting data 40 to the setting unit 14. However, the setting data is stored in the setting unit 14 in advance without using the control unit 18. You may keep it. In this case, the control unit 18 reads data from the setting unit 14 so that setting data corresponding to the target circuit 42 is supplied to the reconfigurable circuit 12 from among a plurality of setting data stored in advance in the setting unit 14. To control.

設定部14は、設定データ40をリコンフィギュラブル回路12に設定し、リコンフィギュラブル回路12の回路を逐次再構成させる。これにより、リコンフィギュラブル回路12は、ターゲット回路に基づく所期の演算を実行できる。リコンフィギュラブル回路12は、基本セルとして高性能の演算能力のあるALUを用いており、またリコンフィギュラブル回路12および設定部14を1チップ上に構成することから、コンフィグレーションを高速に、例えば1クロックで実現することができる。制御部18はクロック機能を有し、クロック信号は、出力回路22およびメモリ部27に供給される。また制御部18は4進カウンタを含み、カウント信号を設定部14に供給してもよい。   The setting unit 14 sets the setting data 40 in the reconfigurable circuit 12 and sequentially reconfigures the circuit of the reconfigurable circuit 12. Thereby, the reconfigurable circuit 12 can execute a desired calculation based on the target circuit. The reconfigurable circuit 12 uses an ALU having a high-performance computing capability as a basic cell, and the reconfigurable circuit 12 and the setting unit 14 are configured on one chip, so that the configuration can be performed at a high speed, for example, It can be realized with one clock. The control unit 18 has a clock function, and the clock signal is supplied to the output circuit 22 and the memory unit 27. The control unit 18 may include a quaternary counter and supply a count signal to the setting unit 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段の間で、物理的に近接して配置された論理回路同士を接続可能とするように構成される。これにより、配線長を短くすることができ、回路規模を削減することができる。その結果、低消費電力化及び処理高速化が可能となる。   FIG. 5 is a diagram illustrating a connection relationship between ALUs in the reconfigurable circuit 12. In FIG. 5, illustration of the connecting portions 52 arranged between the ALU rows is omitted. The reconfigurable circuit 12 shown in FIG. 5 is configured as an ALU array in which four ALUs are arranged in the horizontal direction and six ALUs are arranged in the vertical direction. Input variables and constants are input to the first-stage ALU 11, ALU 12,..., ALU 14, and a set predetermined calculation is performed. The calculation result output is input to the second-stage ALU 21, ALU 22,..., ALU 24 according to the connection set in the first-stage connection unit 52. In the first stage connection section 52, a connection is configured so as to realize a connection relationship in which a certain connection restriction is imposed between the output of the first ALU string and the input of the second ALU string. Depending on the setting, the intended connection within that range becomes valid. The same applies to the second to fifth connection portions 52. The sixth stage ALU column, which is the last stage, outputs the final result of the operation. The connection unit 52 is configured to connect logic circuits arranged in close physical proximity between ALU stages. Thereby, the wiring length can be shortened and the circuit scale can be reduced. As a result, low power consumption and high processing speed are possible.

図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間の接続を可能とする場合と比較すると、配線数を大幅に削減することが可能となる。   In the reconfigurable circuit 12 shown in FIG. 5, there are 6 stages × 4 columns of ALUs, and wiring from one ALU in the upper stage is limited to three ALUs in the lower stage. As shown in the figure, the input of one ALU in the lower stage is limited to the ALU immediately above the upper stage and the left and right ALUs of the upper ALU, and the output of one ALU in the upper stage is directly below the ALU directly below the lower stage. It is limited to the left and right ALUs. For example, regarding the ALU 22, its input is limited to three directions of ALU 11, ALU 12, and ALU 13, and its output is limited to three directions of ALU 31, ALU 32, and ALU 33. If there is no ALU corresponding to the left or right, the input and output are limited to two directions, respectively. By using such a wiring, the number of wirings can be greatly reduced as compared with the case where all the upper and lower ALUs can be connected.

図6は、データフローグラフ処理部31の構成を示す。データフローグラフ処理部31は、DFG分割部60、サブDFG最適化部61、DFG結合部62を備える。実施例におけるデータフローグラフ処理機能は、処理装置10において、CPU、メモリ、メモリにロードされたDFG処理用プログラムなどによって実現され、ここではそれらの連携によって実現される機能ブロックを描いている。DFG処理用プログラムは、処理装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。   FIG. 6 shows the configuration of the data flow graph processing unit 31. The data flow graph processing unit 31 includes a DFG dividing unit 60, a sub-DFG optimizing unit 61, and a DFG combining unit 62. The data flow graph processing function in the embodiment is realized by the CPU 10, the memory, the DFG processing program loaded in the memory, and the like in the processing device 10, and here, functional blocks realized by their cooperation are depicted. The DFG processing program may be built in the processing apparatus 10 or supplied from the outside in a form stored in a recording medium. Accordingly, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.

DFG分割部60は、コンパイル部30により生成されたDFGが、例えば以下のような場合に該当するような場合、DFGを分割して複数のサブDFGを生成する。   The DFG dividing unit 60 divides the DFG to generate a plurality of sub-DFGs when the DFG generated by the compiling unit 30 corresponds to, for example, the following cases.

(1)DFGの列数がリコンフィギュラブル回路の1段あたりの論理回路の数よりも大きい場合。即ち、DFGの列数がリコンフィギュラブル回路のALUアレイの列数を超える場合。例えば、DFGが図5のようなリコンフィギュラブル回路12にマッピングされるのであれば、DFGの列数が5以上の場合。   (1) The number of DFG columns is larger than the number of logic circuits per stage of the reconfigurable circuit. That is, the number of DFG columns exceeds the number of columns in the ALU array of the reconfigurable circuit. For example, if the DFG is mapped to the reconfigurable circuit 12 as shown in FIG. 5, the number of DFG columns is 5 or more.

(2)DFGがリコンフィギュラブル回路の接続制限に合致しない場合。例えばDFGが図5のようなリコンフィギュラブル回路12にマッピングされる場合、1つのALUからの配線は下段の3つのALUに制限されるが、マッピングしようとするDFGが、4つ以上のノードに対する出力を行うノードを有しているような場合。   (2) The DFG does not meet the connection limit of the reconfigurable circuit. For example, when the DFG is mapped to the reconfigurable circuit 12 as shown in FIG. 5, the wiring from one ALU is limited to the three ALUs in the lower stage, but the DFG to be mapped corresponds to four or more nodes. When you have a node that performs output.

なお、分割して生成されたサブDFG間のノード間を直接的に接続することができない場合、ノードの出力データは、一旦メモリ部27に格納される。   Note that, when the nodes between the sub-DFGs generated by division cannot be directly connected, the output data of the nodes is temporarily stored in the memory unit 27.

サブDFG最適化部61は、DFG分割部60で生成されたサブDFGの最適化を行う。例えば、生成されたサブDFG間のデータ受渡しが多い場合、それだけメモリ部27の使用量が多くなる。場合によってはメモリ不足によりサブDFG間のデータ受渡しができなくなって、演算そのものが実行不可能となる恐れがある。そこで、サブDFG最適化部61は、例えば、同一内容のデータが同じサブDFG内の複数ノードからメモリへ出力されるような場合があれば、いずれかのノードからのメモリ出力を削除するようにする。そうすることで、サブDFG間のデータ受渡しに使用するメモリの使用量を減らすことができる。これにより、メモリ不足による演算エラーの恐れを減らすことができるし、また、リコンフィギュラブル回路12を備えた集積回路装置26の消費電力を低減することができる。   The sub DFG optimizing unit 61 optimizes the sub DFG generated by the DFG dividing unit 60. For example, when there are many data transfers between the generated sub-DFGs, the usage amount of the memory unit 27 increases accordingly. In some cases, the data cannot be transferred between the sub-DFGs due to a memory shortage, and the operation itself may not be executed. Therefore, the sub-DFG optimizing unit 61 deletes the memory output from one of the nodes if, for example, the same data is output from a plurality of nodes in the same sub-DFG to the memory. To do. By doing so, it is possible to reduce the amount of memory used for data transfer between the sub-DFGs. As a result, the risk of computation errors due to insufficient memory can be reduced, and the power consumption of the integrated circuit device 26 including the reconfigurable circuit 12 can be reduced.

DFG結合部62は、サブDFG最適化部61により最適化された複数のサブDFGを結合したDFGを生成する。   The DFG combining unit 62 generates a DFG obtained by combining a plurality of sub DFGs optimized by the sub DFG optimizing unit 61.

図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)。   FIG. 7 shows a processing flow of the DFG 38 in the present embodiment. The compiling unit 30 compiles the program 36 (S10) and generates a DFG 38 (S12). The DFG dividing unit 61 of the data flow graph processing unit 31 divides the generated DFG 38 to generate a sub DFG (S14). The sub-DFG optimization unit 62 optimizes the divided sub-DFG (S16). The DFG combination unit 63 generates a DFG by combining the optimized sub-DFGs (S18). Then, the setting data generation unit 32 generates setting data 40 based on the combined DFG (S20).

なお、S18においてサブDFGを結合したDFGがリコンフィギュラブル回路の段数を超える場合、結合DFGを分割して複数のサブ結合DFGを生成する。そして、設定データ生成部32は、それぞれのサブ結合DFGをもとに複数の設定データ40を生成する。   If the DFG combined with the sub-DFG exceeds the number of stages of the reconfigurable circuit in S18, the combined DFG is divided to generate a plurality of sub-coupled DFGs. Then, the setting data generation unit 32 generates a plurality of setting data 40 based on each sub-joined DFG.

(実施例)
以下、実施例を用いて、本願発明についての説明を行う。
(Example)
Hereinafter, the present invention will be described using examples.

図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つのノードへの出力を行うノードをなくす。   FIG. 8 shows a C source program input to the compiling unit 30. The compiling unit 30 compiles the program described in the C language to generate a DFG. FIG. 9 is a DFG output from the compiling unit 30. Such a DFG cannot be mapped to the reconfigurable circuit 12 with connection restrictions as shown in FIG. This is because the DFG in FIG. 9 includes nodes (first addition nodes) that output to the lower four nodes, whereas the DFG in FIG. This is because there is a restriction that only the lower three nodes or lower can be connected. Therefore, the DFG dividing unit 60 divides the DFG of FIG. 9 into two sub-DFGs as shown in FIG. 10, thereby eliminating the nodes that output to the four nodes at the lower stage.

なお、図10の2つのサブDFGをリコンフィギュラブル回路にマッピングするには、リコンフィギュラブル回路が6段×3列のALUを備えていれば良い。図5のリコンフィギュラブル回路は6段×4列のALUを有しているから、図9のDFGをマッピングすることが可能である。なお、リコンフィギュラブル回路にマッピングされる2つのサブDFG間のデータ受け渡しは、メモリ部29に割り当てられるメモリ領域A、B、Cを介して行われる。   Note that in order to map the two sub-DFGs of FIG. 10 to the reconfigurable circuit, the reconfigurable circuit only needs to have an ALU of 6 stages × 3 columns. Since the reconfigurable circuit of FIG. 5 has an ALU of 6 stages × 4 columns, it is possible to map the DFG of FIG. Note that data transfer between two sub-DFGs mapped to the reconfigurable circuit is performed via memory areas A, B, and C allocated to the memory unit 29.

ここで、図10のDFGに着目すると、メモリAに出力されるデータと、メモリBに出力されるデータはスルーノード(movノード)を介して接続されていることに気づく。即ち、メモリAに出力されるデータと、メモリBに出力されるデータは同じ内容である。そこで、メモリAへの出力と、メモリBへの出力のいずれか一方は削除することができる。ここでは、movノードからのメモリBへの出力を削除する。その結果、図10のDFGは、図11のようなDFGに置き換えることができる。これによって、サブDFG間のデータ受け渡しに使用するメモリ使用量を減らすことができる。   Here, paying attention to the DFG in FIG. 10, it is noticed that the data output to the memory A and the data output to the memory B are connected via a through node (mov node). That is, the data output to the memory A and the data output to the memory B have the same contents. Therefore, either the output to the memory A or the output to the memory B can be deleted. Here, the output from the mov node to the memory B is deleted. As a result, the DFG of FIG. 10 can be replaced with a DFG as shown in FIG. As a result, the amount of memory used for data transfer between the sub-DFGs can be reduced.

図12は、サブDFG最適化部61が行う最適化処理のフローチャートを示したものである。このフローチャートは、サブDFG間のデータ受け渡しに使用されるメモリの使用量を減らす処理手順を示したものである。例えば、上記の図10のDFGから、図11のようなDFGを生成するための手順を示したものである。   FIG. 12 shows a flowchart of the optimization process performed by the sub-DFG optimization unit 61. This flowchart shows a processing procedure for reducing the amount of memory used for data transfer between sub-DFGs. For example, FIG. 11 shows a procedure for generating a DFG as shown in FIG. 11 from the DFG shown in FIG.

サブDFGファイルが読み込まれると、まず、メモリへの出力を行うmovノードの探索を行う(S31)。メモリ出力を行うmovノード(このノードのことをノードMと呼ぶ)があれば、ステップS32へ進む。ない場合は、サブDFG最適化部61による最適化処理は終了である。   When the sub-DFG file is read, first, a mov node to be output to the memory is searched (S31). If there is a mov node that performs memory output (this node is referred to as node M), the process proceeds to step S32. If not, the optimization process by the sub-DFG optimization unit 61 is completed.

ステップS32では、ノードMの入力ノードを辿り、非movノード(このノードのことをノードPと呼ぶ)の探索を行う。ステップS33では、ノードPが既にメモリ出力(この出力変数をAとする)を有しているかどうかを調べる。メモリ出力を既に有していればS38へ進み、有していないのであればS34へ進む。   In step S32, the input node of the node M is traced to search for a non-mov node (this node is called a node P). In step S33, it is checked whether or not the node P already has a memory output (this output variable is A). If it already has a memory output, the process proceeds to S38, and if not, the process proceeds to S34.

ステップS34では、ノードPにメモリ出力Aを作成する。ステップS35では、ノードMのメモリ出力(この出力変数をBとする)を削除する。ステップS36では、出力変数Bを入力とするノードをサーチする。ステップS37では、S36で発見されたノードの入力BをAに変更する。   In step S34, a memory output A is created at node P. In step S35, the memory output of node M (this output variable is set to B) is deleted. In step S36, a node having the output variable B as an input is searched. In step S37, the input B of the node found in S36 is changed to A.

ステップS38では、出力変数Aが最終出力かどうかを判断する。ここで、最終出力とは、サブDFGに分割される前のDFGの出力である。例えば、図9〜図11でいうところの、ret1、ret2のことである。最終出力ではないとは、他のサブDFGへのデータ受け渡しを行うメモリへの出力のことである。例えば、図10でいうところの、メモリA、B、Cへの出力のことである。   In step S38, it is determined whether the output variable A is the final output. Here, the final output is the output of the DFG before being divided into sub-DFGs. For example, it refers to ret1 and ret2 in FIGS. Not the final output means an output to a memory that transfers data to other sub-DFGs. For example, the output to the memories A, B, and C as shown in FIG.

ここで、上記のフローチャートによる処理の具体例を説明する。図10のDFGから図11のDFGが生成される手順を説明する。   Here, a specific example of processing according to the above flowchart will be described. A procedure for generating the DFG of FIG. 11 from the DFG of FIG. 10 will be described.

まず、図10で示されるようなDFGのファイルが読み込まれる。S31では、メモリBへの出力を行うmovノードMが発見される。S32では、movノードMへの入力を行う加算ノードPが発見される(図13の「状態1」参照)。このノードPは既にメモリ出力Aを持っているので、S33ではyesと判断される。しかし、このメモリ出力Aは、サブDFG間のデータ受け渡しを行うメモリへの出力であり、最終出力ではない。よってS38ではNoと判断され、S35へ進む。このノードPは既にメモリ出力Aを持っているので、S33ではyesと判断される。   First, a DFG file as shown in FIG. 10 is read. In S31, a mov node M that performs output to the memory B is found. In S32, an addition node P that performs input to the mov node M is found (see “state 1” in FIG. 13). Since this node P already has the memory output A, it is determined yes in S33. However, this memory output A is an output to a memory that transfers data between sub-DFGs, and is not a final output. Therefore, it is determined No in S38, and the process proceeds to S35. Since this node P already has the memory output A, it is determined yes in S33.

S35では、ノードMのメモリ出力Bが削除される。S36では、メモリBからの入力を受けていたノード(図10のmergeノード)が発見される。S37では、このmergeノードへの入力ノードをメモリBからメモリAに変更する。   In S35, the memory output B of the node M is deleted. In S36, the node that has received the input from the memory B (the merge node in FIG. 10) is found. In S37, the input node to the merge node is changed from the memory B to the memory A.

そして再びS31へ戻るが、メモリ出力を行うmovノードはS35での処理によりなくなっている(movノードからのメモリ出力が削除されている)ため、S31ではNoと判断され、サブDFG最適化処理部61による最適化処理は終了である。
以上、本発明を実施例もとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
Then, the process returns to S31 again, but the mov node that performs the memory output has disappeared due to the process in S35 (the memory output from the mov node has been deleted), so it is determined No in S31, and the sub-DFG optimization processing unit The optimization process by 61 is completed.
The present invention has been described based on the embodiments. It should be understood by those skilled in the art that the embodiments are exemplifications, and that various modifications can be made to combinations of the respective components and processing processes, and such modifications are within the scope of the present invention.

例えば、リコンフィギュラブル回路12におけるALUの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する結線は設けられていないが、このような段を飛ばす接続結線を設ける構成としてもよい。   For example, the array of ALUs in the reconfigurable circuit 12 is not limited to a multistage array that allows connection only in the vertical direction, but may be a mesh-like array that allows connection in the horizontal direction. In the above description, the connection for connecting the logic circuits by skipping the stages is not provided, but the connection connection for skipping such stages may be provided.

また、図1では、処理装置10が1つのリコンフィギュラブル回路12を有する場合を示しているが、複数のリコンフィギュラブル回路12を有していてもよい。複数のリコンフィギュラブル回路12が存在する場合は、複数のDFGを同時に処理することが可能となり、データ処理時間を短縮することが可能となる。   Further, FIG. 1 shows a case where the processing apparatus 10 has one reconfigurable circuit 12, but it may have a plurality of reconfigurable circuits 12. When there are a plurality of reconfigurable circuits 12, a plurality of DFGs can be processed at the same time, and the data processing time can be shortened.

今回開示された実施形態及び実施例はすべての点で例示であって制限的なものではない。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiments and examples disclosed herein are illustrative and non-restrictive in every respect. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

例えば、上記実施形態では、リコンフィギュラブル回路にマッピングされるDFGの処理に係るものであったが、この出願明細書において開示した考え方は、他にも適用することが可能である。   For example, in the above-described embodiment, the processing is related to the DFG mapped to the reconfigurable circuit. However, the concept disclosed in this specification of the application can be applied to others.

例えば、回路遅延を有する集積回路に演算を表すDFGを割り当てる場合において、回路遅延の影響を小さくするために、DFGを複数の小さなサブDFGに分割して集積回路にマッピングすることがある。上記リコンフィギュラブル回路での実施形態と同様、この場合もサブDFG間のデータのやり取りはD/FF(D−フリップフロップ)などのメモリを介して行うこととなるが、やはりサブDFG間のデータ受渡しに必要なメモリの使用量が問題になることがある。そのような場合においても、本願発明のように、サブDFG内の複数ノードから同一内容のデータがメモリの異なる領域へそれぞれ出力される場合は、いずれかのノードからのメモリ出力を削除することにより、メモリ使用量を減らすことができる。このように本願発明は、リコンフィギュラブル回路の設計に限らず、論理回路の設計において広く適用することが可能である。
For example, when a DFG representing an operation is assigned to an integrated circuit having a circuit delay, the DFG may be divided into a plurality of small sub-DFGs and mapped to the integrated circuit in order to reduce the influence of the circuit delay. Similar to the above-described embodiment in the reconfigurable circuit, in this case, data exchange between the sub-DFGs is performed via a memory such as a D / FF (D-flip flop). The amount of memory used for delivery may be a problem. Even in such a case, as in the present invention, when the same content data is output from different nodes in the sub-DFG to different areas of the memory, the memory output from one of the nodes is deleted. , Memory usage can be reduced. As described above, the present invention is not limited to reconfigurable circuit design but can be widely applied to logic circuit design.

実施例に係る処理装置の構成図である。It is a block diagram of the processing apparatus which concerns on an Example. ターゲット回路を分割してできる複数の回路について説明するための図である。It is a figure for demonstrating the several circuit which can divide | segment a target circuit. リコンフィギュラブル回路12の構成図である。2 is a configuration diagram of a reconfigurable circuit 12. FIG. DFG38の構造を説明するための図である。It is a figure for demonstrating the structure of DFG38. リコンフィギュラブル回路12におけるALU間の接続関係を示す図である。3 is a diagram illustrating a connection relationship between ALUs in the reconfigurable circuit 12. FIG. 本実施例におけるDFG38の処理フローチャートである。It is a processing flowchart of DFG38 in a present Example. データフローグラフ処理部31の構成図である。3 is a configuration diagram of a data flow graph processing unit 31. FIG. コンパイル部30に入力されるCソースプログラムである。This is a C source program input to the compiling unit 30. コンパイル部30から出力されるDFGである。This is a DFG output from the compiling unit 30. 図9に示すDFGを、DFG分割部6が分割して生成した2つのサブDFGを示す図である。FIG. 10 is a diagram illustrating two sub-DFGs generated by dividing the DFG shown in FIG. 9 by the DFG dividing unit 6. サブDFG最適化部61により最適化されたサブDFGである。This is a sub-DFG optimized by the sub-DFG optimizing unit 61. サブDFG最適化部61が行う最適化処理のフローチャートである。It is a flowchart of the optimization process which the sub-DFG optimization part 61 performs. 最適化処理の途中のデータフローグラフを示すものである。2 shows a data flow graph in the middle of optimization processing.

符号の説明Explanation of symbols

10 処理装置
12 リコンフィギュラブル回路
14 設定部
18 制御部
22 出力回路
24 経路部
26 集積回路装置
27 メモリ部
29 経路部
30 コンパイル部
31 データフローグラフ処理部
32 設定データ生成部
34 記憶部
36 プログラム、
38 データフローグラフ
40 設定データ
50 論理回路
52 接続部
60 DFG分割部
61 サブDFG最適化部
62 DFG結合部
DESCRIPTION OF SYMBOLS 10 Processing apparatus 12 Reconfigurable circuit 14 Setting part 18 Control part 22 Output circuit 24 Path | route part 26 Integrated circuit device 27 Memory part 29 Path | route part 30 Compile part 31 Data flow graph process part 32 Setting data generation part 34 Storage part 36 Program,
38 Data Flow Graph 40 Setting Data 50 Logic Circuit 52 Connection Unit 60 DFG Division Unit 61 Sub DFG Optimization Unit 62 DFG Coupling Unit

Claims (9)

データフローグラフ(DFG)を分割して2以上のサブDFGを生成するサブDFG生成手段を備え、
前記サブDFG生成手段は、サブDFG間のデータ入出力がメモリを介して行われるような複数のサブDFGを生成し、前記サブDFG内の複数ノードから同一内容のデータが前記メモリの異なる領域へそれぞれ出力される場合、前記複数ノードのいずれかのノードからのメモリへの出力を削除することを特徴とするデータフローグラフ生成装置。
Sub-DFG generation means for dividing a data flow graph (DFG) to generate two or more sub-DFGs,
The sub-DFG generating means generates a plurality of sub-DFGs such that data input / output between the sub-DFGs is performed via a memory, and data having the same content is transferred from a plurality of nodes in the sub-DFG to different areas of the memory. The data flow graph generation device, wherein when outputting each, the output to the memory from any one of the plurality of nodes is deleted.
前記サブDFG生成手段は、
前記複数ノードがスルーノードを含むとき、前記スルーノードからのメモリへの出力を削除することを特徴とする、請求項1記載のデータフローグラフ生成装置。
The sub-DFG generation means includes:
2. The data flow graph generation device according to claim 1, wherein when the plurality of nodes include a through node, an output from the through node to a memory is deleted.
前記サブDFG生成手段で生成された複数のサブDFGを結合するDFG結合手段を更に備え、
前記メモリの異なる領域をA、Bとしたとき、
前記DFG結合手段は、メモリ出力の前記削除により使用されなくなるメモリ領域Bからの入力を受けていたノードの入力元を、メモリ領域Aに変更することを特徴とする、請求項1又は2記載のデータフローグラフ生成装置。
A DFG combining unit that combines the plurality of sub-DFGs generated by the sub-DFG generating unit;
When different areas of the memory are A and B,
The said DFG coupling | bond part changes the input origin of the node which received the input from the memory area B which will no longer be used by the said deletion of the memory output to the memory area A, The said Claim 1 or 2 characterized by the above-mentioned. Data flow graph generator.
集積回路にマッピングされるDFGを生成するデータフローグラフ生成装置であって、
前記サブDFG生成手段、及び前記DFG結合手段を有し、
入力されたDFGを、前記サブDFG生成手段、及び前記DFG結合手段での処理を経て、前記集積回路にマッピング可能なDFGに再構成することを特徴とする、請求項3記載のデータフローグラフ生成装置。
A data flow graph generation device for generating a DFG mapped to an integrated circuit,
The sub-DFG generating means and the DFG combining means;
4. The data flow graph generation according to claim 3, wherein the input DFG is reconstructed into a DFG that can be mapped to the integrated circuit through processing in the sub-DFG generation unit and the DFG combination unit. apparatus.
前記集積回路は、リコンフィギュラブル回路を有し、
前記サブDFG生成手段は、
分割して生成するサブDFGの列数がリコンフィギュラブル回路1段あたりの論理回路の数以下となるような、
かつ、該サブDFGがリコンフィギュラブル回路各段の論理回路の集合体間に課された接続制限を満たすようなサブDFGを生成することを特徴とする、請求項4記載のデータフローグラフ生成装置。
The integrated circuit has a reconfigurable circuit,
The sub-DFG generation means includes:
The number of columns of sub-DFGs generated by division is less than or equal to the number of logic circuits per stage of reconfigurable circuit,
5. The data flow graph generating device according to claim 4, wherein the sub DFG generates a sub DFG such that the sub DFG satisfies a connection restriction imposed between a set of logic circuits at each stage of the reconfigurable circuit. .
前記サブDFG生成手段は、
該集積回路の回路遅延を考慮して、サブDFGの生成を行うことを特徴とする、請求項4又は5に記載のデータフローグラフ生成装置。
The sub-DFG generation means includes:
6. The data flow graph generation device according to claim 4, wherein a sub DFG is generated in consideration of a circuit delay of the integrated circuit.
ソースプログラムをコンパイルしてDFGを生成するコンパイル手段と、
前記コンパイル手段が生成するDFGを再構成することを特徴とする、請求項4から6のいずれかに記載のデータフローグラフ生成装置と、
前記データフローグラフ再構成装置で再構成されたDFGから、前記集積回路に所期の回路を構成するための設定データを生成する設定データ生成手段を備えることを特徴とする、集積回路の設定データ生成装置。
A compiling means for compiling a source program to generate a DFG;
The data flow graph generation device according to any one of claims 4 to 6, wherein the DFG generated by the compiling unit is reconfigured.
Setting data for integrated circuit, comprising setting data generation means for generating setting data for configuring a desired circuit in the integrated circuit from DFG reconfigured by the data flow graph reconstructing device Generator.
請求項7記載の設定データ生成装置から供給された設定データに基づいて構成されたことを特徴とする、集積回路。
8. An integrated circuit configured based on setting data supplied from the setting data generating apparatus according to claim 7.
請求項7記載の設定データ生成装置と、請求項8記載の集積回路を備えることを特徴とする処理装置。     A processing apparatus comprising the setting data generation apparatus according to claim 7 and the integrated circuit according to claim 8.
JP2006095162A 2006-03-30 2006-03-30 Data flow graph generator Expired - Fee Related JP4562679B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006095162A JP4562679B2 (en) 2006-03-30 2006-03-30 Data flow graph generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006095162A JP4562679B2 (en) 2006-03-30 2006-03-30 Data flow graph generator

Publications (2)

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

Family

ID=38675158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006095162A Expired - Fee Related JP4562679B2 (en) 2006-03-30 2006-03-30 Data flow graph generator

Country Status (1)

Country Link
JP (1) JP4562679B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205586A (en) * 2008-02-29 2009-09-10 Sony Computer Entertainment Inc Compiler and program segmentation method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182654A (en) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
JP2005258593A (en) * 2004-03-09 2005-09-22 Sanyo Electric Co Ltd Dataflow graph processing method and processor
JP2006004345A (en) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd Dataflow graph processing method, reconfigurable circuit, and processing apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182654A (en) * 2003-12-22 2005-07-07 Sanyo Electric Co Ltd Reconfigurable circuit, processing device having reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method and circuit
JP2005258593A (en) * 2004-03-09 2005-09-22 Sanyo Electric Co Ltd Dataflow graph processing method and processor
JP2006004345A (en) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd Dataflow graph processing method, reconfigurable circuit, and processing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205586A (en) * 2008-02-29 2009-09-10 Sony Computer Entertainment Inc Compiler and program segmentation method

Also Published As

Publication number Publication date
JP4562679B2 (en) 2010-10-13

Similar Documents

Publication Publication Date Title
JP4275013B2 (en) Data flow graph processing device, processing device, reconfigurable circuit.
JP4104538B2 (en) Reconfigurable circuit, processing device provided with reconfigurable circuit, function determination method of logic circuit in reconfigurable circuit, circuit generation method, and circuit
US7577821B2 (en) IC containing matrices of plural type operation units with configurable routing wiring group and plural delay operation units bridging two wiring groups
JP4900717B2 (en) Reconfigurable device
JP4484756B2 (en) Reconfigurable circuit and processing device
WO2006046711A1 (en) Data processing device having reconfigurable logic circuit
JP4423953B2 (en) Semiconductor integrated circuit
JP4562679B2 (en) Data flow graph generator
JP4553615B2 (en) Processing equipment
JP4562678B2 (en) Data flow graph reconstruction device, setting data generation device for reconfigurable circuit, and processing device
JP4413052B2 (en) Data flow graph processing apparatus and processing apparatus
JP4330472B2 (en) Processing equipment
JP6553694B2 (en) Processor element, programmable device and control method of processor element
JP2006065786A (en) Processing apparatus
JP4601567B2 (en) Data flow graph generation method and processing apparatus
JP2007172400A (en) Processor
JP4436734B2 (en) Processing equipment
JP4553614B2 (en) Processing equipment
JP4610236B2 (en) Setting data generator
JPWO2011102362A1 (en) Integrated circuit and method of using the same
JP2008090869A (en) Processor
JP2007172285A (en) Reconfigurable circuit and processor
JP2004302856A (en) Integrated circuit device and data configuring device for device thereof
JP2009217619A (en) Device, method and program for combining operations

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