WO2014112082A1 - Programmable logic device - Google Patents

Programmable logic device Download PDF

Info

Publication number
WO2014112082A1
WO2014112082A1 PCT/JP2013/050851 JP2013050851W WO2014112082A1 WO 2014112082 A1 WO2014112082 A1 WO 2014112082A1 JP 2013050851 W JP2013050851 W JP 2013050851W WO 2014112082 A1 WO2014112082 A1 WO 2014112082A1
Authority
WO
WIPO (PCT)
Prior art keywords
programmable logic
programmable
semiconductor chip
task
processing
Prior art date
Application number
PCT/JP2013/050851
Other languages
French (fr)
Japanese (ja)
Inventor
巌 杉山
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2013/050851 priority Critical patent/WO2014112082A1/en
Publication of WO2014112082A1 publication Critical patent/WO2014112082A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Definitions

  • the present invention relates to a programmable logic device.
  • Programmable logic device is a general term for logic devices that can programmably configure a logic operation circuit of a semiconductor integrated circuit.
  • a programmable logic device called FPGA field-programmable gate array
  • FPGA field-programmable gate array
  • CPUs Central Processing Units
  • a multiprocessor system in which a plurality of element processors are coupled in a two-dimensional grid, for example, by a coupling network to realize highly parallel processing (see, for example, Patent Document 2).
  • the multiprocessor system distributes and controls the load of the element processor.
  • Non-Patent Documents 1 and 2 a computing system using FPGA is known (for example, see Non-Patent Documents 1 and 2).
  • Multiple programmable logic units can perform hardware operations and are controlled by the CPU. However, as the number of programmable logic units increases, the load of programmable logic unit control by the CPU increases, causing a reduction in processing speed.
  • An object of the present invention is to provide a programmable logic device that can reduce the load on the CPU (offload) and improve the processing speed of the entire system.
  • the programmable logic device starts task processing when a task instruction signal is input, and outputs a task completion signal when the task processing is completed, and a plurality of programmable logic units using a lookup table according to the task completion signal
  • a plurality of programmable synchronization control cells that output task instruction signals; a programmable network that connects the plurality of programmable logic units and the plurality of programmable synchronization control units; and a processing core that performs task processing and management
  • the programmable synchronous control cell receives at least one of the task completion signal or the task instruction signal from the programmable network, and the task instruction signal via the programmable network. And outputs to the programmable logic unit.
  • FIG. 1 is a diagram illustrating a configuration example of a programmable logic device having the first semiconductor chip according to the present embodiment.
  • FIG. 2 is a graph showing the influence of the speed-up effect on the synchronization overhead of the programmable logic device.
  • FIG. 3 is a graph showing the influence of the speed-up effect on the communication overhead of the programmable logic device.
  • FIG. 4 is a diagram for explaining the wiring of the first semiconductor chip.
  • FIG. 5 is a diagram for explaining the second semiconductor chip.
  • FIG. 6 is a diagram illustrating a configuration example of a programmable logic device having a first semiconductor chip and a second semiconductor chip.
  • FIG. 7 is a diagram illustrating a configuration example of a programmable logic device including a first semiconductor chip, a second semiconductor chip, and a third semiconductor chip.
  • FIG. 8 is a diagram illustrating a configuration example of electrodes of the second semiconductor chip.
  • FIG. 9 is a diagram illustrating a configuration example of the second semiconductor chip.
  • FIG. 10 is a diagram for explaining the operation of the second semiconductor chip.
  • FIG. 11 is a diagram illustrating an example of a logical operation of a lookup table.
  • FIG. 12 is a flowchart illustrating a processing example of the programmable logic device according to the present embodiment.
  • FIG. 13 is a diagram illustrating a processing example of the programmable logic device when there is no second semiconductor chip.
  • FIG. 14 is a diagram illustrating a processing example of the programmable logic device when there is a second semiconductor chip.
  • FIG. 15 is a diagram illustrating a program example of the processing core when there is no second semiconductor chip.
  • FIG. 16 is a timing chart illustrating a processing example of the programmable logic device in the case where the second semiconductor chip is present.
  • FIG. 17 is a diagram illustrating another configuration example of the second semiconductor chip.
  • FIG. 1 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101 according to the present embodiment.
  • the first semiconductor chip 101 has one processing core 102 and a plurality (for example, twelve) programmable logic units 103.
  • the processing core 102 is a processing unit such as a CPU, for example, and performs task processing and management.
  • the programmable logic unit 103 is a unit that develops (offloads) tasks into hardware, and can speed up the processing by hardware logic operations compared to the software processing of the CPU.
  • the plurality of programmable logic units 103 are, for example, look-up table type memories, and are connected in a programmable manner by a switch matrix.
  • the address of the lookup table corresponds to the logical input data, and the logical operation result represents the output data.
  • the output of the programmable logic unit 103 is wired through the connection box so as to be connected to any other programmable logic unit 103 by a switch box that can be switched in a programmable manner.
  • the above-mentioned lookup table data, switch box and connection box data are set in advance and then operated. This setting operation is called configuration (reconfiguration). For example, after the power is turned on, the processing core 102 first transfers the configuration data into the programmable logic unit 103 and then makes it operable. The processing core 102 can also change the configuration of some programmable logic units 103 during operation.
  • FIG. 2 is a graph showing the influence of the speed-up effect on the synchronization overhead of the programmable logic device of FIG.
  • the horizontal axis represents the processing core size r, and the vertical axis represents the speed-up effect [times].
  • the total size of all the programmable logic units 103 is the size of 12 programmable logic units 103.
  • the size of one processing core 102 is the size of one programmable logic unit 103, and 15 programmable logic units 103 are provided.
  • the size of one processing core 102 is the size of 16 programmable logic units 103, and the programmable logic unit 103 is not provided. That is, the larger the processing core size r, the smaller the number of programmable logic units 103, and the smaller the processing core size r, the larger the number of programmable logic units 103.
  • the synchronization overhead is caused by the following two factors. (1) When there is a dependency relationship between tasks allocated to the programmable logic unit 103, synchronous control is required to wait for the next task to be executed until the dependency relationship is completed.
  • FIG. 3 is a graph showing the influence of the speed-up effect on the communication overhead of the programmable logic device of FIG.
  • the horizontal axis represents the processing core size r, and the vertical axis represents the speed-up effect [times].
  • the task processing time is t
  • the communication time is tc.
  • the speed reduction due to the communication overhead in FIG. 3 is relatively small compared to the speed reduction due to the synchronization overhead in FIG.
  • the speed reduction due to the synchronization overhead of FIG. Management of tasks assigned to each programmable logic unit 103 requires two signal lines, a task instruction signal and a task completion signal.
  • the processing core 102 performs synchronization and exclusive management, all of these signal lines are connected to the processing core 102.
  • the present embodiment aims to realize a significant speed improvement by reducing the synchronization overhead.
  • FIG. 5 is a diagram for explaining the second semiconductor chip 501.
  • the second semiconductor chip 501 is connected to the first semiconductor chip 101 in FIG. As shown in FIG. 1, the plurality of programmable logic units (PU) 103 are provided in the first semiconductor chip 101, and start task processing (logic processing) when a task instruction signal Ps is input, respectively. When is completed, a task completion signal Vs is output.
  • the second semiconductor chip 501 has a programmable network 1001, outputs a task instruction signal Ps to a plurality of programmable logic units 103, and receives a task completion signal Vs.
  • FIG. 6 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101 and the second semiconductor chip 501.
  • the first semiconductor chip 101 has one processing core 102 and a plurality of programmable logic units 103.
  • the first semiconductor chip 101 and the second semiconductor chip 501 are three-dimensionally connected so as to overlap each other by an on-chip bump and a semiconductor chip through electrode.
  • FIG. 7 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101, the second semiconductor chip 501, and the third semiconductor chip 701.
  • the device of FIG. 7 is obtained by adding a third semiconductor chip 701 to the device of FIG.
  • the third semiconductor chip 701 has a plurality of programmable logic units 103.
  • the first semiconductor chip 101 and the third semiconductor chip 701 are three-dimensionally connected so as to sandwich the second semiconductor chip 501 with on-chip bumps, semiconductor chip through electrodes, and the like.
  • the programmable logic unit 103 of the third semiconductor chip 701 can be controlled by the processing core 102 of the first semiconductor chip 101.
  • the number of programmable logic units 103 can be increased.
  • FIG. 8 is a diagram illustrating a configuration example of the electrodes of the second semiconductor chip 501.
  • the through electrode (via) 801 is an electrode that penetrates the second semiconductor chip 501 and is an electrode for connecting the first semiconductor chip 101 and the third semiconductor chip 701 in FIG. Signals and data can be communicated between the chip 101 and the third semiconductor chip 701.
  • the electrode 802 is an electrode for connecting to the lower third semiconductor chip 701 in FIG. 7, and can input / output a task instruction signal Ps and a task completion signal Vs to / from the third semiconductor chip 701. it can.
  • the electrode 803 is an electrode for connecting to the first semiconductor chip 101 on the upper side in FIG.
  • the second semiconductor chip 501 is provided with electrodes 801 to 803 that can be connected in parallel to the lines of the first semiconductor chip 101 and the third semiconductor chip 701 and arranged in a three-dimensional manner, so that the load of the processing core 102 is increased. Contributes to the miniaturization of programmable logic devices as well as the reduction.
  • FIG. 4 is a diagram for explaining the wiring of the first semiconductor chip 101.
  • the first semiconductor chip 101 has a processing core 102 and a programmable logic unit 103.
  • the programmable logic unit 103 When the task instruction signal Ps is input, the programmable logic unit 103 outputs output data corresponding to the input data, and outputs a task completion signal Vs when the processing is completed.
  • Input / output data of the programmable logic unit 103 is communicated via the wiring 402 in the planar direction of the first semiconductor chip 101. Since the wiring 402 in the planar direction has a short wiring length and does not include a terminal for connecting between semiconductor chips, the delay time is short and high-speed data communication is possible.
  • the synchronization signal including the task instruction signal Ps and the task completion signal Vs of the programmable logic unit is connected to the second semiconductor chip of FIG. 7 via the wiring 401 perpendicular to the plane of the first semiconductor chip 101. 501 and the third semiconductor chip 701 are communicated.
  • the vertical wiring 401 is connected to the second semiconductor chip 501 and the third semiconductor chip 701 through the electrodes 801 to 803 in FIG. Since the number of the electrodes 801 is relatively small, it is preferable that the input / output data communication via the vertical wiring 401 is performed by inputting and outputting signals by serial communication of a packet including a header.
  • the third semiconductor chip 701 is the same as the first semiconductor chip 101 described above. Input / output data of the programmable logic unit 103 of the third semiconductor chip 701 is communicated via wiring in the planar direction of the third semiconductor chip 701. On the other hand, the synchronization signal including the task instruction signal Ps and the task completion signal Vs of the programmable logic unit 103 of the third semiconductor chip 701 is transmitted through the wiring perpendicular to the plane of the third semiconductor chip 701. The first semiconductor chip 101 and the second semiconductor chip 501 communicate with each other.
  • FIG. 9 is a diagram illustrating a configuration example of the second semiconductor chip 501.
  • the second semiconductor chip 501 includes a plurality of programmable synchronization control cells 901 in a two-dimensional matrix, a plurality of connection units (C) 902, and a plurality of switch units (S) 903.
  • the connection unit 902 and the switch unit 903 correspond to the programmable network 1001 in FIG.
  • the programmable network 1001 connects a plurality of programmable logic units 103 and a plurality of programmable synchronization control units 901.
  • the programmable synchronous control cell 901 has a lookup table 911 and flip-flops 912 and 913, and inputs and outputs a task instruction signal Ps and a task completion signal Vs.
  • lookup table 911 configuration data is set by the processing core 102 through a separately provided wiring (not shown).
  • the connection unit 902 includes a configuration memory 921 and a plurality of switches 922, and controls network connection between the upper and lower two programmable synchronization control cells 901 and the left and right switch units 903.
  • Configuration data is set in the configuration memory 921 by the processing core 102.
  • the switch 922 is controlled to be turned on / off according to configuration data in the configuration memory 921.
  • the switch unit 903 includes a configuration memory 931 and a plurality of switches 932, and controls network connection between the four connection units 902 on the upper, lower, left, and right sides.
  • Configuration data is set in the configuration memory 931 by the processing core 102.
  • the switch 932 is controlled to be turned on / off according to configuration data in the configuration memory 931.
  • FIG. 10 is a diagram for explaining the operation of the second semiconductor chip 501.
  • the second semiconductor chip 501 includes a lookup table 911, flip-flops 912 and 913, and a programmable network 1001.
  • the lookup table 911 and the flip-flops 912 and 913 are provided in the programmable synchronous control cell 901 in FIG.
  • the programmable network 1001 corresponds to the connection unit 902 and the switch unit 903 in FIG.
  • the programmable logic unit 103 is provided in the first semiconductor chip 101 or the third semiconductor chip 701.
  • the input signal IN1 is a synchronization signal input from various programmable logic units 103, various programmable synchronization control cells 901 or the processing core 102 via the programmable network 1001, and includes a task instruction signal Ps and a task completion signal Vs.
  • the programmable logic unit 103 When the processing is completed, the programmable logic unit 103 outputs a task completion signal Vs to the lookup table 911 via the programmable network 1001.
  • the lookup table 911 outputs a signal Cb corresponding to the task completion signal Vs and the input signal IN1.
  • configuration data for performing an arbitrary logical operation is written.
  • the flip-flop 912 latches the signal Cb in synchronization with the clock signal CLK, and outputs the latched signal to the programmable network 1001.
  • the flip-flop 913 latches the signal Cb in synchronization with the clock signal CLK, and outputs the latched signal to the various programmable logic units 103 via the programmable network 1001 as the task instruction signal Ps.
  • the programmable logic unit 103 starts task processing when the task instruction signal Ps is input.
  • the programmable synchronization control cell 901 controls the programmable logic unit 103 in synchronization, thereby reducing the load on the processing core 102 and reducing the synchronization overhead. Speed can be improved.
  • the flip-flops 912 and 913 are circuits necessary for timing adjustment for outputting a signal at a timing next to the clock signal CLK.
  • FIG. 11 is a diagram illustrating an example of a logical operation of the lookup table 911.
  • the programmable synchronization control cell 901a is a programmable synchronization control cell 901 that controls the task A in synchronization.
  • the programmable synchronization control cell 901b is a programmable synchronization control cell 901 that controls the task B in synchronization.
  • the lookup table 911a corresponds to the lookup table 911 and shows an example in which the task instruction signal Ps is output when two tasks A and B are completed. In this case, data such that the logical product of the task completion signals Vs is calculated is written in the lookup table 911a.
  • the look-up table 911a outputs a logical product signal Cb of the input signals A and B.
  • the programmable synchronization control cell 901a is a programmable synchronization control cell 901 that controls the task A in synchronization.
  • the programmable synchronization control cell 901b is a programmable synchronization control cell 901 that controls the task B in synchronization.
  • the lookup table 911b corresponds to the lookup table 911 and shows an example in which the task instruction signal Ps is output when one of the two tasks A and B is completed. In this case, data that calculates the logical sum of each task completion signal Vs is written in the lookup table 911b.
  • the lookup table 911b outputs a logical sum signal Cb of the input signals A and B.
  • FIG. 12 is a flowchart showing a processing example of the programmable logic device according to the present embodiment.
  • the programmable logic device is powered on.
  • the processing core 102 performs initialization processing of the programmable logic device.
  • the processing core 102 writes the configuration data to the configuration memory in the programmable logic unit (PU) 103.
  • the processing core 102 writes the configuration data to the look-up table 911 in the programmable synchronization control cell 901 and the configuration memories 921 and 931 in the programmable network 1101 (connection unit 902 and switch unit 903).
  • the processing core 102 issues a processing start command.
  • the task instruction signal Ps is input to the programmable logic unit 103 and / or the programmable synchronous control cell 901, and task processing by the programmable logic unit 103 is started.
  • steps S1206 to S1209 are performed for each task, and processing of a plurality of tasks is executed in parallel.
  • step S1206 the look-up table 911 in the programmable synchronization control cell 901 outputs a logical operation signal Cb according to the input signal.
  • step S1207 the programmable synchronization control cell 901 outputs a task instruction signal Ps.
  • step S1208 the programmable logic unit 103 inputs the task instruction signal Ps and performs task processing.
  • step S1209 when the task processing is completed, the programmable logic unit 103 outputs a task completion signal Vs.
  • step S1210 the programmable synchronization control cell 901 outputs a processing end signal to the processing core 102 when all tasks are completed. Then, the processing core 102 proceeds to the next process. Thereafter, these processes are repeated to execute a large task as a whole.
  • FIG. 13 shows a processing example of the programmable logic device when the second semiconductor chip 501 is not provided
  • FIG. 14 shows a processing example of the programmable logic device when the second semiconductor chip 501 is provided.
  • FIG. 13 is a diagram illustrating a processing example of the programmable logic device when the second semiconductor chip 501 is not provided. Since there is no second semiconductor chip 501, one processing core 102 performs all synchronization processing. Each task group includes, for example, steps S1301 to S1303 and S1311 to S1313. The processing core 102 performs processing sequentially for each task group. An example will be described in which the tasks in steps S1301 to S1303 and the tasks in steps S1311 to S1313 compete for the use of the shared resource.
  • step S1301 the processing core 102 outputs a task instruction signal Ps to a programmable logic unit 103.
  • the programmable logic unit 103 performs task processing and uses shared resources.
  • step S1303 the programmable logic unit 103 outputs a task completion signal Vs.
  • step S1311 the processing core 102 outputs a task instruction signal Ps to another programmable logic unit 103.
  • step S1312 the programmable logic unit 103 performs task processing and uses shared resources.
  • step S1313 the programmable logic unit 103 outputs a task completion signal Vs.
  • steps S1302 and S1312 competition for using the shared resource 1300 occurs due to the critical process.
  • the processing core 102 waits for one of the tasks by the synchronization process.
  • Processing core 102 performs sequential processing for each task group. When one task processing takes about 20 cycles, it takes a processing time of (about 20 cycles ⁇ number of task groups).
  • FIG. 14 is a diagram illustrating a processing example of the programmable logic device when the second semiconductor chip 501 is present.
  • the second semiconductor chip 501 performs a synchronization process.
  • the processing of three task groups 1401 to 1403 is executed in parallel.
  • Each task group 1401 to 1403 is synchronously controlled by a plurality of programmable synchronous control cells 901.
  • Configuration data is programmed in advance in the programmable synchronous control cell 901 for each task group 1401 to 1403, and a plurality of task groups 1401 to 1403 are processed in parallel.
  • the processing of the plurality of task groups 1401 to 1403 is completed in 5 to 10 clocks, so that the processing time can be shortened compared to the case of FIG.
  • FIG. 15 is a diagram showing a program example of the processing core 102 when the second semiconductor chip 501 is not present.
  • the processing core 102 performs the synchronization process by executing the program of FIG. This program corresponds to one task.
  • “MOV MEM 1” sets the initial value 1 to the variable MEM for task management.
  • “CALL A” the Ps processing routine (processing routine of the task instruction signal Ps) is called.
  • “MOV AX MEM” sets the value of the variable MEM in the register AX.
  • “CMP AX 1” compares whether or not the value of the register AX is “1”. In “JMP A”, if the value of the register AX is not 1, the process jumps to the instruction “MOV AX MEM”. If the value of the register AX is 1, the process proceeds to the next instruction. In the next instruction “DEC AX”, the value of the register AX is decremented and exclusive processing of the shared resource from other tasks is set. Next, in “MOV MEM AX”, the value of the register AX is set to the variable MEM. Thereafter, returning to the processing of the main routine, the task is executed, and when the execution is completed, “CALL B” calls the Vs processing routine (processing routine of the task completion signal Vs).
  • MOV AX MEM sets the value of the variable MEM in the register AX.
  • IRC AX the value of the register AX is incremented, and the shared resource exclusion process is canceled.
  • MOV MEM AX the value of the register AX is set to the variable MEM. Thereafter, the process returns to the main routine.
  • the number of cycles of the synchronization process of this program is 23 clocks. Since the synchronization control of the processing core 102 is performed sequentially, the exclusive control of the shared resources of all tasks requires 23 clocks ⁇ synchronization processing cycles corresponding to the number of tasks.
  • FIG. 16 is a timing chart showing a processing example of the programmable logic device when the second semiconductor chip 501 is present.
  • the programmable synchronization control cell 901 performs synchronization control.
  • a high level pulse is generated in the input signal IN1 of the lookup table 911.
  • a high level pulse is generated in the output signal Cb of the lookup table 911.
  • the programmable synchronous control cell 901 outputs a task instruction signal Ps of a pi level pulse.
  • the programmable logic unit 103 outputs a task completion signal Vs when the task processing is completed.
  • the lookup table 911 receives a task completion signal Vs of a high level pulse from the programmable logic unit 103.
  • the lookup table 911 outputs an output signal Cb of a high level pulse.
  • the programmable synchronous control cell 901 outputs a task instruction signal Ps of a pi level pulse. Thereafter, a high level pulse is generated in the input signal IN1 of the lookup table 911.
  • the synchronization process can be completed in a total of 6 clocks, and in a shorter time and in parallel than the 23 clocks in FIG. Synchronous processing can be performed. This improves the processing speed of the programmable logic device.
  • FIG. 17 is a diagram illustrating another configuration example of the second semiconductor chip 501.
  • the second semiconductor chip 501 in FIG. 17 is obtained by replacing one lookup table 911 with two lookup tables 911a and 911b and adding a selector 1701 to the second semiconductor chip 501 in FIG. It is.
  • the first lookup table 911a receives the task completion signal Vs and the input signal IN1, and outputs an output signal to the selector 1701.
  • the second lookup table 911b receives the task completion signal Vs and the input signal IN1, and outputs an output signal to the selector 1701.
  • the selector 1701 selects one of the output signals of the lookup tables 911a and 911b according to the switching signal SEL, and outputs a signal Cb.
  • the programmable synchronization control cell 901 can dynamically change the logical operation configuration of the lookup tables 911a and 911b by dynamically switching and using the plurality of lookup tables 911a and 911b.
  • connection unit 902 two configuration memories 921 of the connection unit 902 and two configuration memories 931 of the switch unit 903 in FIG. 9 can be provided.
  • control logic between tasks can be dynamically changed.

Abstract

In the present invention, a programmable logic device has the following: a plurality of programmable logic units (103) for beginning task processing when a task instruction signal is input, and outputting a task completion signal when the task processing completes; a plurality of programmable synchronization control cells (911-913) that, using a look-up table, output the task instruction signal in accordance with the task completion signal; a programmable network (1001) for connecting the plurality of programmable logic units and the plurality of programmable synchronization control units; and a processing core for performing task processing and management. The programmable synchronization control cells receive input, from the programmable network, of at least either the task completion signal or the task instruction signal, and output the task instruction signal to the programmable logic unit via the programmable network.

Description

プログラマブルロジック装置Programmable logic device
 本発明は、プログラマブルロジック装置に関する。 The present invention relates to a programmable logic device.
 プログラマブルロジック装置は、半導体集積回路の論理演算回路を、プログラマブルに構成可能なロジック装置の総称である。その中でも、FPGA(field-programmable gate array)と呼ばれるプログラマブルロジック装置は、中小規模の回路から、従来は専用のロジック回路で形成されていた大規模な論理回路に至るまで、半導体集積回路を使用する産業機器の中で、幅広く使用されている。さらに、近年になり、FPGAの集積度とスピードが向上し、従来CPU(Central Processing Unit)などで行われていた科学計算、金融演算又は大量のデータ処理などの一部を、ハードウエアに置き換え、それをFPGAに展開して高速な演算を効率よく実行するシステムが用いられ始めている。高度な演算をハードウエアで置き換えれば、大幅な電力削減とスピードアップが図れることは容易に想像がつく。しかし、これまでは、専用の半導体集積回路を開発するのはコスト面で多大な負担が生じるため、ごく一部の特殊な用途のシステムに限られていた。しかしながら、CPUによる演算システムは電力の面で性能向上の壁に当たっており、これを解決する救世主として、FPGAなどのプログラマブルロジック装置とCPUによる演算装置を組み合わせて、大幅な低電力化と高速化を図る取り組みが注目されている。 Programmable logic device is a general term for logic devices that can programmably configure a logic operation circuit of a semiconductor integrated circuit. Among them, a programmable logic device called FPGA (field-programmable gate array) uses a semiconductor integrated circuit from a small-scale circuit to a large-scale logic circuit conventionally formed by a dedicated logic circuit. Widely used in industrial equipment. Furthermore, in recent years, the integration density and speed of FPGAs have improved, and some of the scientific calculations, financial operations, or large amounts of data processing that were previously performed by CPUs (Central Processing Units) have been replaced with hardware. A system that expands it into an FPGA and efficiently executes high-speed computations has begun to be used. It is easy to imagine that if advanced computations are replaced with hardware, significant power savings and speedups can be achieved. However, until now, the development of a dedicated semiconductor integrated circuit has been costly and has been limited to a few special purpose systems. However, the CPU-based computing system is a barrier to improving performance in terms of power. As a savior to solve this problem, a programmable logic device such as an FPGA and a CPU-based computing device are combined to achieve a significant reduction in power and speed. Efforts are attracting attention.
 また、各レイヤに配置される複数の処理ブロックと、動作中の処理ブロックによる活性状態が分散するように処理ブロックへの処理投入を管理する管理ブロックとを有する積層型半導体装置が知られている(例えば、特許文献1参照)。 There is also known a stacked semiconductor device having a plurality of processing blocks arranged in each layer and a management block for managing the processing input to the processing block so that the active state by the active processing block is distributed. (For example, refer to Patent Document 1).
 また、複数の要素プロセッサを結合ネットワークにより例えば2次元格子状に結合し高度の並列処理を実現するマルチプロセッサシステムが知られている(例えば、特許文献2参照)。マルチプロセッサシステムは、要素プロセッサの負荷を分散制御する。 In addition, a multiprocessor system is known in which a plurality of element processors are coupled in a two-dimensional grid, for example, by a coupling network to realize highly parallel processing (see, for example, Patent Document 2). The multiprocessor system distributes and controls the load of the element processor.
 また、FPGAを使ったコンピューティングシステムが知られている(例えば、非特許文献1及び2参照)。 Also, a computing system using FPGA is known (for example, see Non-Patent Documents 1 and 2).
特開2010-239029号公報JP 2010-239029 A 特開平4-123252号公報JP-A-4-123252
 複数のプログラマブルロジックユニットは、ハードウエア演算を行うことができ、CPUにより制御される。しかし、プログラマブルロジックユニットの数が増えると、CPUによるプログラマブルロジックユニット制御の負荷が増大し、処理速度の低下を招く。 Multiple programmable logic units can perform hardware operations and are controlled by the CPU. However, as the number of programmable logic units increases, the load of programmable logic unit control by the CPU increases, causing a reduction in processing speed.
 本発明の目的は、CPUの負荷を軽減(オフロード)させ、システム全体の処理速度を向上させることができるプログラマブルロジック装置を提供することである。 An object of the present invention is to provide a programmable logic device that can reduce the load on the CPU (offload) and improve the processing speed of the entire system.
 プログラマブルロジック装置は、タスク指示信号を入力するとタスク処理を開始し、前記タスク処理が完了するとタスク完了信号を出力する複数のプログラマブルロジックユニットと、ルックアップテーブルを用いて前記タスク完了信号に応じて前記タスク指示信号を出力する複数のプログラマブル同期制御セルと、前記複数のプログラマブルロジックユニット及び前記複数のプログラマブル同期制御ユニットを接続するプログラマブルネットワークと、タスクの処理及び管理を行うプロセッシングコアとを有し、前記プログラマブル同期制御セルは、前記プログラマブルネットワークから前記タスク完了信号、又は前記タスク指示信号の少なくともいずれか一方を入力し、前記プログラマブルネットワークを介して、前記タスク指示信号を前記プログラマブルロジックユニットに出力する。 The programmable logic device starts task processing when a task instruction signal is input, and outputs a task completion signal when the task processing is completed, and a plurality of programmable logic units using a lookup table according to the task completion signal A plurality of programmable synchronization control cells that output task instruction signals; a programmable network that connects the plurality of programmable logic units and the plurality of programmable synchronization control units; and a processing core that performs task processing and management, The programmable synchronous control cell receives at least one of the task completion signal or the task instruction signal from the programmable network, and the task instruction signal via the programmable network. And outputs to the programmable logic unit.
 プログラマブル同期制御セルを設けCPUの処理をオフロードすることにより、システム全体の処理速度を向上させることができる。 By providing a programmable synchronous control cell and offloading the processing of the CPU, the processing speed of the entire system can be improved.
図1は、本実施形態による第1の半導体チップを有するプログラマブルロジック装置の構成例を示す図である。FIG. 1 is a diagram illustrating a configuration example of a programmable logic device having the first semiconductor chip according to the present embodiment. 図2は、プログラマブルロジック装置の同期オーバヘッドに対する高速化効果の影響を示すグラフである。FIG. 2 is a graph showing the influence of the speed-up effect on the synchronization overhead of the programmable logic device. 図3は、プログラマブルロジック装置の通信オーバヘッドに対する高速化効果の影響を示すグラフである。FIG. 3 is a graph showing the influence of the speed-up effect on the communication overhead of the programmable logic device. 図4は、第1の半導体チップの配線を説明するための図である。FIG. 4 is a diagram for explaining the wiring of the first semiconductor chip. 図5は、第2の半導体チップを説明するための図である。FIG. 5 is a diagram for explaining the second semiconductor chip. 図6は、第1の半導体チップ及び第2の半導体チップを有するプログラマブルロジック装置の構成例を示す図である。FIG. 6 is a diagram illustrating a configuration example of a programmable logic device having a first semiconductor chip and a second semiconductor chip. 図7は、第1の半導体チップ、第2の半導体チップ及び第3の半導体チップを有するプログラマブルロジック装置の構成例を示す図である。FIG. 7 is a diagram illustrating a configuration example of a programmable logic device including a first semiconductor chip, a second semiconductor chip, and a third semiconductor chip. 図8は、第2の半導体チップの電極の構成例を示す図である。FIG. 8 is a diagram illustrating a configuration example of electrodes of the second semiconductor chip. 図9は、第2の半導体チップの構成例を示す図である。FIG. 9 is a diagram illustrating a configuration example of the second semiconductor chip. 図10は、第2の半導体チップの動作を説明するための図である。FIG. 10 is a diagram for explaining the operation of the second semiconductor chip. 図11は、ルックアップテーブルの論理演算の例を示す図である。FIG. 11 is a diagram illustrating an example of a logical operation of a lookup table. 図12は、本実施形態によるプログラマブルロジック装置の処理例を示すフローチャートである。FIG. 12 is a flowchart illustrating a processing example of the programmable logic device according to the present embodiment. 図13は、第2の半導体チップがない場合のプログラマブルロジック装置の処理例を示す図である。FIG. 13 is a diagram illustrating a processing example of the programmable logic device when there is no second semiconductor chip. 図14は、第2の半導体チップがある場合のプログラマブルロジック装置の処理例を示す図である。FIG. 14 is a diagram illustrating a processing example of the programmable logic device when there is a second semiconductor chip. 図15は、第2の半導体チップがない場合のプロセッシングコアのプログラム例を示す図である。FIG. 15 is a diagram illustrating a program example of the processing core when there is no second semiconductor chip. 図16は、第2の半導体チップがある場合のプログラマブルロジック装置の処理例を示すタイミングチャートである。FIG. 16 is a timing chart illustrating a processing example of the programmable logic device in the case where the second semiconductor chip is present. 図17は、第2の半導体チップの他の構成例を示す図である。FIG. 17 is a diagram illustrating another configuration example of the second semiconductor chip.
 図1は、本実施形態による第1の半導体チップ101を有するプログラマブルロジック装置の構成例を示す図である。第1の半導体チップ101は、1個のプロセッシングコア102及び複数(例えば12個)のプログラマブルロジックユニット103を有する。プロセッシングコア102は、例えば、CPUなどのプロセッシングユニットであり、タスクの処理及び管理を行う。プログラマブルロジックユニット103は、タスクをハードウエアに展開(オフロード)するユニットであり、ハードウエア論理演算により、CPUのソフトウエア処理に比べて処理を高速化することができる。 FIG. 1 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101 according to the present embodiment. The first semiconductor chip 101 has one processing core 102 and a plurality (for example, twelve) programmable logic units 103. The processing core 102 is a processing unit such as a CPU, for example, and performs task processing and management. The programmable logic unit 103 is a unit that develops (offloads) tasks into hardware, and can speed up the processing by hardware logic operations compared to the software processing of the CPU.
 複数のプログラマブルロジックユニット103は、例えばルックアップテーブル型メモリであり、スイッチマトリクスによりプログラマブルに結線される。ルックアップテーブルのアドレスが論理入力データに相当し、論理演算結果が出力データを表す。ルックアップテーブルのデータを書き換えることにより、任意の論理演算と等価なロジックユニットが実現できる。プログラマブルロジックユニット103の出力は、プログラマブルに切り替え可能なスイッチボックスによって、他の任意のプログラマブルロジックユニット103に結線されるように、コネクションボックスを通じて配線される。上記のルックアップテーブルのデータ、スイッチボックス及びコネクションボックスのデータを事前に設定した後、動作させる。この設定作業は、コンフィグレーション(再構成)と呼ばれる。例えば、電源投入後、プロセッシングコア102は、まず、コンフィグレーションデータをプログラマブルロジックユニット103内に転送し、その後、動作可能状態とさせている。また、プロセッシングコア102は、動作中に一部のプログラマブルロジックユニット103のコンフィグレーションを変更することもできる。 The plurality of programmable logic units 103 are, for example, look-up table type memories, and are connected in a programmable manner by a switch matrix. The address of the lookup table corresponds to the logical input data, and the logical operation result represents the output data. By rewriting the data in the lookup table, a logic unit equivalent to an arbitrary logical operation can be realized. The output of the programmable logic unit 103 is wired through the connection box so as to be connected to any other programmable logic unit 103 by a switch box that can be switched in a programmable manner. The above-mentioned lookup table data, switch box and connection box data are set in advance and then operated. This setting operation is called configuration (reconfiguration). For example, after the power is turned on, the processing core 102 first transfers the configuration data into the programmable logic unit 103 and then makes it operable. The processing core 102 can also change the configuration of some programmable logic units 103 during operation.
 プログラマブルロジック装置には、個々のプログラマブルロジックユニット103に割り振られるタスク間の同期や通信等によるオーバヘッドが存在し、性能の低下を招く。同期オーバヘッドの影響を図2に示し、通信オーバヘッドの影響を図3に示す。 In the programmable logic device, there is an overhead due to synchronization or communication between tasks allocated to each programmable logic unit 103, resulting in performance degradation. The influence of synchronization overhead is shown in FIG. 2, and the influence of communication overhead is shown in FIG.
 図2は、図1のプログラマブルロジック装置の同期オーバヘッドに対する高速化効果の影響を示すグラフである。横軸はプロセッシングコアサイズrを示し、縦軸は高速化効果[倍]を示す。 FIG. 2 is a graph showing the influence of the speed-up effect on the synchronization overhead of the programmable logic device of FIG. The horizontal axis represents the processing core size r, and the vertical axis represents the speed-up effect [times].
 図1の場合、第1の半導体チップ101のサイズは、16(=4×4)個のプログラマブルロジックユニット103分のサイズである。全部のプログラマブルロジックユニット103の合計サイズは、12個のプログラマブルロジックユニット103分のサイズである。これに対し、プロセッシングコア102のサイズは、4(=2×2)個のプログラマブルロジックユニット103分のサイズである。したがって、図1の場合、図2の横軸のプロセッシングコアサイズrは、4になる。 In the case of FIG. 1, the size of the first semiconductor chip 101 is the size of 16 (= 4 × 4) programmable logic units 103. The total size of all the programmable logic units 103 is the size of 12 programmable logic units 103. On the other hand, the size of the processing core 102 is the size of 4 (= 2 × 2) programmable logic units 103. Therefore, in the case of FIG. 1, the processing core size r on the horizontal axis of FIG.
 プロセッシングコアサイズrが1の場合、1個のプロセッシングコア102のサイズは、1個のプログラマブルロジックユニット103分のサイズであり、15個のプログラマブルロジックユニット103が設けられる。 When the processing core size r is 1, the size of one processing core 102 is the size of one programmable logic unit 103, and 15 programmable logic units 103 are provided.
 また、プロセッシングコアサイズrが16の場合、1個のプロセッシングコア102のサイズは、16個のプログラマブルロジックユニット103分のサイズであり、プログラマブルロジックユニット103が設けられない。すなわち、プロセッシングコアサイズrが大きいほど、プログラマブルロジックユニット103の数が少なくなり、プロセッシングコアサイズrが小さいほど、プログラマブルロジックユニット103の数が多くなる。 Further, when the processing core size r is 16, the size of one processing core 102 is the size of 16 programmable logic units 103, and the programmable logic unit 103 is not provided. That is, the larger the processing core size r, the smaller the number of programmable logic units 103, and the smaller the processing core size r, the larger the number of programmable logic units 103.
 同期オーバヘッドは、下記の2個の要因により生じる。
(1)プログラマブルロジックユニット103に割り振られたタスク間に依存関係がある場合、この依存関係が完了するまで次のタスクの実行を待機するような同期制御が必要になる。
The synchronization overhead is caused by the following two factors.
(1) When there is a dependency relationship between tasks allocated to the programmable logic unit 103, synchronous control is required to wait for the next task to be executed until the dependency relationship is completed.
(2)プログラマブルロジックユニット103に割り振られたタスクが、同一のリソース(共有メモリなど)にアクセスしている場合、同時アクセス可能数以上のタスクが発生したときには、一部のタスクによるアクセスを待機させる排他管理が必要になる。 (2) When tasks allocated to the programmable logic unit 103 are accessing the same resource (such as shared memory), if more tasks than the number that can be accessed simultaneously occur, the access by some tasks is put on standby. Exclusive management is required.
 ここで、タスク処理時間をtとし、同期時間をtsとする。曲線201は、ts/t=0の特性を示す。曲線202は、ts/t=0.01の特性を示す。曲線203は、ts/t=0.05の特性を示す。曲線204は、ts/t=0.1の特性を示す。ts/tが大きくなるほど、高速化効果は低下する。 Here, the task processing time is t, and the synchronization time is ts. A curve 201 shows a characteristic of ts / t = 0. Curve 202 shows the characteristic of ts / t = 0.01. Curve 203 shows the characteristic of ts / t = 0.05. Curve 204 shows the characteristic of ts / t = 0.1. As ts / t increases, the speed-up effect decreases.
 プログラマブルロジックユニット103のタスクが増加し、依存関係が複雑になるに従って、プロセッシングコア102に処理が集中するため、同期オーバヘッドが大きくなり、処理速度が低下する。 As the tasks of the programmable logic unit 103 increase and the dependency relationship becomes complicated, the processing concentrates on the processing core 102, so the synchronization overhead increases and the processing speed decreases.
 図3は、図1のプログラマブルロジック装置の通信オーバヘッドに対する高速化効果の影響を示すグラフである。横軸はプロセッシングコアサイズrを示し、縦軸は高速化効果[倍]を示す。 FIG. 3 is a graph showing the influence of the speed-up effect on the communication overhead of the programmable logic device of FIG. The horizontal axis represents the processing core size r, and the vertical axis represents the speed-up effect [times].
 あるタスクから別のタスクに処理を移行する際、データの移動を伴う場合が多く、この場合、タスクとタスクの間で、データの通信が必要となり、通信オーバヘッドが生じる。 When transferring processing from one task to another, there are many cases of data movement. In this case, data communication is required between tasks, resulting in communication overhead.
 ここで、タスク処理時間をtとし、通信時間をtcとする。曲線301は、tc/t=0の特性を示す。曲線302は、tc/t=0.01の特性を示す。曲線303は、tc/t=0.1の特性を示す。 Here, the task processing time is t, and the communication time is tc. Curve 301 shows the characteristic of tc / t = 0. Curve 302 shows the characteristic of tc / t = 0.01. Curve 303 shows the characteristic of tc / t = 0.1.
 図3の通信オーバヘッドによる速度低下は、図2の同期オーバヘッドによる速度低下に対して比較的小さい。逆に、図2の同期オーバヘッドによる速度低下は、かなり大きい。各プログラマブルロジックユニット103に割り振られたタスクの管理には、タスク指示信号とタスク完了信号の2つの信号線が必要である。プロセッシングコア102が同期及び排他管理を行う場合、これらの信号線が全てプロセッシングコア102に接続される。プログラマブルロジックユニット103の数が多くなると、全ての信号がプロセッシングコア102に集中し、これらの制御に必要な時間は指数関数的に増加する結果となり、上述の同期オーバヘッドが発生する。そこで、本実施形態は、同期オーバヘッドを削減することにより、大幅な速度向上を実現することを目的とする。 The speed reduction due to the communication overhead in FIG. 3 is relatively small compared to the speed reduction due to the synchronization overhead in FIG. Conversely, the speed reduction due to the synchronization overhead of FIG. Management of tasks assigned to each programmable logic unit 103 requires two signal lines, a task instruction signal and a task completion signal. When the processing core 102 performs synchronization and exclusive management, all of these signal lines are connected to the processing core 102. As the number of programmable logic units 103 increases, all signals concentrate on the processing core 102, and the time required for these controls increases exponentially, and the above-described synchronization overhead occurs. Therefore, the present embodiment aims to realize a significant speed improvement by reducing the synchronization overhead.
 図5は、第2の半導体チップ501を説明するための図である。第2の半導体チップ501は、図1の第1の半導体チップ101に接続される。複数のプログラマブルロジックユニット(PU)103は、図1に示すように、第1の半導体チップ101内に設けられ、それぞれ、タスク指示信号Psを入力するとタスク処理(ロジック処理)を開始し、タスク処理が完了するとタスク完了信号Vsを出力する。第2の半導体チップ501は、プログラマブルネットワーク1001を有し、複数のプログラマブルロジックユニット103に対してタスク指示信号Psを出力するとともに、タスク完了信号Vsを受信する。 FIG. 5 is a diagram for explaining the second semiconductor chip 501. The second semiconductor chip 501 is connected to the first semiconductor chip 101 in FIG. As shown in FIG. 1, the plurality of programmable logic units (PU) 103 are provided in the first semiconductor chip 101, and start task processing (logic processing) when a task instruction signal Ps is input, respectively. When is completed, a task completion signal Vs is output. The second semiconductor chip 501 has a programmable network 1001, outputs a task instruction signal Ps to a plurality of programmable logic units 103, and receives a task completion signal Vs.
 図6は、第1の半導体チップ101及び第2の半導体チップ501を有するプログラマブルロジック装置の構成例を示す図である。第1の半導体チップ101は、1個のプロセッシングコア102及び複数のプログラマブルロジックユニット103を有する。第1の半導体チップ101及び第2の半導体チップ501は、オンチップバンプ及び半導体チップ貫通電極等により、相互に重なるように立体接続される。 FIG. 6 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101 and the second semiconductor chip 501. The first semiconductor chip 101 has one processing core 102 and a plurality of programmable logic units 103. The first semiconductor chip 101 and the second semiconductor chip 501 are three-dimensionally connected so as to overlap each other by an on-chip bump and a semiconductor chip through electrode.
 図7は、第1の半導体チップ101、第2の半導体チップ501及び第3の半導体チップ701を有するプログラマブルロジック装置の構成例を示す図である。図7の装置は、図6の装置に対して、第3の半導体チップ701を追加したものである。第3の半導体チップ701は、複数のプログラマブルロジックユニット103を有する。第1の半導体チップ101及び第3の半導体チップ701は、オンチップバンプ及び半導体チップ貫通電極等により、第2の半導体チップ501を挟み込むように立体接続される。第3の半導体チップ701のプログラマブルロジックユニット103も、第1の半導体チップ101のプログラマブルロジックユニット103と同様に、第1の半導体チップ101のプロセッシングコア102により制御可能である。第3の半導体チップ701を追加することにより、プログラマブルロジックユニット103の数を増加させることができる。 FIG. 7 is a diagram illustrating a configuration example of a programmable logic device including the first semiconductor chip 101, the second semiconductor chip 501, and the third semiconductor chip 701. The device of FIG. 7 is obtained by adding a third semiconductor chip 701 to the device of FIG. The third semiconductor chip 701 has a plurality of programmable logic units 103. The first semiconductor chip 101 and the third semiconductor chip 701 are three-dimensionally connected so as to sandwich the second semiconductor chip 501 with on-chip bumps, semiconductor chip through electrodes, and the like. Similarly to the programmable logic unit 103 of the first semiconductor chip 101, the programmable logic unit 103 of the third semiconductor chip 701 can be controlled by the processing core 102 of the first semiconductor chip 101. By adding the third semiconductor chip 701, the number of programmable logic units 103 can be increased.
 図8は、第2の半導体チップ501の電極の構成例を示す図である。貫通電極(ビア)801は、第2の半導体チップ501を貫通する電極であり、図7の第1の半導体チップ101及び第3の半導体チップ701を接続するための電極であり、第1の半導体チップ101及び第3の半導体チップ701間で信号及びデータの通信を行うことができる。電極802は、図7の下側の第3の半導体チップ701に接続するための電極であり、第3の半導体チップ701に対して、タスク指示信号Ps及びタスク完了信号Vsを入出力することができる。電極803は、図7の上側の第1の半導体チップ101に接続するための電極であり、第1の半導体チップ101に対して、タスク指示信号Ps及びタスク完了信号Vsを入出力することができる。第2の半導体チップ501は、第1の半導体チップ101及び第3の半導体チップ701のラインにすべて並列に接続できるような電極801~803を設け立体的に配置することにより、プロセッシングコア102の負荷軽減と同時にプログラマブルロジック装置の小型化に寄与する。 FIG. 8 is a diagram illustrating a configuration example of the electrodes of the second semiconductor chip 501. The through electrode (via) 801 is an electrode that penetrates the second semiconductor chip 501 and is an electrode for connecting the first semiconductor chip 101 and the third semiconductor chip 701 in FIG. Signals and data can be communicated between the chip 101 and the third semiconductor chip 701. The electrode 802 is an electrode for connecting to the lower third semiconductor chip 701 in FIG. 7, and can input / output a task instruction signal Ps and a task completion signal Vs to / from the third semiconductor chip 701. it can. The electrode 803 is an electrode for connecting to the first semiconductor chip 101 on the upper side in FIG. 7, and can input / output a task instruction signal Ps and a task completion signal Vs to / from the first semiconductor chip 101. . The second semiconductor chip 501 is provided with electrodes 801 to 803 that can be connected in parallel to the lines of the first semiconductor chip 101 and the third semiconductor chip 701 and arranged in a three-dimensional manner, so that the load of the processing core 102 is increased. Contributes to the miniaturization of programmable logic devices as well as the reduction.
 図4は、第1の半導体チップ101の配線を説明するための図である。第1の半導体チップ101は、プロセッシングコア102及びプログラマブルロジックユニット103を有する。プログラマブルロジックユニット103は、タスク指示信号Psを入力すると、入力データに応じた出力データを出力し、処理が完了するとタスク完了信号Vsを出力する。プログラマブルロジックユニット103の入出力データは、第1の半導体チップ101の平面方向の配線402を介して通信される。平面方向の配線402は、配線長が短く、半導体チップ間接続用の端子を介さないので、遅延時間が短く、高速のデータ通信が可能になる。 FIG. 4 is a diagram for explaining the wiring of the first semiconductor chip 101. The first semiconductor chip 101 has a processing core 102 and a programmable logic unit 103. When the task instruction signal Ps is input, the programmable logic unit 103 outputs output data corresponding to the input data, and outputs a task completion signal Vs when the processing is completed. Input / output data of the programmable logic unit 103 is communicated via the wiring 402 in the planar direction of the first semiconductor chip 101. Since the wiring 402 in the planar direction has a short wiring length and does not include a terminal for connecting between semiconductor chips, the delay time is short and high-speed data communication is possible.
 これに対し、プログラマブルロジックユニットのタスク指示信号Ps及びタスク完了信号Vsを含む同期信号は、第1の半導体チップ101の平面に対して垂直方向の配線401を介して図7の第2の半導体チップ501及び第3の半導体チップ701に通信される。垂直方向の配線401は、図8の電極801~803を介して、第2の半導体チップ501及び第3の半導体チップ701に接続される。電極801の数は比較的少ないので、垂直方向の配線401を介した入出力データの通信は、ヘッダを含むパケットのシリアル通信により信号を入出力することが好ましい。 On the other hand, the synchronization signal including the task instruction signal Ps and the task completion signal Vs of the programmable logic unit is connected to the second semiconductor chip of FIG. 7 via the wiring 401 perpendicular to the plane of the first semiconductor chip 101. 501 and the third semiconductor chip 701 are communicated. The vertical wiring 401 is connected to the second semiconductor chip 501 and the third semiconductor chip 701 through the electrodes 801 to 803 in FIG. Since the number of the electrodes 801 is relatively small, it is preferable that the input / output data communication via the vertical wiring 401 is performed by inputting and outputting signals by serial communication of a packet including a header.
 上記のように、平面方向の配線402及び垂直方向の配線401の信号を分類することにより、平面方向の配線402のデータ通信へのリソース割り当てに余裕ができ、その結果、通信オーバヘッドが低減される。 As described above, by classifying the signals of the wiring 402 in the planar direction and the wiring 401 in the vertical direction, it is possible to allocate resources for data communication of the wiring 402 in the planar direction, and as a result, communication overhead is reduced. .
 第3の半導体チップ701も、上記の第1の半導体チップ101と同様である。第3の半導体チップ701のプログラマブルロジックユニット103の入出力データは、第3の半導体チップ701の平面方向の配線を介して通信される。これに対し、第3の半導体チップ701のプログラマブルロジックユニット103のタスク指示信号Ps及びタスク完了信号Vsを含む同期信号は、第3の半導体チップ701の平面に対して垂直方向の配線を介して第1の半導体チップ101及び第2の半導体チップ501に通信される。 The third semiconductor chip 701 is the same as the first semiconductor chip 101 described above. Input / output data of the programmable logic unit 103 of the third semiconductor chip 701 is communicated via wiring in the planar direction of the third semiconductor chip 701. On the other hand, the synchronization signal including the task instruction signal Ps and the task completion signal Vs of the programmable logic unit 103 of the third semiconductor chip 701 is transmitted through the wiring perpendicular to the plane of the third semiconductor chip 701. The first semiconductor chip 101 and the second semiconductor chip 501 communicate with each other.
 図9は、第2の半導体チップ501の構成例を示す図である。第2の半導体チップ501は、2次元行列状の複数のプログラマブル同期制御セル901、複数のコネクションユニット(C)902及び複数のスイッチユニット(S)903を有する。コネクションユニット902及びスイッチユニット903は、図5のプログラマブルネットワーク1001に対応する。プログラマブルネットワーク1001は、複数のプログラマブルロジックユニット103及び複数のプログラマブル同期制御ユニット901を接続する。 FIG. 9 is a diagram illustrating a configuration example of the second semiconductor chip 501. The second semiconductor chip 501 includes a plurality of programmable synchronization control cells 901 in a two-dimensional matrix, a plurality of connection units (C) 902, and a plurality of switch units (S) 903. The connection unit 902 and the switch unit 903 correspond to the programmable network 1001 in FIG. The programmable network 1001 connects a plurality of programmable logic units 103 and a plurality of programmable synchronization control units 901.
 プログラマブル同期制御セル901は、ルックアップテーブル911、フリップフロップ912及び913を有し、タスク指示信号Ps及びタスク完了信号Vsを入出力する。ルックアップテーブル911には、プロセシングコア102により、別に設けられた配線(図示せず)を通じてコンフィグレーションデータが設定される。 The programmable synchronous control cell 901 has a lookup table 911 and flip- flops 912 and 913, and inputs and outputs a task instruction signal Ps and a task completion signal Vs. In the lookup table 911, configuration data is set by the processing core 102 through a separately provided wiring (not shown).
 コネクションユニット902は、コンフィグレーションメモリ921及び複数のスイッチ922を有し、上下の2個のプログラマブル同期制御セル901と左右の2個のスイッチユニット903との間のネットワーク接続を制御する。コンフィグレーションメモリ921には、プロセシングコア102により、コンフィグレーションデータが設定される。スイッチ922は、コンフィグレーションメモリ921内のコンフィグレーションデータに応じて、オン/オフが制御される。 The connection unit 902 includes a configuration memory 921 and a plurality of switches 922, and controls network connection between the upper and lower two programmable synchronization control cells 901 and the left and right switch units 903. Configuration data is set in the configuration memory 921 by the processing core 102. The switch 922 is controlled to be turned on / off according to configuration data in the configuration memory 921.
 スイッチユニット903は、コンフィグレーションメモリ931及び複数のスイッチ932を有し、上下左右の4個のコネクションユニット902の間のネットワーク接続を制御する。コンフィグレーションメモリ931には、プロセシングコア102により、コンフィグレーションデータが設定される。スイッチ932は、コンフィグレーションメモリ931内のコンフィグレーションデータに応じて、オン/オフが制御される。 The switch unit 903 includes a configuration memory 931 and a plurality of switches 932, and controls network connection between the four connection units 902 on the upper, lower, left, and right sides. Configuration data is set in the configuration memory 931 by the processing core 102. The switch 932 is controlled to be turned on / off according to configuration data in the configuration memory 931.
 図10は、第2の半導体チップ501の動作を説明するための図である。第2の半導体チップ501は、ルックアップテーブル911、フリップフロップ912,913及びプログラマブルネットワーク1001を有する。ルックアップテーブル911及びフリップフロップ912,913は、図9のプログラマブル同期制御セル901内に設けられる。プログラマブルネットワーク1001は、図9のコネクションユニット902及びスイッチユニット903に対応する。プログラマブルロジックユニット103は、第1の半導体チップ101又は第3の半導体チップ701内に設けられる。 FIG. 10 is a diagram for explaining the operation of the second semiconductor chip 501. The second semiconductor chip 501 includes a lookup table 911, flip- flops 912 and 913, and a programmable network 1001. The lookup table 911 and the flip- flops 912 and 913 are provided in the programmable synchronous control cell 901 in FIG. The programmable network 1001 corresponds to the connection unit 902 and the switch unit 903 in FIG. The programmable logic unit 103 is provided in the first semiconductor chip 101 or the third semiconductor chip 701.
 入力信号IN1は、プログラマブルネットワーク1001を介して、種々のプログラマブルロジックユニット103、種々のプログラマブル同期制御セル901又はプロセッシングコア102から入力する同期信号であり、タスク指示信号Ps及びタスク完了信号Vsを含む。 The input signal IN1 is a synchronization signal input from various programmable logic units 103, various programmable synchronization control cells 901 or the processing core 102 via the programmable network 1001, and includes a task instruction signal Ps and a task completion signal Vs.
 プログラマブルロジックユニット103は、処理が完了すると、プログラマブルネットワーク1001を介して、タスク完了信号Vsをルックアップテーブル911に出力する。ルックアップテーブル911は、タスク完了信号Vs及び入力信号IN1に応じた信号Cbを出力する。ルックアップテーブル911には、任意の論理演算を行うためのコンフィグレーションデータが書き込まれている。フリップフロップ912は、クロック信号CLKに同期して、信号Cbをラッチし、そのラッチした信号をプログラマブルネットワーク1001に出力する。フリップフロップ913は、クロック信号CLKに同期して、信号Cbをラッチし、そのラッチした信号をタスク指示信号Psとして、プログラマブルネットワーク1001を介して、種々のプログラマブルロジックユニット103に出力する。プログラマブルロジックユニット103は、タスク指示信号Psを入力すると、タスク処理を開始する。このように、本実施形態は、プロセッシングコア102ではなく、プログラマブル同期制御セル901がプログラマブルロジックユニット103に対して同期制御することにより、プロセッシングコア102の負荷を軽減し、同期オーバヘッドが小さくなり、処理速度を向上させることができる。なお、フリップフロップ912及び913は、クロック信号CLKの次のタイミングで信号を出力するためのタイミング調整に必要な回路である。 When the processing is completed, the programmable logic unit 103 outputs a task completion signal Vs to the lookup table 911 via the programmable network 1001. The lookup table 911 outputs a signal Cb corresponding to the task completion signal Vs and the input signal IN1. In the lookup table 911, configuration data for performing an arbitrary logical operation is written. The flip-flop 912 latches the signal Cb in synchronization with the clock signal CLK, and outputs the latched signal to the programmable network 1001. The flip-flop 913 latches the signal Cb in synchronization with the clock signal CLK, and outputs the latched signal to the various programmable logic units 103 via the programmable network 1001 as the task instruction signal Ps. The programmable logic unit 103 starts task processing when the task instruction signal Ps is input. As described above, in this embodiment, not the processing core 102 but the programmable synchronization control cell 901 controls the programmable logic unit 103 in synchronization, thereby reducing the load on the processing core 102 and reducing the synchronization overhead. Speed can be improved. Note that the flip- flops 912 and 913 are circuits necessary for timing adjustment for outputting a signal at a timing next to the clock signal CLK.
 図11は、ルックアップテーブル911の論理演算の例を示す図である。まず、図11の左側のタスクグループ1101の例を説明する。プログラマブル同期制御セル901aは、タスクAを同期制御するプログラマブル同期制御セル901である。プログラマブル同期制御セル901bは、タスクBを同期制御するプログラマブル同期制御セル901である。ルックアップテーブル911aは、ルックアップテーブル911に対応し、2個のタスクA及びタスクBがともに完了した場合に、タスク指示信号Psを出力させる例を示す。この場合、ルックアップテーブル911aには、各タスク完了信号Vsの論理積が演算されるようなデータが書き込まれる。ルックアップテーブル911aは、入力信号A及びBの論理積信号Cbを出力する。 FIG. 11 is a diagram illustrating an example of a logical operation of the lookup table 911. First, an example of the task group 1101 on the left side of FIG. 11 will be described. The programmable synchronization control cell 901a is a programmable synchronization control cell 901 that controls the task A in synchronization. The programmable synchronization control cell 901b is a programmable synchronization control cell 901 that controls the task B in synchronization. The lookup table 911a corresponds to the lookup table 911 and shows an example in which the task instruction signal Ps is output when two tasks A and B are completed. In this case, data such that the logical product of the task completion signals Vs is calculated is written in the lookup table 911a. The look-up table 911a outputs a logical product signal Cb of the input signals A and B.
 次に、図11の右側のタスクグループ1102の例を説明する。プログラマブル同期制御セル901aは、タスクAを同期制御するプログラマブル同期制御セル901である。プログラマブル同期制御セル901bは、タスクBを同期制御するプログラマブル同期制御セル901である。ルックアップテーブル911bは、ルックアップテーブル911に対応し、2個のタスクA及びタスクBのいずれか一方が完了した場合に、タスク指示信号Psを出力させる例を示す。この場合、ルックアップテーブル911bには、各タスク完了信号Vsの論理和が演算されるようなデータが書き込まれる。ルックアップテーブル911bは、入力信号A及びBの論理和信号Cbを出力する。 Next, an example of the task group 1102 on the right side of FIG. 11 will be described. The programmable synchronization control cell 901a is a programmable synchronization control cell 901 that controls the task A in synchronization. The programmable synchronization control cell 901b is a programmable synchronization control cell 901 that controls the task B in synchronization. The lookup table 911b corresponds to the lookup table 911 and shows an example in which the task instruction signal Ps is output when one of the two tasks A and B is completed. In this case, data that calculates the logical sum of each task completion signal Vs is written in the lookup table 911b. The lookup table 911b outputs a logical sum signal Cb of the input signals A and B.
 上記の例は、簡易な組み合わせの一例を示したもので、ほとんどの実用的なケースでは、より複雑な組み合わせのコンフィグレーションとなる。 The above example shows an example of a simple combination. In most practical cases, the configuration is a more complicated combination.
 図12は、本実施形態によるプログラマブルロジック装置の処理例を示すフローチャートである。ステップS1201では、プログラマブルロジック装置の電源が投入される。次に、ステップS1202では、プロセッシングコア102は、プログラマブルロジック装置の初期化処理を行う。次に、ステップS1203では、プロセッシングコア102は、プログラマブルロジックユニット(PU)103内のコンフィグレーションメモリにコンフィグレーションデータを書き込む。次に、ステップS1204では、プロセッシングコア102は、プログラマブル同期制御セル901内のルックアップテーブル911及びプログラマブルネットワーク1101(コネクションユニット902及びスイッチユニット903)内のコンフィグレーションメモリ921,931にコンフィグレーションデータを書き込む。次に、ステップS1205では、プロセッシングコア102は、処理開始命令を発行する。これにより、タスク指示信号Psがプログラマブルロジックユニット103及び/又はプログラマブル同期制御セル901に入力され、プログラマブルロジックユニット103によるタスク処理が開始される。 FIG. 12 is a flowchart showing a processing example of the programmable logic device according to the present embodiment. In step S1201, the programmable logic device is powered on. Next, in step S1202, the processing core 102 performs initialization processing of the programmable logic device. Next, in step S1203, the processing core 102 writes the configuration data to the configuration memory in the programmable logic unit (PU) 103. Next, in step S1204, the processing core 102 writes the configuration data to the look-up table 911 in the programmable synchronization control cell 901 and the configuration memories 921 and 931 in the programmable network 1101 (connection unit 902 and switch unit 903). . Next, in step S1205, the processing core 102 issues a processing start command. Thereby, the task instruction signal Ps is input to the programmable logic unit 103 and / or the programmable synchronous control cell 901, and task processing by the programmable logic unit 103 is started.
 ステップS1206~S1209の処理は、タスク毎に行われ、複数のタスクの処理が並列に実行される。ステップS1206では、プログラマブル同期制御セル901内のルックアップテーブル911は、入力信号に応じて、論理演算信号Cbを出力する。次に、ステップS1207では、プログラマブル同期制御セル901は、タスク指示信号Psを出力する。次に、ステップS1208では、プログラマブルロジックユニット103は、タスク指示信号Psを入力し、タスク処理を行う。次に、ステップS1209では、プログラマブルロジックユニット103は、タスク処理が完了すると、タスク完了信号Vsを出力する。 The processing of steps S1206 to S1209 is performed for each task, and processing of a plurality of tasks is executed in parallel. In step S1206, the look-up table 911 in the programmable synchronization control cell 901 outputs a logical operation signal Cb according to the input signal. Next, in step S1207, the programmable synchronization control cell 901 outputs a task instruction signal Ps. Next, in step S1208, the programmable logic unit 103 inputs the task instruction signal Ps and performs task processing. Next, in step S1209, when the task processing is completed, the programmable logic unit 103 outputs a task completion signal Vs.
 次に、ステップS1210では、プログラマブル同期制御セル901は、すべてのタスクが終了すると、処理終了信号をプロセッシングコア102に出力する。すると、プロセッシングコア102は、次の処理に移行する。以後、これらの処理を繰り返し、全体的に大きなタスクが実行される。 Next, in step S1210, the programmable synchronization control cell 901 outputs a processing end signal to the processing core 102 when all tasks are completed. Then, the processing core 102 proceeds to the next process. Thereafter, these processes are repeated to execute a large task as a whole.
 次に、図13及び図14を参照しながら、本実施形態の効果を説明する。第2の半導体チップ501がない場合のプログラマブルロジック装置の処理例を図13に示し、第2の半導体チップ501がある場合のプログラマブルロジック装置の処理例を図14に示す。 Next, the effect of this embodiment will be described with reference to FIGS. 13 and 14. FIG. 13 shows a processing example of the programmable logic device when the second semiconductor chip 501 is not provided, and FIG. 14 shows a processing example of the programmable logic device when the second semiconductor chip 501 is provided.
 図13は、第2の半導体チップ501がない場合のプログラマブルロジック装置の処理例を示す図である。第2の半導体チップ501がないので、1個のプロセッシングコア102がすべての同期処理を行う。各タスクグループは、例えばステップS1301~S1303及びS1311~S1313の処理を含む。プロセッシングコア102は、タスクグループ毎に逐次処理を行う。ステップS1301~S1303のタスクとステップS1311~S1313のタスクとが共有リソースの利用で競合する場合を例に説明する。 FIG. 13 is a diagram illustrating a processing example of the programmable logic device when the second semiconductor chip 501 is not provided. Since there is no second semiconductor chip 501, one processing core 102 performs all synchronization processing. Each task group includes, for example, steps S1301 to S1303 and S1311 to S1313. The processing core 102 performs processing sequentially for each task group. An example will be described in which the tasks in steps S1301 to S1303 and the tasks in steps S1311 to S1313 compete for the use of the shared resource.
 ステップS1301では、プロセッシングコア102は、タスク指示信号Psをあるプログラマブルロジックユニット103に出力する。次に、ステップS1302では、プログラマブルロジックユニット103は、タスク処理を行い、共有リソースを使用する。ステップS1303では、プログラマブルロジックユニット103は、タスク完了信号Vsを出力する。 In step S1301, the processing core 102 outputs a task instruction signal Ps to a programmable logic unit 103. Next, in step S1302, the programmable logic unit 103 performs task processing and uses shared resources. In step S1303, the programmable logic unit 103 outputs a task completion signal Vs.
 同様に、ステップS1311では、プロセッシングコア102は、タスク指示信号Psを他のプログラマブルロジックユニット103に出力する。次に、ステップS1312では、プログラマブルロジックユニット103は、タスク処理を行い、共有リソースを使用する。次に、ステップS1313では、プログラマブルロジックユニット103は、タスク完了信号Vsを出力する。 Similarly, in step S1311, the processing core 102 outputs a task instruction signal Ps to another programmable logic unit 103. Next, in step S1312, the programmable logic unit 103 performs task processing and uses shared resources. Next, in step S1313, the programmable logic unit 103 outputs a task completion signal Vs.
 ここで、ステップS1302及びS1312では、クリティカルプロセスにより、共有リソース1300の使用の競合が発生する。プロセッシングコア102は、同期処理により、いずれかのタスクを待機させる。 Here, in steps S1302 and S1312, competition for using the shared resource 1300 occurs due to the critical process. The processing core 102 waits for one of the tasks by the synchronization process.
 プロセッシングコア102は、タスクグループ毎に逐次処理を行う。1個のタスク処理が約20サイクルかかる場合には、(約20サイクル×タスクグループ数)の処理時間がかかる。 Processing core 102 performs sequential processing for each task group. When one task processing takes about 20 cycles, it takes a processing time of (about 20 cycles × number of task groups).
 図14は、第2の半導体チップ501がある場合のプログラマブルロジック装置の処理例を示す図である。この場合、第2の半導体チップ501が同期処理を行う。例えば、3個のタスクグループ1401~1403の処理が並列に実行される。各タスクグループ1401~1403は、複数のプログラマブル同期制御セル901により同期制御される。タスクグループ1401~1403毎にプログラマブル同期制御セル901は予めコンフィグレーションデータがプログラムされており、複数のタスクグループ1401~1403は並列処理される。その結果、複数のタスクグループ1401~1403の処理は、5~10クロックで終了するので、図13の場合に比べて、処理時間を短縮することができる。 FIG. 14 is a diagram illustrating a processing example of the programmable logic device when the second semiconductor chip 501 is present. In this case, the second semiconductor chip 501 performs a synchronization process. For example, the processing of three task groups 1401 to 1403 is executed in parallel. Each task group 1401 to 1403 is synchronously controlled by a plurality of programmable synchronous control cells 901. Configuration data is programmed in advance in the programmable synchronous control cell 901 for each task group 1401 to 1403, and a plurality of task groups 1401 to 1403 are processed in parallel. As a result, the processing of the plurality of task groups 1401 to 1403 is completed in 5 to 10 clocks, so that the processing time can be shortened compared to the case of FIG.
 図15は、第2の半導体チップ501がない場合のプロセッシングコア102のプログラム例を示す図である。この場合、プロセシングコア102が図15のプログラムを実行することにより、同期処理を行う。このプログラムは、1タスク分に相当する。プロセッシングコア102のメインルーチンにおいて、「MOV MEM 1」では、タスク管理用の変数MEMに初期値の1を設定する。次に、「CALL A」では、Ps処理ルーチン(タスク指示信号Psの処理ルーチン)を呼び出す。 FIG. 15 is a diagram showing a program example of the processing core 102 when the second semiconductor chip 501 is not present. In this case, the processing core 102 performs the synchronization process by executing the program of FIG. This program corresponds to one task. In the main routine of the processing core 102, “MOV MEM 1” sets the initial value 1 to the variable MEM for task management. Next, in “CALL A”, the Ps processing routine (processing routine of the task instruction signal Ps) is called.
 Ps処理ルーチンにおいて、「MOV AX MEM」では、変数MEMの値をレジスタAXに設定する。次に、「CMP AX 1」では、レジスタAXの値が1か否かを比較する。「JMP A」では、レジスタAXの値が1でなければ、「MOV AX MEM」の命令にジャンプし、レジスタAXの値が1であれば、次の命令に進む。次の命令の「DEC AX」では、レジスタAXの値をデクリメントし、他のタスクからの共有リソースの排他処理を設定する。次に、「MOV MEM AX」では、レジスタAXの値を変数MEMに設定する。その後、メインルーチンの処理に戻り、タスクが実行され、実行が完了すると、「CALL B」では、Vs処理ルーチン(タスク完了信号Vsの処理ルーチン)を呼び出す。 In the Ps processing routine, “MOV AX MEM” sets the value of the variable MEM in the register AX. Next, “CMP AX 1” compares whether or not the value of the register AX is “1”. In “JMP A”, if the value of the register AX is not 1, the process jumps to the instruction “MOV AX MEM”. If the value of the register AX is 1, the process proceeds to the next instruction. In the next instruction “DEC AX”, the value of the register AX is decremented and exclusive processing of the shared resource from other tasks is set. Next, in “MOV MEM AX”, the value of the register AX is set to the variable MEM. Thereafter, returning to the processing of the main routine, the task is executed, and when the execution is completed, “CALL B” calls the Vs processing routine (processing routine of the task completion signal Vs).
 Vs処理ルーチンにおいて、「MOV AX MEM」では、変数MEMの値をレジスタAXに設定する。次に、「INC AX」では、レジスタAXの値をインクリメントし、共有リソースの排他処理を解除する。次に、「MOV MEM AX」では、レジスタAXの値を変数MEMに設定する。その後、メインルーチンの処理に戻る。 In the Vs processing routine, “MOV AX MEM” sets the value of the variable MEM in the register AX. Next, in “INC AX”, the value of the register AX is incremented, and the shared resource exclusion process is canceled. Next, in “MOV MEM AX”, the value of the register AX is set to the variable MEM. Thereafter, the process returns to the main routine.
 図15の右欄に示すように、このプログラムの同期処理のサイクル数は、23クロックである。プロセッシングコア102の同期制御は、シーケンシャルになされるため、全タスクの共有リソースの排他制御に関しては、23クロック×タスク数分の同期処理サイクルが必要である。 As shown in the right column of FIG. 15, the number of cycles of the synchronization process of this program is 23 clocks. Since the synchronization control of the processing core 102 is performed sequentially, the exclusive control of the shared resources of all tasks requires 23 clocks × synchronization processing cycles corresponding to the number of tasks.
 図16は、第2の半導体チップ501がある場合のプログラマブルロジック装置の処理例を示すタイミングチャートである。この場合、プログラマブル同期制御セル901が同期制御を行う。 FIG. 16 is a timing chart showing a processing example of the programmable logic device when the second semiconductor chip 501 is present. In this case, the programmable synchronization control cell 901 performs synchronization control.
 まず、Ps処理の3クロック分を説明する。まず、第1クロックでは、ルックアップテーブル911の入力信号IN1にハイレベルパルスが発生する。次に、第2クロックでは、ルックアップテーブル911の出力信号Cbにハイレベルパルスが発生する。次に、第3クロックでは、プログラマブル同期制御セル901は、パイレベルパルスのタスク指示信号Psを出力する。 First, 3 clocks of Ps processing will be described. First, in the first clock, a high level pulse is generated in the input signal IN1 of the lookup table 911. Next, in the second clock, a high level pulse is generated in the output signal Cb of the lookup table 911. Next, in the third clock, the programmable synchronous control cell 901 outputs a task instruction signal Ps of a pi level pulse.
 その後、例えば100クロック程度のタスク処理が行われる。プログラマブルロジックユニット103は、タスク処理を完了すると、タスク完了信号Vsを出力する。 Then, for example, task processing of about 100 clocks is performed. The programmable logic unit 103 outputs a task completion signal Vs when the task processing is completed.
 次に、Vs処理の3クロック分を説明する。まず、第1クロックでは、ルックアップテーブル911は、プログラマブルロジックユニット103からハイレベルパルスのタスク完了信号Vsを入力する。次に、第2クロックでは、ルックアップテーブル911は、ハイレベルパルスの出力信号Cbを出力する。次に、第3クロックでは、プログラマブル同期制御セル901は、パイレベルパルスのタスク指示信号Psを出力する。その後、ルックアップテーブル911の入力信号IN1にハイレベルパルスが発生する。 Next, 3 clocks of Vs processing will be described. First, in the first clock, the lookup table 911 receives a task completion signal Vs of a high level pulse from the programmable logic unit 103. Next, in the second clock, the lookup table 911 outputs an output signal Cb of a high level pulse. Next, in the third clock, the programmable synchronous control cell 901 outputs a task instruction signal Ps of a pi level pulse. Thereafter, a high level pulse is generated in the input signal IN1 of the lookup table 911.
 本実施形態は、複数のプログラマブル同期制御セル901が同期処理をすべてハードウエアで並列実行するため、合計6クロックで同期処理が完結でき、図15の23クロックに比べて極めて短時間かつ並行して同期処理を行うことができる。これにより、プログラマブルロジック装置の処理速度が向上する。 In the present embodiment, since the plurality of programmable synchronization control cells 901 execute all the synchronization processes in parallel by hardware, the synchronization process can be completed in a total of 6 clocks, and in a shorter time and in parallel than the 23 clocks in FIG. Synchronous processing can be performed. This improves the processing speed of the programmable logic device.
 図17は、第2の半導体チップ501の他の構成例を示す図である。図17の第2の半導体チップ501は、図10の第2の半導体チップ501に対して、1個のルックアップテーブル911を2個のルックアップテーブル911a及び911bに替え、セレクタ1701を追加したものである。以下、図17の第2の半導体チップ501が図10の第2の半導体チップ501と異なる点を説明する。第1のルックアップテーブル911aは、タスク完了信号Vs及び入力信号IN1を入力し、出力信号をセレクタ1701に出力する。第2のルックアップテーブル911bは、タスク完了信号Vs及び入力信号IN1を入力し、出力信号をセレクタ1701に出力する。セレクタ1701は、切替信号SELに応じて、ルックアップテーブル911a及び911bの出力信号のいずれかを選択し、信号Cbを出力する。 FIG. 17 is a diagram illustrating another configuration example of the second semiconductor chip 501. The second semiconductor chip 501 in FIG. 17 is obtained by replacing one lookup table 911 with two lookup tables 911a and 911b and adding a selector 1701 to the second semiconductor chip 501 in FIG. It is. Hereinafter, differences between the second semiconductor chip 501 in FIG. 17 and the second semiconductor chip 501 in FIG. 10 will be described. The first lookup table 911a receives the task completion signal Vs and the input signal IN1, and outputs an output signal to the selector 1701. The second lookup table 911b receives the task completion signal Vs and the input signal IN1, and outputs an output signal to the selector 1701. The selector 1701 selects one of the output signals of the lookup tables 911a and 911b according to the switching signal SEL, and outputs a signal Cb.
 一方のルックアップテーブル911a又は911bを使用している間に、他方ルックアップテーブル911a又は911bのコンフィグレーションデータを書き換えることが可能になる。プログラマブル同期制御セル901は、複数のルックアップテーブル911a及び911bを動的に切り替えて使用することにより、ルックアップテーブル911a及び911bの論理演算構成を動的に変更することができる。 While using one lookup table 911a or 911b, the configuration data of the other lookup table 911a or 911b can be rewritten. The programmable synchronization control cell 901 can dynamically change the logical operation configuration of the lookup tables 911a and 911b by dynamically switching and using the plurality of lookup tables 911a and 911b.
 同様に、図9のコネクションユニット902のコンフィグレーションメモリ921及びスイッチユニット903のコンフィグレーションメモリ931をそれぞれ2個ずつ設けることができる。これにより、タスク間の制御論理の組み合わせも動的に変更することが可能となる。 Similarly, two configuration memories 921 of the connection unit 902 and two configuration memories 931 of the switch unit 903 in FIG. 9 can be provided. As a result, the combination of control logic between tasks can be dynamically changed.
 なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 It should be noted that each of the above-described embodiments is merely a specific example for carrying out the present invention, and the technical scope of the present invention should not be construed as being limited thereto. That is, the present invention can be implemented in various forms without departing from the technical idea or the main features thereof.

Claims (10)

  1.  タスク指示信号を入力するとタスク処理を開始し、前記タスク処理が完了するとタスク完了信号を出力する複数のプログラマブルロジックユニットと、
     ルックアップテーブルを用いて前記タスク完了信号に応じて前記タスク指示信号を出力する複数のプログラマブル同期制御セルと、
     前記複数のプログラマブルロジックユニット及び前記複数のプログラマブル同期制御ユニットを接続するプログラマブルネットワークと、
     タスクの処理及び管理を行うプロセッシングコアとを有し、
     前記プログラマブル同期制御セルは、前記プログラマブルネットワークから前記タスク完了信号、又は前記タスク指示信号の少なくともいずれか一方を入力し、前記プログラマブルネットワークを介して、前記タスク指示信号を前記プログラマブルロジックユニットに出力することを特徴とするプログラマブルロジック装置。
    A plurality of programmable logic units that start task processing when a task instruction signal is input and output a task completion signal when the task processing is completed,
    A plurality of programmable synchronous control cells that output the task instruction signal in response to the task completion signal using a lookup table;
    A programmable network connecting the plurality of programmable logic units and the plurality of programmable synchronous control units;
    A processing core for processing and managing tasks,
    The programmable synchronization control cell receives at least one of the task completion signal or the task instruction signal from the programmable network, and outputs the task instruction signal to the programmable logic unit via the programmable network. A programmable logic device characterized by the above.
  2.  前記プロセッシングコアは、前記複数のプログラマブルロジックユニット、前記複数のプログラマブル同期制御セルのルックアップテーブル及び前記プログラマブルネットワークに対してコンフィグレーションデータを設定することを特徴とする請求項1記載のプログラマブルロジック装置。 The programmable logic device according to claim 1, wherein the processing core sets configuration data for the plurality of programmable logic units, a lookup table of the plurality of programmable synchronization control cells, and the programmable network.
  3.  前記複数のプログラマブルロジックユニットは、少なくとも一部が第1の半導体チップに設けられ、
     前記複数のプログラマブル同期制御セル及び前記プログラマブルネットワークは、第2の半導体チップに設けられることを特徴とする請求項1記載のプログラマブルロジック装置。
    The plurality of programmable logic units are at least partially provided on the first semiconductor chip,
    The programmable logic device according to claim 1, wherein the plurality of programmable synchronization control cells and the programmable network are provided in a second semiconductor chip.
  4.  前記第1の半導体チップ及び前記第2の半導体チップは、相互に重なるように立体接続されることを特徴とする請求項3記載のプログラマブルロジック装置。 4. The programmable logic device according to claim 3, wherein the first semiconductor chip and the second semiconductor chip are three-dimensionally connected so as to overlap each other.
  5.  前記プログラマブルロジックユニットのデータは、前記第1の半導体チップの平面方向の配線を介して通信され、
     前記プログラマブルロジックユニットの前記タスク指示信号及び前記タスク完了信号は、前記第1の半導体チップの平面に対して垂直方向の配線を介して通信されることを特徴とする請求項4記載のプログラマブルロジック装置。
    Data of the programmable logic unit is communicated via a wiring in a plane direction of the first semiconductor chip,
    5. The programmable logic device according to claim 4, wherein the task instruction signal and the task completion signal of the programmable logic unit are communicated via a wiring in a direction perpendicular to a plane of the first semiconductor chip. .
  6.  さらに、前記複数のプログラマブルロジックユニット、前記複数のプログラマブル同期制御セルのルックアップテーブル及び前記プログラマブルネットワークに対してコンフィグレーションデータを設定するプロセッシングコアを有することを特徴とする請求項5記載のプログラマブルロジック装置。 6. The programmable logic device according to claim 5, further comprising a processing core for setting configuration data for the plurality of programmable logic units, a lookup table of the plurality of programmable synchronization control cells, and the programmable network. .
  7.  前記プロセッシングコアは、前記第1の半導体チップに設けられることを特徴とする請求項6記載のプログラマブルロジック装置。 The programmable logic device according to claim 6, wherein the processing core is provided in the first semiconductor chip.
  8.  前記複数のプログラマブルロジックユニットは、一部が前記第1の半導体チップに設けられ、他部が第3の半導体チップに設けられることを特徴とする請求項3記載のプログラマブルロジック装置。 4. The programmable logic device according to claim 3, wherein a part of the plurality of programmable logic units is provided on the first semiconductor chip and the other part is provided on a third semiconductor chip.
  9.  前記第1の半導体チップ及び前記第3の半導体チップは、前記第2の半導体チップを挟み込むように立体接続されることを特徴とする請求項8記載のプログラマブルロジック装置。 The programmable logic device according to claim 8, wherein the first semiconductor chip and the third semiconductor chip are three-dimensionally connected so as to sandwich the second semiconductor chip.
  10.  前記プログラマブル同期制御セルは、複数のルックアップテーブルを動的に切り替えて使用することを特徴とする請求項1記載のプログラマブルロジック装置。 The programmable logic device according to claim 1, wherein the programmable synchronous control cell dynamically switches between a plurality of lookup tables.
PCT/JP2013/050851 2013-01-17 2013-01-17 Programmable logic device WO2014112082A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050851 WO2014112082A1 (en) 2013-01-17 2013-01-17 Programmable logic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050851 WO2014112082A1 (en) 2013-01-17 2013-01-17 Programmable logic device

Publications (1)

Publication Number Publication Date
WO2014112082A1 true WO2014112082A1 (en) 2014-07-24

Family

ID=51209203

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/050851 WO2014112082A1 (en) 2013-01-17 2013-01-17 Programmable logic device

Country Status (1)

Country Link
WO (1) WO2014112082A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312481A (en) * 2000-02-25 2001-11-09 Nec Corp Array type processor
WO2005001689A1 (en) * 2003-06-25 2005-01-06 Nec Corporation Electronic computer, semiconductor integrated circuit, control method, program generation method, and program
JP2005512229A (en) * 2001-12-05 2005-04-28 アーバー・カンパニー・リミテッド・ライアビリティ・パートナーシップ Reconfigurable processor module including hybrid stacked integrated circuit die elements
WO2009157441A1 (en) * 2008-06-26 2009-12-30 日本電気株式会社 Data processing device, information processing device, and information processing method
WO2010087098A1 (en) * 2009-01-30 2010-08-05 日本電気株式会社 Parallel computing device, information processing system, parallel computing method, and information processing device
JP2012053778A (en) * 2010-09-02 2012-03-15 Toshinori Sueyoshi Error correction circuit of programmable logic circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001312481A (en) * 2000-02-25 2001-11-09 Nec Corp Array type processor
JP2005512229A (en) * 2001-12-05 2005-04-28 アーバー・カンパニー・リミテッド・ライアビリティ・パートナーシップ Reconfigurable processor module including hybrid stacked integrated circuit die elements
WO2005001689A1 (en) * 2003-06-25 2005-01-06 Nec Corporation Electronic computer, semiconductor integrated circuit, control method, program generation method, and program
WO2009157441A1 (en) * 2008-06-26 2009-12-30 日本電気株式会社 Data processing device, information processing device, and information processing method
WO2010087098A1 (en) * 2009-01-30 2010-08-05 日本電気株式会社 Parallel computing device, information processing system, parallel computing method, and information processing device
JP2012053778A (en) * 2010-09-02 2012-03-15 Toshinori Sueyoshi Error correction circuit of programmable logic circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIN'YA UENO ET AL.: "Three-Dimensional Accelerator Architecture for Image Recognition", IPSJ SIG NOTES 2011 (HEISEI 23) NENDO, vol. 2, no. 152, 15 December 2011 (2011-12-15), pages 1 - 6 *

Similar Documents

Publication Publication Date Title
KR102440132B1 (en) Reconfigurable logic architecture
CN109508316B (en) Apparatus and system for heterogeneous computing environments
Vipin et al. ZyCAP: Efficient partial reconfiguration management on the Xilinx Zynq
US10013212B2 (en) System architecture with memory channel DRAM FPGA module
US7822897B2 (en) System and methods for connecting multiple functional components
US10698842B1 (en) Domain assist processor-peer for coherent acceleration
US20220367412A1 (en) Hbm silicon photonic tsv architecture for lookup computing ai accelerator
US20060010306A1 (en) Reconfigurable operation apparatus
US20130027080A1 (en) Programmable logic device
US11062070B2 (en) Die to die interconnect structure for modularized integrated circuit devices
US20110126164A1 (en) Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus
US10693466B2 (en) Self-adaptive chip and configuration method
US20190326210A1 (en) Fabric Die to Fabric Die Interconnect for Modularized Integrated Circuit Devices
JP4856053B2 (en) Computer processor array
CN115525592A (en) Modular peripheral tile for integrated circuit devices
EP3555760A1 (en) Parallel processing on demand using partially dynamically reconfigurable fpga
CN113407479A (en) Many-core architecture embedded with FPGA and data processing method thereof
EP2759927B1 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
Salvador et al. Implementation techniques for evolvable HW systems: Virtual vs. dynamic reconfiguration
WO2014112082A1 (en) Programmable logic device
Tsuruta et al. Accelerator-in-switch: A framework for tightly coupled switching hub and an accelerator with FPGA
KR102262807B1 (en) Non-volatile memory module array system
CN204302973U (en) Configurable processor computing machine
JP2013009044A (en) Control device, processing device, processing system and control program
WO2008061162A1 (en) Hybrid computing platform having fpga components with embedded processors

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13871810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13871810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP