US 11,790,140 B2
Method of realizing a hardware device for executing operations defined by a high-level software code
Marco Siracusa, Casalmaggiore (IT); Marco Rabozzi, Ameno (IT); Lorenzo Di Tucci, Peschiera Borromeo (IT); Marco Domenico Santambrogio, Cinisello Balsamo (IT); and Fabio Pizzato, Milan (IT)
Assigned to HUXELERATE S.R.L., Milan (IT)
Appl. No. 17/594,586
Filed by HUXELERATE S.R.L., Milan (IT)
PCT Filed Apr. 23, 2020, PCT No. PCT/IB2020/053848
§ 371(c)(1), (2) Date Oct. 22, 2021,
PCT Pub. No. WO2020/217201, PCT Pub. Date Oct. 29, 2020.
Claims priority of application No. 102019000006380 (IT), filed on Apr. 26, 2019.
Prior Publication US 2022/0147675 A1, May 12, 2022
Int. Cl. G06F 30/323 (2020.01); G06F 30/343 (2020.01)
CPC G06F 30/323 (2020.01) [G06F 30/343 (2020.01)] 8 Claims
OG exemplary drawing
 
1. A computer-implemented method of realizing a hardware device for executing operations defined by a high-level software code, the method comprising the steps of:
translating said high-level software code into a corresponding low-level software code for executing the same operations defined by the high-level software code, wherein said low-level software code defines low-level operations;
for each hardware device of a set of hardware devices that can be manufactured or configured for executing said low-level software code, carrying out the following operations:
estimating, for each low-level operation and for each type of hardware resources of said hardware device, an usage amount of hardware resources of said type required for implementing said low-level operation with said hardware device, wherein said estimating step is carried out assuming that there are no data dependencies among said low-level operations,
for each low-level operation of said low-level operations, estimating a number of run-time occurrences of said low-level operation in said low-level software code,
calculating, for each type of said available hardware resources a corresponding number of required hardware resources of said type as the summation, over all said low-level operations, of the product between the number of run-time occurrence of said low-level operation and the corresponding usage amount of said type of available hardware resources,
calculating, for each type of said available hardware resources, a corresponding ratio between said number of required hardware resources and a defined amount of the available hardware resources in said hardware device of said type of available hardware resources,
calculating a scale factor for said hardware device as a maximum value of said ratios calculated in the previous step,
calculating a peak performance value of said hardware device as a summation, over all said low-level operations, of the product of said number of run-time occurrence of said low-level operations by a rate defining a number of low-level operations per second that may be carried out by the hardware device, divided by said scale factor;
choosing the hardware device to be manufactured or configured out of said set of hardware devices that may be manufactured or configured, depending upon said respective peak performance value calculated for each hardware device of said set;
manufacturing or configuring said hardware device, chosen in the previous step, to carry out said high-level software code.