IP Library Granted Patent US 11,281,830
Granted Patent B2
US 11,281,830 · App. 16/298,852 · Granted Mar 22, 2022

Method and apparatus for performing profile guided optimization for first in first out sizing

Inventor: Kenneth Vincent Bridgers (Austin, TX)
Assignee: Intel Corporation
G06F30/33G06F8/41G06F8/443G06F30/331
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,281,830
App. No.
16/298,852
Granted
Mar 22, 2022
Kind
B2
Abstract

A method for designing a system on a target device includes generating a hardware description language (HDL) representation of profile data collecting hardware for a HDL of the system during a high-level compilation to collect profile data that includes an arrival rate associated with data transmitted to a buffer and a service rate of a service node associated with the buffer. The HDL of the system is compiled to generate a data file that describes a synthesis, placement and routing of the system on the target device. The target device is programmed with the data file to physically transform components on the target device to implement the system.

Claims (61)

1. A method for designing a system on a target device, comprising:

generating a hardware description language (HDL) representation of profile data collecting hardware for a HDL of the system during a high-level compilation to collect profile data that includes an arrival rate associated with data transmitted to a buffer and a service rate of a service node associated with the buffer;

compiling the HDL of the system to generate a data file that describes a synthesis, placement and routing of the system on the target device;

programming the target device with the data file to physically transform components on the target device to implement the system;

determining a probability distribution for the arrival rate associated with data transmitted to the buffer and a probability distribution for the service rate of the service node associated with the buffer;

selecting a specific arrival rate and a specific service rate from the probability distributions in response to input received from a user; and

determining a new size for the buffer based on the specific arrival rate selected and the specific service rate selected.

2. The method of claim 1 further comprising collecting the profile data by executing the system on the target device.

3. The method of claim 1 further comprising collecting the profile data by executing a simulation of the system.

4. The method of claim 1 further comprising modifying the system to implement the new size for the buffer by modifying the HDL of the system during a subsequent high-level compilation.

5. A method for designing a system on a target device, comprising:

generating a hardware description language (HDL) representation of profile data collecting hardware for a HDL of the system during a high-level compilation to collect profile data that includes an arrival rate associated with data transmitted to a buffer and a service rate of a service node associated with the buffer;

compiling the HDL of the system to generate a data file that describes a synthesis, placement and routing of the system on the target device;

programming the target device with the data file to physically transform components on the target device to implement the system; and

determining a new size for the buffer based on the arrival rate associated with data transmitted to the buffer and the service rate of the service node associated with the buffer,

wherein the new size for the buffer is determined to be λ*λ/μ*(μ−λ), wherein λ, is the arrival rate associated with data transmitted to the buffer, and μ is the service rate of the service node associated with the buffer.

6. The method of claim 5 further comprising modifying the system to implement the new size for the buffer by modifying the HDL of the system during a subsequent high-level compilation.

7. The method of claim 5 further comprising:

determining whether performance of the system is satisfactory with the new size for the buffer; and

determining another new size for the buffer based on a new arrival rate associated with data transmitted to the buffer and a new service rate of the service node associated with the buffer.

8. The method of claim 5 further comprising:

determining whether performance of the system is satisfactory with the new size for the buffer; and

generating the HDL of the system without the HDL representation of profile data collecting hardware in response to determining that performance of the system is satisfactory.

9. The method of claim 5 further comprising:

determining a probability distribution for the arrival rate associated with data transmitted to the buffer and a probability distribution for the service rate of the service node associated with the buffer; and

selecting a specific arrival rate and a specific service rate from the probability distributions in response to input received from a user,

wherein determining the new size for the buffer further comprises determining the new size for the buffer based on the specific arrival rate selected and the specific service rate selected.

10. A method for designing a system on a target device, comprising:

adding a hardware description language (HDL) representation of profile data collecting hardware to an HDL of the system, during synthesis of the system on the target device, to collect profile data associated with a buffer and a service node connected to the buffer, wherein the profile data comprises an arrival rate associated with data transmitted to the buffer and a service rate of the service node connected to the buffer;

placing the system on the target device;

routing the system on the target device;

generating a data file that reflects the synthesis, placing, and routing of the system on the target device;

programming the target device with the data file to physically transform components on the target device to implement the system;

determining a probability distribution for the arrival rate associated with data transmitted to the buffer and a probability distribution for the service rate of the service node connected to the buffer;

selecting a specific arrival rate and a specific service rate from the probability distributions in response to input received from a user; and

determining a new size for the buffer based on the specific arrival rate selected and the specific service rate selected.

11. The method of claim 10 , wherein the target device is a field programmable gate array.

12. The method of claim 10 further comprising collecting the profile data by executing the system on the target device.

13. The method of claim 10 further comprising collecting the profile data by executing a simulation of the system.

14. The method of claim 10 , wherein the new size for the buffer is determined to be λ*λ/μ*(μ−λ), wherein λ is the arrival rate associated with data transmitted to the buffer, and μ is the service rate the service node connected to the buffer.

15. The method of claim 10 further comprising modifying the system to implement the new size for the buffer by modifying the HDL of the system during a subsequent HDL compilation.

16. The method of claim 10 further comprising:

determining whether performance of the system is satisfactory with the new size for the buffer; and

determining another new size for the buffer based on a new average arrival rate associated with data transmitted to the buffer and a new average service rate of the service node connected to the buffer.

17. The method of claim 10 further comprising:

determining whether performance of the system is satisfactory with the new size for the buffer; and

synthesizing the system without adding the HDL representation of profile data collecting hardware in response to determining that performance of the system is satisfactory.

18. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method for designing a system on a target device, the method comprising:

generating a hardware description language (HDL) representation of profile data collecting hardware for a HDL of the system during a high-level compilation to collect profile data that includes an arrival rate associated with data transmitted to a buffer and a service rate of a service node associated with the buffer;

determining a probability distribution for the arrival rate associated with data transmitted to the buffer and a probability distribution for the service rate of the service node associated with the buffer;

selecting a specific arrival rate and a specific service rate from the probability distributions in response to input received from a user; and

determining a new size for the buffer based on the specific arrival rate selected and the specific service rate selected.

19. The non-transitory computer readable medium of claim 18 , wherein the new size for the buffer is determined to be λ*λ/μ*(μ−λ), wherein λ is the specific arrival rate selected, and μ is the specific service rate selected.

20. The non-transitory computer readable medium of claim 19 , wherein the method further comprises:

determining whether performance of the system is satisfactory with the new size for the buffer; and

determining another new size for the buffer based on a new specific arrival rate and a new specific service rate.

21. The non-transitory computer readable medium of claim 18 , wherein the method further comprises:

modifying the system to implement the new size for the buffer by modifying the HDL of the system during a subsequent HDL compilation.

22. The non-transitory computer readable medium of claim 18 , wherein the method further comprises:

determining whether performance of the system is satisfactory with the new size for the buffer; and

synthesizing the system without adding the HDL representation of profile data collecting hardware in response to determining that performance of the system is satisfactory.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: INTEL CORPORATION
To: ALTERA CORPORATION
Reel/Frame 066353/0886 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2019
From: BRIDGERS, KENNETH VINCENT
To: INTEL CORPORATION
Reel/Frame 048804/0237 →