JP2016103240A - Data processor and data processing method - Google Patents

Data processor and data processing method Download PDF

Info

Publication number
JP2016103240A
JP2016103240A JP2014242438A JP2014242438A JP2016103240A JP 2016103240 A JP2016103240 A JP 2016103240A JP 2014242438 A JP2014242438 A JP 2014242438A JP 2014242438 A JP2014242438 A JP 2014242438A JP 2016103240 A JP2016103240 A JP 2016103240A
Authority
JP
Japan
Prior art keywords
task
unit
circuit block
configuration information
data processing
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.)
Pending
Application number
JP2014242438A
Other languages
Japanese (ja)
Inventor
茂雄 河岡
Shigeo Kawaoka
茂雄 河岡
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 JP2014242438A priority Critical patent/JP2016103240A/en
Publication of JP2016103240A publication Critical patent/JP2016103240A/en
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

  • Advance Control (AREA)
  • Power Sources (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data processor capable of process mapping to plural processor elements (PE) in a dynamic reconfiguration circuit constituted of the plural PEs having a power source shut-off mechanism to reduce leakage of electric power, and a data processing method.SOLUTION: When assigning processing to a computing unit 108, a task assignment section 104 assigns data processing to the computing unit 108 in circuit blocks 107a and 107b to reduce the period of time to supply the power source to the circuit blocks 107a to 107b as a power control area. The configuration information generation section 106 generates a piece of configuration information according to the assigned result.SELECTED DRAWING: Figure 1

Description

本発明は、複数の演算要素で構成される動的再構成可能なデータ処理装置に関する。   The present invention relates to a dynamically reconfigurable data processing apparatus including a plurality of arithmetic elements.

半導体製造技術の進歩による素子の微細化に伴い、膨大な数のトランジスタがLSI上に集積されるようになった。   With the miniaturization of devices due to advances in semiconductor manufacturing technology, an enormous number of transistors have been integrated on LSIs.

この微細化・トランジスタ数の増加に起因してスタティック電力が増加し、さらにプロセッサの高周波化に伴って動作時電力が増加するため、性能と低消費電力化のトレードオフが生じ、性能向上に限界が見え始めている。   The static power increases due to this miniaturization and the increase in the number of transistors, and further, the operating power increases as the frequency of the processor increases. Therefore, there is a trade-off between performance and low power consumption, which limits performance improvement. Is starting to appear.

そこで、さらなる性能向上を実現する手段として、CPU、DSP、単体の演算器、もしくは演算ユニットなどのプロセッサエレメント(以下、PEとする)をLSI上に複数搭載させたアレイ型演算装置が注目されている。これは複数のPEを用いて処理を並列で行うことで、プロセスの微細化による動作周波数の向上が従来ほど見込めない状況であっても、高い演算性能を得ることができるためである。   Therefore, as means for realizing further performance improvement, an array-type arithmetic unit in which a plurality of processor elements (hereinafter referred to as PEs) such as a CPU, a DSP, a single arithmetic unit, or an arithmetic unit are mounted on an LSI attracts attention. Yes. This is because, by performing processing in parallel using a plurality of PEs, high calculation performance can be obtained even in a situation where improvement in operating frequency due to process miniaturization cannot be expected as in the past.

しかしながら、今後、大規模化・集積化が進むことによって搭載するPE数を増やし理論性能を向上させることができるが、同時に増大する消費電力を抑制する手段・対策を講じなければ、性能向上と省電力化を両立させることができない。   However, the theoretical performance can be improved by increasing the number of PEs to be installed in the future as scale-up / integration progresses. However, if measures and measures for suppressing the increased power consumption are not taken at the same time, performance improvement and saving will be avoided. Electricity cannot be achieved at the same time.

ここで、機能動作により消費するダイナミック電力と、トランジスタに電源を供給するだけで生じるスタティック電力の省電力化対策について述べる。   Here, a description will be given of power saving measures for dynamic power consumed by functional operation and static power generated simply by supplying power to the transistor.

ダイナミック電力は、信号変化に伴い駆動する寄生容量の充放電で流れる電流と、貫通電流のようなトランジスタのスイッチング時に流れる電流のために消費される電力である。従って、機能動作に支障の無い範囲で信号変化を抑えるとダイナミック電力を削減することが出来る。このような原理に基づく代表的な省電力化の手法としてクロックゲーティングがあり、一般に広く用いられている。   The dynamic power is a power consumed for a current that flows due to charging / discharging of a parasitic capacitance that is driven in accordance with a signal change, and a current that flows when a transistor is switched, such as a through current. Therefore, dynamic power can be reduced by suppressing signal changes within a range that does not hinder functional operation. As a typical power saving technique based on such a principle, there is clock gating, which is widely used.

一方、スタティック電力は、トランジスタの寄生容量に充電される電荷とリーク電流のために消費される電力である。プロセスの微細化に伴い寄生容量は削減する傾向があり、リーク電流は増加する傾向にある。特に、ポリシリコンのゲート酸化膜の薄膜化に伴い、一時期、リーク電流は指数関数的な増加傾向を示していた。このリーク電流を削減するにはトランジスタに供給する電圧を小さく制限するか、または、遮断してしまう方法が有効である。このためリーク電力削減を目的とした技術として、同一電源で駆動されるブロックの電源遮断が一般に広く用いられるようになった。半導体集積回路における電源遮断とは、電源遮断対象箇所への電源供給経路と電源をトランジスタで構成された電源スイッチを用いて接続し、必要に応じて導通と遮断を半導体集積回路内で切り替える技術である。現在では、材料や製造方法の改善によりリーク電流は以前のような指数関数的な増加傾向を示すことはなくなったが、依然、線形的な増加傾向を保っており、電源遮断はこれからも電力削減の手段として重要な位置を占める。なお、所望の領域内に配置された素子への電力の供給と遮断の制御が可能な集積回路上の一部分を電源制御領域と定義する。   On the other hand, static power is power consumed for charge and leakage current charged in the parasitic capacitance of the transistor. As the process becomes finer, the parasitic capacitance tends to be reduced, and the leakage current tends to increase. In particular, along with the reduction in the thickness of the polysilicon gate oxide film, the leak current has been increasing exponentially for a while. In order to reduce this leakage current, it is effective to limit the voltage supplied to the transistor to a small value or to cut it off. For this reason, as a technique aimed at reducing leakage power, power-off of blocks driven by the same power supply has been widely used. Power shut-off in a semiconductor integrated circuit is a technology that connects a power supply path to a power-off target location and a power source using a power switch composed of transistors, and switches between conduction and shut-off within the semiconductor integrated circuit as necessary. is there. At present, leakage current does not show an exponential increase due to improvements in materials and manufacturing methods, but it continues to maintain a linear increase, and power cuts will continue to reduce power consumption. Occupies an important position as a means of Note that a part on an integrated circuit capable of controlling power supply to and interruption of elements arranged in a desired region is defined as a power supply control region.

よって、大規模化したアレイ型演算装置においてもリーク電力を効率的に削減するために、この電源遮断技術が用いられる。   Therefore, this power-off technique is used in order to efficiently reduce the leakage power even in a large-scale array type arithmetic unit.

複数の電源制御領域を構成し、稼働していないPEを部分的に電源遮断するきめ細かい電源管理を行うことで消費電力を抑制させることが可能になる。   It is possible to suppress power consumption by configuring a plurality of power control areas and performing detailed power management in which a PE that is not in operation is partially powered off.

このような状況に対して、これまで動的再構成可能なアレイ型演算装置の消費電力を削減する方法が考えられてきた。   In order to cope with such a situation, a method for reducing the power consumption of an array-type arithmetic device that can be dynamically reconfigured has been considered.

例えば、従来はコンパイルしてPEにタスクを割り当てるときにタスク実行時間のデッドラインに合わせて周波数を最適化する方法が提案されている(特許文献1)。   For example, a method for optimizing the frequency according to the deadline of task execution time when compiling and assigning a task to a PE has been proposed (Patent Document 1).

特開2006−293768JP 2006-293768 A

しかしながら、従来の動的再構成回路では多種多様な分割形態で実装される電源制御領域を考慮して処理のマッピング制御をおこなっていない。そのため、従来の手法では処理時間に差があるタスクを電源制御領域内のPEにバラバラに割り当てられ、処理時間が長いタスクが完了するまで電源オフすることができなくなり、リーク電力を無駄に消費してしまう。特許文献1の方法は周波数を低減したぶんだけダイナミック電力を削減できるが、リーク電流のために消費される電力を削減できるものではない。   However, the conventional dynamic reconfiguration circuit does not perform the process mapping control in consideration of the power supply control area implemented in various divided forms. Therefore, in the conventional method, tasks with different processing times are assigned to PEs in the power control area separately, and it is impossible to turn off the power until a task with a long processing time is completed. End up. The method of Patent Document 1 can reduce the dynamic power by reducing the frequency, but cannot reduce the power consumed due to the leakage current.

このように従来の動的再構成回路では、プロセッサアレイへの処理マッピングは電源制御領域を考慮したものではないため、消費電力を削減する処理マッピングをおこなうことができない。   As described above, in the conventional dynamic reconfiguration circuit, the processing mapping to the processor array does not take the power control area into consideration, and therefore the processing mapping for reducing power consumption cannot be performed.

本発明は上記の課題に鑑みてなされたものである。すなわち、複数のPEで構成された動的再構成回路において、リーク電力を抑制するように当該PEへの処理のマッピングをおこなうデータ処理装置を提供することを目的とする。また、データ処理方法を提供することを目的とする。   The present invention has been made in view of the above problems. That is, an object of the present invention is to provide a data processing apparatus that performs mapping of processing to a PE so as to suppress leakage power in a dynamic reconfiguration circuit configured by a plurality of PEs. It is another object of the present invention to provide a data processing method.

上述の課題を解決するために、本発明に係るデータ処理装置は、
複数のデータ処理を並列に実行する複数の演算要素を含む複数の回路ブロックと、
前記複数の回路ブロックへの電源供給を個別に制御する電源制御手段と、
前記データ処理に関する情報を取得する処理情報取得手段と、
前記演算要素に関する情報を取得する演算要素情報取得手段と、
前記処理情報取得手段と演算要素情報取得手段で取得した情報に基づき、
回路ブロックに電源供給する時間が少なくなるように
回路ブロック内の演算要素にデータ処理を割り当てる処理割り当て手段と、
前記処理割り当て手段によって割り当てた処理を
回路ブロックが実行できるように構成情報を生成する手段と、
を有することを特徴とする。
In order to solve the above-described problem, a data processing apparatus according to the present invention provides:
A plurality of circuit blocks including a plurality of arithmetic elements for executing a plurality of data processing in parallel;
Power control means for individually controlling power supply to the plurality of circuit blocks;
Processing information acquisition means for acquiring information relating to the data processing;
Calculation element information acquisition means for acquiring information about the calculation element;
Based on the information acquired by the processing information acquisition means and the calculation element information acquisition means,
Processing allocation means for allocating data processing to arithmetic elements in the circuit block so that the time for supplying power to the circuit block is reduced;
Means for generating configuration information so that the circuit block can execute the process assigned by the process assigning means;
It is characterized by having.

本発明によれば、回路ブロックに電源供給する時間が少なくなるように回路ブロック内の演算器にデータ処理を割り当てることで、データ処理装置が消費するリーク電力を削減することができる。   According to the present invention, it is possible to reduce leakage power consumed by the data processing device by assigning data processing to the arithmetic units in the circuit block so that the time for supplying power to the circuit block is reduced.

実施形態1におけるデータ処理装置のブロック構成図1 is a block diagram of a data processing apparatus according to a first embodiment. データ処理装置に入力する構成情報の一例Example of configuration information input to data processing device 実施形態1における回路ブロックの内部構成Internal configuration of circuit block in embodiment 1 実施形態1における演算器の内部構成Internal configuration of computing unit in Embodiment 1 実施形態1におけるルータの内部構成Internal Configuration of Router in Embodiment 1 演算器情報取得部が保持する演算器情報の一例An example of computing unit information held by the computing unit information acquisition unit タスク情報取得部が保持するタスク情報の一例An example of task information held by the task information acquisition unit 実施形態1におけるタスク割り当ての動作を示すフローチャート1Flowchart 1 showing an operation of task assignment in the first embodiment タスク割り当て部が生成するテーブルの一例An example of a table generated by the task assignment unit 実施形態1におけるタスク割り当ての動作を示すフローチャート2Flowchart 2 showing the task assignment operation in the first embodiment 実施形態1におけるタスク割り当ての動作を示すフローチャート3Flowchart 3 showing the task assignment operation in the first embodiment 実施形態1におけるタスクの割り当ての動作を示す説明図1FIG. 1 is a diagram illustrating task assignment operations according to the first embodiment. 実施形態1におけるタスクの割り当ての動作を示す説明図2FIG. 2 is an explanatory diagram illustrating task assignment operations according to the first embodiment. 構成情報生成部が生成する構成情報の一例An example of configuration information generated by the configuration information generation unit 演算器・ルータのID設定の一例Example of ID setting for computing unit / router 構成情報生成装置のブロック構成図Block diagram of configuration information generator 半導体装置のブロック構成図Block diagram of semiconductor device 半導体装置のメモリ内部に格納する構成情報の配置例Example of arrangement of configuration information stored in memory of semiconductor device 実施形態2におけるデータ処理装置のブロック構成図Block diagram of a data processing apparatus according to the second embodiment 実施形態2におけるタスク割り当ての動作を示す説明図Explanatory drawing which shows the operation | movement of the task allocation in Embodiment 2. 実施形態3におけるタスク情報取得部が保持するタスク情報の一例An example of task information held by the task information acquisition unit in the third embodiment 実施形態3におけるタスク割り当て部が生成するテーブルの一例An example of a table generated by the task assignment unit in the third embodiment

[実施形態1]
以下、構成情報を入力として動作するデータ処理装置の実施形態を説明する。
[Embodiment 1]
Hereinafter, an embodiment of a data processing apparatus that operates with configuration information as an input will be described.

以下で説明するデータ処理装置は、構成情報を入力とし、構成情報に沿って演算処理の割り当てをおこなうものである。データ処理装置に入力する構成情報は、構成情報を生成する装置によって生成される。   A data processing apparatus described below receives configuration information and assigns arithmetic processing along the configuration information. The configuration information input to the data processing device is generated by a device that generates configuration information.

ここで述べる演算処理の割り当ては、タスクと、タスクを実行する演算器とを関連付けることを意味する。演算器はタスクを並列実行している。   The assignment of arithmetic processing described here means associating a task with an arithmetic unit that executes the task. The computing unit executes tasks in parallel.

<データ処理装置の構成と動作>
以下、データ処理装置の構成と動作を説明する。
<Configuration and operation of data processing apparatus>
Hereinafter, the configuration and operation of the data processing apparatus will be described.

図1は、本実施形態のデータ処理装置(100)の全体構成を表す図である。なおデータ処理装置(100)の構成は、本実施形態に限定するものではなく他の構成でも良い。   FIG. 1 is a diagram showing the overall configuration of the data processing apparatus (100) of the present embodiment. The configuration of the data processing apparatus (100) is not limited to this embodiment, and other configurations may be used.

図1のデータ処理装置(100)は、動的再構成回路(101)、電源制御手段(102)、タスク情報取得部(103)、タスク割り当て部(104)、演算器情報取得部(105)、構成情報生成部(106)で構成される。   1 includes a dynamic reconfiguration circuit (101), a power supply control means (102), a task information acquisition unit (103), a task allocation unit (104), and a calculator information acquisition unit (105). The configuration information generation unit (106).

動的再構成回路(101)は、複数の演算器(108)を含む複数の回路ブロック(107)からなる。演算器と演算要素は同義である。各演算器(108)と各ルータ(109)は結線(112)によって一方向に接続されている。結線(112)は、図1に示すように回路ブロック(107a)、回路ブロック(107b)に別々に設ける。   The dynamic reconfiguration circuit (101) includes a plurality of circuit blocks (107) including a plurality of arithmetic units (108). An arithmetic unit and an arithmetic element are synonymous. Each computing unit (108) and each router (109) are connected in one direction by connection (112). The connection (112) is provided separately in the circuit block (107a) and the circuit block (107b) as shown in FIG.

回路ブロック(107a)、回路ブロック(107b)は、演算器(108)とルータ(109)を含むブロックである。回路ブロック(107a)と回路ブロック(107b)の内部構成と動作は同じである。   The circuit block (107a) and the circuit block (107b) are blocks including an arithmetic unit (108) and a router (109). The internal configuration and operation of the circuit block (107a) and the circuit block (107b) are the same.

回路ブロック(107a)には、不図示の電源回路ブロックから電源電圧VDDが電源スイッチ(110)を介して供給されている。回路ブロック(107a)、回路ブロック(107b)は、それぞれ個別に電源遮断と電源供給を切り替えることができる。回路ブロック(107a)、回路ブロック(107b)には、電源遮断と電源供給を切り替えるための電源スイッチ(110)を接続する。   A power supply voltage VDD is supplied to a circuit block (107a) from a power supply circuit block (not shown) via a power switch (110). The circuit block (107a) and the circuit block (107b) can be individually switched between power cutoff and power supply. A power switch (110) for switching between power cutoff and power supply is connected to the circuit block (107a) and the circuit block (107b).

演算器情報取得部(105)は、タスク割り当て部(104)から演算器情報の送信を要求する信号を受信したときに、演算器情報をタスク割り当て部(104)に送信する。演算器情報には、演算器(108)が属している回路ブロックの識別番号(回路ブロックID)、演算器(108)が演算処理を実行中であるかを示すフラグ、および演算器(108)が実行しているタスクの識別番号(タスクID)が含まれる。また、演算器情報取得部(105)は、タスク割り当て部(104)から演算器IDを受信して、電源制御部(102)へ結線(115)を介して演算器IDに対応する回路ブロックIDを送信する。更に演算器情報取得部(105)は、演算器(108)からタスクの実行開始を通知する信号とタスクの実行完了を通知する信号を受信し、タスクIDをタスク情報取得部(103)へ送信する。   The arithmetic unit information acquisition unit (105) transmits the arithmetic unit information to the task allocation unit (104) when receiving a signal requesting transmission of the arithmetic unit information from the task allocation unit (104). The computing unit information includes an identification number (circuit block ID) of the circuit block to which the computing unit (108) belongs, a flag indicating whether the computing unit (108) is executing computation processing, and the computing unit (108). Includes the identification number (task ID) of the task being executed. The computing unit information acquisition unit (105) receives the computing unit ID from the task allocation unit (104) and connects to the power supply control unit (102) via the connection (115) to the circuit block ID corresponding to the computing unit ID. Send. Further, the computing unit information acquisition unit (105) receives from the computing unit (108) a signal for notifying start of task execution and a signal for notifying completion of task execution, and transmits a task ID to the task information acquisition unit (103). To do.

電源制御部(102)は、演算器情報取得部(105)から回路ブロックIDを受信した後、結線(117)を介して電源スイッチ(110)のオン・オフを切り替える。電源制御部(102)は、回路ブロックへの電源供給に充分な時間が経過した後、構成情報生成部(106)に結線(118)を介して回路ブロックへの電源供給が完了したことを通知する。   After receiving the circuit block ID from the computing unit information acquisition unit (105), the power control unit (102) switches the power switch (110) on and off via the connection (117). The power control unit (102) notifies the configuration information generation unit (106) that the power supply to the circuit block is completed via the connection (118) after a sufficient time for power supply to the circuit block has elapsed. To do.

タスク情報取得部(103)は、演算器情報取得部(105)からタスクIDを受信する。タスク情報取得部(103)は、タスク割り当て部(104)からタスクIDを受信したときに、受信したタスクIDに対応するタスクの処理開始時間と処理完了時間をタスク割り当て部(104)へ送信する。タスク情報には、タスクのID、タスクの処理開始時間、タスクの処理完了時間が含まれる。   The task information acquisition unit (103) receives the task ID from the computing unit information acquisition unit (105). When the task information acquisition unit (103) receives the task ID from the task allocation unit (104), the task information acquisition unit (103) transmits the processing start time and processing completion time of the task corresponding to the received task ID to the task allocation unit (104). . The task information includes a task ID, a task processing start time, and a task processing completion time.

タスク割り当て部(104)は、演算器情報取得部(105)へ演算器情報の送信を要求する信号を送信した後、演算器情報取得部(105)から演算器情報を受信する。またタスク割り当て部(104)は、タスク情報取得部(103)へタスク情報の送信を要求する信号を送信した後、タスク情報取得部(103)からタスク情報を受信する。その後、タスク割り当て部(104)は、演算器(108)へのタスク割り当てを変更して、割り当てを変更する前後の演算器IDを構成情報生成部(106)へ送信する。更に、タスク割り当て部(104)は、割り当てを変更する前後の演算器IDとタスクIDを演算器情報取得部(105)へ送信する。タスク割り当ての変更の詳細な動作については後述する。   The task assignment unit (104) receives the computing unit information from the computing unit information acquisition unit (105) after transmitting a signal requesting transmission of the computing unit information to the computing unit information acquisition unit (105). The task assignment unit (104) receives the task information from the task information acquisition unit (103) after transmitting a signal requesting transmission of the task information to the task information acquisition unit (103). Thereafter, the task assignment unit (104) changes the task assignment to the computing unit (108) and transmits the computing unit IDs before and after the assignment change to the configuration information generation unit (106). Furthermore, the task assignment unit (104) transmits the computing unit ID and the task ID before and after changing the allocation to the computing unit information acquisition unit (105). Details of the task assignment change will be described later.

構成情報生成部(106)は、データ処理装置(100)の外部へ構成情報(111)の送信を要求する信号を送信した後、データ処理装置(100)の外部から構成情報(111)を受信する。また、構成情報生成部(106)はタスク割り当て部(104)からタスク割り当てを変更する前と後の演算器IDを受信する。その後、構成情報生成部(106)は、構成情報(111)に含まれる演算器IDをタスク割り当て変更後の演算器IDに変更して、構成情報(111)を再生成する。   The configuration information generation unit (106) receives the configuration information (111) from outside the data processing device (100) after transmitting a signal requesting transmission of the configuration information (111) to the outside of the data processing device (100). To do. Further, the configuration information generation unit (106) receives the calculator IDs before and after the task allocation is changed from the task allocation unit (104). Thereafter, the configuration information generation unit (106) changes the computing unit ID included in the configuration information (111) to the computing unit ID after the task assignment change, and regenerates the configuration information (111).

構成情報生成部(106)は、電源制御部(102)から電源スイッチ(110)の切り替えが完了したことを通知された後、再生成した構成情報を動的再構成回路(101)に送信する。構成情報生成部(106)は回路ブロック内を一巡してきた構成情報(111)を受信した後、構成情報(111)の送信が完了したと判定する。   The configuration information generation unit (106) transmits the regenerated configuration information to the dynamic reconfiguration circuit (101) after being notified from the power control unit (102) that the switching of the power switch (110) has been completed. . The configuration information generation unit (106) determines that the transmission of the configuration information (111) is completed after receiving the configuration information (111) that has made a round in the circuit block.

動的再構成回路(101)は、構成情報生成部(106)から構成情報(111)を受信して、動的再構成回路(101)の動作設定をおこなう。その後、動的再構成回路(101)は、構成情報(111)を構成情報生成部(106)に送信する。動的再構成回路(101)の内部構成と動作については後述する。   The dynamic reconfiguration circuit (101) receives the configuration information (111) from the configuration information generation unit (106), and sets the operation of the dynamic reconfiguration circuit (101). Thereafter, the dynamic reconfiguration circuit (101) transmits the configuration information (111) to the configuration information generation unit (106). The internal configuration and operation of the dynamic reconfiguration circuit (101) will be described later.

<構成情報の説明>
ここで、図2は構成情報(111)の一例を示したものである。この構成情報(111)は、データ処理装置(100)の動的構成を規定するものである。
<Description of configuration information>
Here, FIG. 2 shows an example of the configuration information (111). This configuration information (111) defines the dynamic configuration of the data processing device (100).

図2(a)に示すように、構成情報(111)は、演算器の設定データ(201)とルータの設定データ(202)を組み合わせた情報である。演算器と演算要素は同義であるので、図面には演算器を演算要素と記載している。図2(a)は、演算器の設定データ(201)がX個、ルータの設定データ(202)がY個である場合を示している。つまり、図2(a)の構成情報(111)は、X個の演算器、Y個のルータに対する設定を含むデータである。また、図2(a)は一つの構成情報がNビットのバイナリデータである場合を示している。   As shown in FIG. 2A, the configuration information (111) is information obtained by combining the setting data (201) of the arithmetic unit and the setting data (202) of the router. Since an arithmetic unit and an arithmetic element are synonymous, the arithmetic unit is described as an arithmetic element in the drawings. FIG. 2A shows a case where there are X pieces of setting data (201) for the arithmetic unit and Y pieces of setting data (202) for the router. That is, the configuration information (111) in FIG. 2A is data including settings for X computing units and Y routers. FIG. 2A shows the case where one piece of configuration information is N-bit binary data.

ここで、図2(b)は演算器の設定データ(201)とルータの設定データ(202)の具体的なフォーマットの例を示したものである。   Here, FIG. 2B shows an example of specific formats of the setting data (201) of the computing unit and the setting data (202) of the router.

図2(b)に示す設定データは、ID(203)、アドレス(204)、設定値(205)を含むデータである。   The setting data shown in FIG. 2B is data including an ID (203), an address (204), and a setting value (205).

ID(203)は、各演算器、またはルータに固有に設定される識別番号である。ID(203)は、データ処理装置(100)の構成を決定するときに設定すれば良い。   ID (203) is an identification number uniquely set for each computing unit or router. The ID (203) may be set when determining the configuration of the data processing device (100).

アドレス(204)は、各演算器、またはルータの内部にあるメモリの書き込み領域を指定するものである。   The address (204) designates a write area of a memory in each arithmetic unit or router.

設定値(205)は、演算器(108)とルータ(109)の動作を設定する値である。   The set value (205) is a value for setting the operation of the computing unit (108) and the router (109).

<回路ブロックの構成説明>
ここで、図3は回路ブロック(107a)の内部構成を示した図である。回路ブロック(107b)の内部構成は、回路ブロック(107a)の内部構成と同様である。
<Description of circuit block configuration>
Here, FIG. 3 is a diagram showing an internal configuration of the circuit block (107a). The internal configuration of the circuit block (107b) is the same as the internal configuration of the circuit block (107a).

以下で、回路ブロック(107a)の内部構成について、図3を用いて具体的に説明する。図3の演算器(108)は4系統の入力部と出力部を持ち、ルータ(109)は8系統の入力部と出力部を持つ。なお、本提案の内容は図3に示した回路ブロックの構成に限定されるものではない。   Hereinafter, the internal configuration of the circuit block (107a) will be specifically described with reference to FIG. 3 has four systems of input units and output units, and the router (109) has eight systems of input units and output units. The content of the proposal is not limited to the circuit block configuration shown in FIG.

演算器(108)は、結線(301)〜(308)によって、ルータと接続されている。演算器(108)は、データ入力用の結線(301)〜(304)から供給されるデータを処理し、データ出力用の結線(305)〜(308)から処理データを出力する処理部である。演算器(108)は、構成情報生成部(106)から結線(113)を介して演算処理の開始を指示する信号を受信する。本実施形態では、結線(113)は演算器(108)の数だけ設ける構成としているが、他の結線方法であっても良い。演算器(108)は処理を開始した後、結線(114)を介して演算器情報取得部(105)に処理開始を通知する信号を送信する。また、演算器(108)は処理が完了した後、結線(114)を介して演算器情報取得部(105)に処理完了を通知する信号を送信する。   The computing unit (108) is connected to the router by connections (301) to (308). The computing unit (108) is a processing unit that processes data supplied from the data input connections (301) to (304) and outputs processing data from the data output connections (305) to (308). . The computing unit (108) receives a signal instructing the start of computation processing from the configuration information generation unit (106) via the connection (113). In the present embodiment, the number of connections (113) is as many as the number of computing units (108), but other connection methods may be used. After starting the processing, the computing unit (108) transmits a signal notifying the start of processing to the computing unit information acquisition unit (105) via the connection (114). In addition, after the processing is completed, the computing unit (108) transmits a signal notifying the processing unit to the computing unit information acquisition unit (105) via the connection (114).

ルータ(109)は、上下左右にある他のルータと結線(309)〜(316)で接続されている。結線(309)〜(312)は、他のルータからデータを受信するための結線である。結線(313)〜(316)は、他のルータへデータを送信するための結線である。   The router (109) is connected to other routers on the upper, lower, left, and right sides by connection lines (309) to (316). Connections (309) to (312) are connections for receiving data from other routers. Connections (313) to (316) are connections for transmitting data to other routers.

ここで、図4は演算器(108)の内部構成の一例を示した図である。   FIG. 4 is a diagram showing an example of the internal configuration of the computing unit (108).

演算器(108)は、構成情報設定部(401)、演算処理部(402)、データ入力部(403)、データ出力部(404)で構成される。構成情報設定部(401)は結線(112)を介して構成情報(111)を受信した後、構成情報(111)の設定値を内部で保持する。構成情報設定部(401)は、内部に不図示のメモリを備えており、構成情報(111)の設定値を内部で保持する。   The computing unit (108) includes a configuration information setting unit (401), an arithmetic processing unit (402), a data input unit (403), and a data output unit (404). After receiving the configuration information (111) via the connection (112), the configuration information setting unit (401) holds the set value of the configuration information (111) internally. The configuration information setting unit (401) includes a memory (not shown) therein, and holds the setting value of the configuration information (111) inside.

構成情報設定部(401)は、結線(405)を介してデータ入力部(403)へ入力の切り替えのための設定値を送信する。また、構成情報設定部(401)は、結線(406)を介して演算処理部(402)へ処理の内容を決めるための設定値を送信する。更に、構成情報設定部(401)は、結線(407)を介してデータ出力部(404)へ、出力の切り替えのための設定値を送信する。   The configuration information setting unit (401) transmits a setting value for switching the input to the data input unit (403) via the connection (405). Further, the configuration information setting unit (401) transmits a setting value for determining the content of processing to the arithmetic processing unit (402) via the connection (406). Further, the configuration information setting unit (401) transmits a setting value for switching output to the data output unit (404) via the connection (407).

以下、図4に示した演算器の動作を説明する。   Hereinafter, the operation of the arithmetic unit shown in FIG. 4 will be described.

演算器(108)は、結線(112)を介して送信された構成情報(111)を受信する。その後、演算器(108)の内部の構成情報設定手段(401)によって構成情報(111)のID(203)が演算器(108)に設定されているIDと一致するか判別する。   The computing unit (108) receives the configuration information (111) transmitted via the connection (112). Thereafter, the configuration information setting means (401) inside the calculator (108) determines whether the ID (203) of the configuration information (111) matches the ID set in the calculator (108).

IDが一致した場合、構成情報設定部(401)は構成情報(111)で指定されているアドレスにしたがって、構成情報設定部(401)の内部のメモリに構成情報(111)の設定値(205)の書き込みをおこなう。   When the IDs match, the configuration information setting unit (401) sets the setting value (205) of the configuration information (111) in the internal memory of the configuration information setting unit (401) according to the address specified by the configuration information (111). ).

IDが一致しない場合、構成情報設定部(401)は構成情報(111)を結線(112)に出力する。   If the IDs do not match, the configuration information setting unit (401) outputs the configuration information (111) to the connection (112).

演算器(108)の内部の構成情報設定部(401)は、上記書き込みが完了した後に、データ入力部(403)、データ出力部(404)、演算処理部(402)に設定値(205)を送信する。その後、データ入力部(403)の入力の切り替え、データ出力部(404)の出力の切り替え、演算処理部(402)の処理設定が完了する。   The configuration information setting unit (401) inside the computing unit (108) sets the set value (205) in the data input unit (403), data output unit (404), and arithmetic processing unit (402) after the completion of the writing. Send. Thereafter, input switching of the data input unit (403), output switching of the data output unit (404), and processing setting of the arithmetic processing unit (402) are completed.

この設定によって、データ入力部(403)が結線(408)に示すいずれかの結線からデータを入力するかが設定され、データ出力部(404)が結線(409)に示すいずれかの結線のうち、どの結線からデータを出力するかが設定される。   This setting determines whether the data input unit (403) inputs data from any of the connections indicated by the connection (408), and the data output unit (404) determines which of the connections indicated by the connection (409). The connection from which data is output is set.

構成情報(111)の送信が完了した後、各演算器は演算処理を開始する。各演算器はタスクの実行を開始後、演算器情報取得部(105)へ結線(114)を介してタスクの実行開始を通知する信号を送信し、タスクの実行を完了後、演算器情報取得部(105)へ結線(114)を介してタスクの実行完了を通知する信号を送信する。   After the transmission of the configuration information (111) is completed, each arithmetic unit starts arithmetic processing. After each task starts execution, it sends a signal notifying the start of task execution to the calculator information acquisition unit (105) via the connection (114). After completing task execution, the operator information is acquired. A signal notifying completion of task execution is transmitted to the unit (105) via the connection (114).

ここで、図5はルータ(109)の内部構成の一例を示した図である。   Here, FIG. 5 is a diagram showing an example of the internal configuration of the router (109).

ルータ(109)は、構成情報設定部(501)、入出力切り替え部(502)で構成する。構成情報設定部(501)は結線(112)を介して構成情報(111)を受信して、内部で構成情報(111)を保持する。構成情報設定部(401)は、内部に不図示のメモリを備えており、構成情報(111)の設定値を内部で保持する。   The router (109) includes a configuration information setting unit (501) and an input / output switching unit (502). The configuration information setting unit (501) receives the configuration information (111) via the connection (112) and holds the configuration information (111) inside. The configuration information setting unit (401) includes a memory (not shown) therein, and holds the setting value of the configuration information (111) inside.

構成情報設定部(501)は入出力切り替え部(502)へ入出力の切り替えをするための設定値を送信する。   The configuration information setting unit (501) transmits a setting value for switching input / output to the input / output switching unit (502).

以下で、図5に示したルータの動作を説明する。   The operation of the router shown in FIG. 5 will be described below.

ルータ(109)は、結線(112)を介して送信された構成情報(111)を受信した後、ルータ(109)の内部の構成情報設定部(501)によって構成情報(111)のID(203)がルータ(109)に設定されているIDと一致するか判別する。   After receiving the configuration information (111) transmitted via the connection (112), the router (109) receives the configuration information (111) ID (203) by the configuration information setting unit (501) inside the router (109). ) Matches the ID set in the router (109).

IDが一致した場合、構成情報設定部(501)は構成情報(111)で指定されているアドレスにしたがって、ルータ(109)の内部のメモリに構成情報(111)の設定値(205)の書き込みをおこなう。   When the IDs match, the configuration information setting unit (501) writes the setting value (205) of the configuration information (111) to the internal memory of the router (109) according to the address specified by the configuration information (111). To do.

IDが一致しない場合、構成情報設定部(501)は構成情報(111)を結線(112)に出力する。   When the IDs do not match, the configuration information setting unit (501) outputs the configuration information (111) to the connection (112).

構成情報設定部(501)は上記書き込みが完了した後に、入出力切り替え部(503)に設定値(205)を送信する。その後、入出力切り替え部(502)の入出力の切り替えがおこなわれる。   The configuration information setting unit (501) transmits the setting value (205) to the input / output switching unit (503) after the writing is completed. Thereafter, input / output switching of the input / output switching unit (502) is performed.

この設定値によって、入出力切り替え部(502)が、結線(503)に示したいずれかの結線からデータを入力して、結線(504)に示したいずれかの結線からデータを出力するかが設定される。   Whether the input / output switching unit (502) inputs data from any of the connections indicated by the connection (503) and outputs data from any of the connections indicated by the connection (504) according to the set value. Is set.

ここで図6は演算器情報取得部(105)の内部で保持する演算器情報の一例を示したものである。本実施形態では、演算器情報取得部(105)は内部に図6に示すようなテーブルを保持する。   Here, FIG. 6 shows an example of the calculator information held in the calculator information acquisition unit (105). In this embodiment, the calculator information acquisition unit (105) holds a table as shown in FIG.

演算器情報取得部(105)は、タスク割り当て部(104)から、演算器情報の送信を要求する信号を受信したときに、図6に示す情報を送信する。図6の第1のカラムは、演算器(108)に設定されているIDである。図6の第2のカラムは、各演算器(108)が属している回路ブロックを示すIDである。図6の第3のカラムは、各演算器(108)が演算処理を実行中であるかを示すフラグである。フラグが1である場合は、演算器(108)は演算処理を実行中であり、フラグが0である場合は、演算器(108)は演算処理を実行中でないことを示す。図6の第4のカラムは、各演算器(108)が実行中のタスクを示すIDである。図6の第5のカラムは、各演算器(108)の電源オン・オフの状態を示すフラグである。フラグが1である場合は、演算器(108)は電源オン状態であり、フラグが0である場合は、演算器(108)は電源オフ状態であることを示す。   The arithmetic unit information acquisition unit (105) transmits the information shown in FIG. 6 when a signal requesting transmission of the arithmetic unit information is received from the task allocation unit (104). The first column in FIG. 6 is an ID set in the computing unit (108). The second column in FIG. 6 is an ID indicating a circuit block to which each calculator (108) belongs. The third column in FIG. 6 is a flag indicating whether each arithmetic unit (108) is executing an arithmetic process. When the flag is 1, the computing unit (108) is executing an arithmetic process, and when the flag is 0, the arithmetic unit (108) indicates that the arithmetic process is not being performed. The fourth column in FIG. 6 is an ID indicating a task being executed by each computing unit (108). The fifth column in FIG. 6 is a flag indicating the power on / off state of each computing unit (108). When the flag is 1, the calculator (108) is in the power-on state, and when the flag is 0, the calculator (108) is in the power-off state.

演算器情報取得部(105)は、タスク割り当て部(104)から演算器IDとタスクIDを受信した後、受信した演算器IDと第1のカラムを順に比較する。演算器情報取得部(105)は、受信した演算器IDと第1のカラムが一致したときに、一致した行の第4のカラムの値を変更して、電源制御部(102)へ一致した行の第2のカラムの値を送信する。例えば、演算器情報取得部(105)がタスク割り当て部(104)から演算器ID2、タスクID4を受信した場合は、第4のカラムの3番目の行に4を設定する。また、演算器情報取得部(105)は第2のカラムの3番目の値を電源制御部(102)へ送信する。   The computing unit information acquisition unit (105) receives the computing unit ID and the task ID from the task allocation unit (104), and then compares the received computing unit ID with the first column in order. When the received calculator ID and the first column match, the calculator information acquisition unit (105) changes the value of the fourth column in the matched row and matches the power control unit (102). Send the value in the second column of the row. For example, when the calculator information acquisition unit (105) receives the calculator ID2 and the task ID4 from the task allocation unit (104), 4 is set in the third row of the fourth column. The computing unit information acquisition unit (105) transmits the third value in the second column to the power supply control unit (102).

また、演算器情報取得部(105)は、構成情報生成部(106)から演算器(108)が処理を開始したことを通知する信号を受信したときに、第3のカラムを1に設定する。例えば、IDが6である演算器(108)が処理を開始したときには、第3のカラムの7番目の行の値を1とする。また、構成情報生成部(106)から演算器(108)が処理を完了したことを通知する信号を受信したときに、第3のカラムの値を0に設定する。例えば、IDが6である演算器(108)が処理を完了したときには、第3のカラムの7番目の行の値を0とする。   The computing unit information acquisition unit (105) sets the third column to 1 when receiving a signal from the configuration information generation unit (106) notifying that the computing unit (108) has started processing. . For example, when the arithmetic unit (108) whose ID is 6 starts processing, the value of the seventh row in the third column is set to 1. Further, when a signal notifying that the computing unit (108) has completed the processing is received from the configuration information generation unit (106), the value of the third column is set to 0. For example, when the calculator (108) whose ID is 6 completes the processing, the value of the seventh row in the third column is set to 0.

演算器情報取得部(105)は、演算器(108)からタスクの実行開始、または完了を通知する信号を受信後、タスク情報取得部(103)へ第4のカラムの値を送信する。例えば、演算器情報取得部(105)が、演算器IDが1である演算器(108)からタスクの実行開始、または完了を通知する信号を受信した場合は、第4のカラムの2番目の行の値をタスク情報取得部(103)へ送信する。   The arithmetic unit information acquisition unit (105) transmits the value of the fourth column to the task information acquisition unit (103) after receiving a signal notifying the execution start or completion of the task from the arithmetic unit (108). For example, when the arithmetic unit information acquisition unit (105) receives a signal notifying the start or completion of the task from the arithmetic unit (108) having the arithmetic unit ID 1, the second column in the fourth column The row value is transmitted to the task information acquisition unit (103).

ここで図7はタスク情報取得部(103)の内部で保持するタスク情報の一例を示したものである。タスク情報取得部(103)は、図7に示すようなテーブルを内部で保持する。図7の第1のカラムはタスクID、第2のカラムはタスクの開始時間、第3のカラムはタスクの完了時間を示す。   FIG. 7 shows an example of task information held in the task information acquisition unit (103). The task information acquisition unit (103) holds a table as shown in FIG. The first column in FIG. 7 indicates the task ID, the second column indicates the task start time, and the third column indicates the task completion time.

タスク情報取得部(103)は、演算器情報取得部(105)からタスクIDを受信後、タスクの実行開始時間を計測する。タスク情報取得部(103)は、演算器情報取得部(105)から同様のタスクIDを再受信した後、タスクの実行完了時間を計測する。例えばタスク情報取得部(103)の内部に備えて、タイマーで時間を計測するようにしても良い。なお、タスクの実行開始時間、完了時間を得る方法に限定はなく、例えば見積もりによって得られた処理時間を予めタスク情報取得部(103)の内部に設定しておくようにしても良い。   The task information acquisition unit (103) measures the task execution start time after receiving the task ID from the computing unit information acquisition unit (105). The task information acquisition unit (103) measures the task execution completion time after re-receiving the same task ID from the arithmetic unit information acquisition unit (105). For example, the time may be measured by a timer in the task information acquisition unit (103). The method for obtaining the task execution start time and completion time is not limited. For example, the processing time obtained by estimation may be set in advance in the task information acquisition unit (103).

タスク情報取得部(103)は、演算器情報取得部(105)からタスクIDを受信後、受信したタスクIDと第1のカラムのタスクIDを順に比較する。タスク情報取得部(103)は、受信したタスクIDと第1のカラムのタスクIDが一致したときに、一致した行の第2のカラムと第3のカラムの値を計測したタスクの処理開始時間、完了時間に設定する。   After receiving the task ID from the computing unit information acquisition unit (105), the task information acquisition unit (103) sequentially compares the received task ID with the task ID in the first column. When the received task ID and the task ID in the first column match, the task information acquisition unit (103) measures the processing start time of the task that measures the values in the second column and the third column in the matched row Set to completion time.

タスク情報取得部(103)は、タスク割り当て部(104)からタスクIDを受信後、受信したタスクIDと第1のカラムのタスクIDを順に比較する。タスク情報取得部(103)は、受信したタスクIDと第1のカラムのタスクIDが一致したときに、一致した行の第2のカラムと第3のカラムの値をタスク割り当て部(104)へ送信する。   After receiving the task ID from the task assignment unit (104), the task information acquisition unit (103) sequentially compares the received task ID with the task ID in the first column. When the received task ID and the task ID in the first column match, the task information acquisition unit (103) sends the values of the second column and the third column in the matched row to the task allocation unit (104). Send.

ここで図8はタスク割り当て部(104)の内部の処理を示すフローチャートである。また、図9はタスク割り当て部(104)が内部で生成するテーブルである。図9に示すテーブルは、演算器ID、回路ブロックID、使用フラグ、タスクID、タスクの実行開始時間、完了時間、電源フラグの情報が含まれる。タスクの実行開始時間、完了時間が不定の場合は、図9のテーブルの値はxとする。なお、タスク割り当て部(104)の内部の処理フローは本実施形態に限定するものではなく他の処理フローでも良い。以下でタスク割り当て部(104)が実行する処理の内容を図8と図9を用いて説明する。   FIG. 8 is a flowchart showing the internal processing of the task assignment unit (104). FIG. 9 is a table generated internally by the task assignment unit (104). The table shown in FIG. 9 includes information on the arithmetic unit ID, circuit block ID, usage flag, task ID, task execution start time, completion time, and power supply flag. If the task execution start time and completion time are indefinite, the value in the table of FIG. Note that the internal processing flow of the task assignment unit (104) is not limited to this embodiment, and may be another processing flow. The contents of the process executed by the task assignment unit (104) will be described below with reference to FIGS.

図8の処理では、タスク割り当て部(104)がタスク情報取得部(103)からタスク情報を受信後、タスク情報を用いて回路ブロック(107a)、(107b)の電源供給時間が短くなるようなタスク割り当てをおこなう。   In the process of FIG. 8, after the task assignment unit (104) receives the task information from the task information acquisition unit (103), the power supply time of the circuit blocks (107a) and (107b) is shortened using the task information. Assign tasks.

ステップST801で、タスク割り当て部(104)は演算器情報取得部(105)へ演算器情報の送信を要求する信号を送信して、演算器情報取得部(105)から図6に示した演算器情報を受信する。次に、タスク割り当て部(104)は演算器情報に含まれるタスクIDをタスク情報取得部(103)へ送信して、タスク情報取得部(103)からタスクの処理開始時間と処理完了時間を受信する。次に、タスク割り当て部(104)は、タスク情報取得部(103)から実行を予定しているタスクの処理開始時間と処理完了時間を受信する。ここで受信するタスクの処理開始時間と処理完了時間は、例えばユーザが予め設定した時間の範囲内にあるものを受信するようにすれば良い。その後、タスク割り当て部(104)は図9のようなテーブルを内部で生成する。なお、実行を予定しているタスクに対しては演算器が割り当てられていないため、図9のテーブルの第1のカラムの値は0とする。   In step ST801, the task assignment unit (104) transmits a signal for requesting transmission of computing unit information to the computing unit information acquisition unit (105), and the computing unit shown in FIG. 6 from the computing unit information acquisition unit (105). Receive information. Next, the task assignment unit (104) transmits the task ID included in the calculator information to the task information acquisition unit (103), and receives the task processing start time and the processing completion time from the task information acquisition unit (103). To do. Next, the task assignment unit (104) receives the processing start time and processing completion time of the task scheduled to be executed from the task information acquisition unit (103). The task processing start time and processing completion time received here may be received within a time range preset by the user, for example. Thereafter, the task assignment unit (104) internally generates a table as shown in FIG. Note that since a computing unit is not assigned to a task scheduled to be executed, the value in the first column of the table of FIG.

ステップST802で、タスク割り当て部(104)は図9のテーブルを参照して、演算器IDが0であるタスクの処理開始時間のうち最も処理開始時間が早いタスクのタスクIDをリスト化し、第1のタスクIDリストを生成する。また、タスク割り当て部(104)はリスト化したタスクの処理開始時間を記憶する。   In step ST802, the task assignment unit (104) refers to the table of FIG. 9 to list the task IDs of the tasks with the earliest processing start time among the processing start times of the tasks having the calculator ID of 0, The task ID list is generated. The task assignment unit (104) stores the processing start times of the tasks listed.

ステップST803で、タスク割り当て部(104)は電源オン状態である演算器(108)のなかに、ステップST802で取得した処理開始時間にタスクが割り当てられていないものがあるか判定する。以下、タスクが割り当てられていない演算器(108)を空き演算器と呼ぶ。タスク割り当て部(104)は図9のテーブルを参照して、電源フラグが1であるタスクの処理完了時間を取得する。タスク割り当て部(104)は、取得したタスクの処理完了時間が、ステップST802で記憶した処理開始時間よりも早い場合に空き演算器があると判定する。また、タスク割り当て部(104)は、取得したタスクの処理完了時間が、ステップST802で記憶したタスクの処理開始時間よりも遅い場合に空き演算器がないと判定する。判定した結果、空き演算器があれば、ステップST805の処理に進む。判定した結果、空き演算器がなければ、ステップST804の処理に進む。   In step ST803, the task assignment unit (104) determines whether any of the computing units (108) in the power-on state has no task assigned at the processing start time acquired in step ST802. Hereinafter, the arithmetic unit (108) to which no task is assigned is referred to as an empty arithmetic unit. The task assignment unit (104) refers to the table of FIG. 9 and acquires the processing completion time of the task whose power flag is 1. The task assignment unit (104) determines that there is an empty computing unit when the processing completion time of the acquired task is earlier than the processing start time stored in step ST802. Further, the task assignment unit (104) determines that there is no empty computing unit when the processing completion time of the acquired task is later than the processing start time of the task stored in step ST802. As a result of the determination, if there is an empty computing unit, the process proceeds to step ST805. As a result of the determination, if there is no empty computing unit, the process proceeds to step ST804.

ステップST804で、タスク割り当て部(104)は電源オフ状態である演算器(108)のうち、ステップST802で取得した処理開始時間にタスクが割り当てられていないものがあるか判定する。タスク割り当て部(104)は図9のテーブルを参照して、電源フラグが0であるタスクの処理完了時間を取得する。タスク割り当て部(104)は、取得したタスクの処理完了時間が、ステップST802で記憶した処理開始時間よりも早い場合に空き演算器があると判定する。また、タスク割り当て部(104)は、取得したタスクの処理完了時間が、ステップST802で記憶したタスクの処理開始時間よりも遅い場合に空き演算器がないと判定する。判定した結果、空き演算器があれば、ステップST805の処理に進む。判定した結果、空き演算器がなければ、タスク割り当ての処理を終了する。   In step ST804, the task assignment unit (104) determines whether there is any of the computing units (108) that are in the power-off state to which no task is assigned at the processing start time acquired in step ST802. The task assignment unit (104) refers to the table of FIG. 9 and acquires the processing completion time of the task whose power flag is 0. The task assignment unit (104) determines that there is an empty computing unit when the processing completion time of the acquired task is earlier than the processing start time stored in step ST802. Further, the task assignment unit (104) determines that there is no empty computing unit when the processing completion time of the acquired task is later than the processing start time of the task stored in step ST802. As a result of the determination, if there is an empty computing unit, the process proceeds to step ST805. As a result of the determination, if there is no empty computing unit, the task assignment processing is terminated.

ステップST805で、タスク割り当て部(104)は図9のテーブルの中から空き演算器が属している回路ブロックIDを選択する。   In step ST805, the task assignment unit (104) selects the circuit block ID to which the empty computing unit belongs from the table of FIG.

ステップST806で、タスク割り当て部(104)はステップST805で選択した回路ブロックIDが複数存在するか判定する。判定した結果、回路ブロックIDが複数存在する場合はステップST807の処理に進み、回路ブロックIDが複数存在しない場合はステップST809の処理に進む。   In step ST806, the task assignment unit (104) determines whether there are a plurality of circuit block IDs selected in step ST805. As a result of the determination, when there are a plurality of circuit block IDs, the process proceeds to step ST807, and when there are not a plurality of circuit block IDs, the process proceeds to step ST809.

ステップST807で、タスク割り当て部(104)はステップST805で選択した回路ブロックIDのリストを生成する。   In step ST807, the task assignment unit (104) generates a list of circuit block IDs selected in step ST805.

ステップST808で、タスク割り当て部(104)はステップST807で生成した回路ブロックIDのリストの中から、タスク割り当て先となる回路ブロックのIDを一つ選択する。ステップST808の処理の詳細については後述する。   In step ST808, the task assignment unit (104) selects one circuit block ID as a task assignment destination from the list of circuit block IDs generated in step ST807. Details of the process of step ST808 will be described later.

ステップST809で、タスク割り当て部(104)は図9のテーブルからタスクIDが設定されている行から回路ブロックIDを取得して、回路ブロックIDのリストに追加する。   In step ST809, the task assignment unit (104) acquires the circuit block ID from the row in which the task ID is set from the table of FIG. 9, and adds it to the list of circuit block IDs.

ステップST810で、タスク割り当て部(104)はステップST809の直前に選択した回路ブロックを回路ブロックIDのリストから除外する。   In step ST810, the task assignment unit (104) excludes the circuit block selected immediately before step ST809 from the list of circuit block IDs.

ステップST811で、タスク割り当て部(104)は回路ブロック間でタスクの交換をおこない、タスクを割り当てる回路ブロックを設定する。ステップST811の処理の詳細については後述する。   In step ST811, the task assignment unit (104) exchanges tasks between circuit blocks and sets a circuit block to which tasks are assigned. Details of the processing in step ST811 will be described later.

ステップST812で、タスク割り当て部(104)は図9のテーブルの処理開始時間を参照して、ステップST802で記憶した処理開始時間の後に実行するタスクがあるかを判定する。判定の結果、次に実行するタスクがあれば、タスク割り当て部(104)はステップST802の処理を再実行する。また、判定の結果、次に実行するタスクがなければ、タスク割り当て部(104)はタスク割り当ての処理を終了する。   In step ST812, the task assignment unit (104) refers to the process start time in the table of FIG. 9 and determines whether there is a task to be executed after the process start time stored in step ST802. If there is a task to be executed next as a result of the determination, the task assignment unit (104) re-executes the process of step ST802. If there is no task to be executed next as a result of the determination, the task assignment unit (104) ends the task assignment process.

タスク割り当て部(104)は、タスク割り当ての処理を終了した後、タスク割り当てを変更する前後の演算器IDを構成情報生成部(106)へ送信する。更に、タスク割り当て部(104)は、タスク割り当てを変更する前後の演算器IDとタスクIDを演算器情報取得部(105)へ送信する。   After completing the task assignment process, the task assignment unit (104) transmits the computing unit IDs before and after changing the task assignment to the configuration information generation unit (106). Further, the task assignment unit (104) transmits the computing unit ID and the task ID before and after changing the task allocation to the computing unit information acquisition unit (105).

なお、演算器(108)でタスクを実行する際に、他の演算器(108)からデータを送受信する場合がある。この場合、タスク割り当て部(104)は、ステップST803、ステップST804で空き演算器であると判定した演算器(108)が、データを送受信する演算器(108)と通信できる位置にあるかを判定する。例えば、空き演算器が複数ある場合に、データの送信元である演算器(108)がデータを出力する位置にある空き演算器を選択するようにすれば良い。   In addition, when a task is executed by the computing unit (108), data may be transmitted / received from another computing unit (108). In this case, the task assignment unit (104) determines whether the arithmetic unit (108) determined to be an empty arithmetic unit in steps ST803 and ST804 is in a position where it can communicate with the arithmetic unit (108) that transmits and receives data. To do. For example, when there are a plurality of empty calculators, the calculator (108) that is the data transmission source may select an empty calculator at a position where data is output.

以下で、ステップST808の詳細な処理を説明する。   Hereinafter, detailed processing of step ST808 will be described.

ここで図10はステップST808の詳細な処理を示すフローチャートである。   FIG. 10 is a flowchart showing detailed processing of step ST808.

ステップST1001で、タスク割り当て部(104)は図9のテーブルを参照して、ステップST802で生成したタスクIDのリストの中から、最も処理完了が早いタスクのタスクIDを一つ選択する。   In step ST1001, the task assignment unit (104) refers to the table of FIG. 9 and selects one task ID of the task with the earliest completion of processing from the list of task IDs generated in step ST802.

ステップST1002で、タスク割り当て部(104)は回路ブロックIDのリストに含まれる回路ブロックに対して、回路ブロック内に割り当てられているタスクが全て完了する時間を判定する。タスク割り当て部(104)は、回路ブロックIDのリストのIDを順次選択して、図9のテーブルを参照して、回路ブロックIDに対応するタスクの処理完了時間を取得する。その後、タスク割り当て部(104)は、取得したタスクの処理完了時間のうち、最も遅い処理完了時間を回路ブロック内に割り当てられているタスクが全て完了する時間と判定する。   In step ST1002, the task assignment unit (104) determines a time for completing all tasks assigned in the circuit block for the circuit blocks included in the list of circuit block IDs. The task assignment unit (104) sequentially selects the IDs in the list of circuit block IDs and refers to the table in FIG. 9 to obtain the processing completion time of the task corresponding to the circuit block ID. Thereafter, the task assignment unit (104) determines that the latest processing completion time among the processing completion times of the acquired tasks is a time when all tasks assigned in the circuit block are completed.

ステップST1003で、タスク割り当て部(104)は回路ブロックIDのリストに含まれる回路ブロックに対して、ステップS1001で選択したタスクの処理完了時間とステップST1002で判定した時間の差を算出する。例えば、ステップST1002で判定した時間から、ステップS1001で選択したタスクの処理完了時間を引き算すれば良い。   In step ST1003, the task allocation unit (104) calculates the difference between the processing completion time of the task selected in step S1001 and the time determined in step ST1002 for the circuit blocks included in the circuit block ID list. For example, the process completion time of the task selected in step S1001 may be subtracted from the time determined in step ST1002.

ステップST1004で、ステップST1003で算出した結果を基に、ステップST1001で選択したタスクを割り当てる回路ブロックを設定する。本実施形態では、ステップST1004で、ステップST1003の算出結果で正の値となったものがあれば、正の値となったもののうち、絶対値が最小である回路ブロックにステップST1001で選択したタスクを割り当てる。また、ステップST1003の算出結果で正の値のものがなければ、絶対値が最小となった回路ブロックにステップST1001で選択したタスクを割り当てる。   In step ST1004, a circuit block to which the task selected in step ST1001 is assigned is set based on the result calculated in step ST1003. In this embodiment, if there is a positive value in the calculation result of step ST1003 in step ST1004, the task selected in step ST1001 to the circuit block having the smallest absolute value among the positive values. Assign. If there is no positive value in the calculation result in step ST1003, the task selected in step ST1001 is assigned to the circuit block having the minimum absolute value.

ステップST1005で、タスク割り当て部(104)はステップST1001で選択したタスクIDを第1のタスクIDリストから除外する。   In step ST1005, the task assignment unit (104) excludes the task ID selected in step ST1001 from the first task ID list.

ステップST1006で、タスク割り当て部(104)は第1のタスクIDリストが空であるか判定する。タスク割り当て部(104)は第1のタスクIDリストが空である場合に、図10の処理を終了する。タスク割り当て部(104)は第1のタスクIDリストが空でない場合に、ステップS1001の処理を再実行する。   In step ST1006, the task assignment unit (104) determines whether or not the first task ID list is empty. When the first task ID list is empty, the task assignment unit (104) ends the process of FIG. The task assignment unit (104) re-executes the process of step S1001 when the first task ID list is not empty.

ここで図11はステップST811の詳細な処理を示すフローチャートである。以下、ステップST811の詳細な処理を説明する。図11に示すフローチャートは、タスク割り当て部(104)が回路ブロック(107a)(107b)で消費するリーク電力が少なくなるよう、タスクの割り当て先を網羅的に探索して、タスクを割り当てる処理を示す。   FIG. 11 is a flowchart showing detailed processing of step ST811. Hereinafter, detailed processing of step ST811 will be described. The flowchart shown in FIG. 11 shows processing for assigning tasks by exhaustively searching for task assignment destinations so that the leakage power consumed by the task assignment unit (104) in the circuit blocks (107a) and (107b) is reduced. .

ステップST1101で、タスク割り当て部(104)は第1のタスクIDのリストから任意のタスクIDを一つ選択する。   In step ST1101, the task assignment unit (104) selects one arbitrary task ID from the first task ID list.

ステップST1102で、タスク割り当て部(104)は図8のステップST807で生成した回路ブロックIDのリストの中から任意のIDを一つ選択する。   In step ST1102, the task assignment unit (104) selects one arbitrary ID from the list of circuit block IDs generated in step ST807 of FIG.

ステップST1103で、タスク割り当て部(104)はステップST1101で選択した回路ブロックIDに対応するタスクIDを図9のテーブルから取得してリスト化し、第2のタスクIDリストを生成する。   In step ST1103, the task assignment unit (104) obtains a task ID corresponding to the circuit block ID selected in step ST1101 from the table of FIG. 9, and generates a second task ID list.

ステップST1104で、タスク割り当て部(104)はステップST1102で生成した第2のタスクIDリストから任意のタスクIDを一つ選択する。   In step ST1104, the task assignment unit (104) selects one arbitrary task ID from the second task ID list generated in step ST1102.

ステップST1105で、タスク割り当て部(104)は図9のテーブルに対して、ステップST1101で選択したタスクIDに対応する回路ブロックIDと、ステップST1104で選択したタスクIDに対応する回路ブロックIDの交換をおこなう。   In step ST1105, the task assignment unit (104) replaces the circuit block ID corresponding to the task ID selected in step ST1101 and the circuit block ID corresponding to the task ID selected in step ST1104 with respect to the table of FIG. Do it.

ステップST1106で、タスク割り当て部(104)はステップST1105の処理をおこなった後、ステップST1101で選択した回路ブロックIDに対応するタスクを選択する。次に、タスク割り当て部(104)は選択したタスクの中で処理開始時間が最も早いものを選択し、処理開始時間Tsを取得する。また、タスク割り当て部(104)は選択したタスクの中で処理完了時間が最も遅いものを選択し、処理完了時間Tfを取得する。その後、タスク割り当て部(104)は処理完了時間Tfと処理開始時間Tsの差T1を算出する。   In step ST1106, the task assignment unit (104) performs the process of step ST1105, and then selects a task corresponding to the circuit block ID selected in step ST1101. Next, the task assignment unit (104) selects the task with the earliest processing start time from the selected tasks, and acquires the processing start time Ts. Also, the task assignment unit (104) selects the task with the latest processing completion time from the selected tasks, and acquires the processing completion time Tf. Thereafter, the task assignment unit (104) calculates a difference T1 between the process completion time Tf and the process start time Ts.

ステップST1107で、タスク割り当て部(104)はステップST1105の処理をおこなった後、ステップST809の直前に選択した回路ブロックIDに対応するタスクを選択する。その後、タスク割り当て部(104)はステップST1106と同様にして、処理完了時間Tfと処理開始時間Tsの差T2を算出する。   In step ST1107, the task assignment unit (104) performs the process of step ST1105, and then selects a task corresponding to the circuit block ID selected immediately before step ST809. Thereafter, the task assignment unit (104) calculates a difference T2 between the process completion time Tf and the process start time Ts in the same manner as in step ST1106.

ステップST1108で、タスク割り当て部(104)はステップST1106で算出した時間T1とステップST1107で算出した時間T2を加算する。   In step ST1108, the task assignment unit (104) adds the time T1 calculated in step ST1106 and the time T2 calculated in step ST1107.

ステップST1109で、タスク割り当て部(104)はステップST1103で選択したタスクを第2のタスクIDリストから除外する。   In step ST1109, the task assignment unit (104) excludes the task selected in step ST1103 from the second task ID list.

ステップST1110で、タスク割り当て部(104)は第2のタスクIDリストの中が空であるか判定する。判定の結果、第2のタスクIDリストが空であればタスク割り当て部(104)はステップST1111の処理に進む。判定の結果、第2のタスクIDリストが空でなければタスク割り当て部(104)はステップST1104の処理を再実行する。つまり、タスク割り当て部(104)は、第2のタスクIDリストに格納されているタスクIDに対して、ステップST1104からステップST1110までの処理を繰り返し実行する。   In step ST1110, the task assignment unit (104) determines whether or not the second task ID list is empty. As a result of the determination, if the second task ID list is empty, the task assignment unit (104) proceeds to the process of step ST1111. As a result of the determination, if the second task ID list is not empty, the task assignment unit (104) re-executes the process of step ST1104. That is, the task assignment unit (104) repeatedly executes the processing from step ST1104 to step ST1110 for the task ID stored in the second task ID list.

ステップST1111で、タスク割り当て部(104)はステップST1108で算出した時間T1+T2を比較して、最小となった割り当て結果を保持する。   In step ST1111, the task assignment unit (104) compares the time T1 + T2 calculated in step ST1108, and holds the assignment result that is minimized.

ステップST1112で、タスク割り当て部(104)はステップST1102で選択した回路ブロックIDを回路ブロックIDのリストから除外する。   In step ST1112, the task assignment unit (104) excludes the circuit block ID selected in step ST1102 from the list of circuit block IDs.

ステップST1113で、タスク割り当て部(104)は回路ブロックIDのリストが空であるかを判定する。判定の結果、回路ブロックIDのリストが空であればステップST1114の処理に進み、回路ブロックIDのリストが空でなければステップST1102の処理を再実行する。つまり、タスク割り当て部(104)は、回路ブロックIDのリストに格納されている回路ブロックに対して、ステップST1102からステップST1113までの処理を繰り返し実行する。   In step ST1113, the task assignment unit (104) determines whether the list of circuit block IDs is empty. As a result of the determination, if the list of circuit block IDs is empty, the process proceeds to step ST1114. If the list of circuit block IDs is not empty, the process of step ST1102 is re-executed. That is, the task assignment unit (104) repeatedly executes the processes from step ST1102 to step ST1113 for the circuit blocks stored in the list of circuit block IDs.

ステップST1114で、タスク割り当て部(104)はステップST1108で保持した値をそれぞれ比較し、値が最小となったタスクIDと回路ブックIDの設定を保持する。   In step ST1114, the task assignment unit (104) compares the values held in step ST1108, and holds the setting of the task ID and circuit book ID having the smallest value.

ステップST1115で、タスク割り当て部(104)はステップST1101で選択したタスクIDを第1のタスクIDリストから除外する。   In step ST1115, the task assignment unit (104) excludes the task ID selected in step ST1101 from the first task ID list.

ステップST1116で、タスク割り当て部(104)は第1のタスクIDリストが空であるかを判定する。判定の結果、第1のタスクIDリストが空であればST811の処理を終了し、空でなければステップST1101の処理を再実行する。つまり、タスク割り当て部(104)は、第1のタスクIDリストに格納されているタスクIDに対して、ステップST1101からステップST1116までの処理を繰り返し実行する。   In step ST1116, the task assignment unit (104) determines whether or not the first task ID list is empty. As a result of the determination, if the first task ID list is empty, the process of ST811 is terminated, and if not empty, the process of step ST1101 is re-executed. That is, the task assignment unit (104) repeatedly executes the processing from step ST1101 to step ST1116 for the task ID stored in the first task ID list.

以上のようにして、タスク割り当て部(104)は回路ブロック(107a)と回路ブロック(107b)で消費するリーク電力が少なくなるよう、タスクの割り当て先を網羅的に探索していき、タスクを割り当てる回路ブロックを設定する。   As described above, the task allocation unit (104) exhaustively searches for task allocation destinations and allocates tasks so that the leakage power consumed by the circuit block (107a) and the circuit block (107b) is reduced. Set the circuit block.

ここで図12は、タスク割り当て部(104)が割り当てるタスクの一例を示したものである。以下、図12を用いて、タスク割り当て部(104)が図10の処理によって、タスクを割り当てる回路ブロックを設定する動作を具体的に説明する。   FIG. 12 shows an example of tasks assigned by the task assignment unit (104). Hereinafter, the operation in which the task assignment unit (104) sets a circuit block to which a task is assigned by the process of FIG. 10 will be described in detail with reference to FIG.

図12(a)のタスクは実行中であるタスクの処理開始時間と完了時間を示す。図12(a)に示すタスク(1201)〜(1204)は回路ブロック(107a)内の演算器(108)で処理実行中であり、タスク(1205)〜(1207)は回路ブロック(107b)内の演算器(108)で処理実行中である。回路ブロック(107a)内の4つの演算器(108)は全てタスクを実行中である。回路ブロック(107b)内の3つの演算器(108)はタスクを実行中であり、1つは空き演算器である。   The task in FIG. 12A shows the processing start time and completion time of the task being executed. Tasks (1201) to (1204) shown in FIG. 12A are being processed by the computing unit (108) in the circuit block (107a), and tasks (1205) to (1207) are in the circuit block (107b). The processing is being executed by the computing unit (108). All four arithmetic units (108) in the circuit block (107a) are executing tasks. Three arithmetic units (108) in the circuit block (107b) are executing tasks, and one is an empty arithmetic unit.

また、図12(b)のタスクは図12(a)のタスクよりも後に実行するタスクの処理開始時間と完了時間を示す。以下、図8、図12を用いて、タスク割り当て部(104)の具体的な動作を説明する。   Also, the task in FIG. 12B shows the processing start time and completion time of a task executed after the task in FIG. Hereinafter, a specific operation of the task assignment unit (104) will be described with reference to FIGS.

タスク割り当て部(104)はステップST802で図12(b)のタスクに対応するタスクIDのリスト化して、第1のタスクIDリストを生成する。また、タスク割り当て部(104)は、図8のステップST801〜ST807までの処理をおこない、回路ブロック(107a)、回路ブロック(107b)のIDを選び、回路ブロックIDのリストを生成する。   In step ST802, the task assignment unit (104) creates a first task ID list by listing the task IDs corresponding to the tasks in FIG. Also, the task assignment unit (104) performs the processing from step ST801 to ST807 in FIG. 8, selects the IDs of the circuit block (107a) and the circuit block (107b), and generates a list of circuit block IDs.

タスク割り当て部(104)は図10の処理で図12(b)のタスクを割り当てる回路ブロックを設定する。以下、図10、図12を用いて、図10に示すタスク割り当て部(104)の具体的な動作を順に説明する。   The task assignment unit (104) sets a circuit block to which the task shown in FIG. 12B is assigned in the process shown in FIG. Hereinafter, the specific operation of the task assignment unit (104) shown in FIG. 10 will be described in order with reference to FIGS.

ステップST1001で、タスク割り当て部(104)は図12(b)のタスクのうち最も処理完了時間が早いタスク(1210)を選択する。   In step ST1001, the task assignment unit (104) selects the task (1210) having the earliest processing completion time among the tasks in FIG. 12 (b).

ステップST1002で、回路ブロック(107a)と回路ブロック(107b)に対して、回路ブロック内のタスクが全て完了する時間を判定する。図12(a)で示す例では、回路ブロック(107a)内のタスクが全て完了する時間はT1であり、回路ブロック(107b)内のタスクが全て完了する時間はT2である。   In step ST1002, the time for completing all tasks in the circuit block is determined for the circuit block (107a) and the circuit block (107b). In the example shown in FIG. 12A, the time for completing all tasks in the circuit block (107a) is T1, and the time for completing all tasks in the circuit block (107b) is T2.

ステップST1003で、タスク割り当て部(104)はステップST1001で選択したタスク(1210)の処理完了時間T3と、ステップST1002で判定した時間T1、T2の差を算出する。タスク(1210)の処理完了時間とT1の差はT1−T3であり、タスク(1210)の処理完了時間とT2の差はT2−T3である。算出した結果、T1−T3>0、T2−T3<0であるため、差が正の値となった同一の回路ブロック(107a)をタスク(1210)の割り当て先とする。   In step ST1003, the task assignment unit (104) calculates the difference between the processing completion time T3 of the task (1210) selected in step ST1001 and the times T1 and T2 determined in step ST1002. The difference between the processing completion time of task (1210) and T1 is T1-T3, and the difference between the processing completion time of task (1210) and T2 is T2-T3. Since T1-T3> 0 and T2-T3 <0 are obtained as a result of the calculation, the same circuit block (107a) having a positive difference is set as the assignment destination of the task (1210).

ステップST1004で、ステップS1001で選択したタスクのIDを第1のタスクIDリストから削除する。   In step ST1004, the ID of the task selected in step S1001 is deleted from the first task ID list.

ステップST1005で、タスク割り当て部(104)は第1のタスクIDのリストが空であるかを判定する。判定した結果、タスクIDのリストが空であれば図10の処理を終了する。判定した結果、タスクIDのリストが空でなければステップST1001の処理を再実行する。すなわち、タスク割り当て部(104)は図12(b)のタスク全てに対してステップST1001〜ST1006の処理を実行し、タスク(1210)〜(1212)を割り当てる回路ブロックを設定する。   In step ST1005, the task assignment unit (104) determines whether the first task ID list is empty. As a result of the determination, if the task ID list is empty, the processing in FIG. 10 is terminated. As a result of the determination, if the task ID list is not empty, the process of step ST1001 is re-executed. That is, the task assignment unit (104) executes the processing of steps ST1001 to ST1006 for all the tasks in FIG. 12B, and sets circuit blocks to which the tasks (1210) to (1212) are assigned.

以上のようにして、タスク割り当て部(104)は図12に示したタスクを割り当てる回路ブロックを設定する。   As described above, the task assignment unit (104) sets the circuit block to which the task shown in FIG. 12 is assigned.

ここで図13は図11の処理の具体的な動作例を示したものである。以下、図13を用いて、タスク割り当て部(104)が図11の処理によって、タスクを割り当てる回路ブロックを設定する動作を具体的に説明する。   Here, FIG. 13 shows a specific operation example of the processing of FIG. Hereinafter, the operation in which the task assignment unit (104) sets a circuit block to which a task is assigned by the process of FIG. 11 will be described in detail with reference to FIG.

図13に示すように、ステップST801〜ST810を実行した結果、図13(a)のようなタスク割り当てになっているものとする。すなわち、タスク(1301)〜(1304)は回路ブロック(107a)に割り当てられ、タスク(1305)〜(1308)は回路ブロック(107b)に割り当てられている状態である。また、回路ブロックIDのリストには、回路ブロック(107a)のIDのみが含まれている状態である。   As shown in FIG. 13, it is assumed that the task assignment as shown in FIG. 13A is performed as a result of executing steps ST801 to ST810. That is, tasks (1301) to (1304) are assigned to the circuit block (107a), and tasks (1305) to (1308) are assigned to the circuit block (107b). The list of circuit block IDs includes only the ID of the circuit block (107a).

以下、図13を用いて、図11の処理の内容を具体的に説明する。図11の処理では、回路ブロック(107a)と回路ブロック(107b)に割り当てられているタスクの交換を繰り返し、双方の回路ブロックが電源オン状態である時間を少なくなるようにする。以下に説明する処理は、全てタスク割り当て部(104)の内部で実行される。   Hereinafter, the contents of the process of FIG. 11 will be described in detail with reference to FIG. In the process of FIG. 11, the task assigned to the circuit block (107a) and the circuit block (107b) is repeatedly exchanged so that the time during which both circuit blocks are in the power-on state is reduced. The processes described below are all executed inside the task assignment unit (104).

ステップST1101で、任意のタスクのタスクIDを選択する。ここでは、タスク(1305)のタスクIDを選択する。   In step ST1101, a task ID of an arbitrary task is selected. Here, the task ID of the task (1305) is selected.

ステップST1102で、回路ブロック(107a)の回路ブロックIDを選択する。   In step ST1102, the circuit block ID of the circuit block (107a) is selected.

ステップST1103で、回路ブロック(107a)内のタスク(1301)〜(1304)のタスクIDのリスト(第2のタスクIDリスト)を生成する。   In step ST1103, a list of task IDs (second task ID list) of tasks (1301) to (1304) in the circuit block (107a) is generated.

ステップST1104で、ステップST1103で生成した第2のタスクIDリストの中から任意のタスクIDを選択する。ここでは、タスク(1301)を選択する。   In step ST1104, an arbitrary task ID is selected from the second task ID list generated in step ST1103. Here, the task (1301) is selected.

ステップST1105で、ステップST1101で選択したタスク(1305)と、ステップST1104で選択したタスク(1301)を交換する。タスク交換した結果を図13(b)に示す。   In step ST1105, the task (1305) selected in step ST1101 and the task (1301) selected in step ST1104 are exchanged. The result of task exchange is shown in FIG.

ステップST1106で、タスク交換後の回路ブロック(107a)内のタスクの処理開始時間のうち最も早いTsと、処理完了時間のうち最も遅いTfの差Tdを算出する。   In step ST1106, a difference Td between the earliest Ts among the processing start times of the tasks in the circuit block (107a) after task replacement and the latest Tf among the processing completion times is calculated.

ステップST1107で、タスク交換後の回路ブロック(107b)内のタスクの処理開始時間のうち最も早いTsと、処理完了時間のうち最も遅いTfの差Tdを算出する。   In step ST1107, a difference Td between the earliest Ts among the processing start times of the tasks in the circuit block (107b) after task replacement and the latest Tf among the processing completion times is calculated.

ステップST1108で、ステップST1106で算出したTdとステップST1107で算出したTdの合計値Ttを算出する。   In step ST1108, a total value Tt of Td calculated in step ST1106 and Td calculated in step ST1107 is calculated.

ステップST1109で、ステップST1104で選択したタスク(1301)のIDを第2のタスクIDリストから除外する。   In step ST1109, the ID of the task (1301) selected in step ST1104 is excluded from the second task ID list.

ステップST1104〜S1110を、タスク(1301)〜(1304)に対して実行する。つまり、タスク(1301)〜(1304)とタスク(1305)の交換を繰り返して、全てのタスク交換のパターンについてTtを算出する。   Steps ST1104 to S1110 are executed for tasks (1301) to (1304). That is, the task (1301) to (1304) and the task (1305) are repeatedly exchanged, and Tt is calculated for all task exchange patterns.

ステップST1111で、ステップST1108で算出したTtを比較し、Ttが最小になったタスクの交換結果を記憶する。この場合、Ttが最小となるタスクの交換結果は図13(b)に示したものとなる。   In step ST1111, the Tt calculated in step ST1108 is compared, and the task exchange result with the smallest Tt is stored. In this case, the exchange result of the task with the minimum Tt is as shown in FIG.

ステップST1112で、回路ブロックIDのリストから回路ブロック(107a)のIDを削除する。したがって、回路ブロックIDのリストは空となる。   In step ST1112, the ID of the circuit block (107a) is deleted from the list of circuit block IDs. Therefore, the list of circuit block IDs is empty.

ステップST1113で、回路ブロックIDのリストは空であるので、ステップST1114の処理に進む。   Since the list of circuit block IDs is empty in step ST1113, the process proceeds to step ST1114.

ステップST1102〜ST1113を、回路ブロックIDのリストが空になるまで繰り返し実行する。図13の例では、回路ブロックIDのリストには、回路ブロック(107a)だけが含まれるので、ST1102〜ST1113の処理を1回だけ実行する。   Steps ST1102 to ST1113 are repeatedly executed until the list of circuit block IDs becomes empty. In the example of FIG. 13, since only the circuit block (107a) is included in the list of circuit block IDs, the processing of ST1102 to ST1113 is executed only once.

ステップST1114では、ステップST1111で記憶したTtをそれぞれ比較する。図13の例では、ステップST1111で記憶したTtは一つだけであるので、ステップST1111で記憶したタスクIDと演算器IDの設定を記憶する。   In step ST1114, Tt stored in step ST1111 is compared. In the example of FIG. 13, only one Tt is stored in step ST1111. Therefore, the task ID and the calculator ID stored in step ST1111 are stored.

ステップST1115では、ステップST1101で選択したタスク(1303)のタスクIDを第1のタスクIDリストから除外する。このとき、第1のタスクIDリストにはタスク(1306)〜(1308)のタスクIDが格納されている状態となる。したがって、ステップST116では、第1のタスクIDリストは空ではないと判定する。よって、ステップST1101以降の処理を再実行する。つまり、第1のタスクIDリストに格納されているタスク(1305)〜(1308)のタスクIDに対して図11の処理を繰り返し実行する。図11の処理を実行した結果、タスク割り当ては図13(c)のようになる。   In step ST1115, the task ID of the task (1303) selected in step ST1101 is excluded from the first task ID list. At this time, the task IDs of tasks (1306) to (1308) are stored in the first task ID list. Therefore, in step ST116, it is determined that the first task ID list is not empty. Therefore, the process after step ST1101 is re-executed. That is, the process of FIG. 11 is repeatedly executed for the task IDs of tasks (1305) to (1308) stored in the first task ID list. As a result of executing the processing of FIG. 11, task assignment is as shown in FIG.

以上のようにして、タスク割り当て部(104)は、回路ブロック(107a)と回路ブロック(107b)が電源オン状態である時間が少なくなるようなタスクの割り当てを実行する。これにより、回路ブロック(107a)と回路ブロック(107b)で消費されるリーク電力を小さくすることができる。   As described above, the task assignment unit (104) performs task assignment such that the time during which the circuit block (107a) and the circuit block (107b) are in the power-on state is reduced. As a result, the leakage power consumed by the circuit block (107a) and the circuit block (107b) can be reduced.

ここで図14は構成情報生成部(106)の内部で再生成する構成情報の具体例を示したものである。図14(a)は構成情報生成部(106)によって再生成する前の構成情報(111)を示す。図14(b)は構成情報生成部(106)によって再生成した後の構成情報を示す。   Here, FIG. 14 shows a specific example of the configuration information regenerated inside the configuration information generation unit (106). FIG. 14A shows the configuration information (111) before being regenerated by the configuration information generation unit (106). FIG. 14B shows the configuration information after being regenerated by the configuration information generation unit (106).

構成情報生成部(106)は、データ処理装置(100)の外部から構成情報(111)を受信し、タスク割り当て部(104)からタスク割り当ての変更前後の演算器IDを受信する。その後、構成情報生成部(106)は、構成情報(111)に含まれる演算器IDをタスク割り当て変更後のIDに変更して、構成情報(111)を再生成する。すなわち、構成情報生成部(106)は図14(a)に示す構成情報(111)のIDを図14(b)に示す構成情報(111)のIDに変更する。図15に構成情報(111)のIDと演算器(108)の対応の一例を示す。構成情報(111)のIDを変更前は、図14(a)のID設定にしたがい、回路ブロック(107a)に構成情報(111)の設定値が反映される。また、構成情報(111)のIDを変更後は、図14(b)のID設定にしたがい、回路ブロック(107b)に構成情報(111)の設定値が反映される。   The configuration information generation unit (106) receives the configuration information (111) from the outside of the data processing device (100), and receives the computing unit ID before and after the task allocation change from the task allocation unit (104). Thereafter, the configuration information generation unit (106) changes the computing unit ID included in the configuration information (111) to the ID after the task assignment change, and regenerates the configuration information (111). That is, the configuration information generation unit (106) changes the ID of the configuration information (111) illustrated in FIG. 14A to the ID of the configuration information (111) illustrated in FIG. FIG. 15 shows an example of the correspondence between the ID of the configuration information (111) and the calculator (108). Before changing the ID of the configuration information (111), the setting value of the configuration information (111) is reflected in the circuit block (107a) according to the ID setting of FIG. Further, after changing the ID of the configuration information (111), the setting value of the configuration information (111) is reflected in the circuit block (107b) according to the ID setting of FIG.

次に、構成情報生成部(106)はタスク割り当て変更後の演算器間のデータ送受信の経路を特定して、ルータ(109)の設定を変更する。例えば、次のような処理を構成情報生成部(106)が実行するようにすれば良い。構成情報生成部(106)は構成情報(111)のIDを変更後、データを送受信する演算器のIDを構成情報(111)に含まれる演算器(108)、ルータ(109)の設定値から検出する。次に構成情報生成部(106)は、演算器間のデータ送受信の経路上にあるルータ(109)を選び、演算器間でデータ送受信をする経路に沿ってルータ(109)の設定値を変更する。   Next, the configuration information generation unit (106) identifies the data transmission / reception path between the arithmetic units after the task assignment is changed, and changes the setting of the router (109). For example, the configuration information generation unit (106) may execute the following processing. After changing the ID of the configuration information (111), the configuration information generation unit (106) determines the ID of the calculator that transmits and receives data from the setting values of the calculator (108) and the router (109) included in the configuration information (111). To detect. Next, the configuration information generation unit (106) selects the router (109) on the data transmission / reception path between the arithmetic units, and changes the setting value of the router (109) along the path for data transmission / reception between the arithmetic units. To do.

以上のようにしてデータ処理装置(100)を構成することにより、回路ブロック(107a)と回路ブロック(107b)に電源供給する時間が少なくなるように回路ブロック内の演算器(108)にタスクを割り当てることができる。したがって、本提案手法により、データ処理装置(100)で消費するリーク電力を削減することができる。   By configuring the data processing apparatus (100) as described above, tasks are applied to the arithmetic unit (108) in the circuit block so that the time for supplying power to the circuit block (107a) and the circuit block (107b) is reduced. Can be assigned. Therefore, the proposed method can reduce the leakage power consumed by the data processing apparatus (100).

<構成情報生成装置の構成と動作>
以下では、本実施形態のデータ処理装置(100)に入力する構成情報(111)を生成する構成情報生成装置(1600)について説明する。
<Configuration and operation of configuration information generation device>
Hereinafter, the configuration information generation apparatus (1600) that generates the configuration information (111) to be input to the data processing apparatus (100) of the present embodiment will be described.

図16は、データフローからデータフローへ処理を切り替えるための構成情報(111)を生成するための装置のブロック構成図を示している。   FIG. 16 shows a block configuration diagram of an apparatus for generating configuration information (111) for switching processing from a data flow to a data flow.

1601は装置全体の制御を司るCPUである。   Reference numeral 1601 denotes a CPU that controls the entire apparatus.

1602はブートプログラムやBIOSを記憶しているROM、1603はCPU(1601)のワークエリアとして利用され、且つ、OS(オペレーティングシステム)、アプリケーションを格納するためのRAMである。   A ROM 1602 stores a boot program and a BIOS. A RAM 1603 is used as a work area for the CPU (1601) and stores an OS (operating system) and applications.

1604はOS、構成情報(111)を作成するためのアプリケーション、ならびに、様々なデータを格納するためのハードディスクドライブ(HDD)である。   Reference numeral 1604 denotes an OS, an application for creating configuration information (111), and a hard disk drive (HDD) for storing various data.

1605はキーボード、1606はマウスであり、ユーザインタフェースとして機能する。1607は内部にビデオメモリ及び表示コントローラを内蔵する表示制御部であり、1608は表示制御部(1607)からの映像信号を受信し、表示するための表示装置である。   A keyboard 1605 and a mouse 1606 function as a user interface. Reference numeral 1607 denotes a display control unit that incorporates a video memory and a display controller therein. Reference numeral 1608 denotes a display device that receives and displays a video signal from the display control unit (1607).

1609は各種外部デバイスと通信するインタフェースであり、例えば、図18に示した外部メモリ(1610)を接続することで、本装置が作成した構成情報(111)をその外部メモリ(1610)に書き込むことになる。   Reference numeral 1609 denotes an interface for communicating with various external devices. For example, by connecting the external memory (1610) shown in FIG. 18, the configuration information (111) created by this apparatus is written to the external memory (1610). become.

以下、図16に示した構成情報生成装置(1600)の動作を説明する。   Hereinafter, the operation of the configuration information generation apparatus (1600) shown in FIG. 16 will be described.

構成情報生成装置(1600)に電源が投入されると、CPU(1601)はROM(1602)に格納されたブートプログラムを実行し、HDD(1604)に格納されたOSをRAMにロードする。その後、構成情報(111)を作成するアプリケーションを起動することで、本装置が構成情報作成装置として機能することになる。   When the configuration information generation apparatus (1600) is turned on, the CPU (1601) executes the boot program stored in the ROM (1602) and loads the OS stored in the HDD (1604) into the RAM. Thereafter, by starting an application for creating the configuration information (111), this apparatus functions as a configuration information creation apparatus.

本装置で作成した構成情報(111)は、外部メモリ(1610)に書き込まれる。   The configuration information (111) created by this apparatus is written to the external memory (1610).

<半導体装置の構成と動作>
図17に、本実施形態のデータ処理装置(100)を搭載した半導体装置(1612)の構成例を示す。半導体装置(1612)の構成は、本実施形態に限定するものではなく他の構成でも良い。
<Configuration and operation of semiconductor device>
FIG. 17 shows a configuration example of a semiconductor device (1612) on which the data processing apparatus (100) of this embodiment is mounted. The configuration of the semiconductor device (1612) is not limited to this embodiment, and other configurations may be used.

図17の半導体装置(1612)は、再構成デバイス(1700)と外部メモリ(1705)で構成される。再構成デバイス(1700)は、データ処理装置(100)、CPU(1701)、バス(1702)、I/F(1703)、I/O(1704)で構成される。   The semiconductor device (1612) in FIG. 17 includes a reconfigurable device (1700) and an external memory (1705). The reconfiguration device (1700) includes a data processing device (100), a CPU (1701), a bus (1702), an I / F (1703), and an I / O (1704).

図中、1701は再構成デバイス全体の制御を司るCPUである。1705は構成情報(111)、ブートプログラム、OS(オペレーティングシステム)、アプリケーションを格納するためのメモリ(ROM/RAM)である。   In the figure, reference numeral 1701 denotes a CPU that controls the entire reconfigurable device. Reference numeral 1705 denotes a memory (ROM / RAM) for storing configuration information (111), a boot program, an OS (operating system), and applications.

ここで、図18は外部メモリ(1705)の内部で保持している構成情報の配置を示す。   Here, FIG. 18 shows the arrangement of configuration information held in the external memory (1705).

図18に示すように、各構成情報は構成情報の切り替え順に従って、外部メモリ(1705)の上位アドレスから順番に格納されている。   As shown in FIG. 18, each piece of configuration information is stored in order from the upper address of the external memory (1705) according to the switching order of the configuration information.

1801は第1のデータ処理を実現するための第1の構成情報であり、1802は第2のデータ処理を実現するための第2の構成情報である。   Reference numeral 1801 denotes first configuration information for realizing the first data processing, and 1802 denotes second configuration information for realizing the second data processing.

第1の構成情報(1801)は、第1のアドレス領域(1803)に保持され、第2の構成情報(1802)は、第2のアドレス領域(1804)に保持される。なお図18に示した構成情報の配置方法は、本実施形態に限定するものではなく、他の方法でも良い。   The first configuration information (1801) is held in the first address area (1803), and the second configuration information (1802) is held in the second address area (1804). Note that the arrangement method of the configuration information shown in FIG. 18 is not limited to this embodiment, and other methods may be used.

1703は外部メモリ(1707)と通信するインタフェースである。1704は再構成デバイス(1700)が構成情報(111)や処理対象となるデータ(画像データ等)を入出力するためのインタフェースである。1702はCPU(1701)、データ処理装置(100)、I/F(1703)、I/O(1704)との間で通信をするためのバスである。   Reference numeral 1703 denotes an interface for communicating with the external memory (1707). Reference numeral 1704 denotes an interface through which the reconstruction device (1700) inputs / outputs configuration information (111) and data to be processed (image data or the like). Reference numeral 1702 denotes a bus for communicating with the CPU (1701), the data processing device (100), the I / F (1703), and the I / O (1704).

以下、図17の半導体装置の動作を説明する。   Hereinafter, the operation of the semiconductor device of FIG. 17 will be described.

本装置に電源が投入されると、CPU(1701)は外部メモリ(1705)に格納されたブートプログラムを実行し、システムを起動する。次に、CPU(1701)はI/O(1704)から構成情報(111)の読み込みをして、外部メモリ(1705)へ構成情報(111)を格納するよう指示する。CPU(1701)は、外部メモリ(1705)に構成情報(111)を格納した後、構成情報(111)の読み出しをデータ処理装置(100)に指示する。   When the apparatus is turned on, the CPU (1701) executes a boot program stored in the external memory (1705) to start the system. Next, the CPU (1701) reads the configuration information (111) from the I / O (1704) and instructs the external memory (1705) to store the configuration information (111). After storing the configuration information (111) in the external memory (1705), the CPU (1701) instructs the data processing device (100) to read the configuration information (111).

データ処理装置(100)は、外部メモリ(1705)へ構成情報(111)の読み出しの要求をして、バス(1702)を介して外部メモリ(1705)から構成情報(111)を受信する。構成情報(111)は、第1の構成情報(1601)、第2の構成情報(1602)という順番で読み込まれる。   The data processing device (100) requests the external memory (1705) to read the configuration information (111), and receives the configuration information (111) from the external memory (1705) via the bus (1702). The configuration information (111) is read in the order of first configuration information (1601) and second configuration information (1602).

以降、データ処理装置(100)の内部で、構成情報(111)に沿った処理の割り当てがおこなわれる。処理の割り当てが完了した後、I/O(1704)から処理対象データが入力され、データ処理装置(100)の内部でデータ処理が実行される。   Thereafter, processing is allocated in accordance with the configuration information (111) within the data processing device (100). After the processing assignment is completed, processing target data is input from the I / O (1704), and data processing is executed inside the data processing apparatus (100).

本提案のデータ処理装置(100)は、第1の構成情報(1801)から順番に読み込んでいき、動的再構成回路(101)の動作を切り替える。   The proposed data processing apparatus (100) sequentially reads the first configuration information (1801) and switches the operation of the dynamic reconfiguration circuit (101).

[実施形態2]
実施形態1では、回路ブロック(107a)と回路ブロック(107b)を処理性能と消費電力が同等である演算器(108)で構成する実施形態を示したが、図19に示すように各回路ブロックを処理性能と消費電力が異なる演算器で構成しても良い。
[Embodiment 2]
In the first embodiment, the circuit block (107a) and the circuit block (107b) are configured by the arithmetic unit (108) having the same processing performance and power consumption. However, as shown in FIG. May be composed of computing units having different processing performance and power consumption.

図19に示すデータ処理装置(100)は、回路ブロック(107a)を処理性能が高く、消費電力が大きい第1の演算器(1901)で構成し、回路ブロック(107b)を処理性能が低く、消費電力が小さい第2の演算器(1902)で構成する。他の構成は、実施形態1で示したデータ処理装置(100)と同様である。本実施形態では、回路ブロックは2つとしているが、回路ブロックの数を3つ以上としても良い。   In the data processing device (100) shown in FIG. 19, the circuit block (107a) is composed of a first computing unit (1901) with high processing performance and high power consumption, and the circuit block (107b) has low processing performance. A second computing unit (1902) with low power consumption is used. Other configurations are the same as those of the data processing apparatus (100) shown in the first embodiment. In this embodiment, the number of circuit blocks is two, but the number of circuit blocks may be three or more.

以下、図19に示す回路ブロック(107a)、回路ブロック(107b)に電源供給する時間が少なくなるようにタスクを割り当てるときのデータ処理装置(100)の動作を説明する。図19のデータ処理装置(100)は、タスク割り当て部(104)以外のブロックの動作は、実施形態1で示したデータ処理装置(100)と同様である。以下、図19のデータ処理装置(100)におけるタスク割り当て部(104)の動作を説明する。   The operation of the data processing device (100) when assigning tasks so that the time for supplying power to the circuit block (107a) and the circuit block (107b) shown in FIG. In the data processing apparatus (100) of FIG. 19, the operations of blocks other than the task assignment unit (104) are the same as those of the data processing apparatus (100) shown in the first embodiment. Hereinafter, the operation of the task assignment unit (104) in the data processing apparatus (100) of FIG. 19 will be described.

本実施形態におけるタスク割り当て部(104)の動作は、図8に示したステップST808とステップST811を除き、実施形態1と同様である。   The operation of the task assignment unit (104) in this embodiment is the same as that in Embodiment 1 except for Step ST808 and Step ST811 shown in FIG.

本実施形態におけるタスク割り当て部(104)は、図8に示したステップST808とステップST811で、タスクを第1の演算器(1901)で実行する場合と第2の演算器(1902)で実行する場合の2通りのタスクの実行完了時間を取得する。なお、演算器の種類は2つに限定する必要はなく、演算器の種類を3つ以上としても良い。その場合は、図8に示したステップST808とステップST811で、演算器の種類に対応する数のタスクの実行完了時間を取得すれば良い。   In step ST808 and step ST811 shown in FIG. 8, the task assignment unit (104) in the present embodiment executes the task in the first computing unit (1901) and the second computing unit (1902). The execution completion time of two kinds of tasks is acquired. Note that the number of arithmetic units need not be limited to two, and the number of arithmetic units may be three or more. In that case, the execution completion time of the number of tasks corresponding to the type of the arithmetic unit may be acquired in steps ST808 and ST811 shown in FIG.

ここで、図20は図19のタスク割り当て部(104)の具体的な動作例を示したものである。以下、図20を用いてタスク割り当て部(104)の動作を説明する。   Here, FIG. 20 shows a specific operation example of the task assignment unit (104) of FIG. Hereinafter, the operation of the task assignment unit (104) will be described with reference to FIG.

図20(a)は、タスク割り当て部(104)がタスク割り当てを実行する前の状態を示す。図20(a)に示すように、回路ブロック(107a)にはタスク(2001)〜(2003)が割り当てられており、回路ブロック(107b)にはタスク(2004)〜(2006)が割り当てられており、各タスクは実行中の状態である。回路ブロック(107a)と回路ブロック(107b)には、それぞれ一つの空き演算器がある状態である。   FIG. 20A shows a state before the task assignment unit (104) executes task assignment. As shown in FIG. 20A, tasks (2001) to (2003) are assigned to the circuit block (107a), and tasks (2004) to (2006) are assigned to the circuit block (107b). Each task is in a running state. Each of the circuit block (107a) and the circuit block (107b) has one empty computing unit.

また、タスク割り当て部(104)が図8の処理でステップST807まで実行した結果、第1のタスクIDリストには次に実行するタスク(2007)のIDが格納されている状態である。回路ブロックIDのリストには、回路ブロック(107a)と回路ブロック(107b)のIDが含まれている状態である。   Further, as a result of the task assignment unit (104) executing up to step ST807 in the processing of FIG. 8, the ID of the next task (2007) to be executed is stored in the first task ID list. The list of circuit block IDs includes the IDs of the circuit block (107a) and the circuit block (107b).

タスク割り当て部(104)は、図8のステップST808の処理でタスク(2007)を回路ブロック(107a)、回路ブロック(107b)のどちらに割り当てるかを選択する。以下、図10と図20を用いて、タスク割り当て部(104)の動作を説明する。   The task assignment unit (104) selects whether the task (2007) is assigned to the circuit block (107a) or the circuit block (107b) in the process of step ST808 of FIG. Hereinafter, the operation of the task assignment unit (104) will be described with reference to FIGS.

ステップST1001では、第1のタスクIDリストからタスク(2007)のIDを選択する。   In step ST1001, the ID of the task (2007) is selected from the first task ID list.

ステップST1002では、回路ブロック(107a)と回路ブロック(107b)内でタスクが全て完了する時間を判定する。図20(a)に示すように、回路ブロック(107a)内でタスクが全て完了する時間はTaであり、回路ブロック(107b)内でタスクが全て完了する時間はTbである。   In step ST1002, it is determined when all tasks are completed in the circuit block (107a) and the circuit block (107b). As shown in FIG. 20A, the time for completing all tasks in the circuit block (107a) is Ta, and the time for completing all tasks in the circuit block (107b) is Tb.

ステップST1003では、回路ブロック(107a)と回路ブロック(107b)に対して、タスク(2007)の処理完了時間をそれぞれ取得する。つまり、タスク(2007)を回路ブロック(107a)内の第1の演算器(1901)で実行する場合の処理完了時間と、タスク(2007)を回路ブロック(107b)内の第2の演算器(1902)で実行する場合の処理完了時間をそれぞれ取得する。タスク(2007)を第1の演算器(1901)、第2演算器(1902)で実行する場合の処理時間を図20(b)、図20(c)に示す。図20(b)に示すように、タスク(2007)を第2の演算器(1902)で実行する場合、処理完了時間はTb’となる。また、図20(c)に示すように、タスク(2007)を第1の演算器(1901)で実行する場合、処理完了時間はTa’となる。次に、ステップST1002で判定した時間Taと先に取得したTa’の差、ステップST1002で判定した時間Tbと先に取得したTb’の差を算出する。   In step ST1003, the processing completion time of the task (2007) is acquired for each of the circuit block (107a) and the circuit block (107b). That is, the processing completion time when the task (2007) is executed by the first arithmetic unit (1901) in the circuit block (107a), and the task (2007) is processed by the second arithmetic unit (107b) in the circuit block (107b). In step 1902), the process completion time is acquired. Processing times when the task (2007) is executed by the first computing unit (1901) and the second computing unit (1902) are shown in FIGS. 20 (b) and 20 (c). As shown in FIG. 20B, when the task (2007) is executed by the second computing unit (1902), the processing completion time is Tb ′. As shown in FIG. 20C, when the task (2007) is executed by the first computing unit (1901), the processing completion time is Ta '. Next, the difference between the time Ta determined in step ST1002 and the previously acquired Ta ', and the difference between the time Tb determined in step ST1002 and the previously acquired Tb' are calculated.

ステップST1004では、ステップST1003で算出した結果を基にタスク(2007)を回路ブロック(107a)と回路ブロック(107b)のどちらかに割り当てる。図20の例では、ステップST1003で算出した結果はTa’−Ta<0、Tb’−Tb>0であるため、タスク(2007)を回路ブロック(107b)に割り当てる。なお、回路ブロック(107a)(107b)で消費するリーク電力が異なる場合は、回路ブロック(107a)にタスク(2007)を割り当てた場合のリーク電力と、回路ブロック(107b)にタスク(2007)を割り当てた場合のリーク電力を算出する。例えば、回路ブロックごとに単位時間あたりに消費するリーク電力値を予めタスク割り当て部(104)の内部に設定しておき、単位時間あたりに消費するリーク電力値にタスクの実行時間を乗算するようにすれば良い。タスクの実行時間は、図20(b)、図20(c)に示すように各回路ブロックで各々の回路ブロックごとに最も処理開始が早いタスクの処理開始時間と最も処理完了が遅いタスクの処理完了時間の差Tdとする。   In step ST1004, the task (2007) is assigned to either the circuit block (107a) or the circuit block (107b) based on the result calculated in step ST1003. In the example of FIG. 20, since the results calculated in step ST1003 are Ta′−Ta <0 and Tb′−Tb> 0, the task (2007) is assigned to the circuit block (107b). If the leakage power consumed by the circuit blocks (107a) and (107b) is different, the leakage power when the task (2007) is assigned to the circuit block (107a) and the task (2007) are assigned to the circuit block (107b). The leak power when assigned is calculated. For example, a leakage power value consumed per unit time for each circuit block is set in advance in the task allocation unit (104), and the leakage power value consumed per unit time is multiplied by the task execution time. Just do it. As shown in FIG. 20B and FIG. 20C, the task execution time is the processing start time of the task with the earliest processing start and the processing of the task with the latest processing completion for each circuit block in each circuit block. The difference in completion time is Td.

以降、ステップST1005、ステップST1006の処理は実施形態1と同様である。   Henceforth, the process of step ST1005 and step ST1006 is the same as that of Embodiment 1.

図11のST1106〜ST1108についても、同様の処理を追加すれば良い。   Similar processing may be added to ST1106 to ST1108 in FIG.

以上のようにして、回路ブロックを処理性能と消費電力が異なる演算器で構成した場合でも、本提案手法によりデータ処理装置(100)が消費するリーク電力を削減することができる。   As described above, even when the circuit block is configured with arithmetic units having different processing performance and power consumption, the proposed method can reduce the leakage power consumed by the data processing device (100).

[実施形態3]
実施形態1では、タスクを割り当てる演算器(108)が固定されてない場合の実施形態を示したが、タスクを割り当てる演算器(108)が固定されている場合にも本提案を適用することができる。以下に、その実施形態を示す。
[Embodiment 3]
In the first embodiment, the embodiment in which the computing unit (108) to which the task is allocated is not fixed has been described. However, the present proposal can also be applied to the case where the computing unit (108) to which the task is allocated is fixed. it can. The embodiment is shown below.

以下に示す実施形態は、タスク情報取得部(103)とタスク割り当て部(106)の内部処理のみが実施形態1と異なる。タスク情報取得部(103)とタスク情報取得部(104)の内部処理を除く部分は実施形態1と同様である。   The following embodiment differs from the first embodiment only in the internal processing of the task information acquisition unit (103) and the task assignment unit (106). The parts other than the internal processing of the task information acquisition unit (103) and the task information acquisition unit (104) are the same as those in the first embodiment.

以下で、本実施形態におけるタスク情報取得部(103)の内部処理を説明する。ここで、図21はタスク情報取得部(103)の内部で保持するタスク情報の一例である。本実施形態では、実施形態1で示したタスク情報に演算器IDのカラムを加える。この演算器IDは、予め割り当てるタスクが決められている演算器(108)のIDを示す。図21に示す例では、演算器IDが6である演算器(108)に、タスクIDが3であるタスクが予め割り当てられている。また、演算器IDが0であるタスクIDは、タスクを割り当てる演算器(108)を任意に設定できる。なお、この演算器IDは、データ処理装置(100)を動作させる前にユーザによって設定しておけば良い。   Hereinafter, internal processing of the task information acquisition unit (103) in the present embodiment will be described. Here, FIG. 21 is an example of task information held inside the task information acquisition unit (103). In this embodiment, a column of computing unit ID is added to the task information shown in the first embodiment. This computing unit ID indicates the ID of the computing unit (108) for which a task to be assigned in advance is determined. In the example shown in FIG. 21, a task having a task ID of 3 is assigned in advance to a calculator (108) having a calculator ID of 6. In addition, a task ID with a calculator ID of 0 can arbitrarily set a calculator (108) to which a task is assigned. The computing unit ID may be set by the user before operating the data processing apparatus (100).

タスク情報取得部(103)は、タスク割り当て部(106)からタスク情報の送信を要求する信号を受信した後、図21に示すタスク情報を送信する。   The task information acquisition unit (103) receives the signal requesting transmission of task information from the task assignment unit (106), and then transmits the task information shown in FIG.

以下で、本実施形態におけるタスク割り当て部(106)の内部処理を説明する。   Hereinafter, internal processing of the task assignment unit (106) in the present embodiment will be described.

ここで図22はタスク割り当て部(106)の内部で保持するテーブルである。本実施形態では、実施形態1で示したテーブルに固定フラグを加える。固定フラグが1である場合、演算器IDは固定であり、固定フラグが0である場合、演算器IDは固定ではないことを示す。   Here, FIG. 22 is a table held inside the task assignment unit (106). In the present embodiment, a fixed flag is added to the table shown in the first embodiment. When the fixed flag is 1, the computing unit ID is fixed, and when the fixed flag is 0, the computing unit ID is not fixed.

タスク割り当て部(106)は、タスク情報取得部(103)から図21のタスク情報を受信し、演算器情報取得部(105)から演算器情報を受信した後、図22のテーブルを生成する。タスク割り当て部(106)はタスク情報取得部(103)から受信したタスク情報で演算器IDが設定されている場合は、図22に示すテーブルの演算器IDに演算器IDを設定して、演算器IDを設定した行にタスクIDを設定する。更に、タスク割り当て部(106)は、演算器IDを設定した行の固定フラグを1とする。タスク割り当て部(106)はタスク情報取得部(103)から受信したタスク情報に演算器IDが設定されていない場合は、図22に示すテーブルの演算器IDを0とし、演算器IDを設定した行のタスクIDを設定する。更に、演算器IDを設定した行の固定フラグを0とする。   The task assignment unit (106) receives the task information of FIG. 21 from the task information acquisition unit (103), receives the calculator information from the calculator information acquisition unit (105), and then generates the table of FIG. When the computing unit ID is set in the task information received from the task information acquisition unit (103), the task allocation unit (106) sets the computing unit ID to the computing unit ID in the table shown in FIG. The task ID is set in the row where the device ID is set. Further, the task assignment unit (106) sets the fixed flag of the row in which the computing unit ID is set to 1. When the task ID received from the task information acquisition unit (103) is not set with the calculator ID, the task assigner (106) sets the calculator ID in the table shown in FIG. 22 to 0 and sets the calculator ID. Set the task ID for the row. Further, the fixed flag of the row in which the calculator ID is set is set to 0.

以降、タスク割り当て部(106)は固定フラグが1であるタスクIDの割り当ては変更せず、固定フラグが0であるタスクIDに対してタスク割り当てを実行する。タスク割り当て部(106)が実行するタスク割り当ての処理は、実施形態1と同様である。   Thereafter, the task assignment unit (106) does not change the assignment of the task ID whose fixed flag is 1, and performs the task assignment for the task ID whose fixed flag is 0. The task assignment process executed by the task assignment unit (106) is the same as that in the first embodiment.

以上のようにして、タスクを割り当てる演算器(108)が固定されている場合にも本提案を適用することができ、データ処理装置(100)が消費するリーク電力を削減することができる。   As described above, the present proposal can be applied even when the computing unit (108) to which the task is assigned is fixed, and the leakage power consumed by the data processing device (100) can be reduced.

100 データ処理装置
101 動的再構成回路
102 電源制御部
103 タスク情報取得部
104 タスク割り当て部
105 演算器情報取得部
106 構成情報生成部
107a、107b 回路ブロック
108 演算器
109 ルータ
110 電源スイッチ
111 構成情報
201 演算器の設定データ
202 ルータの設定データ
203 ID
204 アドレス
205 設定値
301〜304 データ入力用の結線
305〜308 データ出力用の結線
309〜312 データ受信用の結線
313〜316 データ送信用の結線
401 構成情報設定部
402 演算処理部
403 データ入力部
404 データ出力部
501 構成情報設定部
502 入出力切り替え部
1201〜1212 タスク
1301〜1308 タスク
1600 構成情報生成装置
1601 CPU
1602 ROM
1603 RAM
1604 HDD
1605 キーボード
1606 マウス
1607 表示制御部
1608 表示装置
1609 I/F
1610 外部メモリ
1611 バス
1612 半導体装置
1700 再構成デバイス
1701 CPU
1702 バス
1703 I/F
1704 I/O
1705 外部メモリ
1708 半導体装置
1801 第1の構成情報
1802 第2の構成情報
1803 第1のアドレス領域
1804 第2のアドレス領域
1901 第1の演算器
1902 第2の演算器
DESCRIPTION OF SYMBOLS 100 Data processing apparatus 101 Dynamic reconfiguration circuit 102 Power supply control part 103 Task information acquisition part 104 Task allocation part 105 Operation unit information acquisition part 106 Configuration information generation part 107a, 107b Circuit block 108 Operation unit 109 Router 110 Power switch 111 Configuration information 201 Operation unit setting data 202 Router setting data 203 ID
204 Address 205 Setting Value 301-304 Connection for Data Input 305-308 Connection for Data Output 309-312 Connection for Data Reception 313-316 Connection for Data Transmission 401 Configuration Information Setting Unit 402 Arithmetic Processing Unit 403 Data Input Unit 404 Data output unit 501 Configuration information setting unit 502 Input / output switching unit 1201 to 1212 Task 1301 to 1308 Task 1600 Configuration information generation device 1601 CPU
1602 ROM
1603 RAM
1604 HDD
1605 Keyboard 1606 Mouse 1607 Display control unit 1608 Display device 1609 I / F
1610 External memory 1611 Bus 1612 Semiconductor device 1700 Reconfigurable device 1701 CPU
1702 Bus 1703 I / F
1704 I / O
1705 External memory 1708 Semiconductor device 1801 First configuration information 1802 Second configuration information 1803 First address area 1804 Second address area 1901 First arithmetic unit 1902 Second arithmetic unit

Claims (5)

複数のデータ処理を並列に実行する複数の演算要素を含む複数の回路ブロックと、
前記複数の回路ブロックへの電源供給を個別に制御する電源制御手段と、
前記データ処理に関する情報と前記演算要素に関する情報を取得する取得手段と、
前記取得手段で取得した情報に基づき、回路ブロックに電源供給する時間が少なくなるように回路ブロック内の演算要素にデータ処理を割り当てる割り当て手段と、
前記割り当て手段によって割り当てた処理を回路ブロックが実行できるように構成情報を生成する生成手段と、
を有することを特徴とするデータ処理装置。
A plurality of circuit blocks including a plurality of arithmetic elements for executing a plurality of data processing in parallel;
Power control means for individually controlling power supply to the plurality of circuit blocks;
Obtaining means for obtaining information relating to the data processing and information relating to the computing element;
Assigning means for allocating data processing to arithmetic elements in the circuit block based on the information obtained by the obtaining means, so as to reduce the time for supplying power to the circuit block;
Generating means for generating configuration information so that the circuit block can execute the process assigned by the assigning means;
A data processing apparatus comprising:
前記取得手段は、データ処理の処理開始時間、処理完了時間に関する情報を取得することを特徴とする請求項1記載のデータ処理装置。   The data processing apparatus according to claim 1, wherein the acquisition unit acquires information regarding a processing start time and a processing completion time of data processing. 前記割り当て手段は、
前記処理開始時間と前記処理完了時間が近いデータ処理を同一の回路ブロック内の演算要素に割り当てることを特徴とする請求項2記載のデータ処理装置。
The assigning means includes
3. The data processing apparatus according to claim 2, wherein data processing having a processing start time close to the processing completion time is assigned to an arithmetic element in the same circuit block.
前記割り当て手段は、
回路ブロックで消費されるリーク電力が少なくなるように
回路ブロック内の演算要素にデータ処理を割り当てることを特徴とする請求項1記載のデータ処理装置。
The assigning means includes
The data processing apparatus according to claim 1, wherein data processing is assigned to an arithmetic element in the circuit block so that leakage power consumed in the circuit block is reduced.
複数のデータ処理を並列に実行する複数の演算要素を含む複数の回路ブロックへの電源供給を個別に制御する電源制御工程と、
前記データ処理に関する情報と前記演算要素に関する情報を取得する取得工程と、
前記取得工程で取得した情報に基づき、回路ブロックに電源供給する時間が少なくなるように回路ブロック内の演算要素にデータ処理を割り当てる割り当て工程と、
前記割り当て工程によって割り当てた処理を回路ブロックが実行できるように構成情報を生成する生成工程と、
を有することを特徴とするデータ処理方法。
A power control step for individually controlling power supply to a plurality of circuit blocks including a plurality of arithmetic elements that execute a plurality of data processing in parallel;
An acquisition step of acquiring information relating to the data processing and information relating to the calculation element;
An assigning step for allocating data processing to computing elements in the circuit block based on the information obtained in the obtaining step, so that the time for supplying power to the circuit block is reduced;
A generating step for generating configuration information so that the circuit block can execute the process assigned by the assigning step;
A data processing method characterized by comprising:
JP2014242438A 2014-11-28 2014-11-28 Data processor and data processing method Pending JP2016103240A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014242438A JP2016103240A (en) 2014-11-28 2014-11-28 Data processor and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014242438A JP2016103240A (en) 2014-11-28 2014-11-28 Data processor and data processing method

Publications (1)

Publication Number Publication Date
JP2016103240A true JP2016103240A (en) 2016-06-02

Family

ID=56089025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014242438A Pending JP2016103240A (en) 2014-11-28 2014-11-28 Data processor and data processing method

Country Status (1)

Country Link
JP (1) JP2016103240A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033567A (en) * 2019-08-22 2021-03-01 株式会社デンソー Electronic control device
JPWO2021182222A1 (en) * 2020-03-11 2021-09-16

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033567A (en) * 2019-08-22 2021-03-01 株式会社デンソー Electronic control device
JPWO2021182222A1 (en) * 2020-03-11 2021-09-16
WO2021182222A1 (en) * 2020-03-11 2021-09-16 株式会社エヌエスアイテクス Computation device and computation method
JP7393519B2 (en) 2020-03-11 2023-12-06 株式会社エヌエスアイテクス Arithmetic device and method

Similar Documents

Publication Publication Date Title
TWI564793B (en) Migrating threads between asymmetric cores in a multiple core processor
JP2014157508A (en) Arithmetic device, array type arithmetic device and control method thereof, and information processing system
JP2013149093A (en) Control device, control method, program, and electronic apparatus
KR20160006328A (en) System on chip including multi-core processor and dynamic power management method thereof
KR20130020420A (en) Task scheduling method of semiconductor device
JP5669987B1 (en) Control device, development device, and development program
JP2016103240A (en) Data processor and data processing method
TWI681289B (en) Method,computing device,and non-transitory processor readable medium of managing heterogeneous parallel computing
JP5980035B2 (en) Information processing apparatus and control method thereof
JP2016189049A (en) Semiconductor device and method for controlling the same
JP2010277300A (en) Power saving control device for multiprocessor system, and mobile terminal
JP6224994B2 (en) Information processing apparatus and control method thereof
US9146849B2 (en) Apparatus and method for controlling power supply of control device that controls access to data
JP2012137946A (en) Semiconductor device
JP5783348B2 (en) Control device, control program, and image forming apparatus
JP2014052918A (en) Calculation device and control method therefor
JP2008243049A (en) Information processor and memory control method therefor
US9009509B2 (en) Virtual computer system, device sharing control method, computer-readable recording medium, and integrated circuit
JP2008139907A (en) Job allocation program and job allocation method
JP6087663B2 (en) Configuration information generating apparatus and control method thereof
JP2015060401A (en) Information processor and control method thereof
JP5994339B2 (en) Virtualization system, storage device, storage data migration method, and storage data migration program
JP2019219931A (en) Semiconductor integrated circuit, assigning method of cpu, and program
JP6375602B2 (en) Information processing apparatus for controlling power consumption, power control method, and program therefor
JP2017079037A (en) Arithmetic device and method thereof