JP2012185803A - Reconfiguration device, processing arrangement method, and program - Google Patents

Reconfiguration device, processing arrangement method, and program Download PDF

Info

Publication number
JP2012185803A
JP2012185803A JP2012003035A JP2012003035A JP2012185803A JP 2012185803 A JP2012185803 A JP 2012185803A JP 2012003035 A JP2012003035 A JP 2012003035A JP 2012003035 A JP2012003035 A JP 2012003035A JP 2012185803 A JP2012185803 A JP 2012185803A
Authority
JP
Japan
Prior art keywords
processing
data flow
setting
data
arrangement
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
JP2012003035A
Other languages
Japanese (ja)
Other versions
JP5907607B2 (en
Inventor
Yusuke Yachide
悠介 谷内出
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2012003035A priority Critical patent/JP5907607B2/en
Priority to US13/354,735 priority patent/US9116751B2/en
Priority to CN201210027897.8A priority patent/CN102693207B/en
Publication of JP2012185803A publication Critical patent/JP2012185803A/en
Application granted granted Critical
Publication of JP5907607B2 publication Critical patent/JP5907607B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce a circuit configuration modification period while avoiding the dependence on processing content, without increasing a circuit scale by mechanism addition, in the circuit configuration modification of a reconfiguration device.SOLUTION: An external memory 101 holds therein circuit configuration information 106. The circuit configuration information 106 is a setting group for operating elements constituting a reconfiguration device 105. A configuration controller 102 acquires the circuit configuration information 106 from the memory 101 through a connecting wire 104. The acquired circuit configuration information 106 is transmitted to the reconfiguration device 105 through a connecting wire 103.

Description

本発明は、回路構成を変更することができる再構成デバイス、その処理配置方法等に関する。   The present invention relates to a reconfigurable device capable of changing a circuit configuration, a processing arrangement method thereof, and the like.

従来から製造後のLSI回路装置であっても内部の回路構成を変更することで、上記回路が行う処理内容を変更することが可能な再構成デバイスが提案されている。製造後のLSI回路装置でも処理を変更することが可能であるため、仕様変更などに伴うLSIの作り直しを行わなくて済む。製造コストを抑えることが可能な点や開発期間が短縮可能な点で、現在様々な分野において再構成デバイスが使用されている。   Conventionally, there has been proposed a reconfigurable device capable of changing the processing content performed by the above circuit by changing the internal circuit configuration even in an LSI circuit device after manufacture. Since the processing can be changed even in the manufactured LSI circuit device, it is not necessary to recreate the LSI in accordance with the specification change or the like. Currently, reconfigurable devices are used in various fields in that the manufacturing cost can be reduced and the development period can be shortened.

再構成デバイスの構成として、多数のLUT(Look−Up−Table)を搭載したタイプや多数のプロセッシングエレメントを搭載したタイプが代表的である。また各々のエレメントにはマルチプレクサなどのスイッチングエレメントが接続されている。ここではLUTやプロセッシングエレメント、スイッチングエレメントなどの各構成要素を動作させるための設定を総称し回路構成情報と呼んでいる。回路構成情報の生成方法としては様々あるが、一般に(1)テクノロジーマッピングと呼ばれる論理的な処理の割り当て、(2)各構成要素への物理的な配置、(3)各構成要素の経路決定、の工程に分けられ、順番に行われことが多い。上記三つの工程を経て最終的に回路構成情報が生成される。   As a configuration of the reconfigurable device, a type in which a large number of LUTs (Look-Up-Tables) are mounted and a type in which a large number of processing elements are mounted are typical. Each element is connected to a switching element such as a multiplexer. Here, settings for operating each component such as the LUT, processing element, and switching element are collectively referred to as circuit configuration information. There are various methods for generating circuit configuration information. Generally, (1) logical processing called technology mapping, (2) physical allocation to each component, (3) route determination of each component, These processes are often performed in order. The circuit configuration information is finally generated through the above three steps.

(1)論理的な処理の割り当て工程では、処理を構成要素に割り当てることを行う。具体的には、各処理を物理的な構成要素を特定せずに論理的な構成要素に割り当てる。順序変更の指標としては、回路面積、動作速度、消費電力の観点が一般的である。(2)配置工程では、再構成デバイス内のどの構成要素でどの処理を行うかの物理的な割り当てを決定する。データの入出力関係にある処理が配置されているプロセッシングエレメント間の距離によって、データ通信に係るスイッチングエレメント数が異なるため、遅延時間(最大動作周波数)が大きく変化する。そのため、通常は入出力関係のある処理はできる限り近い距離のプロセッシングエレメントに配置させることが遅延時間を短縮する上で重要となる。(3)経路決定の工程では、データ通信の入出力関係にあるプロセッシングエレメント間のデータ通信のため、スイッチングエレメントによる経路を決定する。配置工程と比べ具体的な経路を決定するため、プロセッシングエレメント間の遅延時間を短縮した経路を決定することが重要となってくる。   (1) In the logical process assignment step, the process is assigned to a component. Specifically, each process is assigned to a logical component without specifying a physical component. As an index for order change, the viewpoint of circuit area, operation speed, and power consumption is generally used. (2) In the placement step, physical assignment of which process is performed with which component in the reconfigurable device is determined. Since the number of switching elements related to data communication differs depending on the distance between processing elements in which processing related to data input / output is arranged, the delay time (maximum operating frequency) varies greatly. For this reason, it is usually important to arrange the processing having an input / output relationship on the processing elements as close as possible to shorten the delay time. (3) In the route determination step, a route by the switching element is determined for data communication between processing elements in an input / output relationship of data communication. In order to determine a specific path as compared with the arrangement process, it is important to determine a path with a reduced delay time between processing elements.

近年、集積度の向上に伴い、再構成デバイスにおいて実行可能な処理の規模は増えている。しかし、最近ではそれにも増して、処理自体への要求が複雑化・高度化しており、一つの再構成デバイスで全ての処理を一度に行うことは難しい場合がある。これに対して、一つの再構成デバイスにおいて時分割で処理を順々に行う方法がある。より具体的にはまず所望の処理を分割し、分割した処理に対応した回路構成情報を生成する。その後、回路構成情報に基づいた再構成デバイスの回路構成の変更、処理を順々に行っていく。これにより、再構成デバイスで大きな規模の処理を行うことが可能となる。しかしながら、毎回全ての回路構成を変更させていては全体の処理時間が長くなってしまい、速度性能が劣化してしまう。また上記の処理分割数が多い場合も同様に、処理速度の劣化を生じさせてしまう。   In recent years, the scale of processing that can be executed in the reconfigurable device is increasing with the improvement in the degree of integration. However, recently, the demand for processing itself has become more complicated and sophisticated than that, and it may be difficult to perform all processing at once with one reconfigurable device. In contrast, there is a method in which processing is sequentially performed in a time-division manner in one reconfigurable device. More specifically, first, a desired process is divided, and circuit configuration information corresponding to the divided process is generated. Thereafter, the circuit configuration of the reconfigurable device is changed and processed based on the circuit configuration information. This makes it possible to perform large-scale processing with the reconfigurable device. However, if all the circuit configurations are changed every time, the entire processing time becomes long, and the speed performance deteriorates. Similarly, when the number of processing divisions is large, the processing speed is deteriorated.

この問題を解決するための方法として、マルチコンテキスト型の再構成デバイスがある。コンテキストとは、回路構成情報のことで、マルチコンテキスト型の再構成デバイスとは、複数の回路構成情報を格納するメモリを再構成デバイス内に搭載したものである。回路構成を変更する場合には、上記メモリを切り替えてデバイスを再構成することが可能であり、高速に切り換え可能なことで回路の再構成時間を大幅に短縮することが可能である。しかし、追加で回路構成情報用のメモリを搭載する必要があるため、回路規模が増大する問題がある。   As a method for solving this problem, there is a multi-context reconfiguration device. The context is circuit configuration information, and the multi-context reconfiguration device is a device in which a memory for storing a plurality of circuit configuration information is mounted in the reconfiguration device. When the circuit configuration is changed, the device can be reconfigured by switching the memory, and the circuit reconfiguration time can be greatly reduced by switching at high speed. However, since it is necessary to additionally install a memory for circuit configuration information, there is a problem that the circuit scale increases.

これに対し、特許文献1では、再構成時間を短縮する方法としてスケルトン回路技術に基づいた手法が提案されている。この手法では、先行ベース回路と呼ばれる回路構成情報を、予め再構成デバイスに構成しておく。ここで先行ベース回路とは複数の回路構成情報において全てに共通する共通回路部分と、複数個の回路で互いに共通せず、かつ、再構成デバイス上で回路構成情報を共有しない非排他的独立回路部分からなる回路構成情報のことである。再構成デバイス上において回路の差分のみを部分的に再構成することにより、処理に必要な回路を構成するようにする。この方法は、マルチコンテキスト型に比べ、追加で構成用のメモリを必要としないため回路規模が増大はしない。   On the other hand, Patent Document 1 proposes a method based on a skeleton circuit technique as a method for shortening the reconstruction time. In this method, circuit configuration information called a preceding base circuit is configured in advance in a reconfigurable device. Here, the preceding base circuit is a common circuit portion that is common to all of the plurality of circuit configuration information, and a non-exclusive independent circuit that is not common to the plurality of circuits and that does not share the circuit configuration information on the reconfigurable device. This is circuit configuration information consisting of parts. By partially reconfiguring only the circuit differences on the reconfigurable device, a circuit necessary for processing is configured. Compared with the multi-context type, this method does not require an additional configuration memory, so that the circuit scale does not increase.

特許第3558119号公報Japanese Patent No. 3558119

しかしながら、一般に再構成デバイスでは様々なアプリケーションを実行する可能性があり、アプリケーションによっては共通部分が少なくなる。また、再構成すべき回路構成情報の数もアプリケーションによって異なる。特許文献1で述べられている先行ベース回路部生成において、共通部分が少ないもしくは、回路構成情報の数が多く再構成デバイスの回路規模を大幅に超えてしまう場合には回路構成を変更するための期間を効率的に削減することが難しい。また、上述した処理配置工程においては、回路構成の変更期間を削減することに加え、データ入出力関係にあるプロセッシングエレメント間の距離が近い必要がある。入出力に係るプロセッシングエレメント間の通信距離が遠い場合、データ通信の遅延時間を増やし、結果として処理全体の期間を増大させてしまう。   However, in general, the reconstruction device may execute various applications, and the number of common parts is reduced depending on the application. Further, the number of circuit configuration information to be reconfigured varies depending on the application. In the generation of the preceding base circuit unit described in Patent Document 1, when there are few common parts or the number of circuit configuration information is large and greatly exceeds the circuit scale of the reconfigurable device, the circuit configuration is changed. It is difficult to reduce the period efficiently. Further, in the processing arrangement process described above, in addition to reducing the change period of the circuit configuration, the distance between the processing elements in the data input / output relationship needs to be short. When the communication distance between the processing elements related to input / output is long, the delay time of data communication is increased, and as a result, the entire processing period is increased.

本発明は上述した問題点に鑑みてなされたものであり、回路構成変更の順序を考慮することで、プロセッシングエレメント間のデータ通信遅延を抑えつつ回路規模を増やすことなく回路変更期間を効率的に削減することを目的とする。   The present invention has been made in view of the above-described problems, and by considering the order of circuit configuration change, the circuit change period can be efficiently performed without increasing the circuit scale while suppressing the data communication delay between the processing elements. The purpose is to reduce.

本発明の処理葉位置方法は、複数の構成要素で構成される再構成デバイスに対し、データフローの各処理を行う構成要素を決定するための処理配置方法であって、少なくとも二つの異なるデータフローと前記データフローの処理順序を入力する入力ステップと、再構成デバイスの構成要素の制約を入力する制約ステップと、前記データフローに応じた、前記再構成に必要な設定変更数と前記データフローのデータ入出力の依存関係に基づく構成要素間の距離とを用い、構成要素の配置を決めることで、要求される処理をどの構成要素で実行させるかを決定する決定ステップとを有することを特徴とする。   The processing leaf position method of the present invention is a processing arrangement method for determining a constituent element that performs each processing of a data flow for a reconfigurable device composed of a plurality of constituent elements, and is at least two different data flows And an input step for inputting the processing order of the data flow, a constraint step for inputting constraints on the components of the reconfigurable device, the number of setting changes necessary for the reconfiguration according to the data flow, and the data flow Using a distance between components based on data input / output dependency, and determining a component to execute a required process by determining the arrangement of the components, To do.

本発明によれば、データ通信の遅延時間を抑えつつ再構成に必要な設定数を減らすように回路構成情報を作成することで、回路規模を増やすことなく再構成デバイスの再構成期間を短縮することが可能である。   According to the present invention, the circuit configuration information is created so as to reduce the number of settings required for reconfiguration while suppressing the delay time of data communication, thereby reducing the reconfiguration period of the reconfiguration device without increasing the circuit scale. It is possible.

再構成デバイスを含む処理装置の構成例を示す図である。It is a figure which shows the structural example of the processing apparatus containing a reconstruction device. 再構成デバイスの構成例を示す図である。It is a figure which shows the structural example of a reconstruction device. 再構成デバイスのエレメント間のデータ通信の手順例を示す図である。It is a figure which shows the example of a procedure of the data communication between the elements of a reconstruction device. プロセッシングエレメントの構成例を示す図である。It is a figure which shows the structural example of a processing element. コンフィギュレーションコマンドのフォーマット例を示す図である。It is a figure which shows the example of a format of a configuration command. プロセッシングエレメントのコンフィギュレーションメモリに格納される設定の概要例を示す図である。It is a figure which shows the example of an outline | summary of the setting stored in the configuration memory of a processing element. 設定を読み書きする手順を示すフローチャートである。It is a flowchart which shows the procedure which reads / writes a setting. スイッチングエレメントの構成例を示す図である。It is a figure which shows the structural example of a switching element. スイッチングエレメントのコンフィギュレーションメモリに格納される設定の概要例を示す図である。It is a figure which shows the example of an outline | summary of the setting stored in the configuration memory of a switching element. データフローにおける処理のプロセッシングエレメントへの配置例を示す図である。It is a figure which shows the example of arrangement | positioning to the processing element of the process in a data flow. 複数のデータフローを順次処理するタイムチャートである。It is a time chart which processes a some data flow sequentially. 処理配置に向けたプロセッシングエレメントアレイのモデル例を示す図である。It is a figure which shows the example of a model of the processing element array toward process arrangement | positioning. 第1の実施形態における複数のデータフローの処理配置を行うための概要例を示す図である。It is a figure which shows the example of an outline for performing the process arrangement | positioning of the some data flow in 1st Embodiment. 第1の実施形態における処理配置を行うためのフローチャートである。It is a flowchart for performing processing arrangement in the first embodiment. 第2の実施形態におけるデータフローの処理配置を行うための概要例を示す図である。It is a figure which shows the example of an outline for performing the process arrangement | positioning of the data flow in 2nd Embodiment. 第3の実施形態におけるデータフローの処理配置を行うための概要例を示す図である。It is a figure which shows the example of an outline for performing the process arrangement | positioning of the data flow in 3rd Embodiment. 第4の実施形態におけるデータフローの処理配置を行うための概要例を示す図である。It is a figure which shows the example of an outline for performing the process arrangement | positioning of the data flow in 4th Embodiment. 第5の実施形態におけるデータフローの処理配置範囲限定を行うための概要例を示す図である。It is a figure which shows the example of an outline for performing the processing arrangement range limitation of the data flow in 5th Embodiment. 回路構成情報を作成する装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the apparatus which produces circuit structure information.

以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments to which the invention is applied will be described in detail with reference to the accompanying drawings.

先ず、本発明の第1の実施形態について説明する。第1の実施形態に係る再構成デバイスを有するシステムの全体構成の例を図1に示す。外部メモリ101は、内部に回路構成情報106を保持している。回路構成情報106は再構成デバイス105を構成する要素を動作させる設定群である。コンフィギュレーションコントローラ102は上記メモリ101から結線104を通じ回路構成情報106を取得する。取得した回路構成情報106は結線103を通じて再構成デバイス105へ送られる。ここで再構成デバイス105の例としてプロセッシングエレメントアレイとしている。また以下では、具体的にプロセッシングエレメントアレイ内の説明をするが、本発明は下記の各プロセッシングエレメントの構成や経路構成に限定されるものではない。   First, a first embodiment of the present invention will be described. An example of the overall configuration of a system having a reconfigurable device according to the first embodiment is shown in FIG. The external memory 101 holds circuit configuration information 106 therein. The circuit configuration information 106 is a group of settings for operating elements constituting the reconfigurable device 105. The configuration controller 102 acquires circuit configuration information 106 from the memory 101 through the connection 104. The acquired circuit configuration information 106 is sent to the reconfiguration device 105 through the connection 103. Here, a processing element array is used as an example of the reconstruction device 105. In the following description, the processing element array will be specifically described. However, the present invention is not limited to the configuration of each processing element and the path configuration described below.

図2に、本実施形態における再構成デバイスであるプロセッシングエレメントアレイの概要図を示す。再構成デバイスには、8入力8出力の入出力処理手段であるスイッチングエレメント201が二次元格子状に配置されている。演算処理手段である4入力4出力のプロセッシングエレメント202が、スイッチングエレメント201の格子内に配置されている。スイッチングエレメント201a〜iの8入力8出力は1入力1出力を一組としてそれぞれ東西南北(右左下上)方向の、他の4つのスイッチングエレメント201と結線203aおよび203bを介して夫々接続されている。   FIG. 2 shows a schematic diagram of a processing element array which is a reconstruction device in the present embodiment. In the reconstruction device, switching elements 201 which are input / output processing means with 8 inputs and 8 outputs are arranged in a two-dimensional lattice pattern. A processing element 202 having 4 inputs and 4 outputs, which is an arithmetic processing means, is arranged in the lattice of the switching element 201. The eight inputs and eight outputs of the switching elements 201a to i are connected to the other four switching elements 201 in the direction of east, west, south, and north (upper right and lower left), respectively, as a set, with one input and one output as a set. .

さらに、北東、南東、南西、北西方向の、それぞれ別の4つのプロセッシングエレメント202と結線204aおよび204bを介して双方向に接続された構成を持つ。またスイッチングエレメント201a〜201iおよびプロセッシングエレメント202a〜202dは結線205で一方向に数珠繋ぎに接続されている。   Furthermore, it has a configuration in which it is bidirectionally connected to four different processing elements 202 in the northeast, southeast, southwest and northwest directions via connection lines 204a and 204b. The switching elements 201a to 201i and the processing elements 202a to 202d are connected in a daisy chain in one direction by a connection 205.

結線203a、203bおよび結線204a、204bはスイッチングエレメント201やプロセッシングエレメント202の間で処理対象データを通信するために接続された結線である。結線205は、スイッチングエレメント201やプロセッシングエレメント202に設定を供給するための結線である。   Connections 203 a and 203 b and connection lines 204 a and 204 b are connections that are connected to communicate processing target data between the switching element 201 and the processing element 202. A connection 205 is a connection for supplying settings to the switching element 201 and the processing element 202.

上述の設定によって、スイッチングエレメント201においては処理対象データの入出力先が決定され、プロセッシングエレメント202においては処理対象データの入出力先や処理内容が決定される。なお、図2の各結線203a、203b、204a、204b、205の矢印の方向はデータの方向を示している。またスイッチングエレメント201a〜201iはそれぞれ同じ構成を有し、プロセッシングエレメント202a〜202dはそれぞれ同じ構成を有する。   With the above settings, the switching element 201 determines the input / output destination of the processing target data, and the processing element 202 determines the input / output destination and processing content of the processing target data. In addition, the direction of the arrow of each connection 203a, 203b, 204a, 204b, 205 of FIG. 2 has shown the direction of data. The switching elements 201a to 201i have the same configuration, and the processing elements 202a to 202d have the same configuration.

ここで、各結線203a、203b、204a、204b、205の通信プロトコルの一例として、Valid信号とReady信号による2線ハンドシェークを図3に示す。図3では送信側であるモジュールA301と受信側であるモジュールB302間はデータ信号線303、Valid信号線304およびReady信号線305が接続されている。Valid信号はValid信号線304を通じ送信側が受信側に対し送信可能状態を示す信号である。Ready信号はReady信号線305を通じ受信側が送信側に対しデータ受信可能状態を示す信号である。本プロトコルではモジュールA301からのValid信号線304とモジュールB302のReady信号線305とが両方有効となるクロック立ち上がりのタイミングでデータ信号線303のデータがモジュールA301からモジュールB302へと送信される。図3の波形中では306aのタイミングでデータAが、306bのタイミングでデータBが、306cのタイミングでデータC、306dのタイミングでデータDがモジュールA301からモジュールB302へと転送されている。   Here, as an example of a communication protocol for each of the connections 203a, 203b, 204a, 204b, and 205, a two-wire handshake using a Valid signal and a Ready signal is shown in FIG. In FIG. 3, a data signal line 303, a valid signal line 304, and a ready signal line 305 are connected between the module A301 on the transmission side and the module B302 on the reception side. The Valid signal is a signal indicating that the transmitting side can transmit to the receiving side through the Valid signal line 304. The Ready signal is a signal indicating that the receiving side can receive data to the transmitting side through the Ready signal line 305. In this protocol, the data on the data signal line 303 is transmitted from the module A301 to the module B302 at the clock rising timing when both the valid signal line 304 from the module A301 and the ready signal line 305 of the module B302 are valid. In the waveform of FIG. 3, data A is transferred from module A301 to module B302 at timing 306a, data B at timing 306b, data C at timing 306c, and data D at timing 306d.

プロセッシングエレメント202の構成を図4に示す。プロセッシングエレメント202は、コンフィギュレーションユニット401、インプットユニット402、コンピュテーショナルユニット403、アウトプットユニット404、テンポラリーバッファ405で構成されている。前記コンフィギュレーションユニット401はプロセッシングエレメント202の動作内容を決定するための設定の管理を行う。前記インプットユニット402はコンフィギュレーションユニット401の設定に基づき、入力処理を行う。コンピュテーショナルユニット403はコンフィギュレーションユニット401の設定に基づき、演算処理を行う。また、コンピュテーショナルユニット403は、再度コンピュテーショナルユニット403に入力するためテンポラリーバッファ405に処理された結果を保持することが可能である。アウトプットユニット404はコンフィギュレーションユニット401の設定に基づき、出力処理を行う。   The configuration of the processing element 202 is shown in FIG. The processing element 202 includes a configuration unit 401, an input unit 402, a computational unit 403, an output unit 404, and a temporary buffer 405. The configuration unit 401 manages settings for determining the operation content of the processing element 202. The input unit 402 performs input processing based on the setting of the configuration unit 401. The computational unit 403 performs arithmetic processing based on the setting of the configuration unit 401. In addition, the computational unit 403 can hold the processed result in the temporary buffer 405 for input to the computational unit 403 again. The output unit 404 performs output processing based on the setting of the configuration unit 401.

上記プロセッシングエレメント202の動作をより具体的に説明する。インプットユニット402はコンフィギュレーションユニット401から入力先を決定するための設定情報を、結線406を通じて取得する。取得した設定情報はどの入力ポートを介して外部接続されているモジュールと通信を行うかが指定されている。その情報を元に、結線204a−ne、204a−se、204a−sw、204a−nw、を通じて処理対象であるデータを取得する。ここで参照符号のne,se、sw,nwはそれぞれ方向を示しており、結線204a−neは北東に配置されたスイッチングエレメントと接続されている。また、204a−seは南東に配置されたスイッチングエレメントと接続されている。204a−swは南西に配置されたスイッチングエレメントと接続されている。204a−nwは北西に配置されたスイッチングエレメントと接続されている。取得したデータは、結線409を通してコンピュテーショナルユニット403に送られる。   The operation of the processing element 202 will be described more specifically. The input unit 402 acquires setting information for determining an input destination from the configuration unit 401 through the connection 406. The acquired setting information specifies which input port is used to communicate with the externally connected module. Based on the information, data to be processed is acquired through the connections 204a-ne, 204a-se, 204a-sw, and 204a-nw. Here, reference numerals ne, se, sw, and nw indicate directions, respectively, and the connection line 204a-ne is connected to a switching element arranged in the northeast. 204a-se is connected to a switching element arranged in the southeast. 204a-sw is connected to a switching element arranged in the southwest. 204a-nw is connected to a switching element arranged in the northwest. The acquired data is sent to the computer unit 403 through the connection 409.

コンピュテーショナルユニット403は、コンフィギュレーションユニット401から処理内容を決定するための設定情報を、結線407を通じて取得する。取得した設定情報に基づいてインプットユニット402から送られてくるデータを取得し、処理を行う。処理したデータは結線410を通じてアウトプットユニット404に送られる。   The computational unit 403 acquires setting information for determining the processing content from the configuration unit 401 through the connection 407. Based on the acquired setting information, data sent from the input unit 402 is acquired and processed. The processed data is sent to the output unit 404 through the connection 410.

コンピュテーショナルユニット403は、少なくとも一つの演算器を保持している。上記演算器は、例えば、加減算器、比較器、乗算器、除算器、論理演算器等の演算器、または、これらの組合せからなる演算器、さらにはこれらと他の演算器の組合せからなる演算器などである。以下では具体的な例として、上記コンピュテーショナルユニット403では、積和演算と比較演算処理が行え、一度の演算でどちらかを一方を選択的に行うことができるものとし説明する。積和演算では、a・b+c・dの処理を行い、比較演算では、もしa>bならばcを出力、そうでなければdを出力するといった処理を行う。また、コンピュテーショナルユニット403は一度の入力に対して、上記演算器を繰り返し使用することが可能な構成となっている。繰り返しで使用する場合は一旦上記演算器で使用された処理結果を、結線412を通して、テンポラリーバッファに保存し、その後、結線411を通して、再度コンピュテーショナルユニット403に入力する。再度入力されたデータに対して、新たに上記演算器にて処理を行う。後で詳細を述べるが、上記設定とは上記演算の種類や繰り返し処理、またそれぞれの処理で必要な変数a、b、c、dはどの値を参照するか、また固定値ならばその値を指定することを意味する。   The computational unit 403 holds at least one computing unit. The arithmetic unit is, for example, an arithmetic unit such as an adder / subtracter, a comparator, a multiplier, a divider, a logical arithmetic unit, or an arithmetic unit composed of a combination thereof, or an arithmetic operation composed of a combination of these and other arithmetic units. Such as a vessel. In the following, as a specific example, the above-described computational unit 403 will be described assuming that product-sum operation and comparison operation processing can be performed, and one of them can be selectively performed in one operation. In the product-sum operation, the process of a · b + c · d is performed, and in the comparison operation, c is output if a> b, and d is output otherwise. In addition, the computational unit 403 is configured to be able to repeatedly use the arithmetic unit for one input. In the case of repeated use, the processing results once used by the computing unit are stored in a temporary buffer through the connection 412 and then input to the computer unit 403 again through the connection 411. A new process is performed on the data inputted again by the above computing unit. As will be described in detail later, the setting refers to the type of operation and the iterative process, and the values of the variables a, b, c, and d required for each process are referred to. Means to specify.

アウトプットユニット404は、処理したデータの出力先を示す設定情報を結線408を通じて取得する。取得した設定情報は、どの出力ポートを介してスイッチングエレメントと通信を行うかが指定されている。その情報を元に、結線204b−ne、204b−se、204b−sw、204b−nw、を通じてスイッチングエレメントへ出力する。ここで結線204b−neは北東に配置されたスイッチングエレメントと接続されている。また、204b−seは南東に配置されたスイッチングエレメントと接続されている。204b−swは南西に配置されたスイッチングエレメントと接続されている。204b−nwは北西に配置されたスイッチングエレメントと接続されている。   The output unit 404 acquires setting information indicating the output destination of the processed data through the connection 408. The acquired setting information specifies through which output port communication with the switching element is performed. Based on the information, the data is output to the switching element through connection lines 204b-ne, 204b-se, 204b-sw, and 204b-nw. Here, the connection line 204b-ne is connected to a switching element arranged in the northeast. 204b-se is connected to a switching element arranged in the southeast. 204b-sw is connected to a switching element arranged in the southwest. 204b-nw is connected to a switching element arranged in the northwest.

次にコンフィギュレーションユニット401の動作について説明する。コンフィギュレーションユニット401はプロセッシングエレメント202毎にユニークなIDを保持している。コンフィギュレーションユニットは入力側の結線205より送られてくる設定情報を取得し、コンフィギュレーションユニット内で処理し、出力側の結線205を通して設定を出力する。コンフィギュレーションユニット401は自らのIDに対応する設定を格納するためコンフィギュレーションメモリ413を有している。   Next, the operation of the configuration unit 401 will be described. The configuration unit 401 holds a unique ID for each processing element 202. The configuration unit acquires the setting information sent from the input side connection 205, processes it in the configuration unit, and outputs the setting through the output side connection 205. The configuration unit 401 has a configuration memory 413 for storing settings corresponding to its own ID.

図5にコンフィギュレーションユニットに送受信される、設定のためのコンフィギュレーションコマンド501を示す。コンフィギュレーションコマンド501はリード/ライトモード502、ID503、コンフィギュレーションアドレス504、設定値505で構成されている。リード/ライトモード502はコンフィギュレーションコマンドの読み書きの処理を決定する信号である。ID503は処理対象のプロセッシングエレメント202を決める信号である。コンフィギュレーションアドレス504はコンフィギュレーションユニット401中の設定が保持されているメモリ内の番地を指定する信号である。設定値505は実際の設定値を表す信号である。図5中のビット幅を示すM、N、O、Pは実際に構成するアーキテクチャによって決められる値である。以下では上述した構成に基づく設定に関してより具体的に説明する。   FIG. 5 shows a configuration command 501 for setting that is transmitted to and received from the configuration unit. The configuration command 501 includes a read / write mode 502, an ID 503, a configuration address 504, and a setting value 505. The read / write mode 502 is a signal that determines the read / write processing of the configuration command. The ID 503 is a signal that determines the processing element 202 to be processed. The configuration address 504 is a signal for designating an address in the memory where the setting in the configuration unit 401 is held. A set value 505 is a signal representing an actual set value. In FIG. 5, M, N, O, and P indicating the bit width are values determined by the actually configured architecture. Hereinafter, the setting based on the above-described configuration will be described more specifically.

図6中の601はコンフィギュレーションメモリ413のアドレスを示しており、図5のコンフィギュレーションアドレス504で指定されるアドレスに相当する。602は実際の設定値を示しており、図5の設定値505に相当する。本実施形態はこれら一つ一つを設定と読んでいるが、本発明は上述の単位に限るものではない。図ではインプットユニット402、コンピュテーショナルユニット403、アウトプットユニット404に関する設定がコンフィギュレーションメモリ413に保持されている例を示している。   Reference numeral 601 in FIG. 6 denotes an address of the configuration memory 413, which corresponds to an address designated by the configuration address 504 in FIG. Reference numeral 602 denotes an actual set value, which corresponds to the set value 505 in FIG. In the present embodiment, each of these is read as setting, but the present invention is not limited to the above-mentioned unit. In the figure, an example in which settings relating to the input unit 402, the computational unit 403, and the output unit 404 are held in the configuration memory 413 is shown.

アドレス0x0000_0000(“0x”は16進数を示している)で示した設定値は、インプットユニット402における入力先を決定するための設定情報で、この値に応じて所定の入力先が決まる。アドレス0x0000_0004で示したイタレーションナンバーは、コンピュテーショナルユニット403における、演算の繰り返し回数を決定するための設定情報で、値に応じて演算の繰り返し回数が決まる。本実施形態では4回までの演算を想定している。   A setting value indicated by an address 0x0000 — 0000 (“0x” indicates a hexadecimal number) is setting information for determining an input destination in the input unit 402, and a predetermined input destination is determined according to this value. The iteration number indicated by the address 0x0000 — 0004 is setting information for determining the number of repetitions of calculation in the computational unit 403, and the number of repetitions of calculation is determined according to the value. In the present embodiment, up to four calculations are assumed.

アドレス0x0000_0008で示したオペレーションセッティングは1度目の演算で行う、演算の種類を決定するための設定で、値に応じて積和演算か比較演算かが決まる。アドレス0x0000_000cで示したバリアブルセッティングは1度目の演算で、変数aの値の参照先を決めるための設定である。参照先としては、入力ポートからの入力値、コンフィギュレーションメモリ413に保持されている固定値、以前の計算結果が保持されているテンポラリーバッファの値がある。この値に応じて、上記いずれかの値がこの変数aに入力される。また0x0000_000cと同様に、0x0000_0010、0x0000_0014、0x0000_0018で示したバリアブルセッティングはそれぞれ、1度目の演算における変数b、c、dの値の参照先を決めるための設定である。   The operation setting indicated by the address 0x0000 — 0008 is a setting for determining the type of calculation performed in the first calculation, and the product-sum calculation or the comparison calculation is determined according to the value. The variable setting indicated by the address 0x0000 — 000c is a setting for determining the reference destination of the value of the variable a in the first calculation. The reference destination includes an input value from the input port, a fixed value held in the configuration memory 413, and a temporary buffer value holding a previous calculation result. Depending on this value, one of the above values is input to this variable a. Similarly to 0x0000_000c, variable settings indicated by 0x0000_0010, 0x0000_0014, and 0x0000_0018 are settings for determining reference destinations of the values of variables b, c, and d in the first calculation.

次に0x0000_001cで示したパラメータは、1度目の演算において0x0000_000cで指定された参照先が固定値の場合の、変数aのための固定値である。0x0000_001cと同様に0x0000_0020、0x0000_0024、0x0000_0028で示した固定値は、それぞれ1度目の演算で変数b、c、d、で使用される場合の値である。   Next, the parameter indicated by 0x0000 — 001c is a fixed value for the variable a when the reference destination specified by 0x0000 — 000c in the first calculation is a fixed value. Similar to 0x0000 — 001c, the fixed values indicated by 0x0000 — 0020, 0x0000 — 0024, and 0x0000 — 0028 are values used in the variables b, c, and d in the first calculation.

続く0x0000_002c〜から0x0000_0094は、上記0x0000_0008〜0x0000_0028で示した1度目の演算に係る設定と同様にそれぞれ、2度目、3度目、4度目の設定値を示している。最後に0x0000_0098で示したアウトプットセレクトバリューは、アウトプットユニット404における出力先を決定するための設定値で、値に応じて所定の出力先が決まる。   Subsequent 0x0000 — 002c to 0x0000 — 0094 indicate setting values for the second, third, and fourth times, respectively, similarly to the settings related to the first calculation indicated by the above 0x0000 — 0008 to 0x0000 — 0028. Finally, an output select value indicated by 0x0000 — 0098 is a setting value for determining an output destination in the output unit 404, and a predetermined output destination is determined according to the value.

次にコンフィギュレーションユニットで行われる処理フローを図7に示す。ステップS701では、コンフィギュレーションコマンド501を入力する。ステップS702では、入力されたコンフィギュレーションコマンド501で指定されたID503が、コンフィギュレーションユニット401の持つ自身のIDと一致するかどうかを判断する。もし、ステップS702で自身のIDと違うと判断された場合はステップS711、712で、入力されたコンフィギュレーションコマンド501に対して、何も処理せずにそのまま出力する。もし、自身のIDと一致する場合は、次にステップS703でリード/ライトモード502の値がリードモードかどうかを判断する。リードモードでなければステップS707でライトモードかどうかを判断する。いずれのモードでもない場合はステップS711、712で何も処理せずにそのまま出力する。もし、リードモードと判断された場合は、ステップS704において、コンフィギュレーションメモリ413からコンフィギュレーションアドレス504で指定されたデータを読み出す。その後、ステップS705にて、入力されたコンフィギュレーションコマンド501の設定値505に読み出したデータを書き込み、ステップS706でそのコンフィギュレーションコマンド501を出力する。ライトモードと判断された場合は、ステップS708にて入力されたコンフィギュレーションコマンド501の設定値505をコンフィギュレーションアドレス504で指定されたコンフィギュレーションメモリ413に書き込む。次にステップS709では、入力されたコンフィギュレーションコマンド501の値を変更せず、ステップS710にて、そのまま出力する。一度のコンフィギュレーションコマンドで一つの設定値505を変更することが可能であり、順次コンフィギュレーションコマンドを送信し、必要な設定値を全て変更することで所望の処理を実現する。つまり、この設定数が処理内容の切り替え時間を決めていることとなる。   Next, FIG. 7 shows a processing flow performed in the configuration unit. In step S701, a configuration command 501 is input. In step S <b> 702, it is determined whether the ID 503 specified by the input configuration command 501 matches the own ID of the configuration unit 401. If it is determined in step S702 that the ID is different from its own ID, in step S711 and 712, the input configuration command 501 is output without being processed. If it coincides with its own ID, it is next determined in step S703 whether the value of the read / write mode 502 is the read mode. If it is not the read mode, it is determined in step S707 whether or not it is the write mode. If it is not in any mode, the data is output as it is without being processed in steps S711 and 712. If the read mode is determined, the data designated by the configuration address 504 is read from the configuration memory 413 in step S704. Thereafter, the read data is written in the set value 505 of the input configuration command 501 in step S705, and the configuration command 501 is output in step S706. If the write mode is determined, the setting value 505 of the configuration command 501 input in step S708 is written into the configuration memory 413 designated by the configuration address 504. Next, in step S709, the value of the input configuration command 501 is not changed and is output as it is in step S710. One setting value 505 can be changed by a single configuration command, and a desired process is realized by sequentially transmitting configuration commands and changing all necessary setting values. In other words, this set number determines the processing content switching time.

スイッチングエレメント201の構成を図8に示す。スイッチングエレメント201は、コンフィギュレーションユニット801と、クロスバースイッチ802で構成される。コンフィギュレーションユニット801はデータを転送する接続先を決定するための設定値の管理をする。クロスバースイッチ802はコンフィギュレーションユニット801の設定に基づき一対一に入出力を接続する。プロセッシングエレメント202のコンフィギュレーションユニット401と同様、コンフィギュレーションユニット801はスイッチングエレメント201毎にユニークなIDを保持している。コンフィギュレーションユニットは入力側の結線205より送られてくる設定情報を取得し、コンフィギュレーションユニット内で処理を行い、出力側の結線205を通して設定値を出力する。コンフィギュレーションユニットは上記取得した設定をコンフィギュレーションメモリ804に保持している。コンフィギュレーションユニットのコンフィギュレーションコマンドとその処理フローは、図5に示したフォーマット、および図7に示した処理フローと同様である。クロスバースイッチ802はコンフィギュレーションユニット801からデータの入出力先を決定する設定情報を、結線803を通じて取得する。スイッチングエレメント201は取得した設定値に基づき結線203a−w、−s、203b−e、−n、結線204b−ne、−se、−sw、−nwを通じてデータを取得する。取得したデータは、接続されている結線203a−e、−n、203b−w、−s、結線204a−ne、−se、−sw、−nwを通じて渡す。   The configuration of the switching element 201 is shown in FIG. The switching element 201 includes a configuration unit 801 and a crossbar switch 802. The configuration unit 801 manages setting values for determining a connection destination to which data is transferred. The crossbar switch 802 connects the input and output one to one based on the setting of the configuration unit 801. Similar to the configuration unit 401 of the processing element 202, the configuration unit 801 holds a unique ID for each switching element 201. The configuration unit acquires setting information sent from the input side connection 205, performs processing in the configuration unit, and outputs a setting value through the output side connection 205. The configuration unit holds the acquired setting in the configuration memory 804. The configuration command of the configuration unit and its processing flow are the same as the format shown in FIG. 5 and the processing flow shown in FIG. The crossbar switch 802 acquires setting information for determining an input / output destination of data from the configuration unit 801 through the connection 803. The switching element 201 acquires data through the connections 203a-w, -s, 203b-e, -n, and the connections 204b-ne, -se, -sw, -nw based on the acquired set values. The acquired data is passed through the connected connections 203a-e, -n, 203b-w, -s, and the connections 204a-ne, -se, -sw, -nw.

ここで結線203a−w、−sはそれぞれ西、南に配置されたスイッチングエレメントと接続されていることを意味する。203b−e、−nはそれぞれ東、北に配置されたスイッチングエレメントと接続されていることを意味している。   Here, the connections 203a-w and -s mean that they are connected to the switching elements arranged in the west and south, respectively. 203b-e and -n mean that the switching elements are connected to the east and north, respectively.

結線203a−e、−nはそれぞれ東、北に配置されたスイッチングエレメントと接続されていることを意味する。203b−w、−sはそれぞれ西、南に配置されたスイッチングエレメントと接続されていることを意味している。   Connections 203a-e and -n mean that they are connected to switching elements arranged east and north, respectively. 203b-w and -s mean that they are connected to switching elements arranged in the west and south, respectively.

結線204a−ne、−se、−sw、−nwはそれぞれ北東、南東、南西、北西に配置されたスイッチングエレメントと接続されていることを意味している。結線204b−ne、−se、−sw、−nwはそれぞれ北東、南東、南西、北西に配置されたスイッチングエレメントと接続されていることを意味している。   Connections 204a-ne, -se, -sw, and -nw mean that they are connected to switching elements arranged in the northeast, southeast, southwest, and northwest, respectively. Connections 204b-ne, -se, -sw, and -nw mean that they are connected to switching elements arranged in the northeast, southeast, southwest, and northwest, respectively.

図9にコンフィギュレーションメモリ804に保持されている、スイッチングエレメント201におけるクロスバースイッチ802の入出力の接続に関する設定例を示す。901はメモリのアドレスを示しており、図5のコンフィギュレーションアドレス504で指定されるアドレスに相当する。902は設定値を示しており、図5の設定値505を示している。アドレス0x0000_0000で示したコネクション設定は結線203a−wからの入力を203a−e、n、203b−w、−s、204a−ne、−se、−sw、−nwのいずれに出力するかを決定するための設定値である。続く、0x0000_0004は結線203a−sからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_0008は結線203b−eからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_000cは結線203b−nからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_0010は結線204b−neからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_0014は結線204b−seからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_0018は結線204b−swからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。0x0000_001cは結線204b−nwからの入力を0x0000_0000と同様どの結線に出力するかを決定する設定値である。   FIG. 9 shows a setting example related to the input / output connection of the crossbar switch 802 in the switching element 201, which is held in the configuration memory 804. Reference numeral 901 denotes a memory address, which corresponds to the address specified by the configuration address 504 in FIG. Reference numeral 902 denotes a set value, which is the set value 505 in FIG. The connection setting indicated by the address 0x0000_0000 determines whether the input from the connection line 203a-w is output to 203a-e, n, 203b-w, -s, 204a-ne, -se, -sw, or -nw. Is a set value for Subsequently, 0x0000_0004 is a setting value that determines which connection the input from the connection 203a-s is to be output in the same way as 0x0000_0000. 0x0000_0008 is a setting value that determines which connection the input from the connection 203b-e is to be output in the same way as 0x0000_0000. 0x0000 — 000c is a setting value that determines which connection the input from the connection 203b-n is to be output in the same way as 0x0000 — 0000. 0x0000 — 0010 is a setting value that determines to which connection the input from the connection 204b-ne is output as in the case of 0x0000 — 0000. 0x0000 — 0014 is a setting value that determines to which connection the input from the connection 204b-se is output as in the case of 0x0000 — 0000. 0x0000 — 0018 is a setting value that determines which connection the input from the connection 204b-sw is output in the same way as 0x0000 — 0000. 0x0000 — 001c is a setting value that determines to which connection the input from the connection 204b-nw is output as in the case of 0x0000 — 0000.

次にデータフローの構成要素への配置の概要について図10を用いて説明する。ここで、配置とはデータフローの処理を、所定の配置で規定されるプロセッシングエレメントで実行させるかを決定することを意味している。図10ではデータフロー1001のノード1002、1003、1004、1005はそれぞれ一つのプロセッシングエレメントで行われる処理である。これらノード1002、1003、1004、1005に対応する処理を、再構成デバイス105のプロセッシングエレメント202−1、−2、−3、−4へ配置する例を示している。設定1006、1007、1008、1009はそれぞれ1002、1003、1004、1005の処理内容に対応したアドレス601、設定値602で構成されている。なお、各ノードで行う処理内容の割り当ては済んでおり、設定1006、1007、1008、1009は予め決められているものとしている。配置を決定することで、各設定の書き込み先であるプロセッシングエレメントに対応したID503を決定することが可能となる。   Next, the outline of the arrangement of the data flow in the components will be described with reference to FIG. Here, the arrangement means to determine whether or not to execute the data flow process by a processing element defined by a predetermined arrangement. In FIG. 10, the nodes 1002, 1003, 1004, and 1005 of the data flow 1001 are processes performed by one processing element. In the example, the processes corresponding to the nodes 1002, 1003, 1004, and 1005 are arranged in the processing elements 202-1, -2, -3, and -4 of the reconfigurable device 105. The settings 1006, 1007, 1008, and 1009 are configured with an address 601 and a setting value 602 corresponding to the processing contents of 1002, 1003, 1004, and 1005, respectively. Note that the processing contents to be performed in each node have already been assigned, and the settings 1006, 1007, 1008, and 1009 are determined in advance. By determining the arrangement, it is possible to determine the ID 503 corresponding to the processing element to which each setting is written.

上述した再構成デバイスの構成を複数種類変更して所望の処理を実現するためのタイムチャート例を図11に示す。図11では同一の再構成デバイスで複数の異なるデータフローA〜Zを順に実行しているタイムチャートを示している。本実施形態で扱うデータフローとは、再構成デバイスのプロセッシングエレメントに配置可能な単位で構成されたデータフローのことである。各データフローを処理するための設定は予め生成しておく。再構成デバイスに対して予め生成された設定に基づき再構成デバイスを再構成し、その構成のもとで処理をするという一連の処理が、所定の順序で順々に行われる。   FIG. 11 shows an example of a time chart for realizing a desired process by changing a plurality of types of the configuration of the reconfigurable device described above. FIG. 11 shows a time chart in which a plurality of different data flows A to Z are sequentially executed by the same reconstruction device. The data flow handled in the present embodiment is a data flow configured in units that can be arranged in the processing element of the reconfigurable device. Settings for processing each data flow are generated in advance. A series of processes in which a reconfigurable device is reconfigured based on settings generated in advance for the reconfigurable device and processing is performed based on the configuration is sequentially performed in a predetermined order.

以下ではデータフローAを配置済みとし、データフローBを配置対象として説明する。具体的には、配置済みのデータフローAを実行するための設定値を参照し、データフローBの処理配置を決定する。データフローAの処理配置を参照しデータフローBの処理配置を決定した後、次はデータフローBを配置済みとし、データフローCを配置対象とする。具体的にはデータフローBの処理配置を決定した時と同様に、処理配置済みのデータフローBを実行するための設定値を参照し、データフローCの処理配置を決定する。上記の手順を順々に繰り返すことでAからZまでのデータフローの配置を行うことが可能となる。   In the following description, it is assumed that the data flow A is already arranged and the data flow B is an arrangement target. Specifically, the processing arrangement of the data flow B is determined with reference to a setting value for executing the arranged data flow A. After determining the processing arrangement of the data flow B with reference to the processing arrangement of the data flow A, the data flow B is already arranged and the data flow C is set as an arrangement target. Specifically, the processing arrangement of the data flow C is determined with reference to the setting value for executing the data flow B that has already been arranged in the same manner as when the processing arrangement of the data flow B is determined. By repeating the above procedure in sequence, the data flow from A to Z can be arranged.

一般に、配置問題は配置のみを決定するだけでも解空間が広い。そのため、詳細配線決定を同時に行うと、良い解を算出できないだけでなく、解自体を算出できない可能性が出てくる。そのため本配置方法では詳細な配線情報は決定せず、図12に示す配置モデルに基づく概略の距離を用いて配置を決定する。本実施形態では配置モデルとしてプロセッシングエレメントアレイをプロセッシングエレメントの位置に基づいたマンハッタンモデルを用いている。プロセッシングエレメント間のマンハッタン距離を指標として解を算出する。ただし、本発明は、概略の距離としてはマンハッタン距離に限定されるものではない。指標として、詳細配線を同時に行うことも可能である。また、本実施形態では配置モデルとしてマンハッタンモデルに基づく配置モデルを用いたが、それに限るものではない。アーキテクチャに依存したモデルやユークリッド空間に基づいたモデルでも良い。   In general, the placement problem has a wide solution space just by determining only the placement. Therefore, if detailed wiring determination is performed at the same time, not only a good solution cannot be calculated, but also the solution itself may not be calculated. For this reason, in this arrangement method, detailed wiring information is not determined, and the arrangement is determined using the approximate distance based on the arrangement model shown in FIG. In the present embodiment, a processing element array is used as an arrangement model, and a Manhattan model based on the position of the processing element is used. The solution is calculated using the Manhattan distance between processing elements as an index. However, in the present invention, the approximate distance is not limited to the Manhattan distance. As an index, detailed wiring can be performed simultaneously. In the present embodiment, an arrangement model based on the Manhattan model is used as the arrangement model, but the arrangement model is not limited thereto. It may be an architecture-dependent model or a model based on Euclidean space.

図12に示すように、スイッチングエレメント201とプロセッシングエレメント202で構成される再構成デバイス105に対し、配置モデル1201を定義する。配置モデル1201はプロセッシングエレメント202のみで構成しており、指標となる距離としては、横方向のプロセッシングエレメント間の距離1202と縦方向の距離1203で表す。本実施形態では縦横の距離は等しいものとしているが、異なっても良い。また本発明で扱う距離とは、物理的な長さであっても良いし、各エレメント間の通信に要する時間の長さであっても良く、これらに限るものではない。   As illustrated in FIG. 12, an arrangement model 1201 is defined for the reconfiguration device 105 including the switching element 201 and the processing element 202. The arrangement model 1201 includes only the processing element 202, and the distance as an index is represented by a distance 1202 between the processing elements in the horizontal direction and a distance 1203 in the vertical direction. In the present embodiment, the vertical and horizontal distances are equal, but may be different. Further, the distance handled in the present invention may be a physical length or a length of time required for communication between elements, and is not limited thereto.

次に、図12の配置モデルを用いて、図11のタイムチャートで示した処理の切り替わりに注目した処理のプロセッシングエレメントへの配置方法について述べる。   Next, with reference to the arrangement model shown in FIG. 12, a method for arranging processing focused on processing elements shown in the time chart of FIG. 11 on processing elements will be described.

図13では本実施形態における配置の概要を示している。データフローAはノード1301、1302、1303、1304として表される処理で構成されており、設定1305、1306、1307、1308はそれぞれのノードで行う処理の設定である。またフロー1309はノード1301と1302間のデータ入出力関係を表している。フロー1310はノード1301と1303間のデータ入出力関係を表している。フロー1311はノード1302と1304間のデータ入出力関係を表している。フロー1312はノード1303と1304間のデータ入出力関係を表している。   FIG. 13 shows an outline of the arrangement in the present embodiment. The data flow A includes processes represented as nodes 1301, 1302, 1303, and 1304, and settings 1305, 1306, 1307, and 1308 are settings of processes performed in the respective nodes. A flow 1309 represents a data input / output relationship between the nodes 1301 and 1302. A flow 1310 represents a data input / output relationship between the nodes 1301 and 1303. A flow 1311 represents a data input / output relationship between the nodes 1302 and 1304. A flow 1312 represents a data input / output relationship between the nodes 1303 and 1304.

データフローBはノード1313、1314、1315、1316として表される処理で構成されており、設定1317、1318、1319、1320はそれぞれのノードで行う処理の設定である。またフロー1321はノード1313と1315間のデータ入出力関係を表している。フロー1322はノード1314と1315間のデータ入出力関係を表している。フロー1323はノード1315と1316間のデータ入出力関係を表している。   Data flow B is composed of processes represented as nodes 1313, 1314, 1315, and 1316, and settings 1317, 1318, 1319, and 1320 are settings of processes performed in the respective nodes. A flow 1321 represents a data input / output relationship between the nodes 1313 and 1315. A flow 1322 represents a data input / output relationship between the nodes 1314 and 1315. A flow 1323 represents a data input / output relationship between the nodes 1315 and 1316.

ここではプロセッシングエレメントアレイの配置モデル1201内の領域1324に上述のデータフローA、Bの処理を配置させることを想定している。本実施形態ではプロセッシングエレメントアレイ内の一部への配置について述べるが、それに限られるものではなく、複数の部分や全体への配置でも良い。1325は上記の領域1324のデータフローA向けの処理配置例を表している。1326は上記の領域1326のデータフローB向けの処理配置例を表している。各々の処理配置1325、1326内のプロセッシングエレメント1327、1328、1329、1330はそれぞれ物理的に同じプロセッシングエレメントを表している。処理配置1325では、データフローAにおいてはノード1301の処理をプロセッシングエレメント1327に配置させている。ノード1302の処理をプロセッシングエレメント1329に配置させている。ノード1303の処理をプロセッシングエレメント1328に配置させている。ノード1304の処理をプロセッシングエレメント1330に配置させている。またプロセッシングエレメント間のデータ通信の距離を、フロー1309は距離1331、フロー1310は距離1332、フロー1311は距離1333、フロー1312は距離1334として表している。   Here, it is assumed that the processing of the above-described data flows A and B is arranged in the area 1324 in the processing element array arrangement model 1201. In the present embodiment, the arrangement in a part of the processing element array will be described. However, the arrangement is not limited thereto, and the arrangement may be in a plurality of parts or in the whole. Reference numeral 1325 denotes a processing arrangement example for the data flow A in the area 1324 described above. Reference numeral 1326 denotes a processing arrangement example for the data flow B in the area 1326. The processing elements 1327, 1328, 1329, 1330 in each processing arrangement 1325, 1326 each represent physically the same processing element. In the processing arrangement 1325, the processing of the node 1301 is arranged in the processing element 1327 in the data flow A. The processing of the node 1302 is arranged in the processing element 1329. The processing of the node 1303 is arranged in the processing element 1328. The processing of the node 1304 is arranged in the processing element 1330. The distance of data communication between processing elements is represented as a distance 1331 in the flow 1309, a distance 1332 in the flow 1310, a distance 1333 in the flow 1311, and a distance 1334 in the flow 1312.

続いてデータフローBに関しては、ノード1313の処理をプロセッシングエレメント1327に配置させている。ノード1314の処理をプロセッシングエレメント1328に配置させている。ノード1315の処理をプロセッシングエレメント1329に配置させている。ノード1316の処理をプロセッシングエレメント1330に配置させている。またプロセッシングエレメント間のデータ通信の距離を、フロー1321は距離1335、フロー1322は距離1336および1337、フロー1323は距離1338として表している。   Subsequently, for the data flow B, the processing of the node 1313 is arranged in the processing element 1327. The processing of the node 1314 is arranged in the processing element 1328. The processing of the node 1315 is arranged in the processing element 1329. The processing of the node 1316 is arranged in the processing element 1330. The distance of data communication between the processing elements is represented as a distance 1335 in the flow 1321, distances 1336 and 1337 in the flow 1322, and a distance 1338 in the flow 1323.

データフローAからデータフローBに処理が切り替わる際に、プロセッシングエレメント1327においては、設定変更1339で示すように設定1305から設定1317へと設定が変更される。プロセッシングエレメント1328においては、設定変更1341で示すように設定1307から設定1318へと設定が変更される。プロセッシングエレメント1329においては、設定変更1339で示すように設定1306から設定1319へと設定が変更される。プロセッシングエレメント1330においては、設定変更1339で示すように設定1308から設定1320へと設定が変更される。   When processing is switched from data flow A to data flow B, the processing element 1327 changes the setting from setting 1305 to setting 1317 as indicated by setting change 1339. In the processing element 1328, the setting is changed from the setting 1307 to the setting 1318 as indicated by a setting change 1341. In the processing element 1329, the setting is changed from the setting 1306 to the setting 1319 as indicated by a setting change 1339. In the processing element 1330, the setting is changed from the setting 1308 to the setting 1320 as indicated by a setting change 1339.

本実施形態では、配置を行う上で、処理が切り替わる際の設定変更数とデータフローの依存関係に基づく構成要素間の距離の二つの要素に注目する。   In the present embodiment, attention is paid to two elements, that is, the number of setting changes when processing is switched and the distance between components based on the dependency relationship of the data flow when performing the arrangement.

本実施形態で用いる図13の例ではデータフローAは既に処理配置済みであり、データフローAに関する各プロセッシングエレメントの各メモリ内の設定値は固定値として与えられるものとする。データフローBに関しては処理配置対象である。つまりデータフローの処理順序は決まっており、既に配置済みの配置情報をもとに次に処理されるデータフローの配置を決定することを想定している。   In the example of FIG. 13 used in the present embodiment, the data flow A has already been processed and arranged, and the setting value in each memory of each processing element related to the data flow A is given as a fixed value. Data flow B is a processing arrangement target. That is, it is assumed that the processing order of the data flow is determined, and the arrangement of the data flow to be processed next is determined based on the already arranged arrangement information.

図19は、データフローからデータフローへ処理を切り替えるための回路構成情報106を生成するための装置のブロック構成図を示している。図19において、2501は装置全体の制御を司るCPUである。2502はブートプログラムやBIOSを記憶しているROMである。2503はCPU2501のワークエリアとして利用され、且つ、OS(オペレーティングシステム)、アプリケーションを格納するためのRAMである。2504はOS、回路構成情報106を作成するためのアプリケーション、ならびに、様々なデータを格納するためのハードディスクドライブ(HDD)である。2505はキーボード、2506はマウスであり、ユーザインタフェースとして機能する。2507は内部にビデオメモリ及び表示コントローラを内蔵する表示制御部であり、2508は表示制御部2507からの映像信号を受信し、表示するための表示装置である。2509は各種外部デバイスと通信するインタフェースであり、例えば、図1に示した外部メモリ101を接続することで、本装置が作成した回路構成情報106をその外部メモリ101に書込むことになる。   FIG. 19 shows a block configuration diagram of an apparatus for generating circuit configuration information 106 for switching processing from a data flow to a data flow. In FIG. 19, reference numeral 2501 denotes a CPU that controls the entire apparatus. A ROM 2502 stores a boot program and BIOS. A RAM 2503 is used as a work area of the CPU 2501 and stores an OS (operating system) and applications. Reference numeral 2504 denotes an OS, an application for creating the circuit configuration information 106, and a hard disk drive (HDD) for storing various data. A keyboard 2505 and a mouse 2506 function as a user interface. Reference numeral 2507 denotes a display control unit incorporating a video memory and a display controller therein. Reference numeral 2508 denotes a display device for receiving and displaying a video signal from the display control unit 2507. An interface 2509 communicates with various external devices. For example, when the external memory 101 shown in FIG. 1 is connected, the circuit configuration information 106 created by this apparatus is written into the external memory 101.

上記構成において、本装置に電源が投入されると、CPU2501はROM2502に格納されたブートプログラムを実行し、HDD2504に格納されたOSをRAMにロードし、その後、回路構成情報106を作成するアプリケーションを起動することで、本装置が回路構成情報作成装置として機能することになる。   In the above configuration, when the apparatus is turned on, the CPU 2501 executes the boot program stored in the ROM 2502, loads the OS stored in the HDD 2504 into the RAM, and then creates an application for creating the circuit configuration information 106. By starting, this apparatus functions as a circuit configuration information creation apparatus.

以下、本発明を実施するための回路構成情報作成装置として機能する本装置の処理を、図14のフローチャートを用いて説明する。本手順はシミュレーテッドアニーリングに基づく処理配置方法の例を示すが、本発明は上記手法のみに限定されるものではなく、遺伝的アルゴリズムなどのさまざまな近似解法や線形計画法や非線形計画法など数値最適化法でも良い。また、配置する問題の規模に応じて方法を変えてもよい。   Hereinafter, the processing of this apparatus that functions as a circuit configuration information creation apparatus for carrying out the present invention will be described with reference to the flowchart of FIG. Although this procedure shows an example of a processing arrangement method based on simulated annealing, the present invention is not limited to the above method, and numerical values such as various approximate solutions such as genetic algorithms, linear programming, and nonlinear programming are used. An optimization method may be used. Further, the method may be changed according to the scale of the problem to be arranged.

図13に示す各データフローを表すインデックスをi、ノードのインデックスをj、図6のアドレス601や図9で示したアドレス901に相当するエレメント内で保持しているメモリのコンフィギュレーションアドレスをkとする。また、各ノードj間のフローに関するインデックスをlとする。上記より各メモリ内の設定値はui,j,kと表すことができる。またi番目のデータフローにおける、フローlの出発側のノードをSi,l、到着側のノードをdi,lとする。 The index representing each data flow shown in FIG. 13 is i, the node index is j, and the configuration address of the memory held in the element corresponding to the address 601 in FIG. 6 or the address 901 shown in FIG. 9 is k. To do. Also, let l be an index related to the flow between the nodes j. From the above, the set value in each memory can be expressed as u i, j, k . In the i-th data flow, the starting node of flow l is S i, l and the arriving node is d i, l .

また、図12に示す通り、各プロセッシングエレメントを表すインデックスをrとする。各データフローiの各ノードjの配置位置はxi,jおよびyi,jと表すことができる。本実施形態では同じプロセッシングエレメントに同じデータフロー内の異なる処理を配置することはしないため、xi,j、yi,jは、ノードjごとに必ず異なる。つまり、同じプロセッシングエレメントに異なる処理を配置しない。 Also, as shown in FIG. 12, an index representing each processing element is r. The location of each node j in each data flow i can be expressed as x i, j and y i, j . In this embodiment, since different processes in the same data flow are not arranged in the same processing element, x i, j and y i, j are always different for each node j. That is, different processes are not arranged in the same processing element.

ここで処理配置済みのデータフローをi0、処理配置対象のデータフローをi1とする。初めに、ステップS1401では複数のデータフローとその順序関係(iの順序)を入力する。処理配置済みのデータフローに関しては、設定値ui0,j,kと共に配置情報xi0,j、yi0,jも入力する。 Here, it is assumed that the data flow that has undergone processing arrangement is i0, and the data flow to be processed is i1. First, in step S1401, a plurality of data flows and their order relationship (i order) are input. For the data flow that has been processed and arranged, the arrangement information x i0, j and y i0, j are also input together with the set value u i0, j, k .

次に、ステップS1402で要求仕様とハードウェアの制約の条件を入力する。ここでハードウェア制約条件とは、ヘテロ構成に伴う各プロセッシングエレメントが個別に持つ構成情報や、処理によって発生する発熱量などの制限などハードウェア構成上の制約となりうるものである。また要求仕様とは、プロセッシングエレメント間の距離制限やステップS1406で後述する設定変更数と距離の要素の優先度合の割合などハードウェア使用上で制限すべき項目である。ただし、本発明は上述の制約のみに限られるものではない。   Next, in step S1402, the requirement specification and hardware constraint conditions are input. Here, the hardware restriction condition can be a restriction on the hardware configuration such as the configuration information that each processing element associated with the hetero configuration individually has and the amount of heat generated by the processing. The required specifications are items that should be restricted in terms of hardware use, such as the distance restriction between processing elements and the ratio of the number of setting changes and the priority of the distance element described later in step S1406. However, the present invention is not limited only to the above-described restrictions.

続いてステップS1403では対象となるデータフローの処理配置を行う。初期の処理の配置においては、ランダムに配置する、ないしはデータフローの深さ方向とプロセッシングエレメントアレイの入出力方向とを連動させて処理を配置させる方法があるが、これらの方法に限られるものではない。初期の配置でない場合は、シミュレーテッドアニーリングに基づき処理の配置を変更する。本実施形態では、処理配置である対象のデータフローBに関して初期処理配置、ないしは処理配置変更を行う。処理配置済みのデータフローAに関しては、制約に基づき処理配置の変更は行わない。   In step S1403, the processing arrangement of the target data flow is performed. In the initial process arrangement, there is a method of arranging the process randomly or by linking the depth direction of the data flow and the input / output direction of the processing element array. However, the method is not limited to these methods. Absent. If it is not the initial arrangement, the arrangement of the process is changed based on simulated annealing. In the present embodiment, the initial processing arrangement or the processing arrangement change is performed for the target data flow B that is the processing arrangement. For data flow A that has already been processed, the processing layout is not changed based on the constraints.

ステップS1404では、処理配置結果がステップS1403で入力した要求仕様を満たしているか判断する。以下の式に示すように、制約を満たしていれば、ペナルティ変数p0を0とし、違反している場合はペナルティ変数p0をペナルティ値Cp0とする。 In step S1404, it is determined whether the processing arrangement result satisfies the requirement specification input in step S1403. As shown in the following equation, if the constraint is satisfied, the penalty variable p 0 is set to 0, and if it is violated, the penalty variable p 0 is set to the penalty value C p0 .

Figure 2012185803
Figure 2012185803

ここで本実施形態では、違反があった場合に一律Cp0は定数値として扱っているが、違反項目に応じた変数値としてもよい。ステップS1405では、処理配置結果がステップS1302で入力したハードウェア制約条件を満たしているかを判断する。 Here, in this embodiment, when there is a violation, the uniform C p0 is treated as a constant value, but it may be a variable value according to the violation item. In step S1405, it is determined whether the processing arrangement result satisfies the hardware constraint condition input in step S1302.

以下の式に示すように、制約を満たしていれば、ペナルティ変数p1を0とし、違反している場合はペナルティ変数p1をペナルティ値Cp1とする。 As shown in the following equation, if the constraint is satisfied, the penalty variable p 1 is set to 0, and if it is violated, the penalty variable p 1 is set to the penalty value C p1 .

Figure 2012185803
Figure 2012185803

ここで本実施形態では、違反があった場合に一律Cp1は定数値として扱っているが、違反項目に応じた変数値としてもよい。次にステップS1406では、対象となるデータフロー変更間における設定変更数と配置に基づく距離の算出を行い、評価値を計算する。まず設定変更数の算出について説明する。図13の例で説明するとの設定変更1339、1340、1341、1342の際に変更の必要がある設定数である。 Here, in this embodiment, when there is a violation, the uniform C p1 is treated as a constant value, but it may be a variable value according to the violation item. In step S1406, the distance based on the number of setting changes and the arrangement between data flow changes to be processed is calculated, and an evaluation value is calculated. First, calculation of the number of setting changes will be described. This is the number of settings that need to be changed in the case of setting changes 1339, 1340, 1341, and 1342, which will be described with reference to the example of FIG.

より具体的には、処理配置済みのデータフローi0における、設定値ui0,j,kと、処理配置対象のデータフローi1における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui1,j,kの値が一致していなければα1を設定変更数に加える。上述の値が一致していれば何も加えない。 More specifically, the set value u i0, j, k in the data flow i0 that has been processed and the set value u i1 of the same type of processing elements that are arranged at the same position in the data flow i1 to be processed. If the values of , j, k do not match, α 1 is added to the setting change number. If the above values match, nothing is added.

ここで、プロセッシングエレメントrに配置されているデータフローi0のノードj0をj0rと表し、データフローi1のノードj1をj1rと表す。ここでrは前述したとおり、各プロセッシングエレメントを表すインデックスである。データフローが切り替わる際の同じ位置に配置されているノードの処理内容の変更に必要な設定変更数は以下の式で求めることができる。 Here, the node j0 of the data flow i0 arranged in the processing element r is represented as j0 r, and the node j1 of the data flow i1 is represented as j1 r . Here, r is an index representing each processing element as described above. The number of setting changes necessary for changing the processing contents of the nodes arranged at the same position when the data flow is switched can be obtained by the following expression.

Figure 2012185803
Figure 2012185803

ここでα1は通常1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。図7で示した通り、一度のコンフィギュレーションコマンドで一つの設定値を変更することができることから、この数が少なくなれば、処理の切り替え時間を削減することが可能となる。 Here, α 1 is normally 1, but it is also possible to change the weight for each address where each setting is stored according to the structure of the configuration memory of the processing element. In addition, in order to give priority to the switching time for each data flow, it is possible to weight each data flow. As shown in FIG. 7, one setting value can be changed by a single configuration command. Therefore, if this number is reduced, the process switching time can be reduced.

続いて距離の算出について述べる。距離とは、配置対象であるデータフローBにおける距離1335、1336、1337、1338の合計量である。ステップS1403での配置とデータフローのデータ入出力関係に基づいて、以下の式で距離を表すことが可能である。   Next, distance calculation will be described. The distance is the total amount of the distances 1335, 1336, 1337, and 1338 in the data flow B that is the arrangement target. Based on the data input / output relationship of the arrangement and data flow in step S1403, the distance can be expressed by the following equation.

Figure 2012185803
Figure 2012185803

ここでκ1l、λ1lはノード間の距離のx、y毎の重みであって、ノード間の距離などのアーキテクチャによって重みを一律ないしは別々に変更することも可能である。本ステップで評価値算出する際の式は上述の式より、以下と定義する。 Here, κ 1l and λ 1l are the weights of the distances between the nodes for each x and y, and the weights can be changed uniformly or separately depending on the architecture such as the distance between the nodes. The formula for calculating the evaluation value in this step is defined as follows from the above formula.

Figure 2012185803
Figure 2012185803

ここで、δはステップS1402で与えた設定変更数と距離のどちらを優先させるかの割合を表す指標である。つまり、要求仕様とハードウェア制約条件を満たしつつ、また距離が少なく、再構成に必要な設定変更数が少なくなるほど上記評価値は小さくなる。   Here, δ is an index representing the ratio of the priority of the number of setting changes and distance given in step S1402. In other words, the evaluation value decreases as the required specifications and hardware constraints are satisfied, the distance is shorter, and the number of setting changes required for reconfiguration is smaller.

最後にステップS1407では、シミュレーテッドアニーリングに基づき目標達成したかを判断し、目標を達成した場合は終了する。目標未達の場合はステップS1403に戻り、ステップS1403〜S1407を繰り返し行う。ここで、目標値とは十分良い結果が得られるまで、もしくは予定された計算時間に達するまで繰り返す。   Finally, in step S1407, it is determined whether the target has been achieved based on simulated annealing. If the target has been achieved, the process ends. If the target has not been reached, the process returns to step S1403, and steps S1403 to S1407 are repeated. Here, the target value is repeated until a sufficiently good result is obtained or a predetermined calculation time is reached.

以上の結果、回路構成情報106がHDD2504に生成されるので、後はインタフェース2509を介して、利用する外部メモリ101にそれを書き出し、実製品に搭載すれば良いことになる。   As a result, the circuit configuration information 106 is generated in the HDD 2504. After that, it can be written to the external memory 101 to be used via the interface 2509 and mounted in the actual product.

なお、上記実施形態では、回路構成情報106を、外部装置(図17)にて作成する例を示した。これは以降に説明する全実施形態でも同じである。また、コンフィギュレーションコントローラ102が外部装置の代わりに、図13の処理を実行し、回路構成情報106を作成しても構わない。例えば、外部メモリ101に複数のデータフロー毎の設定(必要なプロセッサ数と各プロセッサの処理パラメータ)を保持させ、コンフィギュレーションコントローラ102が複数のデータフローの設定に基づいて回路構成106を作成すればよい。係る点も、以降に説明する全実施形態にも適用できることである。   In the embodiment described above, the example in which the circuit configuration information 106 is created by an external device (FIG. 17) has been shown. This is the same in all embodiments described below. Further, the configuration controller 102 may create the circuit configuration information 106 by executing the processing of FIG. 13 instead of the external device. For example, if the external memory 101 stores settings for each of a plurality of data flows (required number of processors and processing parameters for each processor) and the configuration controller 102 creates the circuit configuration 106 based on the settings of the plurality of data flows. Good. This point is also applicable to all embodiments described below.

一般的な再構成デバイスにおけるデータフローのプロセッシングエレメントへの処理配置方法では設定変更数を意識しないため、データフローの処理変更間で全ての設定を変更する必要が生じる。   In the processing arrangement method of the data flow to the processing element in a general reconfigurable device, since the number of setting changes is not conscious, it is necessary to change all the settings between the data flow processing changes.

本実施形態では、データフローの処理順に注目し、距離に加え設定変更の合計数が少なくすることで、設定変更数削減を効果的に行うことが可能となる。   In the present embodiment, it is possible to reduce the number of setting changes effectively by paying attention to the processing order of the data flow and reducing the total number of setting changes in addition to the distance.

次に、本発明の第2の実施形態について説明する。第2の実施形態に係る処理のタイムチャートおよび、処理配置の概要を図15に示す。本実施形態では再構成デバイスの設定を変更において、各データフローの処理内容自体は決まっているが、その変更順序が不定で、状況や入力データなどに応じて変わる場合の処理配置に関する実施形態である。   Next, a second embodiment of the present invention will be described. FIG. 15 shows a time chart of processing according to the second embodiment and an outline of processing arrangement. In this embodiment, when changing the setting of the reconfigurable device, the processing content itself of each data flow is determined, but in the embodiment related to processing arrangement when the change order is indefinite and changes depending on the situation, input data, etc. is there.

タイムチャート1501における期間1502ではデータフローAに関する処理が行われ、期間1504、1508ではデータフローCに関する処理が行われ、期間1506ではデータフローBに関する処理が行われる。期間1503ではデータフローAからデータフローCの設定変更が行われる。期間1505ではデータフローCからデータフローBの設定変更が行われる。期間1507ではデータフローBからデータフローCの設定変更が行われる。本実施形態では、データフローA、B、Cの処理変更の順序が一定でないため、それぞれのデータフロー間の全ての設定変更を考慮して処理の配置を行う必要がある。   In the period 1502 in the time chart 1501, processing related to the data flow A is performed, processing related to the data flow C is performed in the periods 1504 and 1508, and processing related to the data flow B is performed in the period 1506. In the period 1503, the setting change of the data flow A to the data flow C is performed. In the period 1505, the setting change of the data flow C to the data flow B is performed. In a period 1507, the setting change of the data flow C from the data flow B is performed. In the present embodiment, since the order of processing changes of the data flows A, B, and C is not constant, it is necessary to arrange the processing in consideration of all setting changes between the respective data flows.

図中の1509、1522、1431はそれぞれデータフローA、B、Cにおけるプロセッシングエレメントの配置例を示しており、ここではこれら全てのデータフローの処理の配置を一度に一括して行う。なお配置例1509、1522、1531中のプロセッシングエレメント1510、1511、1512、1513はそれぞれ物理的に同じプロセッシングエレメントを指す。   In the figure, reference numerals 1509, 1522, and 1431 show examples of the arrangement of processing elements in the data flows A, B, and C, respectively. Here, the arrangement of the processing of all these data flows is performed at once. Note that the processing elements 1510, 1511, 1512, and 1513 in the arrangement examples 1509, 1522, and 1531 indicate physically the same processing elements.

設定1514、1515、1516、1517は、それぞれデータフローAの配置におけるプロセッシングエレメント1510、1511、1512、1513への設定を表している。設定1523、1524、1525、1526は、それぞれデータフローBの配置におけるプロセッシングエレメント1510、1511、1512、1513への設定を表している。設定1532、1533、1534、1535は、それぞれデータフローCの配置におけるプロセッシングエレメント1510、1511、1512、1513への設定を表している。ここで上記の設定とは実施形態1と同様に、図6で説明した設定のことである。本実施形態では、データフローA、B間、B、C間、C、A間のプロセッシングエレメント1510、1511、1512、1513でデータフロー変更に必要な合計の設定変更数と各プロセッシングエレメント間接続の合計距離に注目する。   Settings 1514, 1515, 1516, and 1517 represent settings for the processing elements 1510, 1511, 1512, and 1513 in the arrangement of the data flow A, respectively. Settings 1523, 1524, 1525, and 1526 represent settings for the processing elements 1510, 1511, 1512, and 1513 in the arrangement of the data flow B, respectively. Settings 1532, 1533, 1534, and 1535 represent settings for the processing elements 1510, 1511, 1512, and 1513 in the arrangement of the data flow C, respectively. Here, the above setting is the setting described with reference to FIG. 6 as in the first embodiment. In the present embodiment, the total number of setting changes necessary for data flow change in the processing elements 1510, 1511, 1512, and 1513 between the data flows A and B, between B and C, and between C and A, and the connection between the processing elements. Pay attention to the total distance.

上記合計数および距離数が図14で示したフローチャート1406で示す評価値に加える設定変更数を後述する評価値として算出することで、距離を考慮した、再構成デバイスの再構成時の設定変更数の削減を行う。   By calculating the setting change number that the total number and the distance number add to the evaluation value shown in the flowchart 1406 shown in FIG. 14 as an evaluation value to be described later, the number of setting changes at the time of reconfiguring the reconfigurable device in consideration of the distance Reduce.

なお、データフローA、B間でのプロセッシングエレメント1510、1511、1512、1513の設定変更は1539で表している。またデータフローB、C間でのプロセッシングエレメント1510、1511、1512、1513の設定変更は1540で表している。データフローC、A間でのプロセッシングエレメント1510、1511、1512、1513の設定変更は1541で表している。   Note that the setting change of the processing elements 1510, 1511, 1512, and 1513 between the data flows A and B is represented by 1539. A change in the setting of the processing elements 1510, 1511, 1512, and 1513 between the data flows B and C is represented by 1540. The setting change of the processing elements 1510, 1511, 1512, and 1513 between the data flows C and A is represented by 1541.

本実施形態と第1の実施形態との違いは、同時に複数のデータフローの処理配置を行う点にある。図14のステップS1401では、複数のデータフローを入力すると同時に、処理順序が任意であることを入力する。図14のステップS1404で行う処理配置では、処理配置対象であるデータフローA、B、C全てに対して処理配置を行う。図14のステップS1406で第1の実施形態に対して以下の違いがある。   The difference between this embodiment and the first embodiment is that processing arrangement of a plurality of data flows is performed at the same time. In step S1401 of FIG. 14, a plurality of data flows are input, and at the same time, the processing order is arbitrary. In the processing placement performed in step S1404 in FIG. 14, processing placement is performed for all the data flows A, B, and C that are processing placement targets. In step S1406 of FIG. 14, there are the following differences from the first embodiment.

処理配置対象のデータフローi0における、設定値uio,j,kと、処理配置対象のデータフローi1における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui1,j,kの値が一致していなければα2を設定変更数に加える。また、処理配置対象のデータフローi1における、設定値ui1,j,kと、処理配置対象のデータフローi2における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui2,j,kの値が一致していなければβ2を設定変更数に加える。さらに、処理配置対象のデータフローi2における、設定値ui2,j,kと、処理配置対象のデータフローi0における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui0,j,kの値が一致していなければγ2を設定変更数に加える。上述以外で、設定値が一致していれ場合は何も加えない。 The value of the setting value u io, j, k in the data flow i0 to be processed and the setting value u i1, j, k of the same type of processing elements arranged at the same position in the data flow i1 to be processed If does not match, α 2 is added to the number of setting changes. Also, the setting value u i1, j, k in the data flow i1 to be processed and the setting value u i2, j, k of the same type of processing elements arranged at the same position in the data flow i2 to be processed. If the values do not match, β 2 is added to the number of setting changes. Further, the setting value u i2, j, k in the data flow i2 to be processed and the setting value u i0, j, k of the same type of processing elements arranged at the same position in the data flow i0 to be processed. If the values do not match, γ 2 is added to the number of setting changes. Other than the above, nothing is added if the set values match.

ここで、プロセッシングエレメントrに配置されているデータフローi0のノードj0をj0rと表し、データフローi1のノードj1をj1rと表し、データフローi2のノードj2をj2rと表す。ここでrは前述したとおり、各プロセッシングエレメントを表すインデックスである。 Here, the node j0 of the data flow i0 arranged in the processing element r is represented as j0 r , the node j1 of the data flow i1 is represented as j1 r, and the node j2 of the data flow i2 is represented as j2 r . Here, r is an index representing each processing element as described above.

データフローが切り替わる際に、同じ位置に配置されているノードの処理内容の変更に必要な設定変更数は以下の式で求めることができる。   When the data flow is switched, the number of setting changes necessary for changing the processing contents of the nodes arranged at the same position can be obtained by the following equation.

Figure 2012185803
Figure 2012185803

ここでα2、β2、γ2は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。 Here, α 2 , β 2 , and γ 2 are each normally 1, but the weight can be changed for each address in which each setting is stored according to the configuration of the configuration memory of the processing element. In addition, in order to give priority to the switching time for each data flow, it is possible to weight each data flow.

また距離については以下の違いがある。図15で示した例では、距離は、距離1518、1519、1520、1521、1527、1528、1529、1530、1536、1537、1538の合計量として表される。図中のプロセッシングエレメントの配置は一例を示してだけであり、配置を変更することでこれらの距離合計量も変わる。配置後にその配置と、データフローのデータ入出力に基づいて以下の式で距離を表すことが可能である。   There are the following differences in distance. In the example illustrated in FIG. 15, the distance is expressed as a total amount of the distances 1518, 1519, 1520, 1521, 1527, 1528, 1529, 1530, 1536, 1537, and 1538. The arrangement of the processing elements in the drawing is only an example, and the total amount of these distances is changed by changing the arrangement. The distance can be expressed by the following expression based on the arrangement and the data input / output of the data flow after the arrangement.

Figure 2012185803
Figure 2012185803

ここでκ2i,l、λ2i,lは、データフロー毎のノード間の距離などのアーキテクチャによって重みを一律ないしは別々に変更することも可能である。本実施形態により、全てのデータフロー間を考慮することで、処理の実行順序が不定な場合でも、距離を考慮したうえで平均して設定変更数削減効果が得られる。 Here, the weights of κ2 i, l and λ2 i, l can be changed uniformly or separately depending on the architecture such as the distance between nodes for each data flow. According to the present embodiment, by considering all the data flows, even if the execution order of processing is indefinite, an effect of reducing the number of setting changes can be obtained on average taking the distance into consideration.

次に、本発明の第3の実施形態について説明する。第3の実施形態に係る処理のタイムチャートおよび、処理配置の概要を図16に示す。本実施形態では既に複数のデータフローの処理順序およびそれぞれの処理配置も決まっている場合を想定している。上述の処理順序における任意のデータフローの処理間に、挿入前後の処理配置は変えずに、新たなデータフローに対応した処理を挿入するための処理配置に関する実施形態である。   Next, a third embodiment of the present invention will be described. FIG. 16 shows a time chart of processing according to the third embodiment and an outline of processing arrangement. In the present embodiment, it is assumed that the processing order of a plurality of data flows and the processing arrangement of each are already determined. This embodiment relates to a processing arrangement for inserting a process corresponding to a new data flow without changing the processing arrangement before and after the insertion between processes of an arbitrary data flow in the above-described processing order.

図16のタイムチャート1601は再構成デバイスで行う処理順序が既に決められ、その処理配置も決められているタイムチャートである。タイムチャート1601ではデータフローAの処理1603後、データフローAの設定からデータフローCの設定へ変更する期間1604を経てデータフローCの処理1605を行っている。このタイムチャート1601のデータフローAとデータフローC間に新たにデータフローBを挿入したタイムチャートがタイムチャート1602である。データフローAの処理1603の後にデータフローAの設定からデータフローBの設定へ変更する期間1606を経て新たに挿入したデータフローBの処理1607が行われる。その後データフローBの設定からデータフローCの設定へ変更する期間1608を経てデータフローBの処理1605が行われる。この際データフローAとCの処理配置は変更せずにデータフローBの処理配置を決定するため、挿入する前後の既に処理配置済みのデータフロー間の設定変更量を考慮する。   A time chart 1601 in FIG. 16 is a time chart in which the processing order to be performed by the reconfigurable device is already determined and the processing arrangement is also determined. In the time chart 1601, after the processing 1603 of the data flow A, the processing 1605 of the data flow C is performed after a period 1604 of changing from the setting of the data flow A to the setting of the data flow C. The time chart 1602 is a time chart in which the data flow B is newly inserted between the data flow A and the data flow C of the time chart 1601. After the process 1603 of the data flow A, the process 1607 of the newly inserted data flow B is performed after a period 1606 of changing from the setting of the data flow A to the setting of the data flow B. Thereafter, the processing 1605 of the data flow B is performed after a period 1608 of changing from the setting of the data flow B to the setting of the data flow C. At this time, in order to determine the processing arrangement of the data flow B without changing the processing arrangement of the data flows A and C, the setting change amount between the data flows that have already been arranged before and after the insertion is considered.

図中の1609、1622、1631はそれぞれデータフローA、B、Cにおけるプロセッシングエレメントの配置例を示している。本実施形態ではデータフローAおよびCは処理配置済みであり、データフローBの処理配置を行う。なお配置例1609、1622、1631中のプロセッシングエレメント1610、1611、1612、1613はそれぞれ同じプロセッシングエレメントを指す。   Reference numerals 1609, 1622, and 1631 in the figure indicate examples of arrangement of processing elements in the data flows A, B, and C, respectively. In this embodiment, the data flows A and C have already been processed and the data flow B is processed. The processing elements 1610, 1611, 1612, and 1613 in the arrangement examples 1609, 1622, and 1631 indicate the same processing element.

設定1614、1615、1616、1617は、それぞれデータフローAの配置におけるプロセッシングエレメント1610、1611、1612、1613への設定を表している。設定1623、1624、1625、1626は、それぞれデータフローBの配置におけるプロセッシングエレメント1610、1611、1612、1613への設定を表している。設定1632、1633、1634、1635は、それぞれデータフローCの配置におけるプロセッシングエレメント1610、1611、1612、1613への設定を表している。ここで上記の設定とは実施形態1と同様に、図6で説明した設定のことである。本実施形態では、データフローA、B間、B、C間、C、A間のプロセッシングエレメント1610、1611、1612、1613でデータフロー変更に必要な合計の設定変更数と各プロセッシングエレメント間接続の合計距離に注目する。   Settings 1614, 1615, 1616, and 1617 represent settings for the processing elements 1610, 1611, 1612, and 1613 in the arrangement of the data flow A, respectively. Settings 1623, 1624, 1625, and 1626 represent settings for the processing elements 1610, 1611, 1612, and 1613 in the arrangement of the data flow B, respectively. Settings 1632, 1633, 1634, and 1635 represent settings for the processing elements 1610, 1611, 1612, and 1613 in the arrangement of the data flow C, respectively. Here, the above setting is the setting described with reference to FIG. 6 as in the first embodiment. In the present embodiment, the total number of setting changes necessary for data flow change in the processing elements 1610, 1611, 1612, and 1613 between the data flows A and B, between B and C, and between C and A, and the connection between the processing elements. Pay attention to the total distance.

なお、新たに挿入するデータフローBに伴う、データフローA、B間でのプロセッシングエレメント1610、1611、1612、1613の設定変更は1639で表している。またデータフローB、C間でのプロセッシングエレメント1610、1611、1612、1613の設定変更は1640で表している。   The setting change of the processing elements 1610, 1611, 1612, and 1613 between the data flows A and B accompanying the newly inserted data flow B is represented by 1639. A change in the settings of the processing elements 1610, 1611, 1612, and 1613 between the data flows B and C is represented by 1640.

本実施形態と第1の実施形態との違いは、複数の処理配置済みのデータフローを参照して、対象となるデータフローの処理配置を行う点である。   The difference between the present embodiment and the first embodiment is that the processing arrangement of the target data flow is performed with reference to a plurality of data flows that have already been arranged.

図14のステップS1403で行う処理配置は、データフローBのみが対象である。データフローA、Cは処理配置済みであり、処理配置変更は行わない。図14のステップS1406では第一の実施形態に対して以下の違いがある。   The processing arrangement performed in step S1403 in FIG. 14 is only for the data flow B. Data flows A and C are already processed and are not changed. In step S1406 of FIG. 14, there are the following differences from the first embodiment.

処理配置済みのデータフローi0における、設定値ui0,j,kと、処理配置対象のデータフローi1における、同じ位置に配置されたプロセッシングエレメントの設定値ui1,j,kの値が一致していなければα3を設定変更数に加える。また、処理配置対象のデータフローi1における、設定値ui1,j,kと、処理配置済みのデータフローi2における、同じ位置に配置されたプロセッシングエレメントの設定値ui2,j,kの値が一致していなければβ3を設定変更数に加える。上述の値が一致していなければ何も加えない。 The set value u i0, j, k in the data flow i0 that has already been processed matches the set value u i1, j, k of the processing element that is placed at the same position in the data flow i1 to be processed. If not, add α 3 to the number of setting changes. Further, the setting value u i1, j, k in the data flow i1 to be processed and the setting value u i2, j, k of the processing element arranged at the same position in the data flow i2 that has been processed are If they do not match, β 3 is added to the number of setting changes. If the above values do not match, nothing is added.

ここで、あるプロセッシングエレメントrに配置されているデータフローi0のノードj0をj0rと表し、データフローi1のノードj1をj1rと表し、データフローi2のノードj2をj2rと表す。ここでrは前述したとおり、各プロセッシングエレメントを表すインデックスである。 Here, the node j0 of the data flow i0 arranged in a certain processing element r is represented as j0 r , the node j1 of the data flow i1 is represented as j1 r, and the node j2 of the data flow i2 is represented as j2 r . Here, r is an index representing each processing element as described above.

データフローが切り替わる際の同じ位置に配置されているノードの処理内容の変更に必要な設定変更数は以下の式で求めることができる。   The number of setting changes necessary for changing the processing contents of the nodes arranged at the same position when the data flow is switched can be obtained by the following expression.

Figure 2012185803
Figure 2012185803

またα3、β3は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。 Α 3 and β 3 are normally 1 respectively, but the weight can be changed for each address where each setting is stored according to the configuration of the configuration memory of the processing element. In addition, in order to give priority to the switching time for each data flow, it is possible to weight each data flow.

また距離については以下の違いがある。図16で示した例では、距離は、距離1618、1619、1620、1621、1627、1628、1629、1630、1636、1637、1638の合計量として表される。図中のプロセッシングエレメントの配置は一例を示してだけであり、配置を変更することでこれらの距離合計量も変わる。配置後にその配置と、データフローのデータ入出力に基づいて以下の式で距離を表すことが可能である。   There are the following differences in distance. In the example illustrated in FIG. 16, the distance is expressed as a total amount of the distances 1618, 1619, 1620, 1621, 1627, 1628, 1629, 1630, 1636, 1637, and 1638. The arrangement of the processing elements in the drawing is only an example, and the total amount of these distances is changed by changing the arrangement. The distance can be expressed by the following expression based on the arrangement and the data input / output of the data flow after the arrangement.

Figure 2012185803
Figure 2012185803

ここでκ3l、λ3lは、データフロー毎のノード間の距離などのアーキテクチャによって重みを一律ないしは別々に変更することも可能である。新たにデータフロー挿入する場合に、挿入前後のデータフローとの設定変更数の削減に関する効果が得られる。 Here, the weights of κ3 l and λ3 l can be changed uniformly or separately depending on the architecture such as the distance between nodes for each data flow. When a new data flow is inserted, the effect of reducing the number of setting changes with the data flow before and after the insertion can be obtained.

次に、本発明の第4の実施形態について説明する。第4の実施形態に係る処理のタイムチャートおよび、処理配置の概要を図17に示す。本実施形態では、ある基準となるデータフローの処理後、その結果に応じて次に行われるデータフローが異なる場合の処理配置に関する実施形態である。   Next, a fourth embodiment of the present invention will be described. FIG. 17 shows a time chart of processing according to the fourth embodiment and an outline of processing arrangement. In the present embodiment, after processing a certain standard data flow, an embodiment relating to processing arrangement in the case where the data flow to be performed next differs depending on the result.

図17のタイムチャート1701は基準となるデータフローXの処理を期間1702で行った後、その結果に応じて、データフローXからデータフローAかBかCへの設定変更を期間1703で行う。設定完了後、データフローAかBかCの処理が期間1704で行われ、再度基準となるデータフローXの処理を行うため期間1705でデータフローAかBかCからデータフローXへと設定変更を行う。上記順序が繰り返されが、データフローAかBかCのどれが行われるかはデータフローXの結果に応じて変わる。   In the time chart 1701 of FIG. 17, the processing of the reference data flow X is performed in the period 1702, and the setting change from the data flow X to the data flow A, B, or C is performed in the period 1703 according to the result. After the setting is completed, the data flow A, B, or C is processed in the period 1704, and the setting is changed from the data flow A, B, or C to the data flow X in the period 1705 in order to perform the reference data flow X again. I do. The above sequence is repeated, and whether data flow A, B, or C is performed varies depending on the result of data flow X.

図中の1706、1719、1728、1737はそれぞれデータフローX、A、B、Cにおける配置例を示している。本実施形態では、データフローX、A、B、Cの全てのデータフローの処理配置を行う。なお配置例1706、1719、1728、1737中のプロセッシングエレメント1707、1708、1709、1710はそれぞれ同じプロセッシングエレメントを指す。   In the figure, reference numerals 1706, 1719, 1728, and 1737 indicate arrangement examples in the data flows X, A, B, and C, respectively. In this embodiment, processing arrangement of all data flows X, A, B, and C is performed. The processing elements 1707, 1708, 1709, and 1710 in the arrangement examples 1706, 1719, 1728, and 1737 indicate the same processing elements.

設定1711、1712、1713、1714は、それぞれデータフローXの配置におけるプロセッシングエレメント1707、1708、1709、1710への設定を表している。設定1720、1721、1722、1723は、それぞれデータフローAの配置におけるプロセッシングエレメント1707、1708、1709、1710への設定を表している。設定1729、1730、1731、1732は、それぞれデータフローBの配置におけるプロセッシングエレメント1707、1708、1709、1710への設定を表している。設定1738、1739、1740、1741は、それぞれデータフローCの配置におけるプロセッシングエレメント1707、1708、1709、1710への設定を表している。ここで上記の設定とは第1の実施形態と同様に、図6で説明した設定のことである。   Settings 1711, 1712, 1713, and 1714 represent settings for the processing elements 1707, 1708, 1709, and 1710 in the arrangement of the data flow X, respectively. Settings 1720, 1721, 1722, and 1723 represent settings for the processing elements 1707, 1708, 1709, and 1710 in the arrangement of the data flow A, respectively. Settings 1729, 1730, 1731, and 1732 represent settings for the processing elements 1707, 1708, 1709, and 1710 in the arrangement of the data flow B, respectively. Settings 1738, 1739, 1740, and 1741 represent settings for the processing elements 1707, 1708, 1709, and 1710 in the arrangement of the data flow C, respectively. Here, the above setting is the setting described with reference to FIG. 6 as in the first embodiment.

本実施形態では具体的には、データフローX、A、B、Cの処理配置を行う。処理配置に際して、データフローX、A間、X、B間、X、C間のプロセッシングエレメント1707、1708、1709、1710でデータフロー変更に必要な設定変更数の合計数と各プロセッシングエレメント間接続の合計距離に注目する。   Specifically, in this embodiment, processing arrangement of the data flows X, A, B, and C is performed. At the time of processing arrangement, the total number of setting changes required for the data flow change in the processing elements 1707, 1708, 1709, and 1710 between the data flows X and A, between X and B, and between X and C and the connection between the processing elements Pay attention to the total distance.

なお、データフローX、A間でのプロセッシングエレメント1707、1708、1709、1710の設定変更は1745で表している。データフローX、B間でのプロセッシングエレメント1707、1708、1709、1710の設定変更は1746で表している。   Note that the setting change of the processing elements 1707, 1708, 1709, and 1710 between the data flows X and A is represented by 1745. A setting change of the processing elements 1707, 1708, 1709, and 1710 between the data flows X and B is represented by 1746.

データフローX、C間でのプロセッシングエレメント1707、1708、1709、1710の設定変更は1747で表している。   A setting change of the processing elements 1707, 1708, 1709, and 1710 between the data flows X and C is represented by 1747.

本実施形態と第1の実施形態との違いは、処理順序に分岐があり、分岐先と分岐元間のデータフローに対して処理配置を行う点にある。   The difference between this embodiment and the first embodiment is that there is a branch in the processing order, and processing is arranged for the data flow between the branch destination and the branch source.

図13のステップS1301では、複数のデータフローを入力すると同時に、部分的に任意の順序関係を含んだ処理順序を入力する。ここで部分的な任意とは本実施形態では実行順序に分岐があり、分岐元と分岐先の実行順序のみ任意であるということを指す。   In step S1301 in FIG. 13, a plurality of data flows are input and a processing order partially including an arbitrary order relation is input. Here, “partial arbitrary” means that there is a branch in the execution order in this embodiment, and only the execution order of the branch source and the branch destination is arbitrary.

図14のステップS1403で行う処理配置は、処理配置対象であるデータフローX、A、B、Cの全てに対して処理配置を行う。本実施形態では全てのデータフローを処理配置対象として扱う例を示しているが、それに限ったものではない。本実施形態は処理順序に注目したものであり、少なくとも一つのデータフローが、既に処理配置済みの場合には、それ以外のデータフローの処理配置を行うこととなる。   The processing placement performed in step S1403 in FIG. 14 performs processing placement for all of the data flows X, A, B, and C that are the processing placement targets. In the present embodiment, an example is shown in which all data flows are handled as processing arrangement targets, but the present invention is not limited to this. In this embodiment, attention is paid to the processing order. When at least one data flow has already been processed and arranged, the processing arrangement of other data flows is performed.

図14のステップS1406では第1の実施形態に対して以下の違いがある。処理配置対象のデータフローi0における、設定値ui0,j,kと、処理配置対象のデータフローi1における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui1,j,kの値が一致していなければα4を設定変更数に加える。また、処理配置対象のデータフローi0における、設定値ui0,j,kと、処理配置対象のデータフローi2における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui2,j,kの値が一致していなければβ4を設定変更数に加える。さらに、処理配置対象のデータフローi0における、設定値ui0,j,kと、処理配置対象のデータフローi3における、同じ位置に配置されたプロセッシングエレメントの同じ種類の設定値ui3,j,kの値が一致していなければγ4を設定変更数に加える。上述以外で、設定値が一致している場合は何も加えない。 In step S1406 of FIG. 14, there are the following differences from the first embodiment. The value of the setting value u i0, j, k in the data flow i0 to be processed and the setting value u i1, j, k of the same type of processing element arranged at the same position in the data flow i1 to be processed If does not match, add α 4 to the number of setting changes. In addition, the setting value u i0, j, k in the data flow i0 to be processed and the setting value u i2, j, k of the same type of processing elements arranged at the same position in the data flow i2 to be processed. If the values do not match, β 4 is added to the setting change number. Further, the setting value u i0, j, k in the data flow i0 to be processed and the setting value u i3, j, k of the same type of processing elements arranged at the same position in the data flow i3 to be processed. If the values do not match, γ 4 is added to the number of setting changes. Other than the above, nothing is added when the set values match.

ここで、あるプロセッシングエレメントrに配置されているデータフローi0のノードj0をj0rと表し、データフローi1のノードj1をj1rと表し、データフローi2のノードj2をj2rと表し、データフローi3のノードj3をj3rと表す。ここでrは前述したとおり、各プロセッシングエレメントを表すインデックスである。 Here, the node j0 of the data flow i0 arranged in a certain processing element r is represented as j0 r , the node j1 of the data flow i1 is represented as j1 r , the node j2 of the data flow i2 is represented as j2 r, and the data flow. The node j3 of i3 is represented as j3 r . Here, r is an index representing each processing element as described above.

データフローが切り替わる際の同じ位置に配置されているノードの処理内容の変更に必要な設定変更数は以下の式で求めることができる。   The number of setting changes necessary for changing the processing contents of the nodes arranged at the same position when the data flow is switched can be obtained by the following expression.

Figure 2012185803
Figure 2012185803

ここでα4、β4、γ4は通常それぞれ1であるが、プロセッシングエレメントのコンフィギュレーションメモリの構造に応じて、各設定が格納されているアドレス毎に重み付けを変更することも可能としている。またデータフロー毎に切り替え時間の優先度をつけるためにデータフロー毎に重みづけることも可能としている。 Here, α 4 , β 4 , and γ 4 are normally 1 respectively, but the weight can be changed for each address in which each setting is stored according to the configuration of the configuration memory of the processing element. In addition, in order to give priority to the switching time for each data flow, it is possible to weight each data flow.

また距離については以下の違いがある。図17で示した例では、距離は、距離1715、1716、1717、1718、1724、1725、1726、1727、1733、1734、1735、1736、1742、1743、1744の合計量として表される。図中のプロセッシングエレメントの配置は一例を示してだけであり、配置を変更することでこれらの距離合計量も変わる。配置後にその配置と、データフローのデータ入出力に基づいて以下の式で距離を表すことが可能である。   There are the following differences in distance. In the example shown in FIG. 17, the distance is expressed as a total amount of the distances 1715, 1716, 1717, 1718, 1724, 1725, 1726, 1727, 1733, 1734, 1735, 1736, 1742, 1743, 1744. The arrangement of the processing elements in the drawing is only an example, and the total amount of these distances is changed by changing the arrangement. The distance can be expressed by the following expression based on the arrangement and the data input / output of the data flow after the arrangement.

Figure 2012185803
Figure 2012185803

ここで、κ4i,l、λ4i,lは、データフロー毎のノード間の距離などのアーキテクチャによって重みを一律ないしは別々に変更することも可能である。本実施形態により、複数のデータフローを順々に行う上で、その実行順序に分岐がある場合でも、分岐元となるデータフローと分岐先となる複数の他のデータフローを考慮することで、設定変更数削減効果が得られる。 Here, the weights of κ4 i, l and λ4 i, l can be changed uniformly or separately depending on the architecture such as the distance between nodes for each data flow. According to this embodiment, when performing a plurality of data flows in order, even if there is a branch in the execution order, by considering a data flow that is a branch source and a plurality of other data flows that are a branch destination, The effect of reducing the number of setting changes can be obtained.

次に、本発明の第5の実施形態について説明する。第5の実施形態に係るデータフローと処理配置制限方法に関する概要を図18に示す。処理配置問題は一般的に難しく解算出のための時間が大きくかかる場合が多い。本発明のように複数のデータフローを同時に配置させる場合はさらに問題が大きくなる。そのため本実施形態では処理の配置可能範囲を制限することで効果的に解算出時間を短縮する。   Next, a fifth embodiment of the present invention will be described. FIG. 18 shows an outline of the data flow and the processing arrangement restriction method according to the fifth embodiment. The processing placement problem is generally difficult and often takes a long time to calculate a solution. The problem is further increased when a plurality of data flows are arranged simultaneously as in the present invention. Therefore, in this embodiment, the solution calculation time is effectively shortened by limiting the range in which processing can be arranged.

データフロー1819は複数の処理に対応するノード1801〜1818で構成されている。また1826はプロセッシングエレメントアレイに対する入力装置を1820、出力装置を1821とし、それらの間にプロセッシングエレメントアレイがある構成となっている。   The data flow 1819 includes nodes 1801 to 1818 corresponding to a plurality of processes. Reference numeral 1826 denotes an input device 1820 and an output device 1821 for the processing element array, and the processing element array is between them.

本実施形態では、これらをデータフロー1819の処理を配置モデル1201に配置させる際、データフローの深さ方向とプロセッシングエレメントアレイへの入出力の位置を対応させることで解空間を効率的に狭める。具体的にはノード1801から1804は1821で示した範囲のみ配置可能と設定する。また1805から1810は1822で示した範囲のみ配置可能と設定する。また1811から1814は1822で示した範囲のみ配置可能と設定する。また1815から1818は1823で示した範囲のみ配置可能と設定する。   In this embodiment, when the processing of the data flow 1819 is arranged in the arrangement model 1201, the solution space is effectively narrowed by associating the depth direction of the data flow with the input / output positions to the processing element array. Specifically, the nodes 1801 to 1804 are set so that only the range indicated by 1821 can be arranged. Further, 1805 to 1810 are set such that only the range indicated by 1822 can be arranged. 1811 to 1814 are set so that only the range indicated by 1822 can be arranged. 1815 to 1818 are set such that only the range indicated by 1823 can be arranged.

これらの制限は図14のステップS1402で入力することを想定している。本実施形態では配置可能範囲はデータフローの深さとプロセッシングエレメントアレイの入出力の方向に対応付けさせたが、それに限るものではない。   These restrictions are assumed to be input in step S1402 of FIG. In this embodiment, the possible arrangement range is associated with the depth of the data flow and the input / output direction of the processing element array, but is not limited thereto.

上述した実施形態では、ユースケース別に各々の処理配置方法について述べたが、本発明はこれらの方法の組み合わせでも良い。また、再構成デバイスの構成要素としてプロセッシングエレメントを説明したが、これに限るものではなく、LUTや、それとの組み合わせでも良い。また、設定は、実施形態で示した設定に限るものではなく、LUTベースの再構成デバイスで使用される設定でも良い。また、実施形態では入力するデータフロー全てに対して処理配置対象としたが、データフローの処理配置対象範囲を指定することで、データフローの一部のみに対して処理配置を行っても良い。また、実施形態ではプロセッシングエレメント数はデータフロー間で同じとしているが、処理を配置するプロセッシングエレメント数が異なっても良い。また、実施形態で示した、距離合計値が少なくなるように記載しているが、各距離の最大値が小さくなるように配置を決定しても良い。また、各距離の平均値が少なくなるように配置を決定しても良い。   In the above-described embodiment, each processing arrangement method is described for each use case, but the present invention may be a combination of these methods. Further, although the processing element has been described as a component of the reconfigurable device, the present invention is not limited to this, and an LUT or a combination thereof may be used. Further, the setting is not limited to the setting shown in the embodiment, and may be a setting used in an LUT-based reconfiguration device. In the embodiment, the processing arrangement target is set for all the input data flows. However, the processing arrangement may be performed for only a part of the data flow by specifying the processing arrangement target range of the data flow. In the embodiment, the number of processing elements is the same between data flows, but the number of processing elements in which processing is arranged may be different. Further, although the description is made so that the total distance value shown in the embodiment is small, the arrangement may be determined so that the maximum value of each distance is small. Further, the arrangement may be determined so that the average value of each distance is reduced.

上述した実施形態ではプロセッシングエレメントは格子状に均一に配置され、それぞれのプロセッシングエレメント間の接続距離は一定を前提に記載したが、これに限るものではない。プロセッシングエレメントの接続形態が例えば木構造のように接続されている場合はそれぞれの距離は、木構造に応じて重みづけても良い。つまり、プロセッシングエレメントの接続形態に応じてそれぞれの距離を重みづけても良い。   In the above-described embodiment, the processing elements are uniformly arranged in a lattice shape, and the connection distance between the processing elements is described as being constant. However, the present invention is not limited to this. When processing elements are connected in a manner such as a tree structure, the distances may be weighted according to the tree structure. That is, each distance may be weighted according to the connection form of the processing elements.

また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。   The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

Claims (6)

複数の構成要素で構成される再構成デバイスに対し、データフローの各処理を行う構成要素を決定するための処理配置方法であって、
少なくとも二つの異なるデータフローと前記データフローの処理順序を入力する入力ステップと、
再構成デバイスの構成要素の制約を入力する制約ステップと、
前記データフローに応じた、前記再構成に必要な設定変更数と前記データフローのデータ入出力の依存関係に基づく構成要素間の距離とを用い、構成要素の配置を決めることで、要求される処理をどの構成要素で実行させるかを決定する決定ステップとを有することを特徴とする処理配置方法。
A processing arrangement method for determining a component that performs each process of data flow for a reconfigurable device composed of a plurality of components,
An input step for inputting at least two different data flows and a processing order of the data flows;
A constraint step for entering constraints on the components of the reconfigurable device;
Required by determining the arrangement of the components using the number of setting changes necessary for the reconfiguration according to the data flow and the distance between the components based on the data input / output dependency of the data flow. And a determination step for determining which component causes the process to be executed.
前記制約は、データフローの構成と再構成デバイスの構成に合わせてデータフロー内の各処理ごとに配置可能範囲を限定する制約を含むことを特徴とする請求項1に記載の処理配置方法。   The processing arrangement method according to claim 1, wherein the restriction includes a restriction that limits an arrangement possible range for each process in the data flow in accordance with a data flow configuration and a reconfiguration device configuration. 前記設定変更数は、データフロー毎あるいは前記構成要素の処理内容を決定する設定に重み付けられることを特徴とする請求項1に記載の処理配置方法。   2. The processing arrangement method according to claim 1, wherein the setting change number is weighted by a setting for determining a processing content of each constituent element or each data flow. 前記構成要素間の接続の距離は前記構成要素に重み付けられることを特徴とする請求項1に記載の処理配置方法。   The processing arrangement method according to claim 1, wherein a distance of connection between the components is weighted to the components. 複数の構成要素で構成される再構成デバイスに対し、データフローの各処理を行う構成要素を決定するための処理配置方法をコンピュータに実行させるためのプログラムであって、
少なくとも二つの異なるデータフローと前記データフローの処理順序を入力する入力ステップと、
再構成デバイスの構成要素の制約を入力する制約ステップと、
前記データフローに応じた、前記再構成に必要な設定変更数と前記データフローのデータ入出力の依存関係に基づく構成要素間の距離とを用い、構成要素の配置を決めることで、要求される処理をどの構成要素で実行させるかを決定する決定ステップとをコンピュータに実行させるためのプログラム。
A program for causing a computer to execute a processing arrangement method for determining a component for performing each process of data flow for a reconfigurable device including a plurality of components,
An input step for inputting at least two different data flows and a processing order of the data flows;
A constraint step for entering constraints on the components of the reconfigurable device;
Required by determining the arrangement of the components using the number of setting changes necessary for the reconfiguration according to the data flow and the distance between the components based on the data input / output dependency of the data flow. A program for causing a computer to execute a determination step for determining which component causes a process to be executed.
請求項1に記載の処理配置方法によって生成された設定情報に基づいて動作する再構成デバイス。   A reconfigurable device that operates based on setting information generated by the processing arrangement method according to claim 1.
JP2012003035A 2011-02-08 2012-01-11 Processing arrangement method and program Active JP5907607B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012003035A JP5907607B2 (en) 2011-02-16 2012-01-11 Processing arrangement method and program
US13/354,735 US9116751B2 (en) 2011-02-08 2012-01-20 Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
CN201210027897.8A CN102693207B (en) 2011-02-08 2012-02-08 Reconfigurable device and method, information processing apparatus, and control method therefor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011031220 2011-02-16
JP2011031220 2011-02-16
JP2012003035A JP5907607B2 (en) 2011-02-16 2012-01-11 Processing arrangement method and program

Publications (2)

Publication Number Publication Date
JP2012185803A true JP2012185803A (en) 2012-09-27
JP5907607B2 JP5907607B2 (en) 2016-04-26

Family

ID=47015811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012003035A Active JP5907607B2 (en) 2011-02-08 2012-01-11 Processing arrangement method and program

Country Status (1)

Country Link
JP (1) JP5907607B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248114A (en) * 2011-05-30 2012-12-13 Canon Inc Information processing apparatus, method of controlling the same, and program
WO2018211349A1 (en) * 2017-05-19 2018-11-22 株式会社半導体エネルギー研究所 Semiconductor device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249904A (en) * 1997-12-17 1999-09-17 Hewlett Packard Co <Hp> Compiling method
JP2006004345A (en) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd Dataflow graph processing method, reconfigurable circuit, and processing apparatus
JP2007058571A (en) * 2005-08-24 2007-03-08 Fujitsu Ltd Circuit and circuit connection method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249904A (en) * 1997-12-17 1999-09-17 Hewlett Packard Co <Hp> Compiling method
JP2006004345A (en) * 2004-06-21 2006-01-05 Sanyo Electric Co Ltd Dataflow graph processing method, reconfigurable circuit, and processing apparatus
JP2007058571A (en) * 2005-08-24 2007-03-08 Fujitsu Ltd Circuit and circuit connection method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248114A (en) * 2011-05-30 2012-12-13 Canon Inc Information processing apparatus, method of controlling the same, and program
WO2018211349A1 (en) * 2017-05-19 2018-11-22 株式会社半導体エネルギー研究所 Semiconductor device
JPWO2018211349A1 (en) * 2017-05-19 2020-07-02 株式会社半導体エネルギー研究所 Semiconductor device
US11314484B2 (en) 2017-05-19 2022-04-26 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device comprising operation circuits and switch circuits
JP7127018B2 (en) 2017-05-19 2022-08-29 株式会社半導体エネルギー研究所 Semiconductor device and integrated circuit
JP2022176964A (en) * 2017-05-19 2022-11-30 株式会社半導体エネルギー研究所 Semiconductor device
JP7289976B2 (en) 2017-05-19 2023-06-12 株式会社半導体エネルギー研究所 semiconductor equipment

Also Published As

Publication number Publication date
JP5907607B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
TWI803663B (en) A computing device and computing method
KR102544597B1 (en) Methods and systems for simulating structural behaviors of reinforced concrete in finite element analysis
JPWO2006046711A1 (en) Data processing apparatus having reconfigurable logic circuit
JP5798378B2 (en) Apparatus, processing method, and program
US20190057060A1 (en) Reconfigurable fabric data routing
CN106095563B (en) Flexible physical function and virtual function mapping
CN103914433B (en) For the system and method for factorization square matrix again on parallel processor
CN109167595A (en) Implement the method and apparatus of peripheral components on programmable circuit using partial reconfiguration
US9116751B2 (en) Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
KR102539571B1 (en) Network-on-chip data processing method and device
KR102539572B1 (en) Network-on-chip data processing method and device
US20190156245A1 (en) Platform as a service cloud server and machine learning data processing method thereof
WO2023022851A1 (en) Data storage during loop execution in a reconfigurable compute fabric
WO2023022906A1 (en) Tile-based result buffering in memory-compute systems
JP5907607B2 (en) Processing arrangement method and program
WO2018080735A2 (en) Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect
JP5832311B2 (en) Reconfiguration device, process allocation method, and program
US9910810B1 (en) Multiphase I/O for processor-based emulation system
KR102074387B1 (en) Method of self-adaptive design of embedded software
JP4664724B2 (en) Semiconductor integrated circuit device and semiconductor integrated circuit device design apparatus
WO2023050807A1 (en) Data processing method, apparatus, and system, electronic device, and storage medium
CN117795496A (en) Parallel matrix operations in reconfigurable computing fabrics
KR102539574B1 (en) Network-on-chip data processing method and device
KR102539573B1 (en) Network-on-chip data processing method and device
US20210133579A1 (en) Neural network instruction streaming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160201

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: 20160223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160318

R151 Written notification of patent or utility model registration

Ref document number: 5907607

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151