Information processing system, information processing device, server device, program, reconfigurable device, or method

By acquiring and synthesizing resource information to combine multiple reconfigurable devices, the system addresses inefficiencies in resource management and communication overhead, enhancing the utilization and efficiency of reconfigurable devices.

JP7824688B2Active Publication Date: 2026-03-05CHIPTIP TECH KK
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-03-25
Publication Date
2026-03-05

AI Technical Summary

Technical Problem

Existing technologies do not effectively utilize reconfigurable devices, leading to inefficiencies in resource management and communication overhead between multiple reconfigurable devices.

Method used

The system employs resource information acquisition and synthesis to generate composite resource information, allowing for the combination of multiple reconfigurable devices into a single unit, reducing communication overhead through soft and hard resource merging.

Benefits of technology

This approach enhances the utilization of reconfigurable devices by optimizing resource allocation and minimizing communication overhead, thereby improving efficiency and flexibility in managing reconfigurable devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007824688000001
    Figure 0007824688000001
  • Figure 0007824688000002
    Figure 0007824688000002
  • Figure 0007824688000003
    Figure 0007824688000003
Patent Text Reader

Abstract

[Problem] To be able to utilize a reconfigurable device more suitably. [Solution] The system comprises: an acquisition unit which acquires first resource information that is information about a hardware resource that can be used when one or a plurality of bitstreams pertaining to a first computation node are recorded in a reconfigurable device, and second resource information that is information about a hardware resource that can be used when one or a plurality of bitstreams pertaining to a second computation node are recorded in the reconfigurable device; and a generation unit which generates, by using the first resource information and the second resource information, synthetic resource information that is information about a hardware resource that can be used when one or a plurality of bitstreams based on the first computation node and the second computation node are recorded in the reconfigurable device. 
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The technology disclosed in this application relates to a system, an information processing device, a server device, a reconfigurable device, a program, a cloud, and / or a method. [Background technology]

[0002] In recent years, reconfigurable devices, which allow circuits to be modified, have begun to be introduced in various fields. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 2020-135318 [Patent Document 2] Japanese Patent Application Laid-Open No. 2010-251925 [Patent Document 3] Japanese Patent Application Laid-Open No. H7-6080 Summary of the Invention [Problem to be solved by the invention]

[0004] However, there is a situation where technology for more appropriately utilizing reconfigurable devices is not being utilized. Therefore, in order to solve the above-mentioned problems, various embodiments of the present invention provide an information processing system, an information processing device, a server device, a program, a reconfigurable device, or a method. [Means for solving the problem]

[0005] One embodiment of the present application is First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; an acquisition unit that acquires the a generating unit that generates, using the first resource information and the second resource information, composite resource information that is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device; A system comprising:

[0006] Another embodiment of the present application is One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; Get step, a generating step of generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; How to do it.

[0007] Another embodiment of the present application is One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; Acquisition means to obtain, a generating means for generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; A program to operate as. [Effects of the Invention]

[0008] An embodiment of the present invention allows for better utilization of reconfigurable devices. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a block diagram illustrating an example of a relationship between a system according to an embodiment and a reconfigurable device. [Figure 2] FIG. 2 is a block diagram illustrating an example of a relationship between a system according to an embodiment and a reconfigurable device. [Figure 3] FIG. 3 is a diagram showing an example of data used by a system according to an embodiment. [Figure 4] FIG. 4 is a diagram showing an example of data used by a system according to an embodiment. [Figure 5] FIG. 5 is a diagram illustrating an example of processing by a system according to an embodiment. [Figure 6] FIG. 6 is a diagram illustrating an example data flow associated with a system according to one embodiment. [Figure 7] FIG. 7 is a diagram illustrating an example of processing by a system according to an embodiment. [Figure 8] FIG. 8 is a diagram illustrating an example of processing by a system according to an embodiment. [Figure 9]FIG. 9 is a diagram illustrating an example data flow associated with a system according to one embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of processing by a system according to an embodiment. [Figure 11] FIG. 11 is a diagram showing an example of data used by a system according to an embodiment. [Figure 12] FIG. 12 shows the relevant configuration of a system according to one embodiment. [Figure 13] FIG. 13 is a diagram illustrating an example of processing by a system according to an embodiment. [Figure 14] FIG. 14 is a diagram showing an example of data used by a system according to an embodiment. [Figure 15] FIG. 15 is a diagram illustrating an example data flow associated with a system according to one embodiment. [Figure 16] FIG. 16 shows the relevant configuration of a system according to one embodiment. [Figure 17] FIG. 17 is a block diagram illustrating an example of a configuration of a system according to an embodiment.

[0010] 1. Introduction An example of the technology disclosed in the present application relates to a reprogrammable circuit. For example, the technology disclosed in the present application includes technology related to the reprogrammable circuit itself, technology using a non-reprogrammable circuit for a reprogrammable circuit, and programs used in these circuits. An example of the technology may be an information processing device including a non-reprogrammable circuit. Reprogrammable circuits are also called programmable logic devices, and in this application, these are collectively referred to as reconfigurable devices. On the other hand, non-reprogrammable circuits are sometimes called instruction decoding devices, von Neumann devices, and the like, and in this application, these are collectively referred to as program variable devices.

[0011] Examples of reconfigurable devices include PAL (Programmable Array Logic), PLA (Programmable Logic Array), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), FPGA (Field Programmable Gate Array), and CGRA (Coarse-Grained Reconfigurable Array).

[0012] In the following description of this application, an FPGA is sometimes used as the reconfigurable device, but it goes without saying that the present invention can be applied to other reconfigurable devices instead of the FPGA. In particular, the reconfigurable device may be a device that has partial reconfiguration, i.e., a function that allows multiple regions (e.g., PR regions) in a single programmable logic device to be written independently of each other, and that allows processing for each region, as described below. Here, being able to write independently of each other may include a function that allows writing to another region in a single programmable logic device that is different from the one region while processing is being performed in the single region.

[0013] In this application, a "single" reconfigurable device may refer to a physically independent device. A single reconfigurable device may structurally include one or more PR regions. A PR region may be a section whose circuit configuration can be independently changed. For each PR region, the reconfigurable device may be capable of executing one or more independent operations using partial reconfiguration, or may be capable of executing one or more independent operations without partial reconfiguration. Because they are independent, for example, if a single reconfigurable device includes PR region A and PR region B, PR region A and PR region B may operate independently in terms of circuit rewriting and circuit execution. Therefore, PR region B may be rewritten while PR region A is running. A reconfigurable device may also be referred to as a physical device, and a PR region may also be referred to as a virtual device.

[0014] The data written to the reconfigurable device may be a bitstream or a partial bitstream, but the following description will be made on the basis that it includes both.

[0015] The bitstream in this application document may be obtained by compiling a program (sometimes referred to as an HDL program in this application document) written in a hardware descriptive language (sometimes referred to as an "HDL" in this application document) such as VHDL or Verilog.

[0016] The HDL program in this application document may be one that has been programmed (coded) by a person, or one that has been obtained by converting a program written in a high-level programming language such as C using a high-level synthesis tool. Note that in this application document, the term "target HDL program" may be used to refer to a higher-level concept of a program written in a high-level programming language (such as C, Python, or any language to which a behavioral synthesis tool can be applied) that can be converted into an HDL program using such a high-level synthesis tool, and an HDL program.

[0017] In this application, the term "information processing device" is used as a generic term for a reconfigurable device and a programmable device.

[0018] An example system may be comprised of one or more information processing devices, which may be comprised of one or more reconfigurable devices and / or one or more programmable devices.

[0019] Additionally, the example system may be connected to one or more reconfigurable devices, which may advantageously allow the example system to manage one or more reconfigurable devices.

[0020] FIG. 1 shows an example of a system connected to one or more FPGAs. The example system (001) is connected to FPGA1 (0021) through FPGA4 (0024). Such connections may be via Ethernet or a bus such as PCI Express. The example system may be connected only to one or more FPGAs as a computing function for executing user applications. In this case, a programmable device may be connected as a hardware resource for executing functions other than the computing function for executing user applications.

[0021] Furthermore, the example system may be connected to one or more reconfigurable devices and may also be connected to one or more programmable devices, which has the advantage of being able to manage not only the reconfigurable devices but also distributed processing and the like, including the programmable devices.

[0022] When the example system is connected to one or more reconfigurable devices and / or one or more programmable devices, the connection may be direct or indirect via a network. The one or more reconfigurable devices may be installed in the same facility as the example system or in a different facility. The specific location of the one or more reconfigurable devices may be any. For example, the one or more reconfigurable devices may be installed inside a building (indoors) or outside a building (outdoors). IoT devices such as sensors may operate inside and / or outside a building, and these may be implemented by the reconfigurable devices. The network may be wired, wireless, or a combination of these.

[0023] FIG. 2 shows an example system connected to a reconfigurable device and a programmable device via a network (000). This diagram shows an example configuration including multiple FPGAs and programmable devices within an FPGA group (002). Here, CPU1 and CPU2 are used to indicate the programmable devices, and for convenience, these are also shown as part of the FPGA group. Furthermore, an FPGA group (003) includes multiple FPGAs and an information processing device including the functionality of an FPGA writer. Such an FPGA writer may be capable of both writing a bitstream to the FPGA group (003) and writing a bitstream to the FPGA group (002). The network within these FPGA groups (002) and (003) may be a bus, Ethernet, or the like.

[0024] Note that the example system, the one or more reconfigurable devices described above, and / or the one or more programmable devices described above may be information processing devices on the cloud.

[0025] In this application, a computation (or computation concept) executed in one or more target HDL programs, one or more bitstreams, PR regions, and / or reconfigurable devices is referred to as a computation node, and a unit of computation nodes executed in one PR region or one reconfigurable device is referred to as one computation node. One computation node may correspond to one or more target HDL programs. One computation node may correspond to one or more bitstreams. Furthermore, one computation node may correspond to a unit in which a programmer specifies resource information (described below).

[0026] In addition, in the present application, a hardware resource may refer to a reconfigurable device, a PR region within a reconfigurable device, and / or a programmable device.

[0027] 2. Embodiment 1 The HDL program is compiled into a bitstream, which is then written to the reconfigurable device and used to perform calculations. Typically, programmers code HDL programs with the expectation that they will be written to a specific reconfigurable device (or a partial PR region).

[0028] However, suppose a certain process is realized by multiple bitstreams (e.g., BS1, BS2, BS3) each compiled from multiple HDL programs (e.g., HDL1, HDL2, HDL3). When each of these bitstreams is written to a reconfigurable device R (e.g., RD1, RD2, RD3), multiple reconfigurable devices are written, which may result in communication overhead between these multiple reconfigurable devices. Therefore, the inventors have devised a technology related to combining these multiple reconfigurable devices into a single reconfigurable device (e.g., RDX) to reduce the communication overhead between the reconfigurable devices.

[0029] In this application, the information processing for converting resource information about hardware resources used by a target HDL program corresponding to N (N is a natural number) computing nodes into resource information about hardware resources used by a target HDL program corresponding to M (M is a natural number less than N) computing nodes is sometimes referred to as soft resource merging. Also, in this application, the information processing for converting (compiling) a target HDL program corresponding to a computing node involved in soft resource merging into a bitstream is sometimes referred to as soft merging. Note that multiple computing nodes that are soft-merged may be considered as a single computing node. This is because, if multiple computing nodes that are soft-merged can generate synthesis information based on the corresponding resource information of the multiple computing nodes through soft resource merging, the computing nodes corresponding to this synthesis information can be considered as a single computing node because the resource information corresponding to the synthesis information can be conceived. Also, the processing for writing the soft-merged bitstream to hardware resources is sometimes referred to as hard merging.

[0030] The target HDL program is then converted into a bitstream (in the case of a high-level programming language to which a high-level synthesis tool is applied, a program written in the high-level programming language is subjected to a behavioral synthesis tool to generate an HDL program, which is then converted into a bitstream), and the bitstream can be written into a reconfigurable device. The target HDL program may be programmed based on information about the reconfigurable device to which it is to be written. For example, a target HDL program may have processing capabilities of 500 logic blocks, 300 megabytes of memory, and 100 megahertz. When such a target HDL program is written into a reconfigurable device, the capacity and functions that the reconfigurable device must have are sometimes referred to as "resource information" in this application.

[0031] The resource information may include, for example, the type of reconfigurable device, attributes related to the arithmetic unit, attributes related to the memory device, and / or attributes related to the communication unit. The attributes related to the arithmetic unit may include the type of arithmetic unit, the number of arithmetic units (e.g., the number of cells), the capabilities of the arithmetic unit (e.g., the clock frequency), the number of logic blocks, the number of logic elements (LEs), the number of logic cells (LCs), the capacity of the LUT (look-up table), the number of register bits, the type of DSP, the capabilities of the DSP, the number of DSPs, and / or the power consumed by the arithmetic unit. The attributes related to the memory device may include the type of memory device, the capacity of the memory device, the read / write speed of the memory device, and / or the power consumed by the memory device. The memory device may be, for example, an on-chip memory device within the reconfigurable device, or may be another memory device installed outside the reconfigurable device. The attributes related to the communication unit may include attributes related to an internal communication unit and / or attributes related to an external communication unit. The attributes related to the internal communication unit may also be information related to communication within the FPGA. Attributes related to external communication devices may include network bandwidth for external communication, the number of communication channels, and / or bandwidth speed. In the present application, information from different perspectives within resource information (e.g., attributes related to computing devices, attributes related to storage devices, and / or attributes related to communication devices, as well as information related to these sub-concepts) may be referred to as "attributes." Resource information may include one or more attributes for each attribute. For example, a single piece of resource information may include information such as multiple frequencies, multiple types of storage devices, and multiple numbers of logic blocks. When there are multiple attributes, corresponding attributes may be associated and included within the resource information. In addition to or instead of multiple attributes, each attribute may be defined as a range. For example, a single piece of resource information may be defined as a range, such as frequencies X1-X2 and the number of logic blocks Y1-Y2.In particular, when the target HDL program is a program written in a high-level programming language, when applying a behavioral synthesis tool, the type of reconfigurable device, such as frequency and number of logic blocks, attributes related to the arithmetic unit, attributes related to the memory unit, and / or attributes related to the communication unit, may be automatically determined within a certain range by selecting options. Therefore, by including information on the possible range of these, there is an advantage that soft resource merging or hard resource merging can be realized more flexibly.

[0032] Resource information for one or more target HDL programs and / or resource information for a hardware resource may be specified by a programmer. This information can be specified when the programmer programs the target HDL program while considering at least the required computing power and memory capacity. Here, resource information may be specified from multiple perspectives (e.g., required, recommended, etc.) for one attribute. For example, the frequency for a target HDL program may be specified as 1 MHz required and 2 MHz recommended. Furthermore, resource information for a target HDL program may be automatically generated for the target HDL program. For example, the resource information may be generated by analyzing the target HDL program.

[0033] Note that there may be multiple methods for setting PR regions for one reconfigurable device. For example, one reconfigurable device may be divided into two PR regions, PR regions A and B, or into four PR regions, PR regions A to D. When the division methods differ in this way, the resource information for each PR region also differs, so resource information may be stored in association with a specific PR region in a certain division method.

[0034] In this application, "one" piece of resource information may refer to one unit of hardware resource that can be used by a user. Therefore, if reconfigurable devices are not managed in units of PR regions, one piece of resource information may refer to one reconfigurable device. If reconfigurable devices are managed in units of PR regions and are hardware resources that can be used for each PR region, one piece of resource information may refer to one PR region in one reconfigurable device. Furthermore, one reconfigurable device may be a device that can be independently purchased as a device whose circuitry can be rewritten.

[0035] In this application, a database that stores resource information associated with a target HDL program is sometimes referred to as an HDL resource database (or HDL-RDB). Note that in this application, the resource information does not necessarily need to be stored in a database format, as long as the resource information is stored in association with the target HDL program. Furthermore, one piece of resource information may be stored in association with one or more target HDL programs. Furthermore, one piece of resource information may be stored in association with one computing node.

[0036] An example of an HDL-RDB is shown in FIG. 3. In this figure, one piece of resource information may be associated with one or more HDL programs. For example, for ID001, one piece of resource information (one set of information for each attribute of the resource information) is associated with one target HDL program and stored. When one piece of resource information is associated with multiple target HDL programs, it may be that a programmer writes the multiple target HDL programs to one hardware resource, assuming that the multiple target HDL programs will be compiled as a target HDL program that realizes one function. For example, for ID002, one piece of resource information is associated with multiple target HDL programs 002, 003, and 004 and stored. Furthermore, one piece of resource information may be associated with one computing node.

[0037] On the other hand, resource information can also be considered for a reconfigurable device or a PR region therein. That is, given a reconfigurable device or a PR region therein, the capacity and function of the reconfigurable device or the PR region therein can be considered, and therefore resource information for the reconfigurable device or the PR region therein can also be considered. In this application document, a database that stores resource information associated with a reconfigurable device or a PR region therein is sometimes referred to as an RFD resource database (or RFD-RDB).

[0038] FIG. 4 shows an example of an HDL resource database. Each row in the table may represent a single hardware resource to which one or more bitstreams can be written. For example, ID001 and ID002 represent a case in which hardware resource 001 is divided into PR regions 01 and 02 (partitioning method 1). ID003 to ID005 represent a case in which the same hardware resource 001 is divided into PR regions 01 to 03 (partitioning method 2), unlike ID001 and ID002. In this way, the physically identical hardware resource 001 may be divided into hardware resources with different resource capacities using different partitioning methods (partitioning methods 1 and 2). As described below, this allows for allocation of hardware resources that are more suitable (less wasteful) for the computing node to be executed. ID006 represents an example in which a PR region is not set, and a hardware resource 101 without a PR region is used as a single resource. In addition, the division of PR regions, such as ID001 to ID005, may be stored in the HDL-RDB as information that the target hardware resource has already been divided, or the division of PR regions may be stored in the HDL-RDB as information for the case where a PR region is not actually set in the target hardware resource but is divided.

[0039] The RFD-RDB and / or HDL-RDB may or may not utilize a database management system. If there is a data model on which the database is based, it may be of various types, such as a hierarchical type, a network type, a relational data model, or an object data model, and the type is not limited. Furthermore, the hardware resources that realize such a database may be a server, a cloud, a dedicated information processing device, and / or a general-purpose information processing device.

[0040] When the example system uses the RFD-RDB and / or HDL-RDB, the example system only needs to be able to access the RFD-RDB and / or HDL-RDB, and the example system may or may not include the RFD-RDB and / or HDL-RDB. In the latter case, the example system only needs to be able to connect directly or indirectly to the RFD-RDB and / or HDL-RDB via a network or the like.

[0041] Step 1 The resource information acquisition unit may acquire multiple pieces of resource information.

[0042] The resource information acquisition unit may acquire resource information directly or indirectly. For example, the resource information acquisition unit may acquire a plurality of computing nodes and acquire resource information corresponding to each of the computing nodes based on the plurality of computing nodes. Alternatively, the resource information acquisition unit may acquire a plurality of target HDL programs and acquire corresponding resource information based on the plurality of HDL programs. In these cases, the resource information acquisition unit may alternatively acquire resource information using an HDL-RDB. For example, the resource information acquisition unit may acquire IDs and / or target HDL programs corresponding to computing nodes and acquire corresponding resource information using these keys.

[0043] The resource information may be acquired in various ways. For example, the resource information may be acquired from a storage device in an information processing device in which the resource information acquisition unit is implemented, or may be acquired via a network from an information processing device different from the information processing device. The resource information may also be acquired based on a user's input.

[0044] Step 2 The synthesis information generating unit may generate synthesis information using the plurality of pieces of resource information acquired by the acquiring unit. Note that the synthesis information generating unit may have a function for realizing soft resource merging. The composite information may include or be composite resource information.

[0045] (Determination function) The combination information generation unit may have a determination function for determining whether combination is possible before generating the combination information, or may not have a determination function for determining whether combination is possible. Furthermore, if the combination information generation unit determines that combination is possible, it may determine whether the combination will work. For example, the combination information generation unit may have a simulation function for determining whether the combination will actually work. In this case, the actual operation may be determined by the simulation function. That is, such a simulation may determine whether writing to the reconfigurable device is possible. Such a simulation function may be included in the system of this example or may be external to the system of this example. If the combination information generation unit can execute the determination function and / or simulation function, it may generate the above-mentioned combination information only if it determines that resource information can be combined and / or that the combined information will work. If the combination information generation unit can execute the determination function and / or simulation function, it may not generate the above-mentioned combination information if it does not determine that combination is possible and / or that the combined information will work.

[0046] For example, as described below, the synthesis information generation unit may determine that synthesis is not possible when the pipeline cycle, DSP type, and / or arithmetic unit type in the resource information are different when soft resource merging (for example, when soft resource merging first resource information and second resource information, if the DSP type and / or arithmetic unit type in the first resource information are different from the DSP type and / or arithmetic unit type in the second resource information).

[0047] Below, as an example, a description will be given of a case where the synthesis information generation unit generates one piece of resource information from two pieces of acquired resource information. That is, a description will be given of an example where the synthesis information generation unit generates twelfth resource information necessary for writing to a reconfigurable device using first resource information and second resource information. The synthesis information generation unit has a function to generate one piece of resource information from two pieces of resource information described below, and may also have a function to generate M pieces of resource information (M is less than N) from N pieces of resource information.

[0048] The combined information generator may have a function to present information generated in the soft resource merge to a user. For example, the combined information generator may have a function to display information on two acquired resources and / or combined resource information to a user. In this case, there is an advantage that the user can understand the resource information before and / or the combined resource information. In particular, when the function of a combined computing node changes compared to each computing node before the soft resource merge, there is an advantage that the user can utilize the change when information including such change is displayed. For example, when soft resource merging for different types of storage devices, as described below, generates combined resource information of a type with a fast memory access speed, there is an advantage that the user can understand the change. Furthermore, there is an advantage that when soft resource merging for computing nodes with different frequencies, as described below, decreases in frequency, there is an advantage that the user can understand the change.

[0049] Soft resource merging of computation information The composite information generation unit may generate attributes related to the calculation device of the resource information by summing attributes related to the calculation device related to the first resource and attributes related to the calculation device related to the second resource that correspond to the attributes related to the calculation device related to the first resource.

[0050] For example, if the number of logic blocks in the attribute related to the arithmetic device related to the first resource is X1 and the number of logic blocks in the attribute related to the arithmetic device related to the second resource is X2, the number of logic blocks in the attribute related to the arithmetic device in the generated composite resource information may be X1+X2.

[0051] As another example, if the number of DSPs (digital signal processors, DSPs) in the attributes related to the arithmetic device related to the first resource is X1 and the number of DSPs in the attributes related to the arithmetic device related to the second resource is X2, the number of DSPs in the attributes related to the arithmetic device in the generated composite resource information may be X1+X2.

[0052] As described above, for the capabilities of the arithmetic devices that are independent during hard merging, such as the number of arithmetic devices (e.g., the number of cells), the number of logic blocks, and / or the number of DSPs, which are attributes related to the arithmetic devices in the resource information, the corresponding attributes in the first resource information and the second resource information may be added together to generate the corresponding attributes in the composite resource information.

[0053] On the other hand, with regard to the capabilities of the arithmetic device, such as the type of DSP and / or the type of arithmetic device, which are attributes related to the arithmetic device in the resource information and which require identity during hard merging, soft merging is possible only if the corresponding attributes in the first resource information and the second resource information are identical, and the same corresponding attributes in the composite resource information may be generated.

[0054] In addition, for the capabilities of the arithmetic devices in the resource information, such as the number of bits of a register and / or the number of bits representing the number of digits of a DSP, where the higher capability can cover the other during hard merging, the corresponding attributes in the first resource information and the second resource information may generate higher numerical values, and the corresponding attributes in the synthesized resource information may generate higher numerical values.

[0055] On the other hand, for the attributes of the computing devices in the resource information, such as clock frequency, which are attributes related to the computing devices and should have low capabilities and emphasize stability during hard merging, the corresponding attributes in the first resource information and the second resource information may generate low numerical values, and the corresponding attributes in the composite resource information may generate low numerical values. This is because, particularly in the case of computing nodes with different frequencies, it may not be possible to adjust a computing node with a low frequency to a computing node with a high frequency, but it is possible to adjust a computing node with a high frequency to a computing node with a low frequency. Note that, if a computing node has multiple frequencies, the smallest frequency among the multiple frequencies may be used.

[0056] Alternatively, instead of the above-described embodiment, a computing node after soft merging and / or hard merging may be operated at multiple different frequencies by connecting modules operating at different frequencies using a FIFO or the like. In this case, the combined resource information may include multiple frequencies. The combined resource information may also include information indicating each of the multiple frequencies and the computing process to be operated at each frequency, in association with each other.

[0057] Soft resource merging of memory information The composite information generation unit may generate attributes related to the storage device of the resource information by summing attributes related to the storage device related to the first resource and attributes related to the storage device related to the second resource that correspond to the attributes related to the storage device related to the first resource.

[0058] For example, the composite information generation unit may generate attributes related to the storage devices of the resource information by summing attributes related to the storage devices of a first resource and attributes related to the storage devices of a second resource that correspond to the attributes related to the storage devices of the first resource. For example, if the number of internal memories in the attributes related to the storage devices of the first resource is X1 and the number of internal memories in the attributes related to the storage devices of the second resource is X2, the number of internal memories in the attributes related to the storage devices in the generated composite resource information may be X1+X2.

[0059] As another example, for example, if the number of shared channels to an external memory in the attributes of a storage device associated with a first resource is the EC1 number and the number of dedicated channels to the external memory is the ED1 number, and the number of shared channels to the external memory in the attributes of a storage device associated with a second resource is the EC2 number and the number of dedicated channels to the external memory is the ED2 number, the number of shared channels to the external memory in the attributes of the storage device in the generated composite resource information may be the larger of EC1 or EC2 (which may be 1), and the number of dedicated channels to the external memory may be ED1 + ED2. This is because shared channels in an external memory can be used even when delays in access to the storage memory are acceptable (slow latency is acceptable), and this can be accommodated by having the larger number of channels, EC1 or EC2. Note that the number of shared channels to the external memory may be greater than the larger of EC1 or EC2. For example, a predetermined number of additional buffers may be provided. In this case, there is an advantage in that a certain number of buffers can be used to provide a sufficient number of channels. On the other hand, dedicated channels are sensitive to latency and are used when delay is undesirable, so it is preferable to provide each channel separately even after soft merging, and the number of channels is ED1+ED2.

[0060] Furthermore, when soft merge processing is attempted in a case where the type of storage device, which is an attribute related to the storage device in the resource information, is Type A in the first resource information and Type B in the second resource information, one of the following three processing may be performed. Which of the following three processing is performed may be determined based on user information or may be determined automatically. Whether the determination is based on user information or automatic, the determination may be based on preset information, or a dynamically applied processing may be determined. Here, when the types of storage devices are different, the memory access speeds may be different or the same. When the memory access speeds are different, the storage devices may be treated as being of different types.

[0061] 1) Soft merging is performed only when type A and type B are the same, and soft merging is not performed when type A and type B are different. When type A and type B are the same and soft merging is performed, the type of the corresponding storage device in the composite resource information may be the same A (B).

[0062] 2) Soft merging is performed whether type A and type B are the same or different. When type A and type B are the same, the corresponding storage device types in the combined resource information may be the same A(B). When type A and type B are different, the corresponding storage device types in the combined resource information may be both type A and type B.

[0063] 3) Soft merging is performed whether type A and type B are the same or different. If type A and type B are the same, the corresponding storage device type in the combined resource information may be the same A(B). If type A and type B are different, the corresponding storage device type in the combined resource information may be the type of type A or type B with the faster memory access speed. For example, if there are storage device types such as DDR4, DDR5, and HBM2, the storage device type in the combined resource information may be HBM2.

[0064] Soft resource merging of communication information When the composite information generation unit soft-merges attributes related to a communication device related to a first resource with attributes related to a communication device related to a second resource corresponding to the attributes related to the communication device related to the first resource, the composite information generation unit may generate attributes related to the communication device of the composite resource information according to the relationship between the first resource and the second resource.

[0065] In this application, the relationship between the first and second computing nodes is sometimes referred to as an "output serial relationship" when all outputs of the first computing node are inputs to the second computing node. In this case, some of the inputs to the second computing node may or may not be outputs from the first computing node.

[0066] In addition, in this application, the relationship between a first computing node and a second computing node is sometimes referred to as an "input serial relationship" when the output of the first computing node becomes the input of all of the second computing nodes. In this case, the output of the first computing node does not necessarily have to become the input of the second computing node, but it may.

[0067] In addition, in this application, the relationship between a first computing node and a second computing node may be referred to as an "input / output serial relationship" when all outputs of the first computing node become all inputs of the second computing node.

[0068] In this application, the term "serial relationship" is sometimes used as a broader concept of output serial relationship, input serial relationship, and input / output serial relationship. When the first and second computation nodes are in a serial relationship, if the first and second computation nodes can be hard merged, there is a connection relationship in the input / output information between the first and second computation nodes, which has the advantage of reducing the overhead related to such input / output.

[0069] Here, a connection relationship between a first computing node and a second computing node may mean a relationship in which the output of the first computing node is directly input to the second computing node without undergoing any other computational processing.

[0070] In addition, in this application document, when at least a portion of the output of a first computing node is not an input to a second computing node, and / or when at least a portion of the input to a second computing node is not an output of the first computing node, this is sometimes referred to as a "parallel relationship."

[0071] The presence or absence and / or mode of connection relationships, such as serial relationships or parallel relationships, between computational nodes may be prepared in the same manner as resource information. For example, the presence or absence and / or mode of connection relationships may be prepared and created by a programmer at the time of coding and stored for use, or may be generated based on a technique such as data flow analysis between target HDL programs and used without being created by a programmer at the time of coding.

[0072] When the first computing node and the second computing node are in an input serial relationship or an input / output serial relationship, the combined information generation unit may use the output information of the second resource information as the output information of the combined resource information.

[0073] For example, suppose that the input of computation node 1 is 10 GBPS and the output is 20 GBPS, and the input of computation node 2 is 20 GBPS and the output is 30 GBPS. In this case, the output information of the combined resource information may include 30 GBPS.

[0074] When the first computing node and the second computing node are not in an input serial relationship and are not in an input / output serial relationship, the composite information generation unit may use the sum of the output information of the first resource information that is not input information of the second resource information and the output information of the second resource information as the output information of the composite resource information.

[0075] For example, suppose that the input of computation node 1 is 10 GBPS and the output is 20 GBPS, and the input of computation node 2 is 20 GBPS and the output is 30 GBPS. The output information of the composite resource information may include 40 GBPS, which is the sum of the output information (20 GBPS) of the first resource information that is not input information of the second resource information (10 GBPS) and the output information (30 GBPS) of the second resource information.

[0076] When the first computing node and the second computing node are in an output serial relationship or an input / output serial relationship, the combined information generation unit may use the input information of the first resource information as the input information of the combined resource information.

[0077] For example, suppose that the input of computation node 1 is 10 GBPS and the output is 20 GBPS, and the input of computation node 2 is 20 GBPS and the output is 30 GBPS. In this case, the input information of the combined resource information may include 10 GBPS.

[0078] When the first computing node and the second computing node are not in an output serial relationship and are not in an input / output serial relationship, the composite information generation unit may use the sum of the input information of the first resource information and the input information of the second resource information that is not connected to the output information of the first resource information as the input information of the composite resource information.

[0079] For example, suppose that the input of computation node 1 is 10 GBPS and the output is 20 GBPS, and the input of computation node 2 is 20 GBPS and the output is 30 GBPS. The input information of the composite resource information may include 20 GBPS, which is the sum of the input information (10 GBPS) of the first resource information and the input information (20 GBPS) of the second resource information that is not connected to the output information of the first resource information.

[0080] Although the above example uses GBPS as an example, other units may be used. For example, calculations may be performed in other speed units such as BPS, or in the number of bits corresponding to the frequency in each calculation. In particular, if the communication speed required or desired for each computation node (e.g., communication speed in GBPS units) is specified by a programmer and provided as information, the number of communication bits can be calculated from the frequency at each computation node. Therefore, even if the frequency is changed in soft merging as described above, the number of communication bits corresponding to the changed frequency may be used (e.g., because the number of communication bits can be calculated by dividing the communication speed by the frequency).

[0081] The input information and the output information may include information on the number of communication bits and / or the communication speed at the input and output, respectively.

[0082] Generating information that can be used for soft merging The combining information generation unit may have a function of generating information that can be used in soft merging. For example, the combining information generation unit may generate an external memory mapping table and / or an external storage mapping table as information related to the storage function that can be used in soft merging. Furthermore, the combining information generation unit may generate information related to the communication function that can be used in soft merging, such as information specifying the number of communication bits and the communication speed. Furthermore, the combining information generation unit may generate information related to the calculation function that can be used in soft merging, such as a module having a function such as a FIFO for transferring data between modules of different frequencies (sometimes referred to as an inter-frequency communication module).

[0083] Soft merging is performed by compiling multiple target HDL programs. For example, consider compiling HDL program 1 on compute node 1 and HDL program 2 on compute node 2.

[0084] For HDL program 1 on compute node 1, the programmer may create external memory mapping table 1, external storage mapping table 1, and external communication information 1 that are used by HDL program 1. Also, for HDL program 2 on compute node 2, the programmer may create external memory mapping table 2, external storage mapping table 2, and external communication information 2 that are used by HDL program 2.

[0085] In the above example, the composite information generator may create a composite external memory mapping table from external memory mapping table 1 and external memory mapping table 2.

[0086] For example, if external memory mapping table 1 uses 1 to 100 as an address space and external memory mapping table 2 uses 1 to 100 as an address space, the synthesized external memory mapping table may be generated to use 1 to 200. The table example here is just an example, and other techniques for synthesizing mapping tables may also be used.

[0087] Similarly, in the above example, the combined information generator may create a combined external storage mapping table from external storage mapping table 1 and external storage mapping table 2.

[0088] Similarly, in the above example, the composite information generator may generate a composite communication information module from external communication information 1 and external communication information 2. The external communication information 1 may include communication bit width and frequency information when HDL program 1 communicates with the outside.

[0089] Furthermore, when the first computing node and the second computing node have an output serial relationship, the combined information generating unit may generate an external communication module based on output information of the resource information related to the second computing node.

[0090] In addition, when the first computing node and the second computing node are not in an output serial relationship, the composite information generation unit may generate an external communication module that combines first output information of the first resource information related to the first computing node and second output information of the second resource information related to the second computing node.

[0091] The external communication module for combining may be a module that outputs without reducing the latency that occurs when the first computing node and the second computing node communicate with the outside world independently.

[0092] For example, the external communication module may include a buffer 1 capable of storing at least one unit of packets of the external output of HDL program 1, the number of bits being the sum of the number of bits of the external output of HDL program 1 and the number of bits of the output of HDL program 2, and a buffer 2 capable of storing at least one unit of packets of the external output of HDL program 2, and may alternately check buffers 1 and 2 and output to the outside the buffer that has stored at least one unit of packets.

[0093] Here, one unit of packet may be one unit of packet in Ethernet communication, for example, when a reconfigurable device communicates with another reconfigurable device or an information processing device via Ethernet.

[0094] The above-described composite communication information module, composite external memory mapping table, composite external storage mapping table, and / or inter-frequency communication module may be utilized by an external compilation function, for example, the compilation function may utilize HDL program 1 associated with the first computing node, HDL program 2 associated with the second computing node, the composite communication information module, the composite external memory mapping table, the composite external storage mapping table, and / or the inter-frequency communication module to generate a bitstream that implements them.

[0095] Step 3 The identifying unit may identify hardware resources that can execute the combined computing node when a plurality of computing nodes are combined.

[0096] The identification unit may include a determination unit and a selection unit. The identification process may include a determination process and / or a selection process. The identification unit does not need to include a selection unit. For example, the identification unit may use a hardware resource that is initially determined to be executable, as described below.

[0097] The determination unit may compare the soft-merged composite resource information with the resource information in the RFD-RDB to determine whether the hardware resources corresponding to the resource information in the RFD-RDB are capable of executing the hard-merged computation node corresponding to the soft-merged composite resource information.

[0098] The determination unit may compare at least one attribute in the soft-merged resource information with a corresponding attribute in the soft-merged resource information for a specific hardware resource in the RFD-RDB to determine whether the latter is capable of executing the former.

[0099] Here, if one attribute is information related to a computing device (or information of a lower concept thereof), the corresponding attribute may be information related to a computing device (or information of a corresponding lower concept thereof). Also, if one attribute is information related to a storage device (or information of a lower concept thereof), the corresponding attribute may be information related to a storage device (or information of a corresponding lower concept thereof). If one attribute is information related to a communication device (or information of a lower concept thereof), the corresponding attribute may be information related to a communication device (or information of a corresponding lower concept thereof).

[0100] In addition, the judgment unit may compare the capability of an attribute corresponding to the one attribute in the soft-merged resource information with the capability of the attribute in the hardware resource, and judge that the attribute is executable if the capability is high, and that the attribute is not executable if the capability is low.

[0101] More specifically, for example, if one attribute is the number of logic blocks, the determination unit may determine that the corresponding attribute, the number of logic blocks, is feasible if the latter is a higher value than the former.

[0102] Similarly, for example, if one attribute is the number of DSPs, the number of bits in a register, or the number of digits in a DSP, the determination unit may determine that the corresponding attribute, the number of DSPs, the number of bits in a register, or the number of digits in a DSP, is executable if the latter is a higher value than the former.

[0103] On the other hand, if one attribute is a clock frequency, the determining unit may determine that the task is executable if the clock frequency, which is a corresponding attribute, is a lower value than the former.

[0104] Furthermore, for example, if one attribute is the number of internal memories, the number of shared channels to external memory, or the number of dedicated channels to external memory, the judgment unit may judge that the corresponding attribute, the number of internal memories, the number of shared channels to external memory, or the number of dedicated channels to external memory, is executable if the latter is a higher value than the former.

[0105] Furthermore, if the attribute corresponding to one of the attributes is the type of storage device, the determination unit may make the determination based on predetermined information or dynamically applied processing.

[0106] Furthermore, for example, if one attribute is communication speed or communication bit count, the judgment unit may judge that the corresponding attribute, communication speed or communication bit count, is feasible if the latter is a higher value than the former.

[0107] In addition, the determination unit may compare all attributes in the soft-merged resource information with each corresponding attribute in the soft-merged resource information in a specific hardware resource in the RFD-RDB, and determine whether the latter is executable for all attributes.If executable for all attributes, the determination unit may determine that the soft-merged computing node is executable on a specific hardware resource in the RFD-RDB.

[0108] Furthermore, the determination unit may compare at least one attribute in the soft resource-merged resource information with an attribute corresponding to the attribute in a specific hardware resource in the RFD-RDB, and if the latter cannot execute the former, determine that the computing node corresponding to the soft resource-merged resource information cannot be executed by the specific hardware resource. In this case, the determination unit may not need to compare one or more attributes other than the one attribute in the soft resource-merged resource information.

[0109] <Judgment part> As an example of specific processing, the determination may be made by the following processing.

[0110] Step 311 The example system obtains at least one attribute in the soft-merged resource information, where the example system may obtain such one attribute by accessing the HDL-RDB.

[0111] Step 312 An example system obtains the corresponding attribute in the soft-merged resource information for a particular hardware resource in the RFD-RDB.

[0112] Step 313 An example system compares the resource information with the corresponding attributes to determine whether the latter can execute the former.

[0113] The example system may also compare and determine other attributes in the resource information soft-merged in step 311 described above, as well as the attributes of the corresponding hardware resource described above.

[0114] An example system may compare and determine all attributes in the soft-merged resource information in step 311 described above with the attributes of the corresponding hardware resource described above, and determine that the corresponding hardware resource is capable of executing a composite computing node based on the soft-merged resource information only if it determines that all attributes in the soft-merged resource information are executable.

[0115] The exemplary system may compare and determine resource information related to a computing node that has been soft-resource merged and that is generated by another information processing device with resource information related to a hardware resource.

[0116] <Selection Department> The selection unit may have a function of selecting efficient hardware resources from among executable hardware resources.

[0117] Step 321 The example system obtains at least one attribute in the soft-merged resource information, where the example system may obtain such one attribute by accessing the HDL-RDB.

[0118] Step 322 An example system obtains the corresponding attribute in the soft-merged resource information for a particular hardware resource in the RFD-RDB.

[0119] Step 323 An example system generates usage information based on the resource information and corresponding attributes.

[0120] Although the above describes a method in which the process of the determination unit and the process of the selection unit are distinguished and processed independently, they may also be processed together. For example, in one example system, in step 313, step 323 is executed, and the usage information for the one resource information and the corresponding attribute that have been compared may be associated with each other and stored.

[0121] The usage information may be information indicating a relationship between at least one attribute in the soft resource merged resource information and a corresponding attribute in the soft resource merged resource information for a particular hardware resource in the RFD-RDB, or may include information indicating such a relationship.

[0122] For example, if one attribute is the number of logic blocks, the usage information may be information indicating the relationship between the number of logic blocks associated with one attribute and the number of corresponding logic blocks, or may include information indicating such a relationship. For example, if the number of logic blocks associated with one attribute is 75 and the number of corresponding logic blocks is 100, the usage information may be 3 / 4, which is the ratio of one attribute divided by the corresponding attribute, as the rate of hardware resource utilization. Alternatively, the usage information may be a ratio obtained by subtracting the ratio of one attribute divided by the corresponding attribute from 1, in which case 1-3 / 4=1 / 4.

[0123] Similarly, if one attribute is the number of DSPs, the number of bits in a register, the number of digits in a DSP, or the clock frequency, the usage information may be information indicating the relationship between these values ​​and the value of the corresponding attribute, or may include information indicating such a relationship.

[0124] Similarly, if one attribute is the number of internal memories, the number of shared channels to external memory, or the number of dedicated channels to external memory, the usage information may be information indicating the relationship between these values ​​and the value of the corresponding attribute, or may include information indicating such a relationship.

[0125] Furthermore, the usage information may be information indicating the relationship between the resource information of the soft resource merged and the resource information of a specific hardware resource in the RFD-RDB, or may include information indicating such a relationship.

[0126] Furthermore, an example system may generate utilization information using information indicating relationships between attributes in the soft-merged resource information and corresponding attributes in the soft-merged resource information for a specific hardware resource in the RFD-RDB. For example, if the soft-merged resource information includes the number of logic blocks, the number of DSPs, the number of internal memories, and the number of external memory channels, and the values ​​of the attributes are α for the number of logic blocks, β for the number of DSPs, γ for the number of internal memories, and Δ for the number of external memory channels based on the corresponding resource information for the identified hardware resource, the utilization information may be or include a number generated by a calculation formula of f(α, β, γ, Δ) using a function f (i.e., applying arguments α, β, γ, Δ to function f). Such a calculation formula may be an arithmetic formula with weighting coefficients.

[0127] Step 324 The selection unit may select efficient hardware resources from among executable hardware resources based on the usage information.

[0128] For example, the selection unit may select, for the resource information obtained by soft resource merging, a specific hardware resource corresponding to usage information with higher efficiency than other usage information from among multiple usage information for a specific hardware resource in each RFD-RDB. Highly efficient usage information may be usage information with the highest efficiency. Highly efficient usage information may be usage information with a higher utilization efficiency of the hardware resource than other usage information. For example, usage information with a higher utilization rate of the hardware resource than other usage information, or usage information with a lower utilization rate of the hardware resource minus 1 than other usage information. Note that if the utilization efficiency of the hardware resource is extremely high (e.g., 95% or higher), compilation may take longer or compilation may fail. Therefore, the utilization efficiency may not be extremely high. For example, the utilization efficiency may be 30% to 95%, 45% to 90%, 60% to 85%, or 70% to 80%, etc. Furthermore, the utilization efficiency may be less than 95%, less than 90%, less than 85%, or less than 80%, for example.

[0129] Furthermore, for example, for a particular soft-merged resource information, if the usage information is αα for a certain hardware resource α in the RFD-RDB, ββ for a certain hardware resource β in the RFD-RDB, and γγ for a certain hardware resource γ in the RFD-RDB, and among αα, ββ, and γγ, αα is the usage information that indicates the highest utilization efficiency, the selection unit may select the hardware resource α.

[0130] An example system may select a hardware resource using usage information based on the relationship between resource information related to a computing node that has been soft-resource-merged and resource information related to a hardware resource, which is generated by another information processing device.

[0131] The selection unit may make a selection based solely on the above-described usage information, or may make a selection in combination with other element information other than the usage information. The other element information may be selected automatically or in response to a selection instruction from the user, using, for example, information related to the user and / or information related to the hardware resources used by the user. When performed automatically, the selection may be made according to a preset priority order. When receiving a selection instruction from the user, one or more candidates that the user can select may be displayed to the user, and the selection may be made according to the selection instruction from the user.

[0132] Furthermore, the information relating to the user may include information relating to the user's membership and / or information relating to the user's membership period.

[0133] As an example of using information related to a user's membership period, the system may identify hardware resources using the length of the user's membership period. For example, if the remaining length of the user's membership period is equal to or greater than a predetermined period, the system may allocate one of the hardware resources scheduled for long-term use. This has the advantage of allowing an administrator of the system to efficiently perform maintenance of the hardware resources. Furthermore, the system may identify hardware resources using the remaining length of the user's membership period and a hardware replacement schedule. For example, if the remaining length of the user's membership period is equal to or greater than a predetermined period, the system may not allocate any hardware resources that are due for replacement within the predetermined period. Furthermore, if the remaining length of the user's membership period is a first predetermined period, the system may determine hardware resources based on hardware resources that have at least the first predetermined period until the next replacement date. This has the advantage of allowing efficient maintenance of hardware resources if the user's membership period is not extended. The information regarding the membership period may include the remaining period for which the hardware resources can be used, and / or the total or duration of the period from when the user joined the example system.

[0134] Furthermore, the information related to the user's membership may include information related to the member's course or status. For example, the exemplary system may allocate one of the predetermined hardware resources when the user's membership course is a predetermined one and / or when the user's membership status is a predetermined one. Such predetermined hardware resources may be more stable and robust than other hardware resources. In this case, if the user is a specific member or has a predetermined course, there is an advantage in that the user can use higher quality hardware resources. Note that the information related to the member's course or status may be selected by the user when using the exemplary system. For example, it may be obtained through a contract that stipulates the use of a certain amount of resource information.

[0135] Furthermore, the information regarding the hardware resources used by the user may include one or more hardware resources that the user is using at the time of the above-mentioned selection. For example, an example system may include, among the actual hardware resources that match the resource information selected by the user, 1) hardware resources in the same FPGA as the FPGA containing the one or more hardware resources currently being used by the user, 2) hardware resources in the same local area network or bus as the one or more hardware resources currently being used by the user, and / or 3) hardware resources that are close to the one or more hardware resources currently being used by the user.

[0136] In the case of 1) above, since the devices are all within the same FPGA, there is an advantage in that the hardware resources within the same FPGA can be used by the user for the same or related applications, thereby helping to provide hardware resources that enable more efficient communication.

[0137] In the case of 2) above, the former same local area network or bus also has the advantage of supporting the provision of hardware resources that realize more efficient communication because they are within the same network or bus. Note that the identity of the local area network or bus can be any hierarchical level as long as it can reduce the processing required for communication across the network.

[0138] The above 2) may also be a virtual local network. In this case, the physical distance may not necessarily be shorter than a predetermined distance, and the distance involved in the communication of information may not necessarily be shorter than a predetermined distance, but it has the advantage of being highly secure.

[0139] In the case of the above-mentioned 3), the distance may be the physical distance or the distance related to the communication of information. By selecting the actual hardware resources that match the resource information selected by the user and that are closest to one or more hardware resources currently being used by the user, there is an advantage that the provision of hardware resources that realize more efficient communication compared to other resources can be supported.

[0140] The selection unit may be executed automatically or in response to a user instruction using the usage information, user-related information, and / or information related to the hardware resources used by the user, which are used as the selection conditions. When the selection unit is executed automatically, the selection may be performed using preset selection criteria. When the selection unit is executed in response to a user instruction, one or more candidates from which the user can select may be displayed to the user, and the user may select one corresponding to the user instruction. When the selection unit is executed in response to a user instruction, the system may present information about the hardware resources to be selected to the user. For example, the information about the hardware resources may be displayed on a display device that is part of the system or is external to the system and connected to the system. Here, the information about the hardware resources may include resource information about the hardware resources, usage information, user-related information, and / or information related to the hardware resources used by the user. These displays have the advantage of allowing the user to understand the information about the hardware resources to be selected while making a selection.

[0141] Step 4 An example system may compile or cause to be compiled multiple compute nodes to be combined together with information used for the soft merge described above, to generate a bitstream that can be written to selected hardware resources.

[0142] Step 5 An example system may write the compiled bitstream to the specified hardware resources.

[0143] Step 6 In one example, if the writing is successful, the system may register the resource information that was successfully written in a database.

[0144] Furthermore, the system in one example may provide feedback to the user about information about resource information that has been successfully written. Feedback to the user may be provided in various ways. For example, the information about resource information that has been successfully written may be displayed on a display device, emailed to the user, or stored in a predetermined location accessible to the user.

[0145] An example reconfigurable device may be one identified using composite resource information merged with soft resources, which may be advantageous in reducing processing overhead between computing nodes.

[0146] An example of a reconfigurable device may be one in which the computational nodes are written using composite resource information that has been soft-merged, which has the advantage of potentially reducing processing overhead between the computational nodes.

[0147] An example reconfigurable device may be one that is identified using soft resource merged composite resource information and has compute nodes written using the soft resource merged composite resource information, which may be advantageous in that it may reduce processing overhead between compute nodes.

[0148] 3. Embodiment 2 The system of this example according to the second embodiment is a technology for identifying targets to be soft-merged corresponding to M number of computation nodes (M is a natural number smaller than N) from N number of computation nodes (N is a natural number greater than or equal to 2) or target HDL programs corresponding to them. Some or all of the computation nodes to be soft-merged may be determined automatically.

[0149] When there are many computing nodes, users may be unsure which computing nodes to combine. While combining multiple (many) computing nodes and writing them into a single hardware resource may reduce the overhead between the multiple computing nodes, if there is little or no input / output relationship between the multiple (many) computing nodes written into a single hardware resource, the overhead reduction may not be effective. Furthermore, even if multiple (many) computing nodes are soft-merged, there may be cases where there are no hardware resources available that are sufficient to compile and write the target HDL program after the soft merge (for example, when the hardware resources required to write the combined computing nodes exceed the resources of a single reconfigurable device). Therefore, the inventors of the present application focused on the issue of how to select the computing nodes to be soft-merged.

[0150] Below, we will explain an example of a technology for selecting a computing node to be soft merged for a computing node group containing multiple computing nodes (here, a collection of computing nodes containing one or more computing nodes may be referred to as a computing node group).

[0151] An example of processing operations in an example system will be described below with reference to FIG.

[0152] Step 211 For a computing node group A, input / output data flows between some or all of the computing nodes included in the computing node group A are analyzed, and the length of each data flow sequence between some or all of the computing nodes included in the computing node group A is calculated (step 701). The length of the data flow sequence may be calculated for some or all of the sets of data flow sequences of the computing node group A. The length of the data flow sequence may be the number of computing nodes included in the data flow sequence. The length of the data flow sequence may be the number of computing nodes of the longest data flow sequence that is not a loop included in the data flow sequence.

[0153] FIG. 6 shows a data flow sequence based on computation nodes and input / output paths between them. There are computation nodes 601 to 607, and the direction of the arrows between computation nodes indicates the input / output relationship from one computation node to another. For example, the arrow from computation node 601 to computation node 603 indicates that the output of computation node 601 enters computation node 603. Because computation node 603 receives arrows from computation nodes 601 and 602, both the output of computation node 601 and the output of computation node 602 become inputs to computation node 603. Furthermore, the arrow from computation node 604 points to computation nodes 605 and 607, indicating that the output of computation node 604 becomes input to computation nodes 605 and 607. In this figure, the number of computation nodes included in data flow sequence 610A, which is composed of computation nodes 601, 603 to 606, is five, and the number of input / output paths between computation nodes is four. Furthermore, the number of computation nodes included in data flow sequence 610B, which is composed of computation nodes 602, 603, 604, and 607, is four, and the number of input / output paths between the computation nodes is three. The length of the data flow sequence may be the number of computation nodes included in the data flow sequence or the number of input / output paths included in the data flow sequence. Thus, for example, if a data flow sequence is composed of computation nodes N1, N2, N3, N4, and N5 in this order, the calculated length of the data flow sequence may be the length of a data flow sequence such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc. However, the order of the data flow sequence does not need to be jump-over (for example, if there is no intermediate sequence, such as N1-N2-N4-N5, it does not need to be considered. This is because, for calculation processing, the calculation node N3 is necessary between N2 and N4).

[0154] Step 212 In the computing node group A, a second data flow sequence whose length is longer than the length of the first data flow sequence is identified (step 701).

[0155] For example, in this figure, data flow sequence 610A is longer than data flow sequence 610B, so data flow sequence 610A is identified. Here, the example system may find the data flow with the longest data flow sequence length within compute node group A.

[0156] Step 213 The example system may determine the computational nodes included in the second data flow column as targets for merging (step 701).

[0157] In this way, when an example system performs soft merging on a group of computing nodes with long data flow sequences, there is a technical advantage in that it can reduce the overhead associated with input / output between multiple computing nodes (which are written to different reconfigurable devices or child PR regions) (communication overhead between reconfigurable devices or PR regions).

[0158] The above process is merely an example, and the exemplary system may use various different techniques to automatically identify some or all of the computation nodes within a computation node group that are targets for soft merging. The exemplary system may use various techniques to automatically identify some or all of the computation nodes that are targets for soft merging by utilizing the lengths of the data flow sequences within the computation node group. The exemplary system may use various techniques to automatically identify some or all of the computation nodes that are targets for soft merging by utilizing the fact that the length of data flow sequence A within the computation node group is longer than the length of data flow sequence B within the computation node group.

[0159] The system in one example includes an identification unit that identifies, for a computing node group A consisting of a plurality of computing nodes, a first length of an input / output path of a first computing node group in the computing node group A and a second length of an input / output path of a second computing node group in the computing node group A; a determination unit that determines the first computing node group or the second computing node group as a merge target based on the first length and the second length; The system may include:

[0160] In addition, in this application document, determining multiple computing nodes as targets for merging may include determining the multiple computing nodes as targets for a soft resource merge, determining the multiple computing nodes as targets for a soft merge, and / or determining the multiple computing nodes as targets for a hard merge.

[0161] Furthermore, one computation node may be a superordinate concept of one or more target HDL programs.

[0162] The length of the input / output path of the group of computing nodes may be the largest number of computing nodes on an input / output path without a loop between the computing nodes in the group of computing nodes.

[0163] The length of the input / output path of the computing node group may be the longest input / output path without a loop among the input / output paths based on input / output analysis (data flow analysis) between the computing nodes of the computing node group.

[0164] Furthermore, when considering using graph theory, the length of the input / output path of a group of computing nodes may correspond to the maximum number of vertices in a path of a directed graph (one that passes through each vertex at most once) when each computing node in the group of computing nodes corresponds to a vertex of the directed graph and the input / output relationships between the computing nodes correspond to edges of the directed graph.

[0165] In the following example, a system will be described that calculates resource information for some or all of the data flow strings in a group of computing nodes and then performs hard merging on the group of computing nodes.

[0166] Furthermore, the system of the example may identify a group of computing nodes to be subjected to soft merging by using information on the bandwidth between computing nodes in addition to the length of the data flow sequence.

[0167] This focuses on the fact that, for example, when computing nodes 1 and 2 have a bandwidth of 1 GBPS and are soft-merged, and when computing nodes 1 and 2 have a bandwidth of 100 GBPS and are soft-merged, the latter has the advantage of being able to reduce the communication overhead between the computing nodes more than the former. In this case, the length of the data flow sequence mentioned above has the advantage of being able to reduce the communication overhead from a different perspective.

[0168] An example of processing operations in an example system will be described below with reference to FIG.

[0169] Step 221 For the computing node group A, the input / output data flows between some or all of the computing nodes included in the computing node group A are analyzed, and the sum of the data flow strings is calculated using the bandwidth between the computing nodes in each data flow string as a weight (step 801). The data flow strings may be the same as those described in step 211 above.

[0170] Figure 9 shows the computation nodes, the data flow sequences based on the input / output paths between the computation nodes, and the bandwidth between each computation node. This figure differs from the previous figure in that bandwidth information is attached to the arrows between the computation nodes. These can be shown as a weighted directed graph when the data flow sequences are shown as a graph.

[0171] Step 222 In the computing node group A, a second data flow sequence whose total weighting is longer than the total weighting of the first data flow sequence A is identified (step 802).

[0172] For example, in this figure, data flow column 610A is identified because the sum of the weights of data flow column 610A, 31, is greater than the sum of the weights of data flow column 610B, 29. Here, the example system may find the data flow within compute node group A that has the largest sum of the weights of its data flow columns.

[0173] Step 223 The example system may determine the computation nodes included in the second data flow sequence as targets for merging (step 803).

[0174] In this way, when an example system performs soft merging on a group of computing nodes with a large sum of weights for data flow columns, there is a technical advantage in that it can reduce the overhead associated with input / output between multiple computing nodes (which are written to different reconfigurable devices or child PR regions) (communication overhead between reconfigurable devices or PR regions).

[0175] An example system may include a selection unit that selects, from a first computing node group consisting of a plurality of computing nodes including a first computing node and a second computing node, a computing node group that is a subset of the first computing node group, the computing node group including the first computing node and the second computing node, using information related to input / output paths between the computing nodes in the computing node group.

[0176] The information relating to the input / output paths between the computing nodes in the computing node group may include the length of the input / output paths between the computing nodes in the computing node group, information on the weighting of the input / output paths between the computing nodes in the computing node group, and / or information on the sum of the weightings of the input / output paths between the computing nodes in the computing node group.

[0177] The next example relates to a technique for selecting a soft-merged computing node from the viewpoint of hardware resources. That is, in order for the soft-merged computing node to be written to the hardware resource, the soft-merged computing node must be executable on the hardware resource. Here, from the viewpoint of hardware resources, it is preferable to identify the soft-merged computing node so that it is within the resource information corresponding to the hardware resource unit.

[0178] An example of processing operations in an example system will be described below with reference to FIG.

[0179] Step 231 The system in one example analyzes input / output data flows of the computing nodes in computing node group A (step 1001).

[0180] Step 232 In one example, the system stores resource information obtained by soft-merging the compute nodes used in each data flow in association with the length of each data flow in a group of compute nodes A (step 1002). For example, if a data flow sequence is configured with compute nodes N1, N2, N3, N4, and N5 in this order, the system stores information identifying each data flow sequence, such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, and N2-N3-N4, as well as the length of the corresponding data flow sequence and composite resource information obtained by soft resource merging for the corresponding data flow sequence. Note that the length of the corresponding data flow sequence is not necessary. This is because the composite resource information provides information for identifying the hardware resources required for each data flow sequence. A database that stores composite resource information corresponding to some or all of such data flow sequence sets is sometimes called a data flow sequence resource database (DFL-RDB).

[0181] 11 shows an example of a portion of the DFL-RDB in FIG. 6 (although the configuration is not limited to this). In this figure, ID1 corresponds to a data flow sequence 610A consisting of computation nodes 601, 603 to 606, and ID10 corresponds to a data flow sequence 610B consisting of computation nodes 602, 603, 604, and 607. The data flow sequences 610A and 610B can also take into account other sets of computation nodes in the computation node group (assuming the configuration of the data flow sequence). For example, ID2 is a data flow sequence consisting of computation nodes 601, 603 to 605, and ID3 is a data flow sequence consisting of computation nodes 603 to 606. Corresponding to each of these data flow sequences, associated composite resource information may be stored in the DFL-RDB.

[0182] Step 233 The example system may use each composite resource information in the DFL-RDB and each resource information in the RFD-RDB to determine a computing node as a target for merging (step 1003).

[0183] For example, an example system may identify a computation node for a data flow sequence for one composite resource information among the composite resource information in the DFL-RDB that is executable using resource information for one hardware resource in the RFD-RDB. In this case, it is advantageous to identify a computation node for a data flow sequence that is executable using one hardware resource in the RFD-RDB and reduce overhead between input and output data at the computation node in the data flow sequence. In this case, the above-mentioned executable node may be identified by a computation process that compares each combination of resource information for one hardware resource in the RFD-RDB and one composite resource information among the composite resource information in the DFL-RDB.

[0184] In particular, the system may identify a computation node associated with a data flow sequence for one of the composite resource information in the DFL-RDB that can be executed by one reconfigurable device among the hardware resources in the RFD-RDB. In this case, since the reconfigurable device can be used as the hardware resource, there is an advantage that the hardware resources in the reconfigurable device can be used more efficiently.

[0185] In addition, the system may identify a computation node associated with a data flow sequence for one of the composite resource information in the DFL-RDB that can be executed by only one PR region in one reconfigurable device among the hardware resources in the RFD-RDB. In this case, since multiple PR regions are not configured in the configurable device, the processing overhead for multiple PR regions can be reduced, which is advantageous in that the hardware resources can be used more effectively.

[0186] An example of a reconfigurable device may be a device in which a bitstream related to a computing node identified using information related to input / output paths between computing nodes is written. Such a reconfigurable device has the advantage of potentially reducing processing overhead between computing nodes.

[0187] In one example, a reconfigurable device may be one in which a bitstream related to a specified computing node is written using resource information of the reconfigurable device or resource information of a PR region within the reconfigurable device. Such a reconfigurable device has the advantage of potentially reducing processing overhead between computing nodes.

[0188] In one example, a reconfigurable device may have a bitstream based on multiple computing nodes corresponding to soft resource merged composite resource information written in a single PR region within the reconfigurable device. Such a reconfigurable device may have the advantage of potentially reducing processing overhead between computing nodes.

[0189] An example of a reconfigurable device may be one that uses a DFL-RDB to write a bitstream based on multiple compute nodes identified. Such a reconfigurable device has the advantage of potentially reducing processing overhead between compute nodes.

[0190] 4. Embodiment 3 The system of this example according to the third embodiment is a technology that supports changing N number of computing nodes, which is 2 or more, to M number of computing nodes (N and M are natural numbers, and M is smaller than N). Some or all of the computing nodes to be soft-merged may be determined automatically.

[0191] The system of this example provides a different method for selecting computation nodes to be soft-merged from that of embodiment 2. If multiple computation nodes can be soft-merged and written to a single hardware resource, it may be possible to abstractly reduce the overhead between the multiple computation nodes. However, it is unclear how much overhead can actually be reduced. Therefore, the inventor of the present application presents a technology for selecting computation nodes to be merged, focusing on information on the actual amount of communication traffic between the multiple computation nodes.

[0192] An example system may include a monitor.

[0193] The monitoring unit of the system in one example may monitor each reconfigurable device based on information from a task manager written in each reconfigurable device.

[0194] The task manager written in each reconfigurable device may collect information relating to communications of the reconfigurable device in which the task manager is written, and notify the monitoring unit.

[0195] In one example, a monitoring unit of the system may acquire, from task managers written in one or more reconfigurable devices, information related to communications between the reconfigurable devices in which the task managers are written. The information related to communications may be a unit of operation within the reconfigurable device, and the information related to communications may be associated with information (e.g., an ID) indicating the unit of operation. For example, if a reconfigurable device does not have a PR region, the reconfigurable device may be treated as a unit of operation, and information identifying the reconfigurable device may be associated with information related to communications. The monitoring unit may acquire and store such information from the task manager. Also, for example, if a reconfigurable device includes one or more PR regions, each of the one or more PR regions may be treated as a unit of operation, and information identifying the one or more PR regions may be associated with information related to corresponding communications. The monitoring unit may acquire and store such information from the task manager.

[0196] The task manager may correspond to, for example, an EM (Element Manager) in NFV (Network Functions Virtualization).

[0197] The task manager may continuously or periodically obtain information related to communications within each reconfigurable device.

[0198] The information related to communication may include the number of communication bits, the number of communications, the communication volume, the communication frequency, the communication ratio, the communication charge, the number of communication bits per predetermined unit, the number of communications per predetermined unit, the communication volume per predetermined unit, the communication frequency per predetermined unit, the communication ratio per predetermined unit, the communication charge per predetermined unit, and / or statistical information based on some or all of these (sometimes referred to as "inter-communication information"). Furthermore, the information related to communication may include, for communications in the inter-communication information, communication source information and communication destination information, which are distinguished from each other. The information related to communication may include the inter-communication information, the communication source information of the communication in the inter-communication information, and the communication destination information of the communication in the inter-communication information, which are associated with each other. The predetermined unit may be a predetermined time unit and / or a predetermined event unit. The statistical information may include information obtained by applying, as appropriate, one or more processes, such as a sum, a maximum value, a minimum value, a median, a mode, a midpoint, a representative value, various average values, weighting calculations, and / or threshold calculations, using each piece of information.

[0199] The task manager may transmit communication-related information to the monitoring unit at a predetermined timing. The transmission timing may be periodically or when a predetermined condition is satisfied. The predetermined condition may include a case where the communication-related information exceeds a predetermined threshold. For example, the transmission may be when the number of communication bits, the number of communications, the communication volume, the communication frequency, the communication ratio, the communication fee, the number of communication bits per predetermined unit, the number of communications per predetermined unit, the communication volume per predetermined unit, the communication frequency per predetermined unit, the communication ratio per predetermined unit, the communication fee per predetermined unit, and / or statistical information based on some or all of these exceed a predetermined threshold.

[0200] 12 illustrates an example disclosing a monitoring unit and task managers stored in one or more reconfigurable devices. In this diagram, a monitoring unit 010 in an example system 001 may obtain communication information from a task manager 011A in a reconfigurable device 002 and obtain communication information from a task manager 011B in a reconfigurable device 003. The task manager 011A may obtain communication information for PR regions 1 to 6. The task manager 011B may obtain communication information for PR regions 1 to 4.

[0201] An example using a monitoring unit of an example system will be described below with reference to FIG. 13. First, assume that each computing node in a computing node group A is written into a reconfigurable device and is ready to perform computation. Here, some or all of the computing nodes may not be soft-merged. Also, some of the computing nodes may be soft-merged. In the latter case, after some of the computing nodes have been soft-merged, computing nodes to be soft-merged again may be selected.

[0202] Step 311 Each task manager in one or more reconfigurable devices directly or indirectly transmits information related to communication for one or more computing units in the reconfigurable device in which each task manager is implemented to a monitoring unit of an example system (step 1301).

[0203] Step 312 The monitoring unit of the exemplary system may acquire communication-related information and perform statistical processing. The monitoring unit may generate statistical information using the communication-related information acquired from the task manager (step 1302). The statistical information may include information obtained by applying one or more processes, such as a sum, a maximum value, a minimum value, a median value, a mode value, a midpoint value, a representative value, various average values, weighting calculations, and / or threshold calculations, using each piece of information.

[0204] Step 313 The example system may use information regarding communications between computing nodes to determine which computing nodes are candidates for merging (step 1303).

[0205] In one example system, when information relating to communication between a first computing node and a second computing node is higher than a predetermined threshold, the first computing node and the second computing node may be processed as computing nodes to be subject to a soft resource merge, as computing nodes to be subject to a soft merge, and / or as computing nodes to be subject to a hard merge.

[0206] Furthermore, in an example system, when a data flow sequence is configured with computing nodes N1, N2, N3, N4, and N5 in this order, a database may be provided that stores information identifying each data flow sequence, such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, and N2-N3-N4, in association with information based on information related to communications between the computing nodes along the corresponding data flow sequence (such a database may be referred to as a Measured Information Database (MI-DB) in this application). Note that the information related to communications between the computing nodes along a data flow sequence may be information related to communications corresponding to the data flow sequence, calculated using information related to communications between each two computing nodes along the data flow sequence. For example, if one data flow sequence is a data flow sequence in the order of N1, N2, and N3, the total information of the information related to communication in one data flow sequence may be the sum of the information related to the communication between N1 and N2 and the information related to the communication between N2 and N3. Furthermore, it is not limited to such a sum, and instead of such a sum, it may be statistically processed information using the information related to the communication between N1 and N2 and the information related to the communication between N2 and N3.

[0207] An example system is a monitoring unit that acquires communication-related information from one or more reconfigurable devices; a processing unit that performs soft resource merging, soft merging, and / or hard merging for a plurality of computing nodes using the communication-related information; The system may include:

[0208] The information related to the communication may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region different from the first PR region in the first reconfigurable device, which has the advantage of being able to use information between different PR regions in the same reconfigurable device.

[0209] The information related to the communication may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region in a second reconfigurable device different from the first reconfigurable device, which has the advantage of being able to use information between different PR regions in different reconfigurable devices.

[0210] The information related to the communication may be transmitted by a task manager written in the one or more reconfigurable devices. The task manager may be written in the reconfigurable device and have a function of communicating, such as transmitting and / or receiving, with an information processing device outside the reconfigurable device. Furthermore, the task manager may have a function of acquiring information related to communication between one or more PR regions written in the reconfigurable device in which the task manager is written and an information processing device outside the reconfigurable device.

[0211] As described above, the exemplary system uses communication-related information to identify targets for soft merging, which has the advantage of potentially reducing overhead by better adapting to actual communication conditions. In particular, if the communication-related information is information obtained when the target HDL program is actually written to a reconfigurable device and executed, the system has the advantage of being able to identify targets for hard merging based on actual information. Furthermore, communication-related information may be obtained by simulation, which has the advantage of potentially reducing overhead within the scope of the information obtained by simulation.

[0212] An example of a reconfigurable device may be one in which a bitstream based on multiple computing nodes identified based on communication information obtained by the monitoring unit is written. Such a reconfigurable device has the advantage of potentially enabling processing with reduced overhead between computing nodes.

[0213] An example of a reconfigurable device may be one in which a bitstream based on multiple compute nodes identified using MI-RDB is written, which has the advantage of potentially reducing processing overhead between compute nodes.

[0214] 5. Embodiment 4 The system of this example according to the fourth embodiment is a technology that supports changing N number of computing nodes, which is 2 or more, to M number of computing nodes (N and M are natural numbers, and M is smaller than N). Some or all of the computing nodes to be soft-merged may be automatically determined.

[0215] The system of the example may include some or all of the functions of the system according to the second embodiment and some or all of the functions of the system according to the third embodiment.

[0216] For example, part or all of the DFL-RDB in the system according to the second embodiment and part or all of the MI-DB in the system according to the third embodiment may be stored in correspondence with the corresponding data flow strings (such a database may be referred to as a Measured Information Resource Database (MI-RDB) in the present application documents), and part or all of the computation nodes constituting one data flow string may be determined as targets for merging using synthesized resource information when the computation nodes constituting the data flow string are soft-merged and information related to communications between the computation nodes.

[0217] A specific example of an MI-RDB may be a database that stores, in association with one another, information identifying each data flow sequence, such as N1-N2-N3-N4-N5, N1-N2-N3-N4, N2-N3-N4-N5, N1-N2-N3, N3-N4-N5, N2-N3-N4, etc., when a data flow sequence is composed of computation nodes N1, N2, N3, N4, and N5 in this order, combined resource information resulting from soft-merging the computation nodes constituting the corresponding data flow sequence, and information based on information related to communications between the computation nodes along the corresponding data flow sequence. For example, FIG. 14 shows an example of such an MI-RDB.

[0218] As an example of using such an MI-RDB, one example of the system in this example may identify one or more data flow sequences that can be written to a hardware resource based on a comparison between the hardware resource and composite resource information in the MI-RDB, and may use information related to communication regarding the one or more data flow sequences to determine a computing node as a target for merging.

[0219] An example of a reconfigurable device may be one in which a bitstream based on multiple compute nodes identified using MI-RDB is written, which has the advantage of potentially reducing processing overhead between compute nodes.

[0220] 6. Embodiment 5 The system of this example according to the fifth embodiment is a technology that supports changing N number of computing nodes (2 or more) to M number of computing nodes (N and M are natural numbers, and M is smaller than N). Also, the system of this example is an example that includes some manual parts.

[0221] An example system may be a technique that provides information to users regarding soft merge selection.

[0222] The background of an example system will be described using FIG. 11. This figure shows a data flow sequence 100A consisting of computation nodes 112A, 113A, and 114A, and a data flow sequence 100B consisting of computation nodes 112B, 113B, 114B, and 115B. Consider a case where the data flow sequence 100A is hard merged but the data flow sequence 100B is not hard merged. If there is output from the data flow sequence 100A but no output from the data flow sequence 100B, the computation node 116 cannot perform computation processing. If the computation node 116 waits for the output of the data flow sequence 100B, hard merging only the data flow sequence 100A may reduce the possibility of reducing overhead. In such a case, if hard merging is performed for the data flow sequence 100A but not for the data flow sequence 100B, there may be little point in hard merging the data flow sequence 100A.

[0223] For example, the exemplary system may perform dataflow analysis on a group of computation nodes, display the dataflow sequences on a display device, and illustrate candidate computation nodes for soft merging. Figure 15 shows an example of a portion of a display screen that the exemplary system displays to a user. In this case, a user viewing the display device can understand the position of the soft-merged computation nodes in the overall dataflow sequence. For example, among dataflow sequences in which parallel computation is performed, only the computation nodes in one dataflow sequence are soft-merged, and the user can understand whether there are any dataflow sequences in the parallel computation that are not soft-merged.

[0224] Additionally or alternatively, the exemplary system may display information generated during the soft resource merge on a display device so that a user can understand it. For example, the exemplary system may display resource information related to the computing nodes to be soft resource merged and / or composite resource information after the soft resource merge on a display device. In this case, the user can advantageously understand resource information before and after the soft resource merge.

[0225] In addition, an example system may display on a display device a comparison of resource information related to a computing node to be soft resource merged and the resulting combined resource information after the soft resource merge. The compared information may be resource information or corresponding information about an attribute of the resource information. This has the advantage that users can easily understand the resource information about corresponding attributes before and after the soft resource merge. For example, if the resource information related to two computing nodes to be soft resource merged has the number of logic blocks A1 and A2, respectively, and the resulting combined resource information after the soft resource merge has the number of blocks A3, A3 may be displayed on the display device in a manner that compares A1 and A2. For example, if the resource information related to two computing nodes to be soft resource merged has the frequency B1 and B2, respectively, and the resulting combined resource information after the soft resource merge has the frequency B3, B3 may be displayed on the display device in a manner that compares B1 and B2. In this case, if the frequency of B2 is greater than that of B1, and if the smaller frequency is used as the composite resource information, B3 will be the same as B1, but B3, which has a smaller frequency than B2, may be highlighted on the display device. In this way, if the functionality of the hardware decreases after the soft resource merge compared to before the soft resource merge, the reduced part may be highlighted. This has the advantage that the user can easily understand that the functionality will be reduced by the soft resource merge.

[0226] Although the above description has been given of a case where the resource is applied to low frequencies, the present invention is not limited to such a case, and the combined resource information in the case where soft resources are merged may include a plurality of different frequencies.

[0227] In addition, the exemplary system may display on a display device a comparison of resource information related to a computing node to be soft-merged or hard-merged and resource information of the corresponding hardware resource to be written. The compared information may be the resource information itself or corresponding information about an attribute of the resource information. For example, if the number of internal memories in the resource information related to a computing node to be soft-merged or hard-merged is A1 and the resource information of the corresponding hardware resource to be written is A2, A1 and A2 may be displayed on the display device in comparison.

[0228] The exemplary system may also display on a display device a comparison between resource information related to a computing node to be soft-merged or hard-merged and resource information of one or more candidate hardware resources to be written. The compared information may be resource information or corresponding information about an attribute of the resource information. In such a case, the exemplary system may display on a display device information indicating a relationship between the resource information related to a computing node to be soft-merged or hard-merged and the resource information of one or more candidate hardware resources to be written, such as usage information. For example, if the number of bits of a register in the resource information related to a computing node to be soft-merged or hard-merged is A1, the number of bits of a register in the resource information of one candidate hardware resource to be written is A2, and the number of bits of a register in the resource information of another candidate hardware resource to be written is A3, and the number of bits of a register in the resource information of the other candidate hardware resource to be written is A4, usage information based on A1 and A2, usage information based on A1 and A3, and / or usage information based on A1 and A4 may be displayed on the display device. In this case, there is an advantage that the user can understand the relationship between multiple candidate hardware resources when they are written.

[0229] An example system may display some or all of the information about the process of determining which items are eligible for merging on a display device.

[0230] An example system may display information generated in a soft resource merge on a display device.

[0231] 7. Embodiment 6 The system of this example defines the timing of soft resource merges, soft merges, and / or hard merges.

[0232] The system of the example may be implemented together with any one of the above-described first to fifth embodiments, or may be implemented alone without implementing the above-described first to fifth embodiments.

[0233] Furthermore, the system of the example may include the monitoring unit described in embodiment 3. In this case, the monitoring unit may acquire information related to communications related to one or more reconfigurable devices.

[0234] Step 611 An example system determines whether a predetermined condition is met.

[0235] Step 612 The system in one example performs soft resource merging for multiple computing nodes that satisfy a predetermined condition.

[0236] Step 621 An example system determines whether a predetermined condition is met.

[0237] Step 622 The system in one example performs soft merging for multiple computing nodes that satisfy a predetermined condition.

[0238] Step 631 An example system determines whether a predetermined condition is met.

[0239] Step 632 In one example, the system performs a hard merge on multiple computing nodes that satisfy a predetermined condition.

[0240] The predetermined condition may be a condition using the above-mentioned information related to the communication, for example, when the information related to the communication exceeds a predetermined corresponding threshold.

[0241] The predetermined condition may also be a usage fee for a reconfigurable device based on communication information. For example, if the example system has a function for calculating a usage fee based on communication information for a reconfigurable device, the predetermined condition may be satisfied when the usage fee exceeds a predetermined threshold.

[0242] An example system is a monitoring unit that acquires communication-related information from one or more reconfigurable devices; a determination unit that determines whether the information related to the communication satisfies a predetermined condition; a processing unit that performs soft resource merging, soft merging, and / or hard merging for a plurality of computing nodes for the information related to the communication in response to a result of the determination; The system may include:

[0243] The information related to communication for determining whether the predetermined condition is satisfied may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region different from the first PR region in the first reconfigurable device, which has the advantage of being able to use information between different PR regions in the same reconfigurable device.

[0244] The information related to communication for which the satisfaction of the predetermined condition is determined may be, for example, information related to communication between a first PR region in a first reconfigurable device and a second PR region in a second reconfigurable device different from the first reconfigurable device, which has the advantage of being able to use information between different PR regions in different reconfigurable devices.

[0245] The information related to the communication may be transmitted by a task manager written in the one or more reconfigurable devices. The task manager may be written in the reconfigurable device and have a function of communicating, such as transmitting and / or receiving, with an information processing device outside the reconfigurable device. Furthermore, the task manager may have a function of acquiring information related to communication between one or more PR regions written in the reconfigurable device in which the task manager is written and an information processing device outside the reconfigurable device.

[0246] In one example system, when information relating to communication between a first computing node and a second computing node is higher than a predetermined threshold, the first computing node and the second computing node may be processed as computing nodes to be subject to a soft resource merge, as computing nodes to be subject to a soft merge, and / or as computing nodes to be subject to a hard merge.

[0247] 8. Embodiment 7 The system according to the seventh embodiment is different from the systems according to the first to sixth embodiments, and efficiently performs processing using reconfigurable devices.

[0248] The system of this example includes one or more reconfigurable devices and one or more programmable devices, and some or all of the one or more reconfigurable devices and the one or more programmable devices may be a system capable of communicating information.

[0249] Below, some examples of such systems are described.

[0250] Embodiment 7-1 An example system includes one or more reconfigurable devices and one or more programmable devices, and a part or all of the one or more reconfigurable devices and the one or more programmable devices are capable of communicating information; the one or more reconfigurable devices, performing a process of determining whether a source of the packet obtained from outside the one or more reconfigurable devices is a predetermined source and / or whether a destination of the packet is a predetermined destination, In response to the determination process, if the source of the packet is a predetermined source and / or the destination of the packet is a predetermined destination, transmit the packet to the one or more programmable devices, and if the source of the packet is not the predetermined source and / or the destination of the packet is not the predetermined destination, do not transmit the packet to the one or more programmable devices; The one or more programmable devices are a system that performs pattern matching processing within the packets.

[0251] The ability to communicate information may be communication via a network. Furthermore, if the packet is not sent to the one or more programmable devices, the packet may be sent to a third destination or may be discarded. An example of a function that can be realized by such a configuration may be a firewall.

[0252] 16, a reconfigurable device 1601 may acquire a packet from outside the reconfigurable device through a communication circuit 1600, perform a determination process, and if the source of the packet is a predetermined source and / or the destination of the packet is a predetermined destination, transmit the packet to one or more programmable devices 1602 via a communication line 1603, which may then perform pattern matching. The communication line 1603 may be a general-purpose line or a dedicated line, and may be wireless or wired.

[0253] Since the pattern matching process for processing packets for sending and receiving, such as determining the source and destination of a packet, is not performed by a reconfigurable device, there is an advantage that complex implementation is not required and implementation is easier while still obtaining the benefits of faster processing due to reconfigurability.Furthermore, since the processing that uses such previous packets is realized by a programmable device, there is an advantage that the required roles (determining the source and destination and pattern matching process) can be appropriately divided across the entire system.

[0254] Embodiment 7-2 An example system includes one or more reconfigurable devices and one or more programmable devices, and a part or all of the one or more reconfigurable devices and the one or more programmable devices are capable of communicating information; the one or more reconfigurable devices perform processing of a first packet acquired from outside the one or more reconfigurable devices without using a second packet that precedes the first packet; The one or more programmable devices are a system that performs processing using a second packet that precedes a first packet obtained from outside the one or more programmable devices in processing the first packet.

[0255] The one or more reconfigurable devices may acquire the first packet and the second packet prior to the one or more programmable devices.

[0256] Furthermore, the one or more reconfigurable devices may transmit the first packet and the second packet to the one or more programmable devices.

[0257] The one or more reconfigurable devices may acquire the second packet earlier in time than the first packet.

[0258] For example, referring to FIG. 16, a reconfigurable device 1601 may acquire a first and second packet from outside the reconfigurable device through a communication circuit 1600, and the reconfigurable device 1601 may process the first packet without using the second packet that precedes the first packet, and may transmit the first and second packets to one or more programmable devices 1602, and the programmable device 1602 may process the first packet using the second packet that precedes the first packet.

[0259] Since processing that does not use previous packets is not performed by a reconfigurable device, complex implementation (for example, implementation of processing that stores and restores previous packets) is not necessary, which has the advantage of making implementation easier while still benefiting from the faster processing that reconfiguration allows.Furthermore, since such processing that uses previous packets is realized by a programmable device, the entire system can appropriately share the required roles (processing that uses previous packets and processing that does not use previous packets).

[0260] Embodiment 7-3 An example system includes one or more reconfigurable devices and one or more programmable devices, and a part or all of the one or more reconfigurable devices and the one or more programmable devices are capable of communicating information; the one or more reconfigurable devices perform a process in which a position and / or a range to be referenced within the packet has been determined in a determination process of the packet acquired from outside the one or more reconfigurable devices; The one or more programmable devices are a system that processes packets obtained from outside the one or more programmable devices, and performs processing in which the position and / or range to be referenced within the packets has not yet been determined.

[0261] For example, referring to FIG. 16, a reconfigurable device 1601 may acquire a packet from outside the reconfigurable device through a communication circuit 1600, the reconfigurable device 1601 may perform processing in which the position and / or range to be referenced within the packet has already been determined, and the reconfigurable device 1601 may transmit the first and second packets to one or more programmable devices 1602, and the programmable device 1602 may perform processing in which the position and / or range to be referenced within the packet has not already been determined.

[0262] Since the reconfigurable device does not perform processing where the reference position and / or range within the packet has not yet been determined, complex implementation (for example, implementation of processing to accommodate changes when the reference position within the packet changes dynamically) is not necessary, which has the advantage of making implementation easier while still benefiting from the faster processing that reconfiguration allows.Furthermore, since processing that uses such previous packets is realized by a programmable device, the entire system can appropriately share the required processing roles.

[0263] Embodiment 7-4 An example system includes one or more reconfigurable devices and one or more programmable devices, and a part or all of the one or more reconfigurable devices and the one or more programmable devices are capable of communicating information; the one or more reconfigurable devices perform processing on a packet acquired from outside the one or more reconfigurable devices using a combination of a predetermined number of predetermined operations; The one or more programmable devices are a system in which processing of packets obtained from outside the one or more programmable devices is a process using a non-predetermined operation or a combination of predetermined operations exceeding a predetermined number.

[0264] For example, referring to FIG. 16, a reconfigurable device 1601 may acquire a packet from outside the reconfigurable device through a communication circuit 1600, and the reconfigurable device 1601 may process the packet using a combination of a predetermined number of predetermined operations, and transmit the first and second packets to one or more programmable devices 1602, which may then process the packet using an operation other than the predetermined number or a combination of a number of predetermined operations that exceeds the predetermined number.

[0265] Since the reconfigurable device does not perform processing involving non-prescribed operations or combinations of predetermined operations that exceed a predetermined number, complex implementation (for example, implementation of regular expression matching) is not required, which has the advantage of making implementation easier while still benefiting from the faster processing speed achieved by reconfiguration.Furthermore, since the processing involving non-prescribed operations or combinations of predetermined operations that exceed a predetermined number is realized by a programmable device, the entire system can appropriately share the required processing roles.

[0266] 9. Various Embodiments The system according to the first aspect includes: First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; an acquisition unit that acquires the a generating unit that generates, using the first resource information and the second resource information, composite resource information that is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device; A system comprising: "

[0267] The system according to the second aspect is the same as the system according to the first aspect. the first resource information includes a first number of logic blocks; the second resource information includes a second number of logic blocks; the generating unit calculates the number of logic blocks by summing the number of first logic blocks and the number of second logic blocks, and generates the synthesis resource information including the summed number of logic blocks. "It is something like that.

[0268] The system according to the third aspect is the same as the system according to the first aspect or the second aspect. the first resource information includes first frequency information; the second resource information includes second frequency information; the generating unit generates the combined resource information including a smaller frequency of the first frequency information and the second frequency information, or both of the frequencies. "It is something like that.

[0269] The system according to the fourth aspect is the system according to any one of the first to third aspects. the generation unit generates the combined resource information based on an input / output relationship between the first computing node and the second computing node. "It is something like that.

[0270] The system according to the fifth aspect is the system according to any one of the first to fourth aspects. Further, an identification unit is configured to identify one hardware resource capable of executing a computing node corresponding to the composite resource information. "It is something like that.

[0271] The system according to the sixth aspect is the system according to any one of the first to fifth aspects. the identifying unit includes a determining unit that compares at least one attribute in the composite resource information with an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource, and determines that the latter is capable of executing the former; "It is something like that.

[0272] The system according to the seventh aspect is the system according to any one of the first to sixth aspects. the identifying unit identifies the one hardware resource using usage information based on at least one attribute in the composite resource information and an attribute corresponding to the at least one attribute in resource information related to the one hardware resource; "It is something like that.

[0273] The system according to the eighth aspect is the system according to any one of the first to seventh aspects. a selection unit that selects, from a first computing node group configured with a plurality of computing nodes including the first computing node and the second computing node, a computing node group including the first computing node and the second computing node, which is a subset of the first computing node group, by using information related to input / output paths between at least some of the computing nodes in the first computing node group; "It is something like that.

[0274] The system according to the ninth aspect is the system according to any one of the first to eighth aspects. a selection unit that selects a computing node group including the first computing node and the second computing node, which is a subset of the first computing node group, from a first computing node group configured of a plurality of computing nodes including the first computing node and the second computing node, by using resource information of a reconfigurable device or resource information of a PR region in the reconfigurable device; "It is something like that.

[0275] The program according to the tenth aspect includes: One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; Acquisition means to obtain, a generating means for generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; A program to operate as. "

[0276] The program according to the eleventh aspect is the program according to the tenth aspect. the information processing device includes a memory for storing the first resource information and / or the second resource information; "It is something like that.

[0277] The program according to the 12th aspect is the program according to the 10th or 11th aspect. the information processing device includes a calculation device that performs the generation process; "

[0278] The method according to the thirteenth aspect includes: One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to the reconfigurable device; Get step, a generating step of generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; How to do "It is something like that.

[0279] The method according to the 14th aspect is the same as the method according to the 13th aspect. the information processing device includes a memory for storing the first resource information and / or the second resource information; "

[0280] The method according to the 15th aspect is the same as the method according to the 14th or 15th aspect. the information processing device includes a calculation device that performs the generation process; "It is something like that.

[0281] 10. Example of a programmable device configuration 17 , the programmable device 10 may include an arithmetic unit 12, a storage unit 13, a communication IF 16, and a bus 11 connecting these. The programmable device 10 may further include an input unit 14, a display unit 15, and a bus 11 connecting these. The programmable device 10 may also be connected directly or indirectly to another information processing device via a network 19.

[0282] The programmable device 10 may be an information processing device such as a server or a cloud. It may be a dedicated device or a general-purpose device. Furthermore, the programmable device 10 itself may be a reconfigurable device in which a circuit is written. In this case, there is an advantage that the programs of the various embodiments described above can be executed more quickly.

[0283] Although the above description is of a configuration implemented by an example system, it may also be a configuration implemented by one or more information processing devices within the system. Furthermore, the system according to the present application document may present information in various ways. For example, presenting information may include displaying information. For example, the example system may display information on a display device included in the example system, or on a display device in another information processing device to which the example system is directly or indirectly connected.

[0284] It goes without saying that the invention examples described in the embodiments of this application document are not limited to those explained in this application document, but can be applied to various examples within the scope of the technical idea thereof.

[0285] Furthermore, the processes and procedures described in this application document may be realized not only by those explicitly described in the embodiments, but also by software, hardware, or a combination thereof. Furthermore, the processes and procedures described in this application document may be implemented as computer programs and executed by various computers. These computer programs may be stored in storage media. These programs may be stored in non-transitory or temporary storage media.

Claims

1. First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; and second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to a reconfigurable device; an acquisition unit that acquires the a generating unit that generates, using the first resource information and the second resource information, composite resource information, which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written to a reconfigurable device; A system comprising:

2. the first resource information includes a first number of logic blocks; the second resource information includes a second number of logic blocks; the generating unit calculates the number of logic blocks by summing the number of first logic blocks and the number of second logic blocks, and generates the synthesis resource information including the summed number of logic blocks. The system of claim 1 .

3. the first resource information includes first frequency information; the second resource information includes second frequency information; The generation unit generates the combined resource information including a smaller frequency of the first frequency information and the second frequency information, or both of the frequencies.

3. The system according to claim 1 or 2.

4. the generating unit generates the combined resource information based on an input / output relationship between the first computing node and the second computing node. A system according to any one of claims 1 to 3.

5. Further, an identification unit is configured to identify one hardware resource capable of executing a computing node corresponding to the composite resource information. A system according to any one of claims 1 to 4.

6. the identifying unit includes a determining unit that compares at least one attribute in the composite resource information with an attribute corresponding to the at least one attribute in the resource information related to the one hardware resource, and determines that the latter is capable of executing the former; The system of claim 5.

7. the identifying unit identifies the one hardware resource using usage information based on at least one attribute in the composite resource information and an attribute corresponding to the at least one attribute in resource information related to the one hardware resource; The system of claim 5.

8. a selection unit that selects, from a first computing node group configured with a plurality of computing nodes including the first computing node and the second computing node, a computing node group including the first computing node and the second computing node, which is a subset of the first computing node group, by using information related to input / output paths between at least some of the computing nodes in the first computing node group; 8. The system according to claim 1, comprising:

9. a selection unit that selects a computing node group including the first computing node and the second computing node, which is a subset of the first computing node group, from a first computing node group configured of a plurality of computing nodes including the first computing node and the second computing node, by using resource information of a reconfigurable device or resource information of a PR region in the reconfigurable device; 9. The system of claim 1, comprising:

10. One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; and second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to a reconfigurable device; Acquisition means to obtain, a generating means for generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; A program to operate as.

11. the information processing device includes a memory for storing the first resource information and / or the second resource information; The program according to claim 10.

12. the information processing device includes a calculation device that performs the generation process; The program according to claim 10 or 11.

13. One or more information processing devices, First resource information is information about hardware resources that can be used when one or more bitstreams related to the first computing node are written to a reconfigurable device; and second resource information, which is information about hardware resources that can be used when one or more bitstreams related to the second computing node are written to a reconfigurable device; Get step, a generating step of generating, using the first resource information and the second resource information, composite resource information which is information about hardware resources that can be used when one or more bitstreams based on the first computing node and the second computing node are written into a reconfigurable device; How to do it.

14. the information processing device includes a memory for storing the first resource information and / or the second resource information; The method of claim 13.

15. the information processing device includes a calculation device that performs the generation process; 15. The method of claim 13 or 14.

Citation Information

Patent Citations

  • Field programmable distributed processing memory

    JP1995006080A

  • Data processing apparatus and method for controlling the same

    JP2010251925A

  • Data processor, and data processing method

    JP2020135318A

  • Field-Programmable Gate Array (FPGA) Acceleration Resource Conservation

    US20200192723A1

  • Data processing device having reconfigurable logic circuit

    WO2006046711A1