Computer-aided design process for a specialized processor

The computer-aided method for designing specialized processors optimizes instruction sets based on user-defined criteria, addressing the inefficiencies and expertise requirements of traditional processor design, and achieving improved performance and resource utilization.

FR3155928A1Pending Publication Date: 2025-05-30KEYSOM
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
FR2023013253
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-29
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

The design of custom processors for specific applications is time-consuming and requires specialized engineering expertise, making it inaccessible to non-experts and inefficient in terms of processing time and resource utilization.

Method used

A computer-aided method for designing a specialized processor that optimizes the instruction set based on user-defined performance, power consumption, and area requirements, using a software test bench and machine learning to generate an optimal instruction set and corresponding binary file.

Benefits of technology

This method allows for the rapid design of specialized processors that meet specific application requirements, reducing the need for specialized engineering and improving performance, power efficiency, and resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for computer-aided design of a specialized processor designed to execute a specific application based on a user-defined performance query of the specialized processor, comprising the following steps: a. accessing (101,102) the source code of the specific application and the software test bench, c. accessing (103,104) design parameters of the specialized processor and the performance query, e. generating (110) a report comprising an optimal instruction set and associated performance, power consumption and area parameters, f. generating (130) a final optimal instruction set and a report on the performance, power consumption and area parameters of the specialized processor associated with this final optimal instruction set, and g. generating (150) a compilation tool and a conversion tool, h.The specialized processor is designed based on the final optimal instruction set, and a final binary file is generated. Figure for abstract: Fig 1.
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Computer-aided method for designing a specialized processor Technical field

[0001] The technical field of the invention is the design of processors, and more particularly the automatic design of processors. Previous techniques

[0002] Current processors comprise a large collection of processing elements to support a variety of applications. These processors are typically designed and tested in multi-stage processes involving several design stages and several specialized engineers.

[0003] A general-purpose processor can include a complex instruction set. This is called a CISC architecture (an English acronym for “complex instruction-set computer”).

[0004] When an application is executed on such a general-purpose processor, many instructions included in this processor are not used. Indeed, such processors are designed to be able to execute any type of application on a minimal memory footprint and must therefore include a wide selection of instructions adapted to these different types of applications.

[0005] This implies that the processor occupation is greater than that of a specialized processor comprising only the instructions necessary for the application executed. This also has an impact on the power consumed by the processor, which is greater to keep these unused instructions accessible. This unnecessarily greater processor occupation also implies a greater critical path and naturally a limitation of the frequency of use and therefore degraded performance.

[0006] It is on this observation that the RISC architecture (English acronym for "Reduced Instruction Set Computer") was developed, in which a number of instructions from the CISC architecture were removed to be replaced by instructions emulated in software from simpler instructions.

[0007] In the case of a RISC-V architecture, instructions are grouped into extensions, each extension supporting certain operations such as multiplication, addition, code compression or bit manipulation to name a few. All instructions can be emulated from a few I instructions and two A instructions.

[0008] The design of a processor involves an optimization step between performance, power consumed and the surface area occupied.

[0009] The performance of a processor determines its processing or computing capacity, and is generally expressed in floating-point operations per second (FLOPS). It also depends on the efficiency of the instructions and / or the type of instructions included in the processor's instruction set (ISA, Instruction set Architecture).

[0010] The power consumed makes it possible to determine the energy required for the operation of the processor as well as its cooling requirements and is generally expressed in Watts.

[0011] The occupied surface illustrates the size of the processor, and, indirectly, its cost. Indeed, the processors are etched on silicon wafers. The manufacturing cost of processors, for a given manufacturing process, is calculated per silicon wafer. However, the number of processors per silicon wafer and therefore the cost price per processor depends on the surface occupied by each processor. The smaller the surface area occupied by the processor, the greater the number of processors per silicon wafer and the lower the unit cost.

[0012] These three quantities are dependent on each other. For example, power can be increased by adding instructions. However, this increases the power consumed and the area occupied.

[0013] In contrast, when certain instructions are emulated in software, the area occupied can be reduced, and, in certain cases, the power consumed can be reduced. However, such emulation consumes computing cycles, which reduces the power of the processor.

[0014] Several hundred different instruction selections can exist for a single algorithm, which makes the choice of the instruction combination particularly complicated in itself. Once combined with taking into account the power consumed and the area occupied, the number of possibilities becomes colossal.

[0015] The design of custom processors for at least one application generally requires particularly long periods of time for teams of specialized engineers in order to determine the compromise between performance, power consumption, and surface area occupied, known as the PPA compromise (acronym for “Performance, Power, Area”).

[0016] There is therefore a need for a processor design suitable for a software application that does not require a team of specialized engineers and has significantly shorter processing times.

[0017] There is also a need for processor design to be made accessible to a non-expert user.

[0018] Finally, there is a need for fine adaptation of a processor during design. Statement of the invention

[0019] The subject of the invention is a method for designing a computer-aided specialized processor, said specialized processor comprising an optimized instruction set and being designed according to a performance request defined by a user to execute a specific application in an optimized manner, comprising the following steps:

[0020] a. the source code of the specific application is accessed,

[0021] b. the software test bench source code is accessed,

[0022] c. access to design parameters of the specialized processor,

[0023] d. the user-defined performance query is accessed,

[0024] e. a report is generated comprising an optimal instruction set to be implemented in the specialized processor for the application considered as well as the performance, power consumption and surface area parameters of the specialized processor corresponding to this optimal instruction set as a function of the design parameters of the specialized processor and the performance, power consumption and surface area requirements of the specialized processor defined in the performance query defined by the user,

[0025] f. if the performance parameter ratio is satisfactory, the optimal instruction set can be considered as a final optimal instruction set,

[0026] g. if the performance parameter report is not satisfactory, the method resumes at the step of accessing the user-defined performance, power consumption and area requirements of the specialized processor, with new requirements,

[0027] h. a compilation chain and a conversion tool are then generated to convert the instructions of an application intended to be executed on a general processor into instructions understandable by the specialized processor,

[0028] i. the specialized processor is designed based on the final optimal instruction set, and

[0029] j. a final binary file is generated that is compatible with the specialized processor in order to execute applications.

[0030] An initial binary file can be accessed instead of the source code, and a linker file is then accessed at the same time as the file is accessed. initial binary, the final binary file then being generated based on the initial binary file, the linker file and the conversion tool.

[0031] To generate a report, the following sub-steps can be performed:

[0032] a. a dictionary is generated associating with a set of instructions the performance, the power consumed, the occupied surface determined by simulation and the logical elements shared with another instruction, the dictionary being initialized with values ​​combining as input at least two sets of instructions distributed to contain both almost complete and almost empty families of instructions,

[0033] b. using the dictionary, a linear optimization is carried out to determine locations of the areas with the best instruction sets giving parameters of performance, power consumption and surface area of ​​the specialized processor best satisfying the performance request defined by the user,

[0034] c. the dictionary is enriched with additional entries determined at the end of the linear optimization and located in the areas with the best instruction sets,

[0035] d. machine learning is performed on the enriched dictionary in order to estimate the optimal instruction set, then a simulation of the performance, power consumption and occupied surface parameters is performed as a function of the optimal instruction set and the dictionary is enriched with the determined performance, power consumption and occupied surface parameters,

[0036] e. if only one optimal instruction set has been determined, the method resumes at the dictionary enrichment step, if this is not the case it is determined whether the at least one optimal instruction set has sufficiently converged with respect to at least one predetermined convergence threshold depending on a criterion to be maximized among the performance, the power consumed and the occupied surface area, the constraint of which is to be favored over the others, the criterion to be maximized being included in the performance request, and

[0037] f. If so, the instruction set is retained as the final optimal instruction set and a report is generated including the final optimal instruction set and the performance, power consumption and area parameters of the specialized processor adjusted by an accurate simulation.

[0038] To determine whether the optimal instruction sets of the dictionary have sufficiently converged in view of the user's performance query, the following steps can be carried out: the current criterion to be maximized is compared with the at least one criterion to be maximized of the at least one previous occurrence, the deviation of the current criterion to be maximized with the criterion to be maximized of the previous occurrence is determined and the derivative of the deviation of the criterion to be maximized with respect to the iteration number is determined, then the optimal instruction set is considered to have been found when the deviation of the current criterion to be maximized with the criterion to be maximized of the previous occurrence is less than a predetermined convergence threshold and when the derivative of the deviation of the criterion to be maximized with respect to the iteration number is negative or zero.

[0039] The user-defined performance request may comprise at least one of a performance requirement, a power consumption requirement and / or an occupied surface area requirement, each requirement being expressed either as a limit value defining an open range of values ​​bounded on one side by the limit value, or as a range of values ​​delimited by two limit values.

[0040] The user-defined performance query comprises a mathematical relationship that is a function of at least two of a performance requirement, a power requirement, and / or an occupied area requirement.

[0041] After determining a final optimal instruction set and before generating a compilation chain and a conversion tool, at least one alternative optimal instruction set can be determined by inserting at least one variation into the user-defined performance query, and by re-executing the steps of the method for automatic design of a specialized processor up to the step of generating a compilation chain and a conversion tool, this step not being performed, the determination of the final optimal instruction set taking into account the same criterion to be maximized as when determining the final optimal instruction set, then the final optimal instruction set and the at least one alternative optimal instruction set are submitted to the user for choice,the user then being able to decide whether a compromise on one of the requirements of his performance query allows to obtain an unexpected result preferable to the result obtained with the final optimal instruction set. Brief description of the drawings,

[0042] Other aims, characteristics and advantages of the invention will appear on reading the following description, given solely by way of non-limiting example and made with reference to the appended drawings in which: - figure [Fig.l] illustrates the main steps of a method for designing a computer-aided specialized processor according to the invention, and - Figure [Fig.2] illustrates the main sub-steps involved in generating a report including an optimal instruction set to be implemented in a specialized processor for the application under consideration as well as the PPA parameters corresponding to this optimal instruction set. Detailed description

[0043] Figure [Fig.l] illustrates a computer-aided specialized processor design method for generating a binary file compatible with an optimized instruction set defining a specialized processor and designed to execute a specific application based on a user performance request. including performance, power consumption and specialized processor area requirements.

[0044] The user-defined performance query comprises at least one of a performance requirement, a power consumption requirement and / or an occupied surface area requirement. Each requirement included in the query is expressed either as a limit value defining an open range of values ​​bounded on one side by the limit value, or as a range of values ​​delimited by two limit values. It is thus possible to limit the power consumed by the specialized processor but leave the computational performance and occupied surface area requirements free to take any value.

[0045] A range of values ​​for at least one of the requirements can also be defined.

[0046] For example, one can define a range of values ​​for the power consumed and the occupied surface, while allowing the performance to take any value. It is obviously understood that, when a value is not associated with a requirement, the design process will attempt to obtain the best possible value. For the power consumed and the occupied surface, this implies obtaining the lowest possible value. For the computational performance, it will be a question of obtaining the highest possible value.

[0047] The performance query may also include a mathematical function having as a parameter at least two of the requirements among a processing performance requirement of the specialized processor, a requirement of power consumed by the specialized processor and a requirement of surface occupied by the specialized processor. When the performance query includes such a mathematical function, it may itself be associated with a limit value or a range of values.

[0048] During a first step 101, the source code of an application for which a specialized processor is sought to be designed is accessed.

[0049] During a second step 102, the software test bench source code is accessed, the execution of which provides the key performance indicators. The software test bench is a C / C++ code for evaluating the performance of the processor. This software can evaluate, for example, the number of clock cycles required to execute a predefined heavy processing.

[0050] During a third step 103, design parameters of the specialized processor are accessed. The design parameters of the specialized processor may include the cache protocol, the cache size, the number of cache levels. Each of these parameters has an impact on the performance, the power consumed or the occupied surface area of ​​the corresponding processor.

[0051] During a fourth step 104, the user-defined performance requests are accessed. By user-defined performance requests, we mean PPA (Performance, Power consumed, Occupied surface) requests, i.e. a request comprising a performance requirement, a power consumed requirement and / or an occupied surface requirement. The PPA requests may concern at least one requirement among a performance requirement, a power consumed requirement and / or an occupied surface requirement. Each requirement may be expressed as a limit value defining an open range of values ​​bounded on one side by the limit value. Each requirement may also be expressed as a range of values ​​delimited by two limit values.

[0052] Finally, PPA queries can also be defined as a mathematical relationship between at least two requirements among a performance requirement, a power requirement and / or an occupied area requirement.

[0053] In all cases, we also define a criterion to maximize among the performance, the power consumed and the surface area occupied, the constraint of which is to be favored over the others.

[0054] Steps 101 to 104 can be carried out partially or totally in a sequential and / or parallel manner.

[0055] The method then continues with a fifth step 110, during which a report is generated comprising an optimal instruction set to be implemented in the specialized processor for the application considered as well as the PPA parameters corresponding to this optimal instruction set. Step 110 is illustrated by the figure [Fig.2] and described in more detail later in this description.

[0056] During a step 115, the user determines whether the ratio is satisfactory by comparing the PPA parameters corresponding to this optimal instruction set to the performance query defined by the user. In a particular embodiment, in light of the results (report obtained at the end of step 110) already provided, the user can quickly evaluate another PPA compromise.

[0057] If the report is not satisfactory, the method resumes at step 104 with the submission of a new performance request by the user.

[0058] If the ratio is satisfactory, the method continues to step 120 during which the optimal instruction set determined in step 110 is considered satisfactory. The optimal instruction set is then considered to be the final instruction set.

[0059] During a step 130, a compilation chain and a conversion tool are then generated for converting the instructions of an application intended to be executed on a general-purpose processor into instructions understandable by the specialized processor. In other words, the conversion tool makes it possible to match the application's instructions to equivalent instructions included in the final instruction set.

[0060] During a step 150, the final binary file defining the specialized processor is generated from the source code provided in step 101 and the compilation chain generated in step 130.

[0061] In a particular embodiment, an initial binary file is used instead of the source code during the first step 101. A link edit file is then accessed at the same time as the initial binary file is accessed during the first step 101.

[0062] The final binary file is then generated based on the initial binary file, the linker file, and the conversion tool generated in step 130. The specialized processor is considered to be designed based on the final optimal instruction set. The specialized processor can be manufactured based on this final optimal instruction set.

[0063] Figure [Fig.2] illustrates the main sub-steps included in step 110 of generating a report.

[0064] During a first sub-step 220, a dictionary is generated in the form of an associative table with a set of instructions as input or key.

[0065] The entry of the associative table (its key) is an instruction set. The PPA parameters, i.e. the performance, the power consumed, the area occupied by the processor and the identifiers of the common elementary logical resources used by the instructions of the same family are the values ​​(outputs) associated with each key.

[0066] Elementary logic resources are, for example, an adder, a comparator, a shift register. They are very often common to several instructions. For example, the adder is used by all addition instructions but also by branch instructions.

[0067] For each input corresponding to an instruction set, the PPA performance, area, and consumption parameters from a precise simulation with an external tool are associated at the output. For each input, the PPA output parameters are completed with a list identifying the generic processing units used, such as an adder or a shift register. The dictionary does not contain an exhaustive set of all possible instruction sets. Indeed, obtaining such an exhaustive set would represent an extremely large amount of data requiring a calculation time significantly longer than the marketing time of the customized processors obtained, given current calculation means. The choice of instruction sets is made in order to cover all instruction sets in a deliberately sparse manner. Instead of proposing all possible combinations to the nearest instruction, for each 。 similar instruction (like multiplications, divisions,...), we will choose a very fragmentary instruction subset and an almost complete instruction subset. We will fill the dictionary with all possible combinations of presence of these instruction subsets.

[0068] With a reduced instruction set as a key, we will have a small surface area, low performance and low consumption, whereas for a complete instruction set, we will have the opposite result (large surface area, large performance and large consumption).

[0069] During a second sub-step 240, a linear optimization is carried out to determine the best combinations of instructions giving PPA parameters that best satisfy the performance request defined by the user accessed during step 104. Using the PPA parameters associated with the instruction sets included in the dictionary, and the list identifying the generic processing units used for each instruction set in the dictionary, it is possible, with a linear regression, to estimate the PPA parameters of all the possible combinations of instruction sets not found in the dictionary.

[0070] With a classic linear optimization algorithm or by simplex method, one can quickly evaluate the areas in which the PPA parameters will be optimal according to the performance requirements defined by the user. Since this is done by approximation without carrying out more precise simulations, these results will be approximate and will have to be adjusted by simulations with an external tool.

[0071] During a third sub-step 260, the dictionary is enriched with additional entries found during sub-step 240.

[0072] During a fourth sub-step 270, machine learning is carried out in order to determine the optimal instruction set. To achieve this, the learning uses the dictionary enriched at the end of the third sub-step 260 and estimates the criterion to be maximized, more precisely than a linear optimization. The dictionary is completed with the new entries found by machine learning by carrying out simulations with an external tool.

[0073] During a sub-step 275, it is determined whether the optimal instruction sets of the dictionary in view of the user's performance query have sufficiently converged. To achieve this, the current criterion to be maximized is compared with the at least one criterion to be maximized of the at least one previous occurrence. The optimal instruction set is considered to have been found when the deviation of the criterion to be maximized is less than a predetermined convergence threshold and the derivative of the deviation of the criterion to be maximized with respect to the number of iterations is negative or zero.

[0074] If this is not the case, the method then resumes after the enrichment step 260.

[0075] If this is the case, the method continues with a sixth sub-step 280, during which the instruction set is retained as the final optimal instruction set and a report is generated comprising the final optimal instruction set and the adjusted PPA parameters determined in the third sub-step 260.

[0076] In a particular embodiment, after determining a final optimal instruction set, at least one alternative optimal instruction set is determined by inserting at least one variation into the user-defined performance query by re-executing all of the steps of the method. Determining the final optimal instruction set takes into account the same criterion to be maximized as when determining the final optimal instruction set.

[0077] The final optimal instruction set and the at least one alternative optimal instruction set are then submitted to the user for choice. The user is then able to decide whether a compromise on one of the requirements of his performance query makes it possible to obtain an unexpected result preferable to the result obtained with the final optimal instruction set.

Claims

1. Claims A method of computer-aided design of a specialized processor, said specialized processor comprising an optimized instruction set and being designed according to a performance request defined by a user to execute a specific application in an optimized manner, comprising the following steps: a. the source code of the specific application is accessed (101), b. we access (102) the source code of a software test bench, c. we access (103) design parameters of the specialized processor, d. accessing (104) the user-defined performance query, e. generating (110) a report comprising an optimal instruction set to be implemented in the specialized processor for the application considered as well as the performance, power consumption and surface area parameters of the specialized processor corresponding to this optimal instruction set as a function of the design parameters of the specialized processor and the performance, power consumption and surface area requirements of the specialized processor defined in the performance query defined by the user, f. if the performance parameter report satisfies the user-defined performance query, the optimal instruction set is considered as a final optimal instruction set, g. if the performance parameter report does not satisfy the user-defined performance query, the method resumes at the step of accessing the user-defined performance, power consumption and dedicated processor area requirements, with new requirements, h. we then generate (150) a compilation chain and a conversion tool making it possible to convert the instructions of an application intended to be executed on a general processor into instructions understandable by the specialized processor, i. the specialized processor is designed based on the final optimal instruction set, and j. a final binary file is generated that is compatible with the specialized processor in order to run applications.

2. A method of designing a computer-aided specialized processor according to claim 1, wherein an initial binary file is accessed in place of the source code of the application, and a linker file is then accessed at the same time as the initial binary file is accessed, the final binary file then being generated on the basis of the initial binary file, the linker file and the conversion tool.

3. A method of designing a computer-aided specialized processor according to claim 1 or 2, wherein, to generate a report, the following sub-steps are carried out: a. a dictionary is generated (220) associating with a set of instructions the performance, the power consumed, the occupied surface determined by simulation and the logical elements shared with another instruction, the dictionary being initialized with values combining as input at least two sets of instructions distributed to contain both families of instructions comprising at least one software-emulated instruction, and families of instructions comprising at least one instruction which is not software-emulated, b. using the dictionary, a linear optimization is carried out (240) to determine locations of the areas with instruction sets giving parameters of performance, power consumption and surface area of the specialized processor whose deviation from the performance request defined by the user is the smallest, said instruction sets having the smallest deviation being considered as the best instruction sets, a. the dictionary is enriched (260) with additional entries determined at the end of the linear optimization and located in the areas with the best instruction sets,

4. b. machine learning is performed (270) on the enriched dictionary in order to estimate the optimal instruction set, then a simulation of the performance, power consumption and occupied area parameters is performed as a function of the optimal instruction set and the dictionary is enriched with the determined performance, power consumption and occupied area parameters, c. if only one optimal instruction set has been determined, the method resumes at the dictionary enrichment step, if this is not the case, it is determined (275) whether the at least one optimal instruction set is considered to have converged with respect to at least one predetermined convergence threshold depending on a criterion to be maximized included in the performance query and whose constraint is to be favored over the others, said constraint being chosen from among performance, power consumed and occupied surface area, and d. if so, retaining (280) the instruction set as the final optimal instruction set and generating a report including the final optimal instruction set and the performance, power consumption and area parameters of the specialized processor adjusted by an accurate simulation. A method for designing a specialized processor according to claim 3, wherein, to determine whether the optimal instruction sets of the dictionary are considered to have converged in view of the user's performance request, the current criterion to be maximized is compared with the at least one criterion to be maximized of the at least one previous occurrence, the deviation of the current criterion to be maximized from the criterion to be maximized of the previous occurrence is determined and the derivative of the deviation of the criterion to be maximized with respect to the number of iterations is determined, then the optimal instruction set is considered to have been found when the deviation of the current criterion to be maximized from the criterion to be maximized of the previous occurrence is less than a predetermined convergence threshold and when the derivative of the deviation of the criterion to be maximized with respect to the iteration number is negative or zero.

5. A method of designing a specialized processor according to any one of claims 1 to 4, wherein the user-defined performance request comprises at least one of a performance requirement, a power consumption requirement and / or an occupied surface area requirement, each requirement being expressed either as a limit value defining an open range of values bounded on one side by the limit value, or as a range of values delimited by two limit values.

6. A method of designing a specialized processor according to any one of claims 1 to 5, wherein the user-defined performance request comprises a mathematical relationship depending on at least two of a performance requirement, a power requirement and / or an area requirement, the user-defined performance request.

7. A method for designing a specialized processor according to any one of claims 3 to 6, wherein, after determining a final optimal instruction set and before generating a compilation chain and a conversion tool, at least one alternative optimal instruction set is determined, by inserting at least one variation into the performance query defined by the user, and by re-executing the steps of the method for automatic design of a specialized processor up to the step of generating a compilation chain and a conversion tool, this step not being carried out, the determination of the final optimal instruction set taking into account the same criterion to be maximized as when determining the final optimal instruction set, then the final optimal instruction set and the at least one alternative optimal instruction set are submitted to the user for choice,the user is then able to decide whether a compromise on one of the requirements of his performance query allows to obtain an unexpected result preferable to the result obtained with the final optimal instruction set.

Citation Information

Patent Citations

  • Architectural level power-aware optimization and risk mitigation

    US20120017189A1

  • Synthesis system for pipelined digital circuits with multithreading

    WO2011156741A1